latest WIP
This commit is contained in:
@@ -32,7 +32,8 @@
|
|||||||
<dependency id="diffmerge" version="3.3.2"/>
|
<dependency id="diffmerge" version="3.3.2"/>
|
||||||
<!-- <dependency id="git.difftool.diffmerge"/> Error: "External packages cannot depend on packages that target projects." -->
|
<!-- <dependency id="git.difftool.diffmerge"/> Error: "External packages cannot depend on packages that target projects." -->
|
||||||
<dependency id="EthanBrown.GitConfiguration" version="0.0.3"/>
|
<dependency id="EthanBrown.GitConfiguration" version="0.0.3"/>
|
||||||
<dependency id="ConEmu" version="12.4.17.1"/> <!-- latest version is alpha -->
|
<dependency id="DevBox-ConEmu" version="0.0.0.20130422"/>
|
||||||
|
<dependency id="EthanBrown.ConEmuConfig" version="0.0.3"/>
|
||||||
<dependency id="PhantomJS" version="1.9.0"/>
|
<dependency id="PhantomJS" version="1.9.0"/>
|
||||||
<dependency id="FireFox" version="20.0.1"/>
|
<dependency id="FireFox" version="20.0.1"/>
|
||||||
<dependency id="GoogleChrome.Canary" version="28.0.1461.0"/>
|
<dependency id="GoogleChrome.Canary" version="28.0.1461.0"/>
|
||||||
|
|||||||
+233
-233
@@ -251,59 +251,59 @@ All HTML based directives are keyed off the `ng`,`TAB` binding.
|
|||||||
| [select][select] | `ng`,`TAB` | HTML Element |
|
| [select][select] | `ng`,`TAB` | HTML Element |
|
||||||
| [textarea][textarea] | `ng`,`TAB` | HTML Element |
|
| [textarea][textarea] | `ng`,`TAB` | HTML Element |
|
||||||
|
|
||||||
[form]: http://docs.angularjs.org/api/ng.directive:form
|
[form]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:form
|
||||||
[input]: http://docs.angularjs.org/api/ng.directive:input
|
[input]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input
|
||||||
[input-check]: http://docs.angularjs.org/api/ng.directive:input.checkbox
|
[input-check]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input.checkbox
|
||||||
[input-email]: http://docs.angularjs.org/api/ng.directive:input.email
|
[input-email]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input.email
|
||||||
[input-number]: http://docs.angularjs.org/api/ng.directive:input.number
|
[input-number]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input.number
|
||||||
[input-radio]: http://docs.angularjs.org/api/ng.directive:input.radio
|
[input-radio]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input.radio
|
||||||
[input-text]: http://docs.angularjs.org/api/ng.directive:input.text
|
[input-text]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input.text
|
||||||
[input-url]: http://docs.angularjs.org/api/ng.directive:input.url
|
[input-url]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:input.url
|
||||||
[ngApp]: http://docs.angularjs.org/api/ng.directive:ngApp
|
[ngApp]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngApp
|
||||||
[ngBind]: http://docs.angularjs.org/api/ng.directive:ngBind
|
[ngBind]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngBind
|
||||||
[ngBindHtml]: http://docs.angularjs.org/api/ngSanitize.directive:ngBindHtml
|
[ngBindHtml]: http://code.angularjs.org/1.1.4/docs/api/ngSanitize.directive:ngBindHtml
|
||||||
[ngBindHtmlUnsafe]: http://docs.angularjs.org/api/ng.directive:ngBindHtmlUnsafe
|
[ngBindHtmlUnsafe]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngBindHtmlUnsafe
|
||||||
[ngBindTemplate]: http://docs.angularjs.org/api/ng.directive:ngBindTemplate
|
[ngBindTemplate]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngBindTemplate
|
||||||
[ngChange]: http://docs.angularjs.org/api/ng.directive:ngChange
|
[ngChange]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngChange
|
||||||
[ngChecked]: http://docs.angularjs.org/api/ng.directive:ngChecked
|
[ngChecked]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngChecked
|
||||||
[ngClass]: http://docs.angularjs.org/api/ng.directive:ngClass
|
[ngClass]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngClass
|
||||||
[ngClassEven]: http://docs.angularjs.org/api/ng.directive:ngClassEven
|
[ngClassEven]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngClassEven
|
||||||
[ngClassOdd]: http://docs.angularjs.org/api/ng.directive:ngClassOdd
|
[ngClassOdd]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngClassOdd
|
||||||
[ngClick]: http://docs.angularjs.org/api/ng.directive:ngClick
|
[ngClick]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngClick
|
||||||
[ngCloak]: http://docs.angularjs.org/api/ng.directive:ngCloak
|
[ngCloak]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngCloak
|
||||||
[ngController]: http://docs.angularjs.org/api/ng.directive:ngController
|
[ngController]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngController
|
||||||
[ngCsp]: http://docs.angularjs.org/api/ng.directive:ngCsp
|
[ngCsp]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngCsp
|
||||||
[ngDblClick]: http://docs.angularjs.org/api/ng.directive:ngDblClick
|
[ngDblClick]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngDblClick
|
||||||
[ngDisabled]: http://docs.angularjs.org/api/ng.directive:ngDisabled
|
[ngDisabled]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngDisabled
|
||||||
[ngForm]: http://docs.angularjs.org/api/ng.directive:ngForm
|
[ngForm]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngForm
|
||||||
[ngHide]: http://docs.angularjs.org/api/ng.directive:ngHide
|
[ngHide]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngHide
|
||||||
[ngHref]: http://docs.angularjs.org/api/ng.directive:ngHref
|
[ngHref]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngHref
|
||||||
[ngInclude]: http://docs.angularjs.org/api/ng.directive:ngInclude
|
[ngInclude]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngInclude
|
||||||
[ngInit]: http://docs.angularjs.org/api/ng.directive:ngInit
|
[ngInit]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngInit
|
||||||
[ngList]: http://docs.angularjs.org/api/ng.directive:ngList
|
[ngList]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngList
|
||||||
[ngModel]: http://docs.angularjs.org/api/ng.directive:ngModel
|
[ngModel]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel
|
||||||
[ngMousedown]: http://docs.angularjs.org/api/ng.directive:ngMousedown
|
[ngMousedown]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMousedown
|
||||||
[ngMouseenter]: http://docs.angularjs.org/api/ng.directive:ngMouseenter
|
[ngMouseenter]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMouseenter
|
||||||
[ngMouseleave]: http://docs.angularjs.org/api/ng.directive:ngMouseleave
|
[ngMouseleave]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMouseleave
|
||||||
[ngMousemove]: http://docs.angularjs.org/api/ng.directive:ngMousemove
|
[ngMousemove]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMousemove
|
||||||
[ngMouseover]: http://docs.angularjs.org/api/ng.directive:ngMouseover
|
[ngMouseover]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMouseover
|
||||||
[ngMouseup]: http://docs.angularjs.org/api/ng.directive:ngMouseup
|
[ngMouseup]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMouseup
|
||||||
[ngMultiple]: http://docs.angularjs.org/api/ng.directive:ngMultiple
|
[ngMultiple]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngMultiple
|
||||||
[ngNonBindable]: http://docs.angularjs.org/api/ng.directive:ngNonBindable
|
[ngNonBindable]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngNonBindable
|
||||||
[ngPluralize]: http://docs.angularjs.org/api/ng.directive:ngPluralize
|
[ngPluralize]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngPluralize
|
||||||
[ngReadonly]: http://docs.angularjs.org/api/ng.directive:ngReadonly
|
[ngReadonly]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngReadonly
|
||||||
[ngRepeat]: http://docs.angularjs.org/api/ng.directive:ngRepeat
|
[ngRepeat]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngRepeat
|
||||||
[ngSelected]: http://docs.angularjs.org/api/ng.directive:ngSelected
|
[ngSelected]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngSelected
|
||||||
[ngShow]: http://docs.angularjs.org/api/ng.directive:ngShow
|
[ngShow]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngShow
|
||||||
[ngSrc]: http://docs.angularjs.org/api/ng.directive:ngSrc
|
[ngSrc]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngSrc
|
||||||
[ngStyle]: http://docs.angularjs.org/api/ng.directive:ngStyle
|
[ngStyle]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngStyle
|
||||||
[ngSubmit]: http://docs.angularjs.org/api/ng.directive:ngSubmit
|
[ngSubmit]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngSubmit
|
||||||
[ngSwitch]: http://docs.angularjs.org/api/ng.directive:ngSwitch
|
[ngSwitch]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngSwitch
|
||||||
[ngTransclude]: http://docs.angularjs.org/api/ng.directive:ngTransclude
|
[ngTransclude]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngTransclude
|
||||||
[ngView]: http://docs.angularjs.org/api/ng.directive:ngView
|
[ngView]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngView
|
||||||
[script]: http://docs.angularjs.org/api/ng.directive:script
|
[script]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:script
|
||||||
[select]: http://docs.angularjs.org/api/ng.directive:select
|
[select]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:select
|
||||||
[textarea]: http://docs.angularjs.org/api/ng.directive:textarea
|
[textarea]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:textarea
|
||||||
|
|
||||||
### Module
|
### Module
|
||||||
|
|
||||||
@@ -321,18 +321,18 @@ All HTML based directives are keyed off the `ng`,`TAB` binding.
|
|||||||
| [service][m.service] | `mod`,`TAB` | CoffeeScript |
|
| [service][m.service] | `mod`,`TAB` | CoffeeScript |
|
||||||
| [value][m.value] | `mod`,`TAB` | CoffeeScript |
|
| [value][m.value] | `mod`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[module]: http://docs.angularjs.org/api/angular.Module
|
[module]: http://code.angularjs.org/1.1.4/docs/api/angular.Module
|
||||||
[m.config]: http://docs.angularjs.org/api/angular.Module#config
|
[m.config]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#config
|
||||||
[m.constant]: http://docs.angularjs.org/api/angular.Module#constant
|
[m.constant]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#constant
|
||||||
[m.controller]: http://docs.angularjs.org/api/angular.Module#controller
|
[m.controller]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#controller
|
||||||
[m.directive]: http://docs.angularjs.org/api/angular.Module#directive
|
[m.directive]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#directive
|
||||||
[dir-complete]: http://docs.angularjs.org/guide/directive
|
[dir-complete]: http://docs.angularjs.org/guide/directive
|
||||||
[m.factory]: http://docs.angularjs.org/api/angular.Module#factory
|
[m.factory]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#factory
|
||||||
[m.filter]: http://docs.angularjs.org/api/angular.Module#filter
|
[m.filter]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#filter
|
||||||
[m.provider]: http://docs.angularjs.org/api/angular.Module#provider
|
[m.provider]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#provider
|
||||||
[m.run]: http://docs.angularjs.org/api/angular.Module#run
|
[m.run]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#run
|
||||||
[m.service]: http://docs.angularjs.org/api/angular.Module#service
|
[m.service]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#service
|
||||||
[m.value]: http://docs.angularjs.org/api/angular.Module#value
|
[m.value]: http://code.angularjs.org/1.1.4/docs/api/angular.Module#value
|
||||||
|
|
||||||
### Scope
|
### Scope
|
||||||
|
|
||||||
@@ -351,19 +351,19 @@ All HTML based directives are keyed off the `ng`,`TAB` binding.
|
|||||||
| [$on][$s.$on] | `.$`,`TAB` | CoffeeScript |
|
| [$on][$s.$on] | `.$`,`TAB` | CoffeeScript |
|
||||||
| [$watch][$s.$watch] | `.$`,`TAB` | CoffeeScript |
|
| [$watch][$s.$watch] | `.$`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$rootScope]: http://docs.angularjs.org/api/ng.$rootScope
|
[$rootScope]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope
|
||||||
[Scope]: http://docs.angularjs.org/api/ng.$rootScope.Scope
|
[Scope]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope
|
||||||
[$s.$apply]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$apply
|
[$s.$apply]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$apply
|
||||||
[$s.$broadcast]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$broadcast
|
[$s.$broadcast]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$broadcast
|
||||||
[$s.$destroy]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy
|
[$s.$destroy]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$destroy
|
||||||
[$s.$digest]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$digest
|
[$s.$digest]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$digest
|
||||||
[$s.$emit]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$emit
|
[$s.$emit]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$emit
|
||||||
[$s.$eval]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$eval
|
[$s.$eval]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$eval
|
||||||
[$s.$evalAsync]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$evalAsync
|
[$s.$evalAsync]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$evalAsync
|
||||||
[$s.$id]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$id
|
[$s.$id]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$id
|
||||||
[$s.$new]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$new
|
[$s.$new]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$new
|
||||||
[$s.$on]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$on
|
[$s.$on]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$on
|
||||||
[$s.$watch]: http://docs.angularjs.org/api/ng.$rootScope.Scope#$watch
|
[$s.$watch]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootScope.Scope#$watch
|
||||||
|
|
||||||
### Controller
|
### Controller
|
||||||
|
|
||||||
@@ -384,20 +384,20 @@ Covers both [FormController][FormController] and [NgModelController][NgModelCont
|
|||||||
| [$valid][c.$valid] | `.$`,`TAB` | CoffeeScript |
|
| [$valid][c.$valid] | `.$`,`TAB` | CoffeeScript |
|
||||||
| [$invalid][c.$invalid] | `.$`,`TAB` | CoffeeScript |
|
| [$invalid][c.$invalid] | `.$`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[FormController]: http://docs.angularjs.org/api/ng.directive:form.FormController
|
[FormController]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:form.FormController
|
||||||
[NgModelController]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController
|
[NgModelController]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController
|
||||||
[c.$render]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$render
|
[c.$render]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$render
|
||||||
[c.$setValidity]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$setValidity
|
[c.$setValidity]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$setValidity
|
||||||
[c.$setViewValue]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$setViewValue
|
[c.$setViewValue]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$setViewValue
|
||||||
[c.$viewValue]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$viewValue
|
[c.$viewValue]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$viewValue
|
||||||
[c.$modelValue]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$modelValue
|
[c.$modelValue]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$modelValue
|
||||||
[c.$parsers]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$parsers
|
[c.$parsers]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$parsers
|
||||||
[c.$formatters]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$formatters
|
[c.$formatters]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$formatters
|
||||||
[c.$error]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$error
|
[c.$error]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$error
|
||||||
[c.$pristine]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$pristine
|
[c.$pristine]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$pristine
|
||||||
[c.$dirty]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$dirty
|
[c.$dirty]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$dirty
|
||||||
[c.$valid]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$valid
|
[c.$valid]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$valid
|
||||||
[c.$invalid]: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController#$invalid
|
[c.$invalid]: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngModel.NgModelController#$invalid
|
||||||
|
|
||||||
### Resource
|
### Resource
|
||||||
|
|
||||||
@@ -410,8 +410,8 @@ Covers both [FormController][FormController] and [NgModelController][NgModelCont
|
|||||||
| [$remove][$r.$methods] | `.$`,`TAB` | CoffeeScript |
|
| [$remove][$r.$methods] | `.$`,`TAB` | CoffeeScript |
|
||||||
| [$save][$r.$methods] | `.$`,`TAB` | CoffeeScript |
|
| [$save][$r.$methods] | `.$`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$resource]: http://docs.angularjs.org/api/ngResource.$resource
|
[$resource]: http://code.angularjs.org/1.1.4/docs/api/ngResource.$resource
|
||||||
[$r.$methods]: http://docs.angularjs.org/api/ngResource.$resource#Returns
|
[$r.$methods]: http://code.angularjs.org/1.1.4/docs/api/ngResource.$resource#Returns
|
||||||
|
|
||||||
### Filter
|
### Filter
|
||||||
|
|
||||||
@@ -439,17 +439,17 @@ Covers both [FormController][FormController] and [NgModelController][NgModelCont
|
|||||||
| [uppercase][uppercase] | `$filter`,`TAB` | CoffeeScript |
|
| [uppercase][uppercase] | `$filter`,`TAB` | CoffeeScript |
|
||||||
| [uppercase][uppercase] | `fil`,`TAB` | HTML |
|
| [uppercase][uppercase] | `fil`,`TAB` | HTML |
|
||||||
|
|
||||||
[$filter]: http://docs.angularjs.org/api/ng.$filter
|
[$filter]: http://code.angularjs.org/1.1.4/docs/api/ng.$filter
|
||||||
[currency]: http://docs.angularjs.org/api/ng.filter:currency
|
[currency]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:currency
|
||||||
[date]: http://docs.angularjs.org/api/ng.filter:date
|
[date]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:date
|
||||||
[filter]: http://docs.angularjs.org/api/ng.filter:filter
|
[filter]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:filter
|
||||||
[json]: http://docs.angularjs.org/api/ng.filter:json
|
[json]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:json
|
||||||
[limitTo]: http://docs.angularjs.org/api/ng.filter:limitTo
|
[limitTo]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:limitTo
|
||||||
[linky]: http://docs.angularjs.org/api/ngSanitize.filter:linky
|
[linky]: http://code.angularjs.org/1.1.4/docs/api/ngSanitize.filter:linky
|
||||||
[lowercase]: http://docs.angularjs.org/api/ng.filter:lowercase
|
[lowercase]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:lowercase
|
||||||
[number]: http://docs.angularjs.org/api/ng.filter:number
|
[number]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:number
|
||||||
[orderBy]: http://docs.angularjs.org/api/ng.filter:orderBy
|
[orderBy]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:orderBy
|
||||||
[uppercase]: http://docs.angularjs.org/api/ng.filter:uppercase
|
[uppercase]: http://code.angularjs.org/1.1.4/docs/api/ng.filter:uppercase
|
||||||
|
|
||||||
### Global API
|
### Global API
|
||||||
|
|
||||||
@@ -481,31 +481,31 @@ Covers both [FormController][FormController] and [NgModelController][NgModelCont
|
|||||||
| [angular.uppercase][angular.uppercase] | `ng`,`TAB` | CoffeeScript |
|
| [angular.uppercase][angular.uppercase] | `ng`,`TAB` | CoffeeScript |
|
||||||
| [angular.version][angular.version] | `ng`,`TAB` | CoffeeScript |
|
| [angular.version][angular.version] | `ng`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[angular.bind]: http://docs.angularjs.org/api/angular.bind
|
[angular.bind]: http://code.angularjs.org/1.1.4/docs/api/angular.bind
|
||||||
[angular.bootstrap]: http://docs.angularjs.org/api/angular.bootstrap
|
[angular.bootstrap]: http://code.angularjs.org/1.1.4/docs/api/angular.bootstrap
|
||||||
[angular.copy]: http://docs.angularjs.org/api/angular.copy
|
[angular.copy]: http://code.angularjs.org/1.1.4/docs/api/angular.copy
|
||||||
[angular.element]: http://docs.angularjs.org/api/angular.element
|
[angular.element]: http://code.angularjs.org/1.1.4/docs/api/angular.element
|
||||||
[angular.equals]: http://docs.angularjs.org/api/angular.equals
|
[angular.equals]: http://code.angularjs.org/1.1.4/docs/api/angular.equals
|
||||||
[angular.extend]: http://docs.angularjs.org/api/angular.extend
|
[angular.extend]: http://code.angularjs.org/1.1.4/docs/api/angular.extend
|
||||||
[angular.forEach]: http://docs.angularjs.org/api/angular.forEach
|
[angular.forEach]: http://code.angularjs.org/1.1.4/docs/api/angular.forEach
|
||||||
[angular.fromJson]: http://docs.angularjs.org/api/angular.fromJson
|
[angular.fromJson]: http://code.angularjs.org/1.1.4/docs/api/angular.fromJson
|
||||||
[angular.identity]: http://docs.angularjs.org/api/angular.identity
|
[angular.identity]: http://code.angularjs.org/1.1.4/docs/api/angular.identity
|
||||||
[angular.injector]: http://docs.angularjs.org/api/angular.injector
|
[angular.injector]: http://code.angularjs.org/1.1.4/docs/api/angular.injector
|
||||||
[angular.isArray]: http://docs.angularjs.org/api/angular.isArray
|
[angular.isArray]: http://code.angularjs.org/1.1.4/docs/api/angular.isArray
|
||||||
[angular.isDate]: http://docs.angularjs.org/api/angular.isDate
|
[angular.isDate]: http://code.angularjs.org/1.1.4/docs/api/angular.isDate
|
||||||
[angular.isDefined]: http://docs.angularjs.org/api/angular.isDefined
|
[angular.isDefined]: http://code.angularjs.org/1.1.4/docs/api/angular.isDefined
|
||||||
[angular.isElement]: http://docs.angularjs.org/api/angular.isElement
|
[angular.isElement]: http://code.angularjs.org/1.1.4/docs/api/angular.isElement
|
||||||
[angular.isFunction]: http://docs.angularjs.org/api/angular.isFunction
|
[angular.isFunction]: http://code.angularjs.org/1.1.4/docs/api/angular.isFunction
|
||||||
[angular.isNumber]: http://docs.angularjs.org/api/angular.isNumber
|
[angular.isNumber]: http://code.angularjs.org/1.1.4/docs/api/angular.isNumber
|
||||||
[angular.isObject]: http://docs.angularjs.org/api/angular.isObject
|
[angular.isObject]: http://code.angularjs.org/1.1.4/docs/api/angular.isObject
|
||||||
[angular.isString]: http://docs.angularjs.org/api/angular.isString
|
[angular.isString]: http://code.angularjs.org/1.1.4/docs/api/angular.isString
|
||||||
[angular.isUndefined]: http://docs.angularjs.org/api/angular.isUndefined
|
[angular.isUndefined]: http://code.angularjs.org/1.1.4/docs/api/angular.isUndefined
|
||||||
[angular.lowercase]: http://docs.angularjs.org/api/angular.lowercase
|
[angular.lowercase]: http://code.angularjs.org/1.1.4/docs/api/angular.lowercase
|
||||||
[angular.module]: http://docs.angularjs.org/api/angular.module
|
[angular.module]: http://code.angularjs.org/1.1.4/docs/api/angular.module
|
||||||
[angular.noop]: http://docs.angularjs.org/api/angular.noop
|
[angular.noop]: http://code.angularjs.org/1.1.4/docs/api/angular.noop
|
||||||
[angular.toJson]: http://docs.angularjs.org/api/angular.toJson
|
[angular.toJson]: http://code.angularjs.org/1.1.4/docs/api/angular.toJson
|
||||||
[angular.uppercase]: http://docs.angularjs.org/api/angular.uppercase
|
[angular.uppercase]: http://code.angularjs.org/1.1.4/docs/api/angular.uppercase
|
||||||
[angular.version]: http://docs.angularjs.org/api/angular.version
|
[angular.version]: http://code.angularjs.org/1.1.4/docs/api/angular.version
|
||||||
|
|
||||||
### Http
|
### Http
|
||||||
|
|
||||||
@@ -524,17 +524,17 @@ Covers both [FormController][FormController] and [NgModelController][NgModelCont
|
|||||||
| [.error][$http.Returns] | `.error`,`TAB` | CoffeeScript |
|
| [.error][$http.Returns] | `.error`,`TAB` | CoffeeScript |
|
||||||
| [.success][$http.Returns] | `.success`,`TAB` | CoffeeScript |
|
| [.success][$http.Returns] | `.success`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$http]: http://docs.angularjs.org/api/ng.$http
|
[$http]: http://code.angularjs.org/1.1.4/docs/api/ng.$http
|
||||||
[$http.usage]: http://docs.angularjs.org/api/ng.$http#Usage
|
[$http.usage]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#Usage
|
||||||
[$http.delete]: http://docs.angularjs.org/api/ng.$http#delete
|
[$http.delete]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#delete
|
||||||
[$http.get]: http://docs.angularjs.org/api/ng.$http#get
|
[$http.get]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#get
|
||||||
[$http.head]: http://docs.angularjs.org/api/ng.$http#head
|
[$http.head]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#head
|
||||||
[$http.jsonp]: http://docs.angularjs.org/api/ng.$http#jsonp
|
[$http.jsonp]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#jsonp
|
||||||
[$http.post]: http://docs.angularjs.org/api/ng.$http#post
|
[$http.post]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#post
|
||||||
[$http.put]: http://docs.angularjs.org/api/ng.$http#put
|
[$http.put]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#put
|
||||||
[$http.defaults]: http://docs.angularjs.org/api/ng.$http#defaults
|
[$http.defaults]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#defaults
|
||||||
[$http.pendingRequests]: http://docs.angularjs.org/api/ng.$http#defaults
|
[$http.pendingRequests]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#defaults
|
||||||
[$http.Returns]: http://docs.angularjs.org/api/ng.$http#Returns
|
[$http.Returns]: http://code.angularjs.org/1.1.4/docs/api/ng.$http#Returns
|
||||||
|
|
||||||
### HttpBackend
|
### HttpBackend
|
||||||
|
|
||||||
@@ -565,27 +565,27 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [whenPOST][$h.whenPOST] | `.when`,`TAB` | CoffeeScript |
|
| [whenPOST][$h.whenPOST] | `.when`,`TAB` | CoffeeScript |
|
||||||
| [whenPUT][$h.whenPUT] | `.when`,`TAB` | CoffeeScript |
|
| [whenPUT][$h.whenPUT] | `.when`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$httpBackend]: http://docs.angularjs.org/api/ngMock.$httpBackend
|
[$httpBackend]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend
|
||||||
[$h.expect]: http://docs.angularjs.org/api/ngMock.$httpBackend#expect
|
[$h.expect]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expect
|
||||||
[$h.expectDELETE]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectDELETE
|
[$h.expectDELETE]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectDELETE
|
||||||
[$h.expectGET]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectGET
|
[$h.expectGET]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectGET
|
||||||
[$h.expectHEAD]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectHEAD
|
[$h.expectHEAD]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectHEAD
|
||||||
[$h.expectJSONP]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectJSONP
|
[$h.expectJSONP]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectJSONP
|
||||||
[$h.expectPATCH]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectPATCH
|
[$h.expectPATCH]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectPATCH
|
||||||
[$h.expectPOST]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectPOST
|
[$h.expectPOST]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectPOST
|
||||||
[$h.expectPUT]: http://docs.angularjs.org/api/ngMock.$httpBackend#expectPUT
|
[$h.expectPUT]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#expectPUT
|
||||||
[$h.flush]: http://docs.angularjs.org/api/ngMock.$httpBackend#flush
|
[$h.flush]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#flush
|
||||||
[$h.reset]: http://docs.angularjs.org/api/ngMock.$httpBackend#resetExpectations
|
[$h.reset]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#resetExpectations
|
||||||
[$h.verifyEx]: http://docs.angularjs.org/api/ngMock.$httpBackend#verifyNoOutstandingExceptions
|
[$h.verifyEx]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#verifyNoOutstandingExceptions
|
||||||
[$h.verifyReqs]: http://docs.angularjs.org/api/ngMock.$httpBackend#verifyNoOutstandingRequests
|
[$h.verifyReqs]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#verifyNoOutstandingRequests
|
||||||
[$h.when]: http://docs.angularjs.org/api/ngMock.$httpBackend#when
|
[$h.when]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#when
|
||||||
[$h.whenDELETE]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenDELETE
|
[$h.whenDELETE]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenDELETE
|
||||||
[$h.whenGET]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenGET
|
[$h.whenGET]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenGET
|
||||||
[$h.whenHEAD]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenHEAD
|
[$h.whenHEAD]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenHEAD
|
||||||
[$h.whenJSONP]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenJSONP
|
[$h.whenJSONP]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenJSONP
|
||||||
[$h.whenPATCH]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenPATCH
|
[$h.whenPATCH]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenPATCH
|
||||||
[$h.whenPOST]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenPOST
|
[$h.whenPOST]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenPOST
|
||||||
[$h.whenPUT]: http://docs.angularjs.org/api/ngMock.$httpBackend#whenPUT
|
[$h.whenPUT]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$httpBackend#whenPUT
|
||||||
|
|
||||||
### Q
|
### Q
|
||||||
|
|
||||||
@@ -597,11 +597,11 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [reject][$q.reject] | `$q.`,`TAB` | CoffeeScript |
|
| [reject][$q.reject] | `$q.`,`TAB` | CoffeeScript |
|
||||||
| [when][$q.when] | `$q.`,`TAB` | CoffeeScript |
|
| [when][$q.when] | `$q.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$q]: http://docs.angularjs.org/api/ng.$q
|
[$q]: http://code.angularjs.org/1.1.4/docs/api/ng.$q
|
||||||
[$q.all]: http://docs.angularjs.org/api/ng.$q#all
|
[$q.all]: http://code.angularjs.org/1.1.4/docs/api/ng.$q#all
|
||||||
[$q.defer]: http://docs.angularjs.org/api/ng.$q#defer
|
[$q.defer]: http://code.angularjs.org/1.1.4/docs/api/ng.$q#defer
|
||||||
[$q.reject]: http://docs.angularjs.org/api/ng.$q#reject
|
[$q.reject]: http://code.angularjs.org/1.1.4/docs/api/ng.$q#reject
|
||||||
[$q.when]: http://docs.angularjs.org/api/ng.$q#when
|
[$q.when]: http://code.angularjs.org/1.1.4/docs/api/ng.$q#when
|
||||||
|
|
||||||
### Route
|
### Route
|
||||||
|
|
||||||
@@ -620,18 +620,18 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [when][$rp.when] | `$routeprovider.`,`TAB` | CoffeeScript |
|
| [when][$rp.when] | `$routeprovider.`,`TAB` | CoffeeScript |
|
||||||
| [otherwise][$rp.other] | `.other`,`TAB` | CoffeeScript |
|
| [otherwise][$rp.other] | `.other`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$route]: http://docs.angularjs.org/api/ng.$route
|
[$route]: http://code.angularjs.org/1.1.4/docs/api/ng.$route
|
||||||
[$route.current]: http://docs.angularjs.org/api/ng.$route#current
|
[$route.current]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#current
|
||||||
[$route.reload]: http://docs.angularjs.org/api/ng.$route#reload
|
[$route.reload]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#reload
|
||||||
[$route.routes]: http://docs.angularjs.org/api/ng.$route#routes
|
[$route.routes]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#routes
|
||||||
[$route.$rce]: http://docs.angularjs.org/api/ng.$route#$routeChangeError
|
[$route.$rce]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#$routeChangeError
|
||||||
[$route.$rcst]: http://docs.angularjs.org/api/ng.$route#$routeChangeStart
|
[$route.$rcst]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#$routeChangeStart
|
||||||
[$route.$rcs]: http://docs.angularjs.org/api/ng.$route#$routeChangeSuccess
|
[$route.$rcs]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#$routeChangeSuccess
|
||||||
[$route.$ru]: http://docs.angularjs.org/api/ng.$route#$routeUpdate
|
[$route.$ru]: http://code.angularjs.org/1.1.4/docs/api/ng.$route#$routeUpdate
|
||||||
[$routeParams]: http://docs.angularjs.org/api/ng.$routeParams
|
[$routeParams]: http://code.angularjs.org/1.1.4/docs/api/ng.$routeParams
|
||||||
[$routeProvider]: http://docs.angularjs.org/api/ng.$routeProvider
|
[$routeProvider]: http://code.angularjs.org/1.1.4/docs/api/ng.$routeProvider
|
||||||
[$rp.when]: http://docs.angularjs.org/api/ng.$routeProvider#when
|
[$rp.when]: http://code.angularjs.org/1.1.4/docs/api/ng.$routeProvider#when
|
||||||
[$rp.other]: http://docs.angularjs.org/api/ng.$routeProvider#otherwise
|
[$rp.other]: http://code.angularjs.org/1.1.4/docs/api/ng.$routeProvider#otherwise
|
||||||
|
|
||||||
### Cookie
|
### Cookie
|
||||||
|
|
||||||
@@ -643,11 +643,11 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [put][$c.put] | `$cookiestore.`,`TAB` | CoffeeScript |
|
| [put][$c.put] | `$cookiestore.`,`TAB` | CoffeeScript |
|
||||||
| [remove][$c.remove] | `$cookiestore.`,`TAB` | CoffeeScript |
|
| [remove][$c.remove] | `$cookiestore.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$cookies]: http://docs.angularjs.org/api/ngCookies.$cookies
|
[$cookies]: http://code.angularjs.org/1.1.4/docs/api/ngCookies.$cookies
|
||||||
[$cookieStore]: http://docs.angularjs.org/api/ngCookies.$cookieStore
|
[$cookieStore]: http://code.angularjs.org/1.1.4/docs/api/ngCookies.$cookieStore
|
||||||
[$c.get]: http://docs.angularjs.org/api/ngCookies.$cookieStore#get
|
[$c.get]: http://code.angularjs.org/1.1.4/docs/api/ngCookies.$cookieStore#get
|
||||||
[$c.put]: http://docs.angularjs.org/api/ngCookies.$cookieStore#put
|
[$c.put]: http://code.angularjs.org/1.1.4/docs/api/ngCookies.$cookieStore#put
|
||||||
[$c.remove]: http://docs.angularjs.org/api/ngCookies.$cookieStore#remove
|
[$c.remove]: http://code.angularjs.org/1.1.4/docs/api/ngCookies.$cookieStore#remove
|
||||||
|
|
||||||
### Location
|
### Location
|
||||||
|
|
||||||
@@ -664,16 +664,16 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [search][$l.search] (get & set) | `$location.`,`TAB` | CoffeeScript |
|
| [search][$l.search] (get & set) | `$location.`,`TAB` | CoffeeScript |
|
||||||
| [url][$l.url] (get & set) | `$location.`,`TAB` | CoffeeScript |
|
| [url][$l.url] (get & set) | `$location.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$location]: http://docs.angularjs.org/api/ng.$location
|
[$location]: http://code.angularjs.org/1.1.4/docs/api/ng.$location
|
||||||
[$l.absUrl]: http://docs.angularjs.org/api/ng.$location#absUrl
|
[$l.absUrl]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#absUrl
|
||||||
[$l.hash]: http://docs.angularjs.org/api/ng.$location#hash
|
[$l.hash]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#hash
|
||||||
[$l.host]: http://docs.angularjs.org/api/ng.$location#host
|
[$l.host]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#host
|
||||||
[$l.path]: http://docs.angularjs.org/api/ng.$location#path
|
[$l.path]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#path
|
||||||
[$l.port]: http://docs.angularjs.org/api/ng.$location#port
|
[$l.port]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#port
|
||||||
[$l.protocol]: http://docs.angularjs.org/api/ng.$location#protocol
|
[$l.protocol]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#protocol
|
||||||
[$l.replace]: http://docs.angularjs.org/api/ng.$location#replace
|
[$l.replace]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#replace
|
||||||
[$l.search]: http://docs.angularjs.org/api/ng.$location#search
|
[$l.search]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#search
|
||||||
[$l.url]: http://docs.angularjs.org/api/ng.$location#url
|
[$l.url]: http://code.angularjs.org/1.1.4/docs/api/ng.$location#url
|
||||||
|
|
||||||
### Log
|
### Log
|
||||||
|
|
||||||
@@ -685,11 +685,11 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [log][$log.log] | `$log.`,`TAB` | CoffeeScript |
|
| [log][$log.log] | `$log.`,`TAB` | CoffeeScript |
|
||||||
| [warn][$log.warn] | `$log.`,`TAB` | CoffeeScript |
|
| [warn][$log.warn] | `$log.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$log]: http://docs.angularjs.org/api/ng.$log
|
[$log]: http://code.angularjs.org/1.1.4/docs/api/ng.$log
|
||||||
[$log.error]: http://docs.angularjs.org/api/ng.$log#error
|
[$log.error]: http://code.angularjs.org/1.1.4/docs/api/ng.$log#error
|
||||||
[$log.info]: http://docs.angularjs.org/api/ng.$log#info
|
[$log.info]: http://code.angularjs.org/1.1.4/docs/api/ng.$log#info
|
||||||
[$log.log]: http://docs.angularjs.org/api/ng.$log#log
|
[$log.log]: http://code.angularjs.org/1.1.4/docs/api/ng.$log#log
|
||||||
[$log.warn]: http://docs.angularjs.org/api/ng.$log#warn
|
[$log.warn]: http://code.angularjs.org/1.1.4/docs/api/ng.$log#warn
|
||||||
|
|
||||||
### Mock
|
### Mock
|
||||||
|
|
||||||
@@ -704,14 +704,14 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [$log.logs][$log.logs] | `$log.`,`TAB` | CoffeeScript |
|
| [$log.logs][$log.logs] | `$log.`,`TAB` | CoffeeScript |
|
||||||
| [$timeout.flush][$timeout.flush] | `$timeout.`,`TAB` | CoffeeScript |
|
| [$timeout.flush][$timeout.flush] | `$timeout.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[mock.debug]: http://docs.angularjs.org/api/angular.mock.debug
|
[mock.debug]: http://code.angularjs.org/1.1.4/docs/api/angular.mock.debug
|
||||||
[mock.inject]: http://docs.angularjs.org/api/angular.mock.inject
|
[mock.inject]: http://code.angularjs.org/1.1.4/docs/api/angular.mock.inject
|
||||||
[mock.module]: http://docs.angularjs.org/api/angular.mock.module
|
[mock.module]: http://code.angularjs.org/1.1.4/docs/api/angular.mock.module
|
||||||
[mock.TzDate]: http://docs.angularjs.org/api/angular.mock.debug
|
[mock.TzDate]: http://code.angularjs.org/1.1.4/docs/api/angular.mock.debug
|
||||||
[$log.assertEmpty]: http://docs.angularjs.org/api/ngMock.$log#assertEmpty
|
[$log.assertEmpty]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$log#assertEmpty
|
||||||
[$log.reset]: http://docs.angularjs.org/api/ngMock.$log#reset
|
[$log.reset]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$log#reset
|
||||||
[$log.logs]: http://docs.angularjs.org/api/ngMock.$log#logs
|
[$log.logs]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$log#logs
|
||||||
[$timeout.flush]: http://docs.angularjs.org/api/ngMock.$timeout#flush
|
[$timeout.flush]: http://code.angularjs.org/1.1.4/docs/api/ngMock.$timeout#flush
|
||||||
|
|
||||||
### Injector
|
### Injector
|
||||||
|
|
||||||
@@ -723,11 +723,11 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [instantiate][$i.instantiate] | `$injector.`,`TAB` | CoffeeScript |
|
| [instantiate][$i.instantiate] | `$injector.`,`TAB` | CoffeeScript |
|
||||||
| [invoke][$i.invoke] | `$injector.`,`TAB` | CoffeeScript |
|
| [invoke][$i.invoke] | `$injector.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$injector]: http://docs.angularjs.org/api/AUTO.$injector
|
[$injector]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$injector
|
||||||
[$i.annotate]: http://docs.angularjs.org/api/AUTO.$injector#annotate
|
[$i.annotate]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$injector#annotate
|
||||||
[$i.get]: http://docs.angularjs.org/api/AUTO.$injector#get
|
[$i.get]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$injector#get
|
||||||
[$i.instantiate]: http://docs.angularjs.org/api/AUTO.$injector#instantiate
|
[$i.instantiate]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$injector#instantiate
|
||||||
[$i.invoke]: http://docs.angularjs.org/api/AUTO.$injector#invoke
|
[$i.invoke]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$injector#invoke
|
||||||
|
|
||||||
### Interpolate
|
### Interpolate
|
||||||
|
|
||||||
@@ -737,9 +737,9 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [endSymbol][$in.endSymbol] | `$interpolate.`,`TAB` | CoffeeScript |
|
| [endSymbol][$in.endSymbol] | `$interpolate.`,`TAB` | CoffeeScript |
|
||||||
| [startsymbol][$in.startsymbol] | `$interpolate.`,`TAB` | CoffeeScript |
|
| [startsymbol][$in.startsymbol] | `$interpolate.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$interpolate]: http://docs.angularjs.org/api/ng.$interpolate
|
[$interpolate]: http://code.angularjs.org/1.1.4/docs/api/ng.$interpolate
|
||||||
[$in.endSymbol]: http://docs.angularjs.org/api/ng.$interpolate#endSymbol
|
[$in.endSymbol]: http://code.angularjs.org/1.1.4/docs/api/ng.$interpolate#endSymbol
|
||||||
[$in.startSymbol]: http://docs.angularjs.org/api/ng.$interpolate#startSymbol
|
[$in.startSymbol]: http://code.angularjs.org/1.1.4/docs/api/ng.$interpolate#startSymbol
|
||||||
|
|
||||||
### Provide
|
### Provide
|
||||||
|
|
||||||
@@ -753,13 +753,13 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [service][$p.service] | `$provide.`,`TAB` | CoffeeScript |
|
| [service][$p.service] | `$provide.`,`TAB` | CoffeeScript |
|
||||||
| [value][$p.value] | `$provide.`,`TAB` | CoffeeScript |
|
| [value][$p.value] | `$provide.`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$provide]: http://docs.angularjs.org/api/AUTO.$provide
|
[$provide]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide
|
||||||
[$p.constant]: http://docs.angularjs.org/api/AUTO.$provide#constant
|
[$p.constant]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide#constant
|
||||||
[$p.decorator]: http://docs.angularjs.org/api/AUTO.$provide#decorator
|
[$p.decorator]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide#decorator
|
||||||
[$p.factory]: http://docs.angularjs.org/api/AUTO.$provide#factory
|
[$p.factory]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide#factory
|
||||||
[$p.provider]: http://docs.angularjs.org/api/AUTO.$provide#provider
|
[$p.provider]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide#provider
|
||||||
[$p.service]: http://docs.angularjs.org/api/AUTO.$provide#service
|
[$p.service]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide#service
|
||||||
[$p.value]: http://docs.angularjs.org/api/AUTO.$provide#value
|
[$p.value]: http://code.angularjs.org/1.1.4/docs/api/AUTO.$provide#value
|
||||||
|
|
||||||
### Other Services
|
### Other Services
|
||||||
|
|
||||||
@@ -778,18 +778,18 @@ Note that `.expect` and `.when` are designed to chain, so we don't bind to
|
|||||||
| [$timeout][$timeout] | `$`,`TAB` | CoffeeScript |
|
| [$timeout][$timeout] | `$`,`TAB` | CoffeeScript |
|
||||||
| [$window][$window] | `$`,`TAB` | CoffeeScript |
|
| [$window][$window] | `$`,`TAB` | CoffeeScript |
|
||||||
|
|
||||||
[$anchorScroll]: http://docs.angularjs.org/api/ng.$anchorScroll
|
[$anchorScroll]: http://code.angularjs.org/1.1.4/docs/api/ng.$anchorScroll
|
||||||
[$cacheFactory]: http://docs.angularjs.org/api/ng.$cacheFactory
|
[$cacheFactory]: http://code.angularjs.org/1.1.4/docs/api/ng.$cacheFactory
|
||||||
[$compile]: http://docs.angularjs.org/api/ng.$compile
|
[$compile]: http://code.angularjs.org/1.1.4/docs/api/ng.$compile
|
||||||
[$controller]: http://docs.angularjs.org/api/ng.$controller
|
[$controller]: http://code.angularjs.org/1.1.4/docs/api/ng.$controller
|
||||||
[$document]: http://docs.angularjs.org/api/ng.$document
|
[$document]: http://code.angularjs.org/1.1.4/docs/api/ng.$document
|
||||||
[$exceptionHandler]: http://docs.angularjs.org/api/ng.$exceptionHandler
|
[$exceptionHandler]: http://code.angularjs.org/1.1.4/docs/api/ng.$exceptionHandler
|
||||||
[$locale]: http://docs.angularjs.org/api/ng.$locale
|
[$locale]: http://code.angularjs.org/1.1.4/docs/api/ng.$locale
|
||||||
[$parse]: http://docs.angularjs.org/api/ng.$parse
|
[$parse]: http://code.angularjs.org/1.1.4/docs/api/ng.$parse
|
||||||
[$rootElement]: http://docs.angularjs.org/api/ng.$rootElement
|
[$rootElement]: http://code.angularjs.org/1.1.4/docs/api/ng.$rootElement
|
||||||
[$templateCache]: http://docs.angularjs.org/api/ng.$templateCache
|
[$templateCache]: http://code.angularjs.org/1.1.4/docs/api/ng.$templateCache
|
||||||
[$timeout]: http://docs.angularjs.org/api/ng.$timeout
|
[$timeout]: http://code.angularjs.org/1.1.4/docs/api/ng.$timeout
|
||||||
[$window]: http://docs.angularjs.org/api/ng.$window
|
[$window]: http://code.angularjs.org/1.1.4/docs/api/ng.$window
|
||||||
|
|
||||||
## Future Improvements
|
## Future Improvements
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 52 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
*.pyc
|
||||||
|
.DS_Store
|
||||||
|
Antiki.sublime-settings
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[
|
||||||
|
{"keys": ["super+enter"], "command": "antiki"}
|
||||||
|
]
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[
|
||||||
|
{"caption" : "Antiki at Cursor", "command" : "antiki"}
|
||||||
|
]
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[
|
||||||
|
{"keys": ["ctrl+enter"], "command": "antiki"}
|
||||||
|
]
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
Antiki -- a Xiki Clone for Sublime Text 2
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
Antiki implements a tiny subset of [Xiki][0] for [Sublime Text 2][2]. It is intended to be more portable and predictable than sophisticated combination of Xiki and @lunixboch's [SublimeXiki][1], while implementing the essential feature of executing shell commands and replacing them with output.
|
||||||
|
|
||||||
|
Antiki considers any line starting with `$` after zero or more tabs or spaces to be a possible command for execution. Placing your cursor on a command and pressing either "Command+Enter" or "Control-Enter" will cause Antiki to pass the command to your shell prompt, execute it, and replace a number of subquent lines with the output. Antiki will replace any lines with more indent than the command's indent, which effectively allows you to repeately run a command by returning your cursor to the original position and hitting "Command+Enter" again.
|
||||||
|
|
||||||
|
This makes Antiki a great tool for writing documentation, examples and working through demos.
|
||||||
|
|
||||||
|
## Example 1:
|
||||||
|
|
||||||
|
$ redis-cli info | head
|
||||||
|
redis_version:2.4.17
|
||||||
|
redis_git_sha1:00000000
|
||||||
|
redis_git_dirty:0
|
||||||
|
arch_bits:64
|
||||||
|
multiplexing_api:kqueue
|
||||||
|
gcc_version:4.2.1
|
||||||
|
process_id:7818
|
||||||
|
run_id:ac64457c11931712a94ef36a9547e624893755d1
|
||||||
|
uptime_in_seconds:51
|
||||||
|
uptime_in_days:0
|
||||||
|
|
||||||
|
## Features:
|
||||||
|
|
||||||
|
Antiki's insistence on being stupid and simple is its greatest advantage compared to similar implementations, making it portable, maintainable and understandable.
|
||||||
|
|
||||||
|
- Can execute shell commands in any buffer, not just Xiki buffers.
|
||||||
|
- Does not require anything beyond Sublime Text itself, works out of the box in Windows and OSX.
|
||||||
|
- Is much more predictable than [Xiki][0] or [SublimeXiki][1], since it does not try to outsmart Sublime Text.
|
||||||
|
- Passes all commands through shell, ensuring features like piping to [JQ][3] or `grep` are easily available.
|
||||||
|
|
||||||
|
## Limitations:
|
||||||
|
|
||||||
|
Antiki does not provide [Xiki][0] menus or use Xiki helpers. It also does not support continuously updating output, and will hang until a command exits or ten seconds have passed -- for these features, the much more powerful [SublimeXiki][1] is recommended.
|
||||||
|
|
||||||
|
## Contributors:
|
||||||
|
|
||||||
|
- @efi -- bug report and fix for windows output decoding
|
||||||
|
|
||||||
|
[0]: http://xiki.org
|
||||||
|
[1]: https://github.com/lunixbochs/SublimeXiki
|
||||||
|
[2]: http://www.sublimetext.com
|
||||||
|
[3]: http://stedolan.github.com/jq/
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{ "name": "Antiki",
|
||||||
|
"scopeName": "source.antiki",
|
||||||
|
"fileTypes": ["anti"],
|
||||||
|
"patterns": [{"name" : "keyword", "match": "^[ \t]*[$](.*)$"},
|
||||||
|
{"name" : "markup.quote", "match" : "^[ \t]* ([^$].*)"},
|
||||||
|
{"name" : "markup.heading", "match" : "^[ \t]*(#.*)$" }],
|
||||||
|
"uuid": "b92bb294-089b-43ea-b5da-45b5dcc9340a"
|
||||||
|
}
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
import sublime, sublime_plugin, re, subprocess, time, os, os.path
|
||||||
|
|
||||||
|
class AntikiCommand(sublime_plugin.TextCommand):
|
||||||
|
def run(self, edit):
|
||||||
|
antiki(self.view, edit)
|
||||||
|
|
||||||
|
def antiki(view, edit):
|
||||||
|
if view.is_read_only(): return
|
||||||
|
|
||||||
|
base = view.file_name()
|
||||||
|
if base is not None: base = os.path.dirname(base)
|
||||||
|
cfg = sublime.load_settings("Antiki.sublime-settings")
|
||||||
|
env = build_env(cfg, base=base)
|
||||||
|
cwd = expand(cfg.get('cwd', '.'), env)
|
||||||
|
enc = cfg.get('encoding', 'utf-8')
|
||||||
|
|
||||||
|
sels = view.sel()
|
||||||
|
end = None
|
||||||
|
|
||||||
|
for sel in sels:
|
||||||
|
# ensure that there is at least one following line.
|
||||||
|
if sel.end() == view.size():
|
||||||
|
view.insert(edit, view.size(), '\n')
|
||||||
|
|
||||||
|
row, _ = view.rowcol(sel.b)
|
||||||
|
head, op, cmd = resolve_head(view, row)
|
||||||
|
if cmd is None: continue
|
||||||
|
indent = head + ' ' * len(op)
|
||||||
|
end = resolve_body(view, row+1, indent)
|
||||||
|
|
||||||
|
out = head + op + cmd + '\n'
|
||||||
|
out = out + '\n'.join(
|
||||||
|
indent + line.decode(enc, 'ignore').rstrip() for line in perform_cmd(env, cwd, cmd)
|
||||||
|
) + '\n'
|
||||||
|
|
||||||
|
end = replace_lines(view, edit, row, end-row, out)
|
||||||
|
|
||||||
|
if end is None: return # don't play with the selection..
|
||||||
|
end = view.line(end.b)
|
||||||
|
view.sel().clear()
|
||||||
|
eol = end.end()
|
||||||
|
if end.empty():
|
||||||
|
view.insert(edit, eol, head)
|
||||||
|
eol += len(head)
|
||||||
|
view.sel().add(sublime.Region(eol,eol))
|
||||||
|
|
||||||
|
def build_env(cfg, base=None):
|
||||||
|
env = os.environ.copy()
|
||||||
|
env['BASE'] = str(base or env.get("HOME") or '.')
|
||||||
|
mod = cfg.get('env', {})
|
||||||
|
for key in mod:
|
||||||
|
env[key] = str(expand(mod[key], env))
|
||||||
|
return env
|
||||||
|
|
||||||
|
''' example:
|
||||||
|
$ echo $BASE
|
||||||
|
/Users/scott/Library/Application Support/Sublime Text 2/Packages/Antiki
|
||||||
|
'''
|
||||||
|
|
||||||
|
def expand(val, env):
|
||||||
|
return val.format(**env)
|
||||||
|
|
||||||
|
def perform_cmd(env, cwd, cmd):
|
||||||
|
args = cmd
|
||||||
|
pipe = subprocess.Popen(
|
||||||
|
args, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, shell=True, env=env, cwd=cwd
|
||||||
|
)
|
||||||
|
ticks = 0
|
||||||
|
while ticks < 1000:
|
||||||
|
ticks += 1
|
||||||
|
time.sleep(.01)
|
||||||
|
if pipe.poll() is not None:
|
||||||
|
return pipe.stdout.readlines()
|
||||||
|
pipe.kill()
|
||||||
|
return pipe.stdout.readlines()
|
||||||
|
|
||||||
|
def replace_lines(view, edit, dest_row, dest_ct, src):
|
||||||
|
dest = sublime.Region(
|
||||||
|
view.text_point(dest_row,0),
|
||||||
|
view.text_point(dest_row+dest_ct,0)
|
||||||
|
)
|
||||||
|
|
||||||
|
view.replace(edit, dest, src)
|
||||||
|
end = view.text_point(dest_row,0) + len(src)
|
||||||
|
return sublime.Region(end,end)
|
||||||
|
|
||||||
|
rx_antiki = re.compile('^([ \t]*)([$] +)(.*)$')
|
||||||
|
|
||||||
|
def resolve_head(view, row):
|
||||||
|
line = get_line(view, row)
|
||||||
|
m = rx_antiki.match(line)
|
||||||
|
if m: return m.groups()
|
||||||
|
return None, None, None
|
||||||
|
|
||||||
|
def resolve_body(view, row, indent):
|
||||||
|
while True:
|
||||||
|
line = get_line(view, row)
|
||||||
|
if not line: return row
|
||||||
|
if not line.startswith(indent): return row
|
||||||
|
row += 1
|
||||||
|
|
||||||
|
def get_line(view, row=0):
|
||||||
|
point = view.text_point(row, 0)
|
||||||
|
if row < 0: return None
|
||||||
|
line = view.line(point)
|
||||||
|
return view.substr(line).strip('\r\n')
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>fileTypes</key>
|
||||||
|
<array>
|
||||||
|
<string>anti</string>
|
||||||
|
</array>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Antiki</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>^[ ]*[$](.*)$</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>^[ ]* ([^$].*)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>markup.quote</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>^[ ]*(#.*)$</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>markup.heading</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>scopeName</key>
|
||||||
|
<string>source.antiki</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>b92bb294-089b-43ea-b5da-45b5dcc9340a</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"url": "https://github.com/swdunlop/antiki", "version": "2013.02.23.12.42.25", "description": "A Xiki Clone for Sublime Text 2"}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
*.pyc
|
||||||
|
*.cache
|
||||||
|
*.sublime-project
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
syntax: glob
|
||||||
|
|
||||||
|
dist/
|
||||||
|
|
||||||
|
*.hgignore
|
||||||
|
*.hgtags
|
||||||
|
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
*.cache
|
||||||
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
_.txt
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
Copyright (c) 2011 Guillermo López-Anglada
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[begin { $1
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>beg</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[catch ${1:[Exception]}{
|
||||||
|
$2
|
||||||
|
}$0]]></content>
|
||||||
|
<tabTrigger>catch</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[<#
|
||||||
|
$0
|
||||||
|
#>]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>comm</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
<!-- Optional: Description to show in the menu -->
|
||||||
|
<description>Comment block</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[elseif ($1) {
|
||||||
|
$2
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>elif</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[elseif ($1) { $2 }]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>elifi</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[else {
|
||||||
|
$1
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>else</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[else { $1 }]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>elsei</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[end { $1
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>end</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[filter ${1:filterName} {
|
||||||
|
$2
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>fil</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[finally {
|
||||||
|
$1
|
||||||
|
}$0]]></content>
|
||||||
|
<tabTrigger>fin</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[function ${1:funcName} {
|
||||||
|
$2
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>fun</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[@'
|
||||||
|
$1
|
||||||
|
'@]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>here</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[@"
|
||||||
|
$1
|
||||||
|
"@]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>hhere</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[if ($1) {
|
||||||
|
$2
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>if</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[if ($1) {
|
||||||
|
$2
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$3
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>ifelse</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[if ($1) { $2 }]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>ifi</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[${1:\$mydocs} = [environment]::GetFolderPath([environment+specialfolder]::MyDocuments)]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>mydocs</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[process { $1
|
||||||
|
}]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>proc</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[\$($1)]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>sub</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<!-- See http://www.sublimetext.com/docs/snippets for more information -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[\$tmpfile = [io.path]::GetTempFileName()
|
||||||
|
]]></content>
|
||||||
|
<!-- Optional: Tab trigger to activate the snippet -->
|
||||||
|
<tabTrigger>tmp</tabTrigger>
|
||||||
|
<!-- Optional: Scope the tab trigger will be active in -->
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[try {
|
||||||
|
$1
|
||||||
|
}$0]]></content>
|
||||||
|
<tabTrigger>try</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[@'
|
||||||
|
$0
|
||||||
|
'@]]></content>
|
||||||
|
<tabTrigger>hered</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[@"
|
||||||
|
$0
|
||||||
|
"@]]></content>
|
||||||
|
<tabTrigger>heredd</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[\$script:thisDir = split-path \$MyInvocation.MyCommand.Path -parent]]></content>
|
||||||
|
<tabTrigger>thisdir</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"scope": "source.powershell",
|
||||||
|
|
||||||
|
"completions": [
|
||||||
|
{ "trigger": "dict", "contents": "@{$1$0}" },
|
||||||
|
{ "trigger": "arr", "contents": "@($0)" },
|
||||||
|
{ "trigger": "req", "contents": "#requires -$0" },
|
||||||
|
{ "trigger": "reqp", "contents": "#requires -pssnapin $0" },
|
||||||
|
{ "trigger": "reqv", "contents": "#requires -version ${0:2}" },
|
||||||
|
{ "trigger": "void", "contents": "[void] ($1)$0" },
|
||||||
|
{ "trigger": "sb", "contents": "\\${$1}$0" },
|
||||||
|
{ "trigger": "wd", "contents": "write-debug -message \"$1\"$0" },
|
||||||
|
{ "trigger": "wh", "contents": "write-host \"$1\"" },
|
||||||
|
{ "trigger": "ww", "contents": "write-warning $0" },
|
||||||
|
{ "trigger": "param", "contents": "param(\\$${1:paramName})" }
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[set-psdebug ${1:-${2:Step}}$0]]></content>
|
||||||
|
<tabTrigger>sd</tabTrigger>
|
||||||
|
<scope>source.powershell</scope>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Comments</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.powershell</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>shellVariables</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_START</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string># </string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_START_2</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string><#</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_END_2</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string>#></string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_DISABLE_INDENT_2</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string>yes</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>06532840-4879-11df-9879-0800200c9a66</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"cmd": ["powershell.exe", "-noprofile", "-file", "$file"],
|
||||||
|
"selector": "source.powershell"
|
||||||
|
}
|
||||||
@@ -0,0 +1,392 @@
|
|||||||
|
{
|
||||||
|
"fileTypes": ["ps1", "psm1", "psd1"],
|
||||||
|
"name": "Powershell v2",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"begin": "<#",
|
||||||
|
"beginCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "punctuation.start.definition.comment.block.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": "#>",
|
||||||
|
"endCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "punctuation.end.definition.comment.block.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "comment.block.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "#commentEmbeddedDocs"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "(?<![\\\\-])#",
|
||||||
|
"end": "$",
|
||||||
|
"name": "comment.line.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "#commentEmbeddedDocs"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#variable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#scriptblock"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "(?<!(?<!`)\")\"",
|
||||||
|
"end": "\"(?!\")",
|
||||||
|
"name": "string.quoted.double.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "#variable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#doubleQuotedStringEscapes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#interpolation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "`\\s*$",
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "include": "#doubleQuotedStringEscapes",
|
||||||
|
"comment": "Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "(?<!')'",
|
||||||
|
"end": "'(?!')",
|
||||||
|
"name": "string.quoted.single.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"match": "''",
|
||||||
|
"name": "constant.character.escape.powershell"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "@\"$",
|
||||||
|
"end": "^\"@",
|
||||||
|
"name": "string.quoted.double.heredoc.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "#interpolation"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "@\\(",
|
||||||
|
"captures": {
|
||||||
|
"0": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": "\\)",
|
||||||
|
"name": "meta.group.array-expression.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "$self"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "\\$\\(",
|
||||||
|
"captures": {
|
||||||
|
"0": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"comment": "TODO: move to repo; make recursive.",
|
||||||
|
"end": "\\)",
|
||||||
|
"name": "meta.group.complex.subexpression.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "$self"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": "@'$",
|
||||||
|
"end": "^'@$",
|
||||||
|
"name": "string.quoted.double.heredoc.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#numericConstant"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "-([lg][te]|[ci]?(eq|ne))",
|
||||||
|
"name": "keyword.operator.logical.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#PSDefaults"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "(?i:[a-z][a-z0-9]+-[a-z][a-z0-9]+)",
|
||||||
|
"name": "support.function.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "\\b(?i:if|else|elseif|switch|while|default|try|finally|catch|for|do|until|break|continue|foreach|return|filter|in|trap|throw|param|begin|process|end|function|global|local|private|script|contained)\\b",
|
||||||
|
"name": "keyword.control.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "-(?i:(?:[ic]?eq|ne|[gl][te]|(?:not)?(?:like|match|contains)|replace)|is(?:not)?|as|and|or|band|bor|not|f)\\b",
|
||||||
|
"name": "keyword.operator.comparison.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "-(?i:and|or|not)|!",
|
||||||
|
"name": "keyword.operator.logical.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "-(?i:f|band|bor|-bnot)\\b",
|
||||||
|
"name": "keyword.operator.bitwise.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "-f\\b",
|
||||||
|
"name": "keyword.operator.string-format.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "[+%*/-]?=|[+/*%-]",
|
||||||
|
"name": "keyword.operator.assignment.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "2>&1|>>|>|<<|<|>|>\\||2>|2>>|1>>",
|
||||||
|
"name": "keyword.operator.redirection.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "\\|{2}|&{2}|;",
|
||||||
|
"name": "keyword.other.statement-separator.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "&|(?<!\\w)\\.(?= )|`|,|\\|",
|
||||||
|
"name": "keyword.operator.other.powershell"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"repository": {
|
||||||
|
"PSDefaults": {
|
||||||
|
"comment": "Default commandlets in Powershell v2",
|
||||||
|
"match": "Disconnect-(WSMan)|Exit-(PSSession)|Copy-(Item|ItemProperty)|Resolve-(Path)|Group-(Object)|Remove-(Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|Variable|WmiObject|WSManInstance)|Unregister-(Event|PSSessionConfiguration)|Tee-(Object)|Pop-(Location)|Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance|WSManInstance|WSManQuickConfig)|Format-(Custom|List|Table|Wide)|Invoke-(Command|Expression|History|Item|WmiMethod|WSManAction)|Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)|Update-(FormatData|List|TypeData)|Sort-(Object)|Measure-(Command|Object)|ForEach-(Object)|Connect-(WSMan)|Suspend-(Service)|ConvertFrom-(Csv|SecureString|StringData)|Where-(Object)|Rename-(Item|ItemProperty)|Convert-(Path)|Select-(Object|String|Xml)|Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)|Stop-(Computer|Job|Process|Service|Transcript)|New-(Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionOption|Service|TimeSpan|Variable|WebServiceProxy|WSManInstance|WSManSessionOption)|Resume-(Service)|Show-(EventLog)|Out-(Default|File|GridView|Host|Null|Printer|String)|Undo-(Transaction)|Trace-(Command)|Clear-(Content|EventLog|History|Item|ItemProperty|Variable)|Push-(Location)|Split-(Path)|Disable-(ComputerRestore|PSBreakpoint|PSSessionConfiguration|WSManCredSSP)|Reset-(ComputerMachinePassword)|Restore-(Computer)|ConvertTo-(Csv|Html|SecureString|Xml)|Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration|WSManCredSSP)|Join-(Path)|Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Compare-(Object)|Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|UICulture|Unique|Variable|WinEvent|WmiObject|WSManCredSSP|WSManInstance)|Receive-(Job)|Move-(Item|ItemProperty)|Add-(Computer|Content|History|Member|PSSnapin|Type)|Wait-(Event|Job|Process)|Send-(MailMessage)|Read-(Host)|Complete-(Transaction)|Checkpoint-(Computer)|Debug-(Process)|Use-(Transaction)|Restart-(Computer|Service)|Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)|Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|WSMan)|Start-(Job|Process|Service|Sleep|Transaction|Transcript)|Limit-(EventLog)|Enter-(PSSession)",
|
||||||
|
"name": "support.function.builtin.powershell"
|
||||||
|
},
|
||||||
|
"commentEmbeddedDocs": {
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "constant.string.documentation.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "keyword.operator.documentation.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?i:\\s*(\\.)(SYNOPSIS|DESCRIPTION|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|FUNCTIONALITY))",
|
||||||
|
"name": "comment.documentation.embedded.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "constant.string.documentation.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "keyword.operator.documentation.powershell"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"name": "keyword.operator.documentation.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?i:\\s*(\\.)(PARAMETER|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP)\\s+([a-z0-9-_]+))",
|
||||||
|
"name": "comment.documentation.embedded.powershell"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"doubleQuotedStringEscapes": {
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"match": "`[0abnfrvt\"'$`]",
|
||||||
|
"name": "constant.character.escape.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"match": "\"\"",
|
||||||
|
"name": "constant.character.escape.powershell"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"interpolatedStringContent": {
|
||||||
|
"begin": "\\(",
|
||||||
|
"beginCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contentName": "interpolated.simple.source.powershell",
|
||||||
|
"end": "\\)",
|
||||||
|
"endCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "$self"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#interpolation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#interpolatedStringContent"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"interpolation": {
|
||||||
|
"begin": "(\\$)\\(",
|
||||||
|
"beginCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contentName": "interpolated.complex.source.powershell",
|
||||||
|
"end": "\\)",
|
||||||
|
"endCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "$self"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#interpolation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#interpolatedStringContent"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"numericConstant": {
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "support.constant.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "keyword.operator.math.powershell"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"name": "support.constant.powershell"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?i:\\d+(E)(\\+|\\-)\\d+(d)?(mb|kb|gb)?)",
|
||||||
|
"name": "constant.numeric.scientific.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "support.constant.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?i:(0x)[a-f0-9]+(mb|kb|gb)?)",
|
||||||
|
"name": "constant.numeric.hexadecimal.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "support.constant.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "support.constant.powershell"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "\\d*(?<!\\.)(\\.)\\d+(d)?(mb|kb|gb)?",
|
||||||
|
"name": "constant.numeric.double.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "support.constant.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?<!\\w)\\d+(d)?(mb|kb|gb)?(?!\\w)",
|
||||||
|
"name": "constant.numeric.powershell"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"scriptblock": {
|
||||||
|
"begin": "\\{",
|
||||||
|
"end": "\\}",
|
||||||
|
"name": "meta.scriptblock.powershell",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "$self"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"variable": {
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "keyword.other.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "constant.numeric.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"comment": "Style var name as numeric constant so that they stand out.",
|
||||||
|
"match": "(\\$)(?i:(\\$|\\?|\\^|args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext|false|FormatEnumerationLimit|HOME|Host|input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|null|OutputEncoding|PID|PROFILE|ProgressPreference|PSBoundParameters|PSCulture|PSEmailServer|PSHOME|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|PWD|ReportErrorShowExceptionClass|ReportErrorShowInnerException|ReportErrorShowSource|ReportErrorShowStackTrace|ShellId|StackTrace|true|VerbosePreference|WarningPreference|WhatIfPreference))\\b",
|
||||||
|
"name": "support.variable.builtin.powershell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "keyword.other.variable.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "storage.modifier.scope.powershell"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"name": "variable.other.readwrite.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?i:(\\$)(?:(private|script|global):)?([a-z0-9_]+))"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"captures": {
|
||||||
|
"1": {
|
||||||
|
"name": "keyword.other.variable.powershell"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"name": "variable.other.readwrite.powershell"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"name": "storage.modifier.scope.powershell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": "(?i:(\\$)(\\{(?:(private|script|global):)?.+?\\}))"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scopeName": "source.powershell",
|
||||||
|
"uuid": "f8f5ffb0-503e-11df-9879-0800200c9a66"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"word_wrap": false,
|
||||||
|
"translate_tabs_to_spaces": true
|
||||||
|
}
|
||||||
@@ -0,0 +1,615 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>fileTypes</key>
|
||||||
|
<array>
|
||||||
|
<string>ps1</string>
|
||||||
|
<string>psm1</string>
|
||||||
|
<string>psd1</string>
|
||||||
|
</array>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Powershell v2</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string><#</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.start.definition.comment.block.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>#></string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.end.definition.comment.block.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.block.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#commentEmbeddedDocs</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(?<![\\-])#</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>$</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.line.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#commentEmbeddedDocs</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#scriptblock</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(?<!(?<!`)")"</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>"(?!")</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>string.quoted.double.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#doubleQuotedStringEscapes</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#interpolation</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>`\s*$</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>comment</key>
|
||||||
|
<string>Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)</string>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#doubleQuotedStringEscapes</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(?<!')'</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>'(?!')</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>string.quoted.single.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>''</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>@"$</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>^"@</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>string.quoted.double.heredoc.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#interpolation</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>@\(</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.group.array-expression.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>$self</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\$\(</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>comment</key>
|
||||||
|
<string>TODO: move to repo; make recursive.</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.group.complex.subexpression.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>$self</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>@'$</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>^'@$</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>string.quoted.double.heredoc.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#numericConstant</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>-([lg][te]|[ci]?(eq|ne))</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.logical.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#PSDefaults</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:[a-z][a-z0-9]+-[a-z][a-z0-9]+)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.function.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\b(?i:if|else|elseif|switch|while|default|try|finally|catch|for|do|until|break|continue|foreach|return|filter|in|trap|throw|param|begin|process|end|function|global|local|private|script|contained)\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.control.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>-(?i:(?:[ic]?eq|ne|[gl][te]|(?:not)?(?:like|match|contains)|replace)|is(?:not)?|as|and|or|band|bor|not|f)\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.comparison.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>-(?i:and|or|not)|!</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.logical.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>-(?i:f|band|bor|-bnot)\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.bitwise.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>-f\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.string-format.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>[+%*/-]?=|[+/*%-]</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.assignment.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>2>&1|>>|>|<<|<|>|>\||2>|2>>|1>></string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.redirection.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\|{2}|&{2}|;</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.statement-separator.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>&|(?<!\w)\.(?= )|`|,|\|</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>repository</key>
|
||||||
|
<dict>
|
||||||
|
<key>PSDefaults</key>
|
||||||
|
<dict>
|
||||||
|
<key>comment</key>
|
||||||
|
<string>Default commandlets in Powershell v2</string>
|
||||||
|
<key>match</key>
|
||||||
|
<string>Disconnect-(WSMan)|Exit-(PSSession)|Copy-(Item|ItemProperty)|Resolve-(Path)|Group-(Object)|Remove-(Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|Variable|WmiObject|WSManInstance)|Unregister-(Event|PSSessionConfiguration)|Tee-(Object)|Pop-(Location)|Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance|WSManInstance|WSManQuickConfig)|Format-(Custom|List|Table|Wide)|Invoke-(Command|Expression|History|Item|WmiMethod|WSManAction)|Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)|Update-(FormatData|List|TypeData)|Sort-(Object)|Measure-(Command|Object)|ForEach-(Object)|Connect-(WSMan)|Suspend-(Service)|ConvertFrom-(Csv|SecureString|StringData)|Where-(Object)|Rename-(Item|ItemProperty)|Convert-(Path)|Select-(Object|String|Xml)|Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)|Stop-(Computer|Job|Process|Service|Transcript)|New-(Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionOption|Service|TimeSpan|Variable|WebServiceProxy|WSManInstance|WSManSessionOption)|Resume-(Service)|Show-(EventLog)|Out-(Default|File|GridView|Host|Null|Printer|String)|Undo-(Transaction)|Trace-(Command)|Clear-(Content|EventLog|History|Item|ItemProperty|Variable)|Push-(Location)|Split-(Path)|Disable-(ComputerRestore|PSBreakpoint|PSSessionConfiguration|WSManCredSSP)|Reset-(ComputerMachinePassword)|Restore-(Computer)|ConvertTo-(Csv|Html|SecureString|Xml)|Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration|WSManCredSSP)|Join-(Path)|Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Compare-(Object)|Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|UICulture|Unique|Variable|WinEvent|WmiObject|WSManCredSSP|WSManInstance)|Receive-(Job)|Move-(Item|ItemProperty)|Add-(Computer|Content|History|Member|PSSnapin|Type)|Wait-(Event|Job|Process)|Send-(MailMessage)|Read-(Host)|Complete-(Transaction)|Checkpoint-(Computer)|Debug-(Process)|Use-(Transaction)|Restart-(Computer|Service)|Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)|Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|WSMan)|Start-(Job|Process|Service|Sleep|Transaction|Transcript)|Limit-(EventLog)|Enter-(PSSession)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.function.builtin.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>commentEmbeddedDocs</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.string.documentation.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.documentation.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:\s*(\.)(SYNOPSIS|DESCRIPTION|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|FUNCTIONALITY))</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.documentation.embedded.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.string.documentation.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.documentation.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.documentation.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:\s*(\.)(PARAMETER|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP)\s+([a-z0-9-_]+))</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.documentation.embedded.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>doubleQuotedStringEscapes</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>`[0abnfrvt"'$`]</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>""</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>interpolatedStringContent</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\(</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>contentName</key>
|
||||||
|
<string>interpolated.simple.source.powershell</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>$self</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#interpolation</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#interpolatedStringContent</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>interpolation</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(\$)\(</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>contentName</key>
|
||||||
|
<string>interpolated.complex.source.powershell</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>$self</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#interpolation</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#interpolatedStringContent</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>numericConstant</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.constant.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.math.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.constant.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>4</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:\d+(E)(\+|\-)\d+(d)?(mb|kb|gb)?)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.numeric.scientific.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.constant.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:(0x)[a-f0-9]+(mb|kb|gb)?)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.numeric.hexadecimal.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.constant.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.constant.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\d*(?<!\.)(\.)\d+(d)?(mb|kb|gb)?</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.numeric.double.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.constant.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?<!\w)\d+(d)?(mb|kb|gb)?(?!\w)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.numeric.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>scriptblock</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\{</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\}</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.scriptblock.powershell</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>$self</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>variable</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.numeric.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>comment</key>
|
||||||
|
<string>Style var name as numeric constant so that they stand out.</string>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(\$)(?i:(\$|\?|\^|args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext|false|FormatEnumerationLimit|HOME|Host|input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|null|OutputEncoding|PID|PROFILE|ProgressPreference|PSBoundParameters|PSCulture|PSEmailServer|PSHOME|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|PWD|ReportErrorShowExceptionClass|ReportErrorShowInnerException|ReportErrorShowSource|ReportErrorShowStackTrace|ShellId|StackTrace|true|VerbosePreference|WarningPreference|WhatIfPreference))\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.variable.builtin.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.variable.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>storage.modifier.scope.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>variable.other.readwrite.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:(\$)(?:(private|script|global):)?([a-z0-9_]+))</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.variable.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>variable.other.readwrite.powershell</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>storage.modifier.scope.powershell</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i:(\$)(\{(?:(private|script|global):)?.+?\}))</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>scopeName</key>
|
||||||
|
<string>source.powershell</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>f8f5ffb0-503e-11df-9879-0800200c9a66</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
include *.sublime-*
|
||||||
|
include *.tmLanguage
|
||||||
|
include *.tmPreferences
|
||||||
|
include LICENSE.txt
|
||||||
|
|
||||||
|
exclude *.sublime-project
|
||||||
|
exclude *.sublime-workspace
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"url": "https://github.com/SublimeText/PowerShell", "version": "2013.01.25.16.56.44", "description": "Support for the MS PowerShell 2 programming language."}
|
||||||
@@ -0,0 +1,591 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
PACKAGE_VERSION = "11.12.2011"
|
||||||
|
|
||||||
|
"""Commands to build and manage .sublime-package archives with distutils."""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os, string
|
||||||
|
from types import *
|
||||||
|
from glob import glob
|
||||||
|
from distutils import log, dir_util, dep_util, file_util, archive_util
|
||||||
|
from distutils.core import Command
|
||||||
|
from distutils.core import setup
|
||||||
|
from distutils.text_file import TextFile
|
||||||
|
from distutils.filelist import FileList
|
||||||
|
from distutils.errors import *
|
||||||
|
from distutils.spawn import spawn
|
||||||
|
from distutils.dir_util import mkpath
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def make_zipfile (base_name, base_dir, verbose=0, dry_run=0):
|
||||||
|
"""Create a zip file from all the files under 'base_dir'. The output
|
||||||
|
zip file will be named 'base_dir' + ".zip". Uses either the "zipfile"
|
||||||
|
Python module (if available) or the InfoZIP "zip" utility (if installed
|
||||||
|
and found on the default search path). If neither tool is available,
|
||||||
|
raises DistutilsExecError. Returns the name of the output zip file.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
import zipfile
|
||||||
|
except ImportError:
|
||||||
|
zipfile = None
|
||||||
|
|
||||||
|
zip_filename = base_name + ".sublime-package"
|
||||||
|
mkpath(os.path.dirname(zip_filename), dry_run=dry_run)
|
||||||
|
|
||||||
|
# If zipfile module is not available, try spawning an external
|
||||||
|
# 'zip' command.
|
||||||
|
if zipfile is None:
|
||||||
|
if verbose:
|
||||||
|
zipoptions = "-r"
|
||||||
|
else:
|
||||||
|
zipoptions = "-rq"
|
||||||
|
|
||||||
|
try:
|
||||||
|
spawn(["zip", zipoptions, zip_filename, base_dir],
|
||||||
|
dry_run=dry_run)
|
||||||
|
except DistutilsExecError:
|
||||||
|
# XXX really should distinguish between "couldn't find
|
||||||
|
# external 'zip' command" and "zip failed".
|
||||||
|
raise DistutilsExecError, \
|
||||||
|
("unable to create zip file '%s': "
|
||||||
|
"could neither import the 'zipfile' module nor "
|
||||||
|
"find a standalone zip utility") % zip_filename
|
||||||
|
|
||||||
|
else:
|
||||||
|
log.info("creating '%s' and adding '%s' to it",
|
||||||
|
zip_filename, base_dir)
|
||||||
|
|
||||||
|
if not dry_run:
|
||||||
|
z = zipfile.ZipFile(zip_filename, "w",
|
||||||
|
compression=zipfile.ZIP_DEFLATED)
|
||||||
|
|
||||||
|
for dirpath, dirnames, filenames in os.walk(base_dir):
|
||||||
|
for name in filenames:
|
||||||
|
path = os.path.normpath(os.path.join(dirpath, name))
|
||||||
|
arcname = path[len(base_dir):]
|
||||||
|
# if dirpath == base_dir:
|
||||||
|
# arcname = name
|
||||||
|
# else:
|
||||||
|
# arcname = path[len(base_dir):]
|
||||||
|
# print arcname
|
||||||
|
if os.path.isfile(path):
|
||||||
|
z.write(path, arcname)
|
||||||
|
log.info("adding '%s'" % path)
|
||||||
|
z.close()
|
||||||
|
|
||||||
|
return zip_filename
|
||||||
|
|
||||||
|
|
||||||
|
def show_formats ():
|
||||||
|
"""Print all possible values for the 'formats' option (used by
|
||||||
|
the "--help-formats" command-line option).
|
||||||
|
"""
|
||||||
|
from distutils.fancy_getopt import FancyGetopt
|
||||||
|
from distutils.archive_util import ARCHIVE_FORMATS
|
||||||
|
formats=[]
|
||||||
|
for format in ARCHIVE_FORMATS.keys():
|
||||||
|
formats.append(("formats=" + format, None,
|
||||||
|
ARCHIVE_FORMATS[format][2]))
|
||||||
|
formats.sort()
|
||||||
|
pretty_printer = FancyGetopt(formats)
|
||||||
|
pretty_printer.print_help(
|
||||||
|
"List of available source distribution formats:")
|
||||||
|
|
||||||
|
class spa (Command):
|
||||||
|
|
||||||
|
description = "create a source distribution (tarball, zip file, etc.)"
|
||||||
|
|
||||||
|
user_options = [
|
||||||
|
('template=', 't',
|
||||||
|
"name of manifest template file [default: MANIFEST.in]"),
|
||||||
|
('manifest=', 'm',
|
||||||
|
"name of manifest file [default: MANIFEST]"),
|
||||||
|
('use-defaults', None,
|
||||||
|
"include the default file set in the manifest "
|
||||||
|
"[default; disable with --no-defaults]"),
|
||||||
|
('no-defaults', None,
|
||||||
|
"don't include the default file set"),
|
||||||
|
('prune', None,
|
||||||
|
"specifically exclude files/directories that should not be "
|
||||||
|
"distributed (build tree, RCS/CVS dirs, etc.) "
|
||||||
|
"[default; disable with --no-prune]"),
|
||||||
|
('no-prune', None,
|
||||||
|
"don't automatically exclude anything"),
|
||||||
|
('manifest-only', 'o',
|
||||||
|
"just regenerate the manifest and then stop "
|
||||||
|
"(implies --force-manifest)"),
|
||||||
|
('force-manifest', 'f',
|
||||||
|
"forcibly regenerate the manifest and carry on as usual"),
|
||||||
|
('formats=', None,
|
||||||
|
"formats for source distribution (comma-separated list)"),
|
||||||
|
('keep-temp', 'k',
|
||||||
|
"keep the distribution tree around after creating " +
|
||||||
|
"archive file(s)"),
|
||||||
|
('dist-dir=', 'd',
|
||||||
|
"directory to put the source distribution archive(s) in "
|
||||||
|
"[default: dist]"),
|
||||||
|
]
|
||||||
|
|
||||||
|
boolean_options = ['use-defaults', 'prune',
|
||||||
|
'manifest-only', 'force-manifest',
|
||||||
|
'keep-temp']
|
||||||
|
|
||||||
|
help_options = [
|
||||||
|
('help-formats', None,
|
||||||
|
"list available distribution formats", show_formats),
|
||||||
|
]
|
||||||
|
|
||||||
|
negative_opt = {'no-defaults': 'use-defaults',
|
||||||
|
'no-prune': 'prune' }
|
||||||
|
|
||||||
|
default_format = { 'posix': 'gztar',
|
||||||
|
'nt': 'zip' }
|
||||||
|
|
||||||
|
def initialize_options (self):
|
||||||
|
# 'template' and 'manifest' are, respectively, the names of
|
||||||
|
# the manifest template and manifest file.
|
||||||
|
self.template = None
|
||||||
|
self.manifest = None
|
||||||
|
|
||||||
|
# 'use_defaults': if true, we will include the default file set
|
||||||
|
# in the manifest
|
||||||
|
self.use_defaults = 1
|
||||||
|
self.prune = 1
|
||||||
|
|
||||||
|
self.manifest_only = 0
|
||||||
|
self.force_manifest = 0
|
||||||
|
|
||||||
|
self.formats = None
|
||||||
|
self.keep_temp = 0
|
||||||
|
self.dist_dir = None
|
||||||
|
|
||||||
|
self.archive_files = None
|
||||||
|
|
||||||
|
|
||||||
|
def finalize_options (self):
|
||||||
|
if self.manifest is None:
|
||||||
|
self.manifest = "MANIFEST"
|
||||||
|
if self.template is None:
|
||||||
|
self.template = "MANIFEST.in"
|
||||||
|
|
||||||
|
self.ensure_string_list('formats')
|
||||||
|
if self.formats is None:
|
||||||
|
try:
|
||||||
|
self.formats = [self.default_format[os.name]]
|
||||||
|
except KeyError:
|
||||||
|
raise DistutilsPlatformError, \
|
||||||
|
"don't know how to create source distributions " + \
|
||||||
|
"on platform %s" % os.name
|
||||||
|
|
||||||
|
bad_format = archive_util.check_archive_formats(self.formats)
|
||||||
|
if bad_format:
|
||||||
|
raise DistutilsOptionError, \
|
||||||
|
"unknown archive format '%s'" % bad_format
|
||||||
|
|
||||||
|
if self.dist_dir is None:
|
||||||
|
self.dist_dir = "dist"
|
||||||
|
|
||||||
|
|
||||||
|
def run (self):
|
||||||
|
|
||||||
|
# 'filelist' contains the list of files that will make up the
|
||||||
|
# manifest
|
||||||
|
self.filelist = FileList()
|
||||||
|
|
||||||
|
# Ensure that all required meta-data is given; warn if not (but
|
||||||
|
# don't die, it's not *that* serious!)
|
||||||
|
self.check_metadata()
|
||||||
|
|
||||||
|
# Do whatever it takes to get the list of files to process
|
||||||
|
# (process the manifest template, read an existing manifest,
|
||||||
|
# whatever). File list is accumulated in 'self.filelist'.
|
||||||
|
self.get_file_list()
|
||||||
|
|
||||||
|
# If user just wanted us to regenerate the manifest, stop now.
|
||||||
|
if self.manifest_only:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Otherwise, go ahead and create the source distribution tarball,
|
||||||
|
# or zipfile, or whatever.
|
||||||
|
self.make_distribution()
|
||||||
|
|
||||||
|
|
||||||
|
def check_metadata (self):
|
||||||
|
"""Ensure that all required elements of meta-data (name, version,
|
||||||
|
URL, (author and author_email) or (maintainer and
|
||||||
|
maintainer_email)) are supplied by the Distribution object; warn if
|
||||||
|
any are missing.
|
||||||
|
"""
|
||||||
|
metadata = self.distribution.metadata
|
||||||
|
|
||||||
|
missing = []
|
||||||
|
for attr in ('name', 'version', 'url'):
|
||||||
|
if not (hasattr(metadata, attr) and getattr(metadata, attr)):
|
||||||
|
missing.append(attr)
|
||||||
|
|
||||||
|
if missing:
|
||||||
|
self.warn("missing required meta-data: " +
|
||||||
|
string.join(missing, ", "))
|
||||||
|
|
||||||
|
if metadata.author:
|
||||||
|
if not metadata.author_email:
|
||||||
|
self.warn("missing meta-data: if 'author' supplied, " +
|
||||||
|
"'author_email' must be supplied too")
|
||||||
|
elif metadata.maintainer:
|
||||||
|
if not metadata.maintainer_email:
|
||||||
|
self.warn("missing meta-data: if 'maintainer' supplied, " +
|
||||||
|
"'maintainer_email' must be supplied too")
|
||||||
|
else:
|
||||||
|
self.warn("missing meta-data: either (author and author_email) " +
|
||||||
|
"or (maintainer and maintainer_email) " +
|
||||||
|
"must be supplied")
|
||||||
|
|
||||||
|
# check_metadata ()
|
||||||
|
|
||||||
|
|
||||||
|
def get_file_list (self):
|
||||||
|
"""Figure out the list of files to include in the source
|
||||||
|
distribution, and put it in 'self.filelist'. This might involve
|
||||||
|
reading the manifest template (and writing the manifest), or just
|
||||||
|
reading the manifest, or just using the default file set -- it all
|
||||||
|
depends on the user's options and the state of the filesystem.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# If we have a manifest template, see if it's newer than the
|
||||||
|
# manifest; if so, we'll regenerate the manifest.
|
||||||
|
template_exists = os.path.isfile(self.template)
|
||||||
|
if template_exists:
|
||||||
|
template_newer = dep_util.newer(self.template, self.manifest)
|
||||||
|
|
||||||
|
# The contents of the manifest file almost certainly depend on the
|
||||||
|
# setup script as well as the manifest template -- so if the setup
|
||||||
|
# script is newer than the manifest, we'll regenerate the manifest
|
||||||
|
# from the template. (Well, not quite: if we already have a
|
||||||
|
# manifest, but there's no template -- which will happen if the
|
||||||
|
# developer elects to generate a manifest some other way -- then we
|
||||||
|
# can't regenerate the manifest, so we don't.)
|
||||||
|
self.debug_print("checking if %s newer than %s" %
|
||||||
|
(self.distribution.script_name, self.manifest))
|
||||||
|
setup_newer = dep_util.newer(self.distribution.script_name,
|
||||||
|
self.manifest)
|
||||||
|
|
||||||
|
# cases:
|
||||||
|
# 1) no manifest, template exists: generate manifest
|
||||||
|
# (covered by 2a: no manifest == template newer)
|
||||||
|
# 2) manifest & template exist:
|
||||||
|
# 2a) template or setup script newer than manifest:
|
||||||
|
# regenerate manifest
|
||||||
|
# 2b) manifest newer than both:
|
||||||
|
# do nothing (unless --force or --manifest-only)
|
||||||
|
# 3) manifest exists, no template:
|
||||||
|
# do nothing (unless --force or --manifest-only)
|
||||||
|
# 4) no manifest, no template: generate w/ warning ("defaults only")
|
||||||
|
|
||||||
|
manifest_outofdate = (template_exists and
|
||||||
|
(template_newer or setup_newer))
|
||||||
|
force_regen = self.force_manifest or self.manifest_only
|
||||||
|
manifest_exists = os.path.isfile(self.manifest)
|
||||||
|
neither_exists = (not template_exists and not manifest_exists)
|
||||||
|
|
||||||
|
# Regenerate the manifest if necessary (or if explicitly told to)
|
||||||
|
if manifest_outofdate or neither_exists or force_regen:
|
||||||
|
if not template_exists:
|
||||||
|
self.warn(("manifest template '%s' does not exist " +
|
||||||
|
"(using default file list)") %
|
||||||
|
self.template)
|
||||||
|
self.filelist.findall()
|
||||||
|
|
||||||
|
if self.use_defaults:
|
||||||
|
self.add_defaults()
|
||||||
|
if template_exists:
|
||||||
|
self.read_template()
|
||||||
|
if self.prune:
|
||||||
|
self.prune_file_list()
|
||||||
|
|
||||||
|
self.filelist.sort()
|
||||||
|
self.filelist.remove_duplicates()
|
||||||
|
self.write_manifest()
|
||||||
|
|
||||||
|
# Don't regenerate the manifest, just read it in.
|
||||||
|
else:
|
||||||
|
self.read_manifest()
|
||||||
|
|
||||||
|
# get_file_list ()
|
||||||
|
|
||||||
|
|
||||||
|
def add_defaults (self):
|
||||||
|
"""Add all the default files to self.filelist:
|
||||||
|
- README or README.txt
|
||||||
|
- setup.py
|
||||||
|
- test/test*.py
|
||||||
|
- all pure Python modules mentioned in setup script
|
||||||
|
- all C sources listed as part of extensions or C libraries
|
||||||
|
in the setup script (doesn't catch C headers!)
|
||||||
|
Warns if (README or README.txt) or setup.py are missing; everything
|
||||||
|
else is optional.
|
||||||
|
"""
|
||||||
|
|
||||||
|
standards = [('README', 'README.txt'), self.distribution.script_name]
|
||||||
|
for fn in standards:
|
||||||
|
# XXX
|
||||||
|
if fn == 'setup.py': continue # We don't want setup.py
|
||||||
|
if type(fn) is TupleType:
|
||||||
|
alts = fn
|
||||||
|
got_it = 0
|
||||||
|
for fn in alts:
|
||||||
|
if os.path.exists(fn):
|
||||||
|
got_it = 1
|
||||||
|
self.filelist.append(fn)
|
||||||
|
break
|
||||||
|
|
||||||
|
if not got_it:
|
||||||
|
self.warn("standard file not found: should have one of " +
|
||||||
|
string.join(alts, ', '))
|
||||||
|
else:
|
||||||
|
if os.path.exists(fn):
|
||||||
|
self.filelist.append(fn)
|
||||||
|
else:
|
||||||
|
self.warn("standard file '%s' not found" % fn)
|
||||||
|
|
||||||
|
optional = ['test/test*.py', 'setup.cfg']
|
||||||
|
for pattern in optional:
|
||||||
|
files = filter(os.path.isfile, glob(pattern))
|
||||||
|
if files:
|
||||||
|
self.filelist.extend(files)
|
||||||
|
|
||||||
|
if self.distribution.has_pure_modules():
|
||||||
|
build_py = self.get_finalized_command('build_py')
|
||||||
|
self.filelist.extend(build_py.get_source_files())
|
||||||
|
|
||||||
|
if self.distribution.has_ext_modules():
|
||||||
|
build_ext = self.get_finalized_command('build_ext')
|
||||||
|
self.filelist.extend(build_ext.get_source_files())
|
||||||
|
|
||||||
|
if self.distribution.has_c_libraries():
|
||||||
|
build_clib = self.get_finalized_command('build_clib')
|
||||||
|
self.filelist.extend(build_clib.get_source_files())
|
||||||
|
|
||||||
|
if self.distribution.has_scripts():
|
||||||
|
build_scripts = self.get_finalized_command('build_scripts')
|
||||||
|
self.filelist.extend(build_scripts.get_source_files())
|
||||||
|
|
||||||
|
# add_defaults ()
|
||||||
|
|
||||||
|
|
||||||
|
def read_template (self):
|
||||||
|
"""Read and parse manifest template file named by self.template.
|
||||||
|
|
||||||
|
(usually "MANIFEST.in") The parsing and processing is done by
|
||||||
|
'self.filelist', which updates itself accordingly.
|
||||||
|
"""
|
||||||
|
log.info("reading manifest template '%s'", self.template)
|
||||||
|
template = TextFile(self.template,
|
||||||
|
strip_comments=1,
|
||||||
|
skip_blanks=1,
|
||||||
|
join_lines=1,
|
||||||
|
lstrip_ws=1,
|
||||||
|
rstrip_ws=1,
|
||||||
|
collapse_join=1)
|
||||||
|
|
||||||
|
while 1:
|
||||||
|
line = template.readline()
|
||||||
|
if line is None: # end of file
|
||||||
|
break
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.filelist.process_template_line(line)
|
||||||
|
except DistutilsTemplateError, msg:
|
||||||
|
self.warn("%s, line %d: %s" % (template.filename,
|
||||||
|
template.current_line,
|
||||||
|
msg))
|
||||||
|
|
||||||
|
# read_template ()
|
||||||
|
|
||||||
|
|
||||||
|
def prune_file_list (self):
|
||||||
|
"""Prune off branches that might slip into the file list as created
|
||||||
|
by 'read_template()', but really don't belong there:
|
||||||
|
* the build tree (typically "build")
|
||||||
|
* the release tree itself (only an issue if we ran "spa"
|
||||||
|
previously with --keep-temp, or it aborted)
|
||||||
|
* any RCS, CVS, .svn, .hg, .git, .bzr, _darcs directories
|
||||||
|
"""
|
||||||
|
build = self.get_finalized_command('build')
|
||||||
|
base_dir = self.distribution.get_fullname()
|
||||||
|
base_dir = self.distribution.get_name()
|
||||||
|
|
||||||
|
self.filelist.exclude_pattern(None, prefix=build.build_base)
|
||||||
|
self.filelist.exclude_pattern(None, prefix=base_dir)
|
||||||
|
|
||||||
|
# pruning out vcs directories
|
||||||
|
# both separators are used under win32
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
seps = r'/|\\'
|
||||||
|
else:
|
||||||
|
seps = '/'
|
||||||
|
|
||||||
|
vcs_dirs = ['RCS', 'CVS', r'\.svn', r'\.hg', r'\.git', r'\.bzr',
|
||||||
|
'_darcs']
|
||||||
|
vcs_ptrn = r'(^|%s)(%s)(%s).*' % (seps, '|'.join(vcs_dirs), seps)
|
||||||
|
self.filelist.exclude_pattern(vcs_ptrn, is_regex=1)
|
||||||
|
|
||||||
|
def write_manifest (self):
|
||||||
|
"""Write the file list in 'self.filelist' (presumably as filled in
|
||||||
|
by 'add_defaults()' and 'read_template()') to the manifest file
|
||||||
|
named by 'self.manifest'.
|
||||||
|
"""
|
||||||
|
self.execute(file_util.write_file,
|
||||||
|
(self.manifest, self.filelist.files),
|
||||||
|
"writing manifest file '%s'" % self.manifest)
|
||||||
|
|
||||||
|
# write_manifest ()
|
||||||
|
|
||||||
|
|
||||||
|
def read_manifest (self):
|
||||||
|
"""Read the manifest file (named by 'self.manifest') and use it to
|
||||||
|
fill in 'self.filelist', the list of files to include in the source
|
||||||
|
distribution.
|
||||||
|
"""
|
||||||
|
log.info("reading manifest file '%s'", self.manifest)
|
||||||
|
manifest = open(self.manifest)
|
||||||
|
while 1:
|
||||||
|
line = manifest.readline()
|
||||||
|
if line == '': # end of file
|
||||||
|
break
|
||||||
|
if line[-1] == '\n':
|
||||||
|
line = line[0:-1]
|
||||||
|
self.filelist.append(line)
|
||||||
|
manifest.close()
|
||||||
|
|
||||||
|
# read_manifest ()
|
||||||
|
|
||||||
|
|
||||||
|
def make_release_tree (self, base_dir, files):
|
||||||
|
"""Create the directory tree that will become the source
|
||||||
|
distribution archive. All directories implied by the filenames in
|
||||||
|
'files' are created under 'base_dir', and then we hard link or copy
|
||||||
|
(if hard linking is unavailable) those files into place.
|
||||||
|
Essentially, this duplicates the developer's source tree, but in a
|
||||||
|
directory named after the distribution, containing only the files
|
||||||
|
to be distributed.
|
||||||
|
"""
|
||||||
|
# Create all the directories under 'base_dir' necessary to
|
||||||
|
# put 'files' there; the 'mkpath()' is just so we don't die
|
||||||
|
# if the manifest happens to be empty.
|
||||||
|
self.mkpath(base_dir)
|
||||||
|
dir_util.create_tree(base_dir, files, dry_run=self.dry_run)
|
||||||
|
|
||||||
|
# And walk over the list of files, either making a hard link (if
|
||||||
|
# os.link exists) to each one that doesn't already exist in its
|
||||||
|
# corresponding location under 'base_dir', or copying each file
|
||||||
|
# that's out-of-date in 'base_dir'. (Usually, all files will be
|
||||||
|
# out-of-date, because by default we blow away 'base_dir' when
|
||||||
|
# we're done making the distribution archives.)
|
||||||
|
|
||||||
|
if hasattr(os, 'link'): # can make hard links on this system
|
||||||
|
link = 'hard'
|
||||||
|
msg = "making hard links in %s..." % base_dir
|
||||||
|
else: # nope, have to copy
|
||||||
|
link = None
|
||||||
|
msg = "copying files to %s..." % base_dir
|
||||||
|
|
||||||
|
if not files:
|
||||||
|
log.warn("no files to distribute -- empty manifest?")
|
||||||
|
else:
|
||||||
|
log.info(msg)
|
||||||
|
for file in files:
|
||||||
|
if not os.path.isfile(file):
|
||||||
|
log.warn("'%s' not a regular file -- skipping" % file)
|
||||||
|
else:
|
||||||
|
dest = os.path.join(base_dir, file)
|
||||||
|
self.copy_file(file, dest, link=link)
|
||||||
|
|
||||||
|
self.distribution.metadata.write_pkg_info(base_dir)
|
||||||
|
|
||||||
|
# make_release_tree ()
|
||||||
|
|
||||||
|
def make_distribution (self):
|
||||||
|
"""Create the source distribution(s). First, we create the release
|
||||||
|
tree with 'make_release_tree()'; then, we create all required
|
||||||
|
archive files (according to 'self.formats') from the release tree.
|
||||||
|
Finally, we clean up by blowing away the release tree (unless
|
||||||
|
'self.keep_temp' is true). The list of archive files created is
|
||||||
|
stored so it can be retrieved later by 'get_archive_files()'.
|
||||||
|
"""
|
||||||
|
# Don't warn about missing meta-data here -- should be (and is!)
|
||||||
|
# done elsewhere.
|
||||||
|
base_dir = self.distribution.get_fullname()
|
||||||
|
base_dir = self.distribution.get_name()
|
||||||
|
# XXX
|
||||||
|
# base_dir = "TEST"
|
||||||
|
base_name = os.path.join(self.dist_dir, base_dir)
|
||||||
|
|
||||||
|
|
||||||
|
self.make_release_tree(base_dir, self.filelist.files)
|
||||||
|
archive_files = [] # remember names of files we create
|
||||||
|
# tar archive must be created last to avoid overwrite and remove
|
||||||
|
if 'tar' in self.formats:
|
||||||
|
self.formats.append(self.formats.pop(self.formats.index('tar')))
|
||||||
|
|
||||||
|
for fmt in self.formats:
|
||||||
|
# file = self.make_archive(base_name, fmt, base_dir=base_dir)
|
||||||
|
file = make_zipfile(base_name, base_dir=base_dir)
|
||||||
|
archive_files.append(file)
|
||||||
|
self.distribution.dist_files.append(('spa', '', file))
|
||||||
|
|
||||||
|
self.archive_files = archive_files
|
||||||
|
|
||||||
|
if not self.keep_temp:
|
||||||
|
dir_util.remove_tree(base_dir, dry_run=self.dry_run)
|
||||||
|
|
||||||
|
def get_archive_files (self):
|
||||||
|
"""Return the list of archive files created when the command
|
||||||
|
was run, or None if the command hasn't run yet.
|
||||||
|
"""
|
||||||
|
return self.archive_files
|
||||||
|
|
||||||
|
# class spa
|
||||||
|
|
||||||
|
|
||||||
|
class install(Command):
|
||||||
|
"""Does it make sense?"""
|
||||||
|
|
||||||
|
user_options = [('aa', 'a', 'aa')]
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
print NotImplementedError("Command not implemented yet.")
|
||||||
|
|
||||||
|
|
||||||
|
class test(Command):
|
||||||
|
"""Does it make sense?"""
|
||||||
|
|
||||||
|
user_options = [('aa', 'a', 'aa')]
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
if os.name == 'nt':
|
||||||
|
subprocess.call(["py.test.exe"])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
setup(cmdclass={'spa': spa, 'install': install, 'test': test},
|
||||||
|
name='PowerShell',
|
||||||
|
version=PACKAGE_VERSION,
|
||||||
|
description='PowerShell support for Sublime Text.',
|
||||||
|
author='Guillermo López',
|
||||||
|
author_email='guilan70@hotmail.com',
|
||||||
|
url='sublimetext.info',
|
||||||
|
)
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>beforeRunningCommand</key>
|
||||||
|
<string>saveActiveFile</string>
|
||||||
|
<key>command</key>
|
||||||
|
<string>#!/usr/bin/env ruby
|
||||||
|
require ENV['TM_SUPPORT_PATH'] + '/lib/textmate'
|
||||||
|
puts "<p>Running syntax check&hellip;</p>\n"
|
||||||
|
result = `puppet parser validate --color=false --confdir=/tmp/puppet --vardir=/tmp/puppet $TM_FILEPATH`
|
||||||
|
puts "<pre>"
|
||||||
|
puts result
|
||||||
|
puts "</pre>"
|
||||||
|
puts "<p>Check complete.</p>\n"
|
||||||
|
TextMate.go_to :line => $1 if result =~ /:(\d+)$/</string>
|
||||||
|
<key>input</key>
|
||||||
|
<string>none</string>
|
||||||
|
<key>keyEquivalent</key>
|
||||||
|
<string>^V</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Validate Syntax (puppetparse)</string>
|
||||||
|
<key>output</key>
|
||||||
|
<string>showAsHTML</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>1DBD7B78-91F3-4528-9AC9-B71D9E5FE445</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Comments</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>shellVariables</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_START</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string># </string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_START_2</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string>/*</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>TM_COMMENT_END_2</string>
|
||||||
|
<key>value</key>
|
||||||
|
<string>*/</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>BAB15109-162D-4E1F-92F9-CA83A21169C3</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Completions</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>completions</key>
|
||||||
|
<array>
|
||||||
|
<string>name</string>
|
||||||
|
<string>provider</string>
|
||||||
|
<string>ensure</string>
|
||||||
|
<string>enable</string>
|
||||||
|
<string>command</string>
|
||||||
|
<string>path</string>
|
||||||
|
<string>owner</string>
|
||||||
|
<string>group</string>
|
||||||
|
<string>refresh</string>
|
||||||
|
<string>refreshonly</string>
|
||||||
|
<string>unless</string>
|
||||||
|
<string>backup</string>
|
||||||
|
<string>content</string>
|
||||||
|
<string>source</string>
|
||||||
|
<string>mode</string>
|
||||||
|
<string>recurse</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>A0062DFA-F753-41C5-B48A-5DF9AA1352DD</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>SymbolList (class_node_define)</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet entity.name.function entity.name.type</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>showInSymbolList</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
</dict>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>DCFE74BF-4295-47AB-B91E-66A5761BFA96</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>SymbolList (resource)</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet meta.definition.resource.puppet</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>showInSymbolList</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>symbolTransformation</key>
|
||||||
|
<string>s/^\s*(\w+)\s*{\s*['"](.*)['"]:/ \u$1["$2"]/</string>
|
||||||
|
</dict>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>13DD53A2-401B-4149-82B0-001374330B40</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"cmd": [ "puppet", "parser", "validate", "--color=false", "--confdir=/tmp", "--vardir=/tmp", "$file" ],
|
||||||
|
"working_dir": "${project_path:${folder:${file_path}}}",
|
||||||
|
"selector": "source.pp",
|
||||||
|
"path": "/opt/local/bin:$PATH"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
SublimePuppet
|
||||||
|
=============
|
||||||
|
|
||||||
|
Puppet (puppetlabs.com) highlighting, snippets and completion for Sublime Text 2
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>${1:name} => "${2:value}",$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Parameter</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>=</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>8261BD6F-38ED-4AB3-A20B-29AFDE01EE36</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[# Class: ${1:name}
|
||||||
|
#
|
||||||
|
# This class installs ${1:name}
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
#
|
||||||
|
# Actions:
|
||||||
|
# - Install ${1:name}
|
||||||
|
# - Manage ${1:name} service
|
||||||
|
#
|
||||||
|
# Requires:
|
||||||
|
#
|
||||||
|
# Sample Usage:
|
||||||
|
#
|
||||||
|
class ${1:name} \{
|
||||||
|
class install \{
|
||||||
|
package \{
|
||||||
|
"${2:package}":
|
||||||
|
ensure => present;
|
||||||
|
\}
|
||||||
|
\}
|
||||||
|
|
||||||
|
class config \{
|
||||||
|
file \{
|
||||||
|
"/etc/${1:name}":
|
||||||
|
ensure => directory,
|
||||||
|
owner => root,
|
||||||
|
group => root,
|
||||||
|
mode => 700,
|
||||||
|
require => Class["install"];
|
||||||
|
|
||||||
|
"/etc/${1:name}/${3:config}":
|
||||||
|
ensure => present,
|
||||||
|
owner => root,
|
||||||
|
group => root,
|
||||||
|
mode => 600,
|
||||||
|
require => Class["install"];
|
||||||
|
#content => template ("${1:name}/${3:config}.erb");
|
||||||
|
#source => [
|
||||||
|
# "puppet://$server/modules/${1:name}/\$\{fqdn\}.conf",
|
||||||
|
# "puppet://$server/modules/${1:name}/${1:name}.conf"
|
||||||
|
#];
|
||||||
|
\}
|
||||||
|
|
||||||
|
#logrotate::file { "${1:name}":
|
||||||
|
# source => "/etc/logrotate.d/${1:name}",
|
||||||
|
# log => "/var/log/${4:logfile}.log",
|
||||||
|
#\}
|
||||||
|
\}
|
||||||
|
|
||||||
|
class service \{
|
||||||
|
service \{ "${1:name}":
|
||||||
|
enable => true,
|
||||||
|
ensure => running,
|
||||||
|
#hasrestart => true,
|
||||||
|
#hasstatus => true,
|
||||||
|
require => Class["config"],
|
||||||
|
\}
|
||||||
|
\}
|
||||||
|
|
||||||
|
include install
|
||||||
|
include config
|
||||||
|
include service
|
||||||
|
|
||||||
|
Class["install"] ->
|
||||||
|
Class["config"] ->
|
||||||
|
Class["service"]
|
||||||
|
\}
|
||||||
|
${0}]]></content>
|
||||||
|
<tabTrigger>baseclass</tabTrigger>
|
||||||
|
<scope>source.puppet</scope>
|
||||||
|
<description>baseclass</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>case \$${1:variable} {
|
||||||
|
"${2:value}": {
|
||||||
|
${3:# code}
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
${4:# code}
|
||||||
|
}
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>case</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>case</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>4C76CA5D-F7F7-4354-AAAD-1F8B00D73823</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string># Class: $1
|
||||||
|
#
|
||||||
|
#
|
||||||
|
class ${1:name} {
|
||||||
|
${2:# resources}
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>class</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>class</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>2D3C6C03-B268-42B1-A856-33FB0437B00E</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>cron { "${1:name}":
|
||||||
|
command => "${2:command}",
|
||||||
|
user => "${3:root}",
|
||||||
|
month => "${4:*}",
|
||||||
|
monthday => "${5:*}",
|
||||||
|
hour => "${6:*}",
|
||||||
|
minute => "${7:*}",
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>cron</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>cron</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>C22C1778-E61D-40EC-8E06-4B4A5ABEC0E7</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string># Define: $1
|
||||||
|
# Parameters:
|
||||||
|
# $2
|
||||||
|
#
|
||||||
|
define ${1:name} (${2:arguments}) {
|
||||||
|
${3:# puppet code}
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>define</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>define</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>22538B08-D4D6-4172-B672-77893A6D8E40</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>else {
|
||||||
|
${1:# enter puppet code}
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>else</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>else</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>B3E52D1C-3A49-44FA-8D1E-2910567F22C4</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>exec { "${1:name}":
|
||||||
|
command => "${2:/bin/echo}",
|
||||||
|
#path => "/usr/bin:/usr/sbin:/bin:/usr/local/bin",
|
||||||
|
#refreshonly => true,
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>exec</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>exec</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>849952B4-0D8A-4B5F-996D-35D531AAAE81</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>file { "${1:name}":
|
||||||
|
ensure => ${2:file},
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>file</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>file</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>C84524F5-B248-4A4B-87B9-69DCA93C393F</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>group { "${1:name}":
|
||||||
|
gid => $2,
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>group</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>group</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>44C1B58A-0EF0-4022-A9EF-2D3B432C83FE</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>if ${1:test} {
|
||||||
|
${2:# enter puppet code}
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>if</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>if</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>A60AC7AD-8710-4CCB-9A52-D8B84ABDD521</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>package { "${1:name}":
|
||||||
|
ensure => ${2:installed},
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>package</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>package</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>1A1C51EE-AC6D-4F7F-A342-4D6DE1F4FAD3</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>\$${1:variable} ? {
|
||||||
|
"${2:key}" => "${3:value}",
|
||||||
|
default => "${4:value}",
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>selector</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>?</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>88BA23C0-A6AD-4115-A765-9074BB8C85BD</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<snippet>
|
||||||
|
<content><![CDATA[service \{ "$1":
|
||||||
|
enable => true,
|
||||||
|
ensure => running,
|
||||||
|
#hasrestart => true,
|
||||||
|
#hasstatus => true,
|
||||||
|
#require => Class["config"],
|
||||||
|
\}
|
||||||
|
]]></content>
|
||||||
|
<tabTrigger>service</tabTrigger>
|
||||||
|
<scope>source.puppet</scope>
|
||||||
|
<description>service</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>user { "${1:name}":
|
||||||
|
comment => "${2:First Last}",
|
||||||
|
home => "${3:/home/$1}",
|
||||||
|
ensure => ${4:present},
|
||||||
|
#shell => "/bin/bash",
|
||||||
|
#uid => '501',
|
||||||
|
#gid => '20'
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>user</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>user</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>831FA574-7FC1-47B7-BDD3-67E3E94E8188</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>content</key>
|
||||||
|
<string>yumrepo { "${1:name}":
|
||||||
|
baseurl => "${2}",
|
||||||
|
descr => "${3:The $1 repository}",
|
||||||
|
enabled => "${4:1}",
|
||||||
|
gpgcheck => "${5:1}",
|
||||||
|
gpgkey => "${6:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-$1}",
|
||||||
|
mirrorlist => "${7}"
|
||||||
|
}$0</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>yumrepo</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>tabTrigger</key>
|
||||||
|
<string>yumrepo</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>7AC2033D-9B16-4127-8E03-0F8AD7220920</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,653 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>fileTypes</key>
|
||||||
|
<array>
|
||||||
|
<string>pp</string>
|
||||||
|
</array>
|
||||||
|
<key>foldingStartMarker</key>
|
||||||
|
<string>(^\s*/\*|(\{|\[|\()\s*$)</string>
|
||||||
|
<key>foldingStopMarker</key>
|
||||||
|
<string>(\*/|^\s*(\}|\]|\)))</string>
|
||||||
|
<key>keyEquivalent</key>
|
||||||
|
<string>^~P</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#line_comment</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>^\s*/\*</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\*/</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.block.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(?x)^\s*
|
||||||
|
(node|class)\s+
|
||||||
|
((?:[-_A-Za-z0-9".]+::)*[-_A-Za-z0-9".]+)\s* # identifier</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>storage.type.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>entity.name.type.class.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>(?={)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.definition.class.puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\b(inherits)\b\s+</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>storage.modifier.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>(?={)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.definition.class.inherits.puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\b((?:[-_A-Za-z0-9".]+::)*[-_A-Za-z0-9".]+)\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.type.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>^\s*(define)\s+([a-zA-Z0-9_:]+)\s*(\()</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>storage.type.function.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>entity.name.function.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.parameters.begin.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>contentName</key>
|
||||||
|
<string>meta.function.arguments.puppet</string>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.parameters.end.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.function.puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>variable.other.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.variable.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)\s*(?=,|\))</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.function.argument.no-default.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\s*(=)\s*)\s*</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>variable.other.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.variable.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.assignment.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>(?=,|\))</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.function.argument.default.puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#parameter-default-types</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>storage.type.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>entity.name.section.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>^\s*(\w+)\s*{\s*(['"].+['"]):</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.definition.resource.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\b(case|if|unless|else)(?!::)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.control.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>((\$?)"?[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*"?):(?=\s+|$)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>entity.name.section.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#strings</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(?i)\b(import|include)\b\s*</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.control.import.include.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>(?=\s|$)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.include.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\b\w+\s*(?==>)\s*</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.other.key.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?<={)\s*\w+\s*(?=})</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.other.bareword.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\b(escape|gsub|alert|crit|debug|notice|defined|emerg|err|failed|file|generate|include|info|realize|search|tag|tagged|template|warning)\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>support.function.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>repository</key>
|
||||||
|
<dict>
|
||||||
|
<key>constants</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?i)\b(false|true|running|present|absent|file|directory)\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.language.php</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>double-quoted-string</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>"</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.string.begin.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>"</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.string.end.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>string.quoted.double.puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>escaped_char</key>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\.</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>line_comment</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.line.number-sign.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.comment.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>^((#).*$\n?)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.comment.full-line.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.comment.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(#).*$\n?</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>comment.line.number-sign.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>nested_braces</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\{</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.section.scope.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\}</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#nested_braces</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>nested_braces_interpolated</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\{</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.section.scope.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\}</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#nested_braces_interpolated</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>nested_brackets</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\[</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.section.scope.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\]</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#nested_brackets</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>nested_brackets_interpolated</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\[</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.section.scope.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\]</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#nested_brackets_interpolated</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>nested_parens</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\(</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.section.scope.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#nested_parens</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>nested_parens_interpolated</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\(</string>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.section.scope.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#variable</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#nested_parens_interpolated</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>parameter-default-types</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#strings</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>=</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.assignment.php</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(\[)</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.array.begin.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\]</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.array.end.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.array.php</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#parameter-default-types</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#constants</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>single-quoted-string</key>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>'</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.string.begin.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>'</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.string.end.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>string.quoted.single.puppet</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#escaped_char</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>strings</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#double-quoted-string</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#single-quoted-string</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>variable</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.variable.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(\$)([a-zA-Zx7f-xff\$]|::)([a-zA-Z0-9_x7f-xff\$]|::)*\b</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>variable.other.readwrite.global.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.variable.puppet</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.variable.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(\$\{)(?:[a-zA-Zx7f-xff\$]|::)(?:[a-zA-Z0-9_x7f-xff\$]|::)*(\})</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>variable.other.readwrite.global.puppet</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>scopeName</key>
|
||||||
|
<string>source.puppet</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>AAF4E089-E3C9-4FB9-B099-FD2CCBD4E786</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>command</key>
|
||||||
|
<string>if [[ ! -d "$TM_NEW_FILE" ]]; then
|
||||||
|
mkdir -p "$TM_NEW_FILE/manifests"
|
||||||
|
mkdir -p "$TM_NEW_FILE/files"
|
||||||
|
mkdir -p "$TM_NEW_FILE/templates"
|
||||||
|
TM_YEAR=`date +%Y` \
|
||||||
|
TM_DATE=`date +%Y-%m-%d` \
|
||||||
|
TM_USERNAME=`niutil -readprop / /users/\$USER realname` \
|
||||||
|
perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \
|
||||||
|
< init.pp > "$TM_NEW_FILE/manifests/init.pp"
|
||||||
|
fi
|
||||||
|
</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>module</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>285328A3-F7E4-4D5C-9175-D5EFD947C787</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#
|
||||||
|
# Module: ${TM_NEW_FILE_BASENAME}
|
||||||
|
#
|
||||||
|
# Created by ${TM_USERNAME} on ${TM_DATE}.
|
||||||
|
# Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved.
|
||||||
|
#
|
||||||
|
# Define:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Actions:
|
||||||
|
#
|
||||||
|
# Requires:
|
||||||
|
#
|
||||||
|
# Sample Usage:
|
||||||
|
# (start code)
|
||||||
|
# (end)
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>mainMenu</key>
|
||||||
|
<dict>
|
||||||
|
<key>items</key>
|
||||||
|
<array>
|
||||||
|
<string>1DBD7B78-91F3-4528-9AC9-B71D9E5FE445</string>
|
||||||
|
<string>------------------------------------</string>
|
||||||
|
<string>2D3C6C03-B268-42B1-A856-33FB0437B00E</string>
|
||||||
|
<string>C22C1778-E61D-40EC-8E06-4B4A5ABEC0E7</string>
|
||||||
|
<string>22538B08-D4D6-4172-B672-77893A6D8E40</string>
|
||||||
|
<string>1A1C51EE-AC6D-4F7F-A342-4D6DE1F4FAD3</string>
|
||||||
|
<string>C84524F5-B248-4A4B-87B9-69DCA93C393F</string>
|
||||||
|
<string>831FA574-7FC1-47B7-BDD3-67E3E94E8188</string>
|
||||||
|
<string>44C1B58A-0EF0-4022-A9EF-2D3B432C83FE</string>
|
||||||
|
<string>849952B4-0D8A-4B5F-996D-35D531AAAE81</string>
|
||||||
|
<string>4C76CA5D-F7F7-4354-AAAD-1F8B00D73823</string>
|
||||||
|
<string>A60AC7AD-8710-4CCB-9A52-D8B84ABDD521</string>
|
||||||
|
<string>B3E52D1C-3A49-44FA-8D1E-2910567F22C4</string>
|
||||||
|
<string>88BA23C0-A6AD-4115-A765-9074BB8C85BD</string>
|
||||||
|
</array>
|
||||||
|
<key>submenus</key>
|
||||||
|
<dict/>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Puppet</string>
|
||||||
|
<key>ordering</key>
|
||||||
|
<array>
|
||||||
|
<string>BAB15109-162D-4E1F-92F9-CA83A21169C3</string>
|
||||||
|
<string>DCFE74BF-4295-47AB-B91E-66A5761BFA96</string>
|
||||||
|
<string>13DD53A2-401B-4149-82B0-001374330B40</string>
|
||||||
|
<string>A0062DFA-F753-41C5-B48A-5DF9AA1352DD</string>
|
||||||
|
<string>AAF4E089-E3C9-4FB9-B099-FD2CCBD4E786</string>
|
||||||
|
<string>2D3C6C03-B268-42B1-A856-33FB0437B00E</string>
|
||||||
|
<string>C22C1778-E61D-40EC-8E06-4B4A5ABEC0E7</string>
|
||||||
|
<string>22538B08-D4D6-4172-B672-77893A6D8E40</string>
|
||||||
|
<string>1A1C51EE-AC6D-4F7F-A342-4D6DE1F4FAD3</string>
|
||||||
|
<string>C84524F5-B248-4A4B-87B9-69DCA93C393F</string>
|
||||||
|
<string>831FA574-7FC1-47B7-BDD3-67E3E94E8188</string>
|
||||||
|
<string>44C1B58A-0EF0-4022-A9EF-2D3B432C83FE</string>
|
||||||
|
<string>849952B4-0D8A-4B5F-996D-35D531AAAE81</string>
|
||||||
|
<string>4C76CA5D-F7F7-4354-AAAD-1F8B00D73823</string>
|
||||||
|
<string>A60AC7AD-8710-4CCB-9A52-D8B84ABDD521</string>
|
||||||
|
<string>B3E52D1C-3A49-44FA-8D1E-2910567F22C4</string>
|
||||||
|
<string>88BA23C0-A6AD-4115-A765-9074BB8C85BD</string>
|
||||||
|
<string>7AC2033D-9B16-4127-8E03-0F8AD7220920</string>
|
||||||
|
<string>285328A3-F7E4-4D5C-9175-D5EFD947C787</string>
|
||||||
|
<string>1DBD7B78-91F3-4528-9AC9-B71D9E5FE445</string>
|
||||||
|
</array>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>2DB168AA-8A4D-458B-B6DE-AFC8E60F845E</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"url": "https://github.com/russCloak/SublimePuppet", "version": "2013.01.11.19.53.28", "description": "Puppet (puppetlabs.com) highlighting, snippets and completion for Sublime Text 2"}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# Underscore 1.4.2 snippets for Sublime Text 2
|
||||||
|
|
||||||
|
A Sublime Text 2 package containing all of [Underscore](http://underscorejs.org/)'s methods.
|
||||||
|
|
||||||
|
Most snippets follow object-oriented style (`_(obj).method(…)`); very few don't. Yes, consistency should always win, but then again, `_(1).range(10)` looks weird -- I personally prefer `_.range( 1, 10 )`. YMMV.
|
||||||
|
|
||||||
|
|
||||||
|
## Invocation
|
||||||
|
|
||||||
|
In any JS file, type an underscore character (`_`), and the selector should pop up. Hit Return to insert the snippet.
|
||||||
|
|
||||||
|
All methods are available in the form `_[method name]`, for example `_map` or `_reduceRight`.
|
||||||
|
|
||||||
|
|
||||||
|
## Installation (using Package Control)
|
||||||
|
|
||||||
|
Open ST2's [Package Control](http://wbond.net/sublime_packages/package_control) and look for "Underscore.js Snippets".
|
||||||
|
|
||||||
|
|
||||||
|
## Installation (without using Package Control)
|
||||||
|
|
||||||
|
Clone this repository into your `Packages/` folder, like so:
|
||||||
|
|
||||||
|
git clone https://github.com/carlo/sublime-underscorejs-snippets.git
|
||||||
|
|
||||||
|
|
||||||
|
## Legal
|
||||||
|
|
||||||
|
Underscore (c) [DocumentCloud](http://underscorejs.org/). This repository (c) Carlo Zottmann, [municode.de](http://municode.de/), carlo@municode.de.
|
||||||
|
|
||||||
|
This here repository is licensed under the WTFPL v2.
|
||||||
|
|
||||||
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
|
Version 2, December 2004
|
||||||
|
|
||||||
|
Copyright (C) 2004 Sam Hocevar
|
||||||
|
14 rue de Plaisance, 75014 Paris, France
|
||||||
|
Everyone is permitted to copy and distribute verbatim or modified
|
||||||
|
copies of this license document, and changing it is allowed as long
|
||||||
|
as the name is changed.
|
||||||
|
|
||||||
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:count}).after(${2:functionName})]]></content>
|
||||||
|
<tabTrigger>_after</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.after()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).all(${2:functionName})]]></content>
|
||||||
|
<tabTrigger>_all</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.all()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).any(${2:[iterator]})]]></content>
|
||||||
|
<tabTrigger>_any</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.any()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:functionName}).bind(${2:object}, ${3:[*arguments]})]]></content>
|
||||||
|
<tabTrigger>_bind</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.bind()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:object}).bindAll(${2:[*methodNames]})]]></content>
|
||||||
|
<tabTrigger>_bindAll</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.bindAll()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:obj}).chain()]]></content>
|
||||||
|
<tabTrigger>_chain</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.chain()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:object}).clone()]]></content>
|
||||||
|
<tabTrigger>_clone</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.clone()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:array}).compact()]]></content>
|
||||||
|
<tabTrigger>_compact</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.compact()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_.compose(${1:*functions})]]></content>
|
||||||
|
<tabTrigger>_compose</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.compose()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).contains(${2:value})]]></content>
|
||||||
|
<tabTrigger>_contains</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.contains()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).countBy( function(${2:element}) {
|
||||||
|
${3:// return something}
|
||||||
|
})]]></content>
|
||||||
|
<tabTrigger>_countBy</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.countBy()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:functionName}).debounce(${2:waitInMilliseconds})]]></content>
|
||||||
|
<tabTrigger>_debounce</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.debounce()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:object}).defaults(${2:*defaults})]]></content>
|
||||||
|
<tabTrigger>_defaults</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.defaults()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:functionName}).defer(${2:[*arguments]})]]></content>
|
||||||
|
<tabTrigger>_defer</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.defer()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:functionName}).delay(${2:waitInMilliseconds}${3:, [*arguments]}))]]></content>
|
||||||
|
<tabTrigger>_delay</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.delay()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:array}).difference(${2:*others})]]></content>
|
||||||
|
<tabTrigger>_difference</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.difference()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).each( function( ${2:value}, ${3:key}, ${1:list} ) {
|
||||||
|
${4:// }
|
||||||
|
})]]></content>
|
||||||
|
<tabTrigger>_each</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.each()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:string}).escape()]]></content>
|
||||||
|
<tabTrigger>_escape</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.escape()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:destination}).extend(${2:*sources})]]></content>
|
||||||
|
<tabTrigger>_extend</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.extend()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).filter( function(${2:value}) {
|
||||||
|
${3:// return …}
|
||||||
|
})]]></content>
|
||||||
|
<tabTrigger>_filter</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.filter()</description>
|
||||||
|
</snippet>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Underscore 1.4.2 -->
|
||||||
|
<snippet>
|
||||||
|
<content><![CDATA[_(${1:list}).find( function(${2:value}) {
|
||||||
|
${3:// return …}
|
||||||
|
})]]></content>
|
||||||
|
<tabTrigger>_find</tabTrigger>
|
||||||
|
<scope>source.js</scope>
|
||||||
|
<description>Underscore _.find()</description>
|
||||||
|
</snippet>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user