我正在尝试为 AngularJs 创建一个 Sublime Text 片段。这个片段应该扩展到 AngularJs Controller (或服务等或任何 ng 组件)。在生成的代码中,它应该从带连字符的文件名中构造camelCase 中的 Controller 名称。
例如:
当我在一个名为 employee-benefits-controller.js 的空文件中键入片段字符串时,例如 ngctrl,它应该展开如下:
angular.module('').controller('EmployeeBenefitsController', ['', function(){
}]);
我正在尝试通过对其应用正则表达式来使用 $TM_FILENAME 变量来实现此转换。如果有人已经这样做了,请告诉我们。
最佳答案
你可以使用这样的东西:
<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/g}
注意 4:您可能知道,使用 ${1:moduleName} 和 ${2://functionCode} 可以让您在触发后快速移动(使用选项卡)和编辑片段的重要部分,例如模块或功能代码。
关于angularjs - Sublime Text 片段 : Create camelcased string from the hyphenated file name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25991294/