diff --git a/a1/README.md b/a1/README.md index d6c6d7a0..98486c39 100644 --- a/a1/README.md +++ b/a1/README.md @@ -3123,6 +3123,27 @@ Use file templates or snippets to help follow consistent styles and patterns. He ngservice // creates an Angular service ``` +### Emacs +###### [Style [Y257](#style-y257)] + + - [Emacs](https://www.gnu.org/software/emacs/) snippets that follow these styles and guidelines. + + - Download the [Emacs Angular snippets](assets/emacs-angular-snippets?raw=true) + + Note that yasnippet categorizes snippets by major mode, and there are several Emacs major modes for editing Javascript code. The snippets are in `js2-mode`, and the other directories contain only a dotfile to reference them there. + + - install [yasnippet](https://github.com/capitaomorte/yasnippet) (`M-x package-install RET yasnippet RET`) + - copy snippets to snippet directory, or modify your Emacs init to add snippet directory to `yas-snippet-dirs` + + ```javascript + ngcontroller // creates an Angular controller + ngdirective // creates an Angular directive + ngfactory // creates an Angular factory + ngmodule // creates an Angular module + ngservice // creates an Angular service + ngfilter // creates an Angular filter + ``` + **[Back to top](#table-of-contents)** ## Yeoman Generator diff --git a/a1/assets/emacs-angular-snippets/javascript-mode/.yas-parents b/a1/assets/emacs-angular-snippets/javascript-mode/.yas-parents new file mode 100644 index 00000000..8ed60a53 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/javascript-mode/.yas-parents @@ -0,0 +1 @@ +js2-mode diff --git a/a1/assets/emacs-angular-snippets/js-mode/.yas-parents b/a1/assets/emacs-angular-snippets/js-mode/.yas-parents new file mode 100644 index 00000000..8ed60a53 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js-mode/.yas-parents @@ -0,0 +1 @@ +js2-mode diff --git a/a1/assets/emacs-angular-snippets/js2-mode/angular.controller.snip b/a1/assets/emacs-angular-snippets/js2-mode/angular.controller.snip new file mode 100644 index 00000000..63a7eecb --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js2-mode/angular.controller.snip @@ -0,0 +1,26 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ngcontroller +# key: ngcontroller +# binding: direct-keybinding +# -- + +(function() { + 'use strict'; + + angular + .module('${1:module}') + .controller('${2:Controller}Controller', $2Controller); + + /* @ngInject */ + function $2Controller(${3:dependencies}) { + var vm = this; + vm.title = '$2Controller'; + + activate(); + + //////////////// + + function activate() { + } + } +})(); diff --git a/a1/assets/emacs-angular-snippets/js2-mode/angular.directive.snip b/a1/assets/emacs-angular-snippets/js2-mode/angular.directive.snip new file mode 100644 index 00000000..bb1f8de2 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js2-mode/angular.directive.snip @@ -0,0 +1,39 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ngdirective +# key: ngdirective +# binding: direct-keybinding +# -- + +(function() { + 'use strict'; + + angular + .module('${1:module}') + .directive('${2:directive}', $2); + + /* @ngInject */ + function $2(${3:dependencies}) { + // Usage: + // + // Creates: + // + var directive = { + bindToController: true, + controller: ${4:Controller}, + controllerAs: '${5:vm}', + link: link, + restrict: 'A', + scope: { + } + }; + return directive; + + function link(scope, element, attrs) { + } + } + + /* @ngInject */ + function $4() { + + } +})(); diff --git a/a1/assets/emacs-angular-snippets/js2-mode/angular.factory.snip b/a1/assets/emacs-angular-snippets/js2-mode/angular.factory.snip new file mode 100644 index 00000000..a08719db --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js2-mode/angular.factory.snip @@ -0,0 +1,26 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ngfactory +# key: ngfactory +# binding: direct-keybinding +# -- + +(function() { + 'use strict'; + + angular + .module('${1:module}') + .factory('${2:factory}', $2); + + /* @ngInject */ + function $2(${3:dependencies}) { + var service = { + ${4:func}: $4 + }; + return service; + + //////////////// + + function $4() { + } + } +})(); diff --git a/a1/assets/emacs-angular-snippets/js2-mode/angular.filter.snip b/a1/assets/emacs-angular-snippets/js2-mode/angular.filter.snip new file mode 100644 index 00000000..14e5e115 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js2-mode/angular.filter.snip @@ -0,0 +1,23 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ngfilter +# key: ngfilter +# binding: direct-keybinding +# -- + +(function() { + 'use strict'; + + angular + .module('${1:module}') + .filter('${2:filter}', $2); + + function $2() { + return $2Filter; + + //////////////// + function $2Filter(${3:params}) { + return $3; + }; + } + +})(); diff --git a/a1/assets/emacs-angular-snippets/js2-mode/angular.module.snip b/a1/assets/emacs-angular-snippets/js2-mode/angular.module.snip new file mode 100644 index 00000000..fd8eaef8 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js2-mode/angular.module.snip @@ -0,0 +1,14 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ngmodule +# key: ngmodule +# binding: direct-keybinding +# -- + +(function() { + 'use strict'; + + angular + .module('${1:module}', [ + '${2:dependencies}' + ]); +})(); diff --git a/a1/assets/emacs-angular-snippets/js2-mode/angular.service.snip b/a1/assets/emacs-angular-snippets/js2-mode/angular.service.snip new file mode 100644 index 00000000..c121d682 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js2-mode/angular.service.snip @@ -0,0 +1,23 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ngservice +# key: ngservice +# binding: direct-keybinding +# -- + +(function() { + 'use strict'; + + angular + .module('${1:module}') + .service('${2:Service}', $2); + + /* @ngInject */ + function $2(${3:dependencies}) { + this.${4:func} = $4; + + //////////////// + + function $4() { + } + } +})(); diff --git a/a1/assets/emacs-angular-snippets/js3-mode/.yas-parents b/a1/assets/emacs-angular-snippets/js3-mode/.yas-parents new file mode 100644 index 00000000..8ed60a53 --- /dev/null +++ b/a1/assets/emacs-angular-snippets/js3-mode/.yas-parents @@ -0,0 +1 @@ +js2-mode