我使用 angularJS,并且有各种遵循命名约定的指令,例如“app-data-grid”、“app-slider”、“app-carousel”或“app-compile-some-template”等。本质上,它是正常的角度指令命名约定 [app name]-[dash delimited words]
。 Sublime Text HTML 语言语法突出显示无法与其正则表达式正确匹配。它将突出显示 "<app-carousel"
中的“app”或"<app-some-long-directive-name"
但不会突出显示整个标签名称。
这是 HTML.tmLanguage
中预定义的正则表达式文件:
(<)([a-zA-Z0-9:]++)(?=[^>]*></\2>)
我尝试在第二个匹配组的冒号后添加破折号:
(<)([a-zA-Z0-9:-]++)(?=[^>]*></\2>)
第二个正则表达式在正则表达式测试器中工作,但在 Sublime Text 中不起作用。
此外,我还下载了一个 AngularJS 插件,它给了我一个 AngularJS-HTML 语言定义......它也有同样的问题。
如何修复正则表达式,使其与突出显示的完整标记名称匹配?
最佳答案
转到首选项>>设置-用户。
在此 JSON 上,将名为“HTML”的iten 添加到ignored_packages 数组中,如下所示:
"ignored_packages":
[
"Vintage",
"HTML"
]
保存文件。
现在转到“首选项”>>“浏览包”,复制 HTML 目录并将其重命名为“HTMLAngularJS”。
进入HTMLAngularJS目录并将文件“HTML.tmLanguage”重命名为“HTMLAngularJS.tmLanguage”。
编辑“HTMLAngularJS.tmLanguage”文件,找到这两个正则表达式:
<string>(<)([a-zA-Z0-9:]++)(?=[^>]*></\2>)</string> Line 45
and
<string>(</?)([a-zA-Z0-9:]+)</string> Line 514
只需在双点后添加斜杠和 - ,应如下所示:
<string>(<)([a-zA-Z0-9:\-]++)(?=[^>]*></\2>)</string>
and
<string>(</?)([a-zA-Z0-9:\-]+)</string>
保存文件并快乐!
问候!
关于html - Sublime Text 语法突出显示正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26417473/