ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

AngularJS(CoffeeScript)

作者 Iristyle 全部

适用于使用CoffeeScript的Sublime Text的AngularJS软件包

详细信息

  • 2012.09.24.18.10.42
  • github.com
  • github.com
  • 12年前
  • 1小时前
  • 12年前

安装次数

  • 总计 27K
  • Win 13K
  • Mac 9K
  • Linux 5K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
Mac 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

阅读文件

源代码
raw.githubusercontent.com

Logo

AngularJs Sublime Text 2 Bundle

此软件包提供了所有可用的AngularJS API调用的代码片段。代码片段在HTML和CoffeeScript中均可激活。

这是对代码片段系统的重大改变吗?在某种程度上,是的。

这更加像是一个穷人的Intellisense,而不是一系列代码片段。代码片段有意重叠,这样只需记住少量的简单助记符,而无需记住数百个。

使用这种方法,不仅提供类似于xyzTAB样式的代码片段扩展,xyzTAB会在上下文相关的Sublime完成覆盖中加载,可以使用箭头键和一个额外的TAB来选择适当的代码片段。例如,在HTML标签中使用ngTAB将显示所有可用的ng-*属性。这与通常的代码片段方法相比稍慢,但降低了API表面的学习曲线。请注意,Sublime似乎有不同的条件来显示完成覆盖。在CoffeeScript文档中简单地键入ng将显示完成菜单,而在HTML中则需要按TAB。(这可能与安装的其他软件包有关)

安装

自动安装

请确保您已根据这些说明安装了Sublime Package Control

使用Ctrl + Shift + P打开Sublime命令面板,键入/选择“Package Control: Install Package”,然后从包控制列表中,键入/选择“AngularJS(CoffeeScript)”

请注意,软件包会自动更新,因此当有新的修改时,它们将自动安装。

手动调整包控制

这不是推荐的做法,但包控制可以直接指向此GitHub存储库,而不是使用注册表。添加到Packages\User\Package Control.sublime-settings下面JSON配置文件中的相应键

该文件可以通过Sublime菜单打开: 首选项 -> 包设置 -> 包控制 -> 设置 -- 用户

{
  "installed_packages":
  [
    "AngularJS (CoffeeScript)"
  ],
  "package_name_map":
  {
    "Sublime-AngularJS-Coffee-Completions": "AngularJS (CoffeeScript)"
  },
  "repositories":
  [
    "https://github.com/EastPoint/Sublime-AngularJS-Coffee-Completions"
  ]
}

快捷键

Sublime中的代码片段触发器实际上是隐式快捷键,它们始终映射到一系列字符 + TAB。或者,您可以通过在Ctrl + Shift + P菜单中键入Ang来过滤列表,找到它们。

还建议添加类似于以下内容的快捷键,以便通过单个键组合访问所有当前可用的代码片段。

[
  { "keys": ["shift+f3"], "command": "show_overlay",
    "args": {"overlay": "command_palette", "text": "Angular"} }
]

为了允许$字符自动触发菜单,必须在Preferences.sublime-settings文件中添加以下内容。可以通过首选项 -> 设置 -- 用户菜单项来打开此文件。

{
    "auto_complete_triggers":
    [
        {
            "characters": "$",
            "selector": "source.coffee, source.js, source.js.embedded.html"
        }
    ]
}

如果您希望在完成时禁用重复显示的$,则必须在同一用户 Preferences.sublime-settings中更改默认的word_separators到以下内容:

{
    "word_separators": "./\\()\"'-:,.;<>~!@#%^&*|+=[]{}`~?"
}

注意:auto_complete_triggersword_separators在同一个JSON配置对象中是同胞。

咖啡脚本

选取的快捷键不会与标准的CoffeeScript快捷键冲突,即=-clalogelifelififel#forofforxforiforinreqswitertryunl

Sublime错误

遗憾的是,目前Sublime存在一些问题,阻止它执行帮助我们的一些操作

  • 当涉及到$字符时,在完成覆盖层内进行过滤无法正常工作。

  • 无法像对代码片段那样为完成项添加名称,因此Ctrl + Space覆盖层仅显示标识符。

  • Sublime的Tab触发器系统不支持正则表达式。因此,当处理类似于scope.$watch的成员函数时,当按下.$时,无法在列表中减少噪声。我们看到所有以$开头的完成项,而不是只有以.$开头的,使列表变长。

  • 找不到限制ng-*属性作用域仅限于它们有效的HTML标签的方法(例如,ng-csp仅属于html)。我们能做到最好的是区分属性与标签的代码片段。

  • Sublime在代码片段中没有可选参数/块的约定。这在第一个TAB上突出显示块是伪造的,以便可以删除它,并且如果块被保留,则允许后续的TAB更改块中的特定值。然而,Sublime在块被删除后仍然尊重块内的制表符。在实用意义上,这意味着可能需要在删除optional块后进行额外的制表符点击,将光标移动到下一个替换点。

如果您想看到这些问题得到解决,请对问题124225124217进行投票!

希望Sublime的未来版本将解决这些问题,但暂时有一些解决方案。

当前的解决方案是为顶级服务(如$filter)提供占位符代码片段。

此工作流程如下

错误:不支持的“plaintext”语言
`$`, `TAB`
  -> select Angular filter from the menu with `TAB`
  -> `$filter` is inserted into document
  -> `TAB` brings up completions against `$filter`
  -> select specific filter from the menu with `TAB` (such as currency)
  -> `$filter('currency') currency, 'symbol-eg-USD$'` is inserted into document
  and supports `TAB` completion (or chunk deletion)

Tab触发

故意将tab触发器的数量限制在一小部分,以增加可发现性。按照惯例,大多数参数都使用了表示应该替换的值的占位符。对于接受多个可能参数的函数,已按惯例使用|,即true|false

tl;dr版本

以下是唯一使用的触发器 - $.$ngforismoddirfilmock$cookieStore$filter.$http.$httpBackend.$injector.$interpolate.$location.$log.$provide.$q.$route.$routeProvider..error.expect.other.success.when … 哎呀

指令

所有基于 HTML 的指令均基于 ngTAB 绑定。

指令 绑定 上下文
form ngTAB HTML 元素
input ngTAB HTML 元素
input [checkbox] ngTAB HTML 元素
input [email] ngTAB HTML 元素
input [number] ngTAB HTML 元素
input [radio] ngTAB HTML 元素
input [text] ngTAB HTML 元素
input [url] ngTAB HTML 元素
input [email] ngTAB HTML 元素
ngApp ngTAB HTML 属性
ngBind ngTAB HTML 属性
ngBindHtml ngTAB HTML 属性
ngBindHtmlUnsafe ngTAB HTML 属性
ngBindTemplate ngTAB HTML 属性
ngChange ngTAB HTML 属性
ngChecked ngTAB HTML 属性
ngClass ngTAB HTML 属性
ngClassEven ngTAB HTML 属性
ngClassOdd ngTAB HTML 属性
ngClick ngTAB HTML 属性
ngCloak ngTAB HTML 属性
ngController ngTAB HTML 属性
ngCsp ngTAB HTML 属性
ngDblClick ngTAB HTML 属性
ngDisabled ngTAB HTML 属性
ngForm ngTAB HTML 元素
ngHide ngTAB HTML 属性
ngHref ngTAB HTML 属性
ngInclude ngTAB HTML 属性
ngInclude ngTAB HTML 元素
ngInit ngTAB HTML 属性
ngList ngTAB HTML 属性
ngModel ngTAB HTML 属性
ngMousedown ngTAB HTML 属性
ngMouseenter ngTAB HTML 属性
ngMouseleave ngTAB HTML 属性
ngMousemove ngTAB HTML 属性
ngMouseover ngTAB HTML 属性
ngMouseup ngTAB HTML 属性
ngMultiple ngTAB HTML 属性
ngNonBindable ngTAB HTML 属性
ngPluralize ngTAB HTML 属性
ngPluralize ngTAB HTML 元素
ngReadonly ngTAB HTML 属性
ngRepeat ngTAB HTML 属性
ngSelected ngTAB HTML 属性
ngShow ngTAB HTML 属性
ngSrc ngTAB HTML 属性
ngStyle ngTAB HTML 属性
ngSubmit ngTAB HTML 属性
ngSwitch ngTAB HTML 属性
ngSwitch ngTAB HTML 元素
ngSwitch-default ngTAB HTML 属性
ngSwitch-when ngTAB HTML 属性
ngTransclude ngTAB HTML 属性
ngView ngTAB HTML 属性
ngView ngTAB HTML 元素
script ngTAB HTML 元素
select ngTAB HTML 元素
textarea ngTAB HTML 元素

模块

模块 方法 绑定 上下文
config modTAB 咖啡脚本
constant modTAB 咖啡脚本
controller modTAB 咖啡脚本
指令 (用于链接) dirTAB 咖啡脚本
指令 (完整) dirTAB 咖啡脚本
factory modTAB 咖啡脚本
filter modTAB 咖啡脚本
provider modTAB 咖啡脚本
run modTAB 咖啡脚本
service modTAB 咖啡脚本
value modTAB 咖啡脚本

作用域

作用域方法 绑定 上下文
$rootScope $TAB 咖啡脚本
$apply .$TAB 咖啡脚本
$broadcast .$TAB 咖啡脚本
$destroy .$TAB 咖啡脚本
$digest .$TAB 咖啡脚本
$emit .$TAB 咖啡脚本
$eval .$TAB 咖啡脚本
$evalAsync .$TAB 咖啡脚本
$id .$TAB 咖啡脚本
$new .$TAB 咖啡脚本
$on .$TAB 咖啡脚本
$watch .$TAB 咖啡脚本

控制器

涵盖 FormControllerNgModelController

控制器方法 绑定 上下文
$render .$TAB 咖啡脚本
$setValidity .$TAB 咖啡脚本
$setViewValue .$TAB 咖啡脚本
$viewValue .$TAB 咖啡脚本
$modelValue .$TAB 咖啡脚本
$parsers .$TAB 咖啡脚本
$formatters .$TAB 咖啡脚本
$error .$TAB 咖啡脚本
$pristine .$TAB 咖啡脚本
$dirty .$TAB 咖啡脚本
$valid .$TAB 咖啡脚本
$invalid .$TAB 咖啡脚本

资源

资源方法 绑定 上下文
$resource $TAB 咖啡脚本
$delete .$TAB 咖啡脚本
$get .$TAB 咖啡脚本
$query .$TAB 咖啡脚本
$remove .$TAB 咖啡脚本
$save .$TAB 咖啡脚本

过滤器

过滤器方法 绑定 上下文
$filter $TAB 咖啡脚本
currency $filterTAB 咖啡脚本
currency filTAB HTML
date $filterTAB 咖啡脚本
date filTAB HTML
filter $filterTAB 咖啡脚本
filter filTAB HTML
json $filterTAB 咖啡脚本
json filTAB HTML
limitTo $filterTAB 咖啡脚本
limitTo filTAB HTML
linky $filterTAB 咖啡脚本
linky filTAB HTML
lowercase $filterTAB 咖啡脚本
lowercase filTAB HTML
number $filterTAB 咖啡脚本
number filTAB HTML
orderBy $filterTAB 咖啡脚本
orderBy filTAB HTML
uppercase $filterTAB 咖啡脚本
uppercase filTAB HTML

全局 API

全局 API 绑定 上下文
angular.bind ngTAB 咖啡脚本
angular.bootstrap ngTAB 咖啡脚本
angular.copy ngTAB 咖啡脚本
angular.element ngTAB 咖啡脚本
angular.equals ngTAB 咖啡脚本
angular.extend ngTAB 咖啡脚本
angular.foreach forTAB 咖啡脚本
angular.fromJson ngTAB 咖啡脚本
angular.identity ngTAB 咖啡脚本
angular.injector ngTAB 咖啡脚本
angular.isArray isTAB 咖啡脚本
angular.isDate isTAB 咖啡脚本
angular.isUndefined isTAB 咖啡脚本
angular.isElement isTAB 咖啡脚本
angular.isFunction isTAB 咖啡脚本
angular.isNumber isTAB 咖啡脚本
angular.isObject isTAB 咖啡脚本
angular.isString isTAB 咖啡脚本
angular.isUndefined isTAB 咖啡脚本
angular.lowercase ngTAB 咖啡脚本
angular.module modTAB 咖啡脚本
angular.noop ngTAB 咖啡脚本
angular.toJson ngTAB 咖啡脚本
angular.uppercase ngTAB 咖啡脚本
angular.version ngTAB 咖啡脚本

HTTP

HTTP 方法 绑定 上下文
$http $TAB 咖啡脚本
$http (配置) $TAB 咖啡脚本
delete $http.TAB 咖啡脚本
get $http.TAB 咖啡脚本
head $http.TAB 咖啡脚本
jsonp $http.TAB 咖啡脚本
post $http.TAB 咖啡脚本
put $http.TAB 咖啡脚本
defaults $http.TAB 咖啡脚本
pendingRequests $http.TAB 咖啡脚本
.error .errorTAB 咖啡脚本
.success .successTAB 咖啡脚本

HttpBackend

请注意,.expect.when是为了链式调用而设计的,因此我们不绑定到$httpBackend

HttpBackend 方法 绑定 上下文
$httpBackend $TAB 咖啡脚本
expect .expectTAB 咖啡脚本
expectDELETE .expectTAB 咖啡脚本
expectGET .expectTAB 咖啡脚本
expectHEAD .expectTAB 咖啡脚本
expectJSONP .expectTAB 咖啡脚本
expectPATCH .expectTAB 咖啡脚本
expectPOST .expectTAB 咖啡脚本
expectPUT .expectTAB 咖啡脚本
flush $httpBackend.TAB 咖啡脚本
resetExpectations $httpBackend.TAB 咖啡脚本
verifyNoOutstandingExceptions $httpBackend.TAB 咖啡脚本
verifyNoOutstandingRequests $httpBackend.TAB 咖啡脚本
when .whenTAB 咖啡脚本
whenDELETE .whenTAB 咖啡脚本
whenGET .whenTAB 咖啡脚本
whenHEAD .whenTAB 咖啡脚本
whenJSONP .whenTAB 咖啡脚本
whenPATCH .whenTAB 咖啡脚本
whenPOST .whenTAB 咖啡脚本
whenPUT .whenTAB 咖啡脚本

Q

Provider 方法 绑定 上下文
$q $TAB 咖啡脚本
all $q.TAB 咖啡脚本
defer $q.TAB 咖啡脚本
reject $q.TAB 咖啡脚本
when $q.TAB 咖啡脚本

Route

Route 方法 绑定 上下文
$route $TAB 咖啡脚本
current $route.TAB 咖啡脚本
reload $route.TAB 咖啡脚本
routes $route.TAB 咖啡脚本
$routeChangeError .$TAB 咖啡脚本
$routeChangeStart .$TAB 咖啡脚本
$routeChangeSuccess .$TAB 咖啡脚本
$routeUpdate .$TAB 咖啡脚本
$routeParams $TAB 咖啡脚本
$routeProvider $TAB 咖啡脚本
when $routeprovider.TAB 咖啡脚本
otherwise .otherTAB 咖啡脚本

Cookie

Cookie 方法 绑定 上下文
$cookies $TAB 咖啡脚本
$cookieStore $TAB 咖啡脚本
get $cookiestore.TAB 咖啡脚本
put $cookiestore.TAB 咖啡脚本
remove $cookiestore.TAB 咖啡脚本

Location

Location 方法 绑定 上下文
$injector $TAB 咖啡脚本
absUrl $location.TAB 咖啡脚本
hash(获取 & 设置) $location.TAB 咖啡脚本
host $location.TAB 咖啡脚本
path(获取 & 设置) $location.TAB 咖啡脚本
port $location.TAB 咖啡脚本
protocol $location.TAB 咖啡脚本
replace $location.TAB 咖啡脚本
search(获取 & 设置) $location.TAB 咖啡脚本
url(获取 & 设置) $location.TAB 咖啡脚本

Log

Log 方法 绑定 上下文
$log $TAB 咖啡脚本
error $log.TAB 咖啡脚本
info $log.TAB 咖啡脚本
log $log.TAB 咖啡脚本
warn $log.TAB 咖啡脚本

Mock

Mock 方法 绑定 上下文
angular.mock.debug mockTAB 咖啡脚本
angular.mock.inject mockTAB 咖啡脚本
angular.mock.module mockTAB 咖啡脚本
angular.mock.TzDate mockTAB 咖啡脚本
$log.assertEmpty $log.TAB 咖啡脚本
$log.reset $log.TAB 咖啡脚本
$log.logs $log.TAB 咖啡脚本
$timeout.flush $timeout.TAB 咖啡脚本

Injector

Injector 方法 绑定 上下文
$injector $TAB 咖啡脚本
annotate $injector.TAB 咖啡脚本
get $injector.TAB 咖啡脚本
instantiate $injector.TAB 咖啡脚本
invoke $injector.TAB 咖啡脚本

Interpolate

Injector 方法 绑定 上下文
$interpolate $TAB 咖啡脚本
endSymbol $interpolate.TAB 咖啡脚本
startsymbol $interpolate.TAB 咖啡脚本

Provide

Provider 方法 绑定 上下文
$provide $TAB 咖啡脚本
constant $provide.TAB 咖啡脚本
decorator $provide.TAB 咖啡脚本
factory $provide.TAB 咖啡脚本
provider $provide.TAB 咖啡脚本
service $provide.TAB 咖啡脚本
value $provide.TAB 咖啡脚本

其他服务

Service 绑定 上下文
$anchorScroll $TAB 咖啡脚本
$cacheFactory $TAB 咖啡脚本
$compile $TAB 咖啡脚本
$controller $TAB 咖啡脚本
$document $TAB 咖啡脚本
$exceptionHandler $TAB 咖啡脚本
$locale $TAB 咖啡脚本
$parse $TAB 咖啡脚本
$rootElement $TAB 咖啡脚本
$templateCache $TAB 咖啡脚本
$timeout $TAB 咖啡脚本
$window $TAB 咖啡脚本

未来改进

  • 如果能通过SublimeCodeIntel提供类似的在线文档,那就太好了,类似于为jQuery提供的那些文档

  • SublimeErl也提供了一些非常酷的功能,值得整合。

贡献

  • 在编辑.sublime-snippets文件时,始终使用真实制表符进行换行后的缩进。如果您的用户设置指定了缩进的空间,Sublime将自动插入空格。

  • 编写将通过coffeelint通过的CoffeeScript代码

谢谢

原始灵感来源于AngularJS tmbundle,它针对JavaScript和一小组常见操作的记忆技巧。这个设计更为全面。