我正在尝试为AngularJs创建一个Sublime Text片段。此代码段应扩展为AngularJs控制器(或服务等或任何ng组件)。在生成的代码中,它应该使用带连字符的文件名在camelCase中构造控制器名称。
例如:
当我在一个名为employee-benefits-controller.js的空文件中输入片段字符串,比如ngctrl时,它应该扩展如下:
angular.module('').controller('EmployeeBenefitsController', ['', function(){
}]);
我正在尝试使用$ TM_FILENAME变量,在其上应用正则表达式来实现此转换。如果有人已经这样做了,请告诉我们。
答案 0 :(得分:2)
您可以使用以下内容:
<snippet>
<content><![CDATA[
angular.module('${1:moduleName}').controller('${TM_FILENAME/(^|-|\.js)(.?)|/\U\2\E/g}', ['', function(){
${2://functionCode}
}]);
]]></content>
<tabTrigger>ngctrl</tabTrigger>
</snippet>
注1:您可能希望更改范围,以便仅在javascript环境中触发该代码段。
注意2:我不熟悉angularjs,所以我不知道它的命名约定(我认为在连字符[ - ]字符之后和名称的开头需要一个大写字母,但是我不知道在点字符之后是否需要一个大写字符(例如)。因此,您可能需要调整代码段。
注3:表达解释: 的 $ {TM_FILENAME /(^ | - |的.js)(?)/ \ U \ 2 \ E /克} 强>
注意4:正如您可能知道的那样,使用 $ {1:moduleName} 和 $ {2:// functionCode} 可以让您快速移动(使用标签)并在片段被触发后编辑片段的重要部分,例如模块或功能代码。