Skip to content

Commit

Permalink
Merge branch 'catull-enhancement-add-angular-cli-plugin'
Browse files Browse the repository at this point in the history
  • Loading branch information
mcornella committed Sep 21, 2016
2 parents 8f07e26 + 34bc556 commit d51ee38
Show file tree
Hide file tree
Showing 2 changed files with 114 additions and 0 deletions.
37 changes: 37 additions & 0 deletions plugins/ng/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
## NG Plugin

This [ng plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ng)
adds completion support for Angular's CLI (named ng).

Ng is hosted on [ng home](https://github.com/catull/angular-cli)

It is used to generate Angular 2 app "stubs", build those apps, configure them,
test them, lint them etc.

Ahem, "stubs" is not what Angular engineers refer to the items ng can generate
for you.

"Stubs" can be any one of:
- class
- component
- directive
- enum
- module
- pipe
- route
- service

At the moment, `ng completion` creates a very rough completion for Zsh and
Bash.

It is missing most of the options and a few arguments.
In future, this plugin may be shortened to simply being

```zsh
eval `ng completion`
```

There is hope this materialises in the 21st century.

### CONTRIBUTOR
- Carlo Dapor ([catull](https://github.com/catull))
77 changes: 77 additions & 0 deletions plugins/ng/ng.plugin.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@

ng_opts='addon asset-sizes b build completion d destroy doc e2e g generate get github-pages:deploy gh-pages:deploy h help i init install lint make-this-awesome new s serve server set t test v version -h --help'

_ng_completion () {
local words cword opts
read -Ac words
read -cn cword
let cword-=1

case $words[cword] in
addon )
opts='-b --blueprint -d -dir --directory --dry-run -sb --skip-bower -sg --skip-git -sn --skip-npm -v --verbose'
;;

asset-sizes )
opts='-o --output-path'
;;

b | build )
opts='--environment --output-path --suppress-sizes --target --watch --watcher -dev -e -prod'
;;

d | destroy )
opts='--dry-run --verbose --pod --classic --dummy --in-repo --in-repo-addon -d -v -p -c -dum -id -ir'
;;

g | generate )
opts='class component directive enum module pipe route service --generate -d --dry-run --verbose -v --pod -p --classic -c --dummy -dum -id --in-repo --in-repo-addon -ir'
;;

gh-pages:deploy | github-pages:deploy )
opts='--environment --gh-token --gh-username --skip-build --user-page --message'
;;

h | help | -h | --help)
opts='--json --verbose -v'
;;

init )
opts='--blueprint --dry-run --link-cli --mobile --name --prefix --skip-bower --skip-npm --source-dir --style --verbose -b -d -lc -n -p -sb -sd -sn -v'
;;

new )
opts='--blueprint --directory --dry-run --link-cli --mobile --prefix --skip-bower --skip-git --skip-npm --source-dir --style --verbose -b -d -dir -lc -p -sb -sd -sg -sn -v'
;;

s | serve | server )
opts='--environment --host --insecure-proxy --inspr --live-reload --live-reload-base-url --live-reload-host --live-reload-live-css --live-reload-port --output-path --port --proxy --ssl --ssl-cert --ssl-key --target --watcher -H -dev -e -lr -lrbu -lrh -lrp -op -out -p -pr -prod -pxy -t -w'
;;

set )
opts='--global -g'
;;

t | test )
opts='--browsers --colors --config-file --environment --filter --host --launch --log-level --module --path --port --query --reporter --server --silent --test-page --test-port --watch -H -c -cf -e -f -m -r -s -tp -w'
;;

v | version )
opts='--verbose'
;;

ng )
opts=$ng_opts
;;

* )
opts=''
;;
esac

setopt shwordsplit
reply=($opts)
unset shwordsplit
}

compctl -K _ng_completion ng

0 comments on commit d51ee38

Please sign in to comment.