如何在Sublime中语法突出显示JavaScript字符串中的HTML
How to syntax-highlight HTML inside JavaScript strings in Sublime
是否有任何Sublime包可以在JavaScript字符串中语法突出显示HTML?
(注意,这个问题只是关于JS字符串中的HTML,而不是一般的语法高亮显示。)
具体来说,我正在使用内联模板编写Angular组件
angular.module('compMod', []).component('myComp', {
template: `<div>Some Text</div>`
});
并希望在ES6模板字符串中突出显示HTML语法。
正如@Calvin在上面评论的那样,我不会说这是一个好的做法,但我也不一定说这是完全糟糕的做法。无论如何,这是我天真的解决方案(还没有针对任何边缘情况进行测试):
为sublime文本安装babel包,并选择它作为*.js文件的默认语法。
接下来,编辑位于Babel包目录中的JavaScript (Babel).sublime-syntax
,例如~/.config/sublime-text-3/Packages/Babel/
。
搜索template-string-body:
部分,并在其开头添加以下两行,类似于@VRPF的建议:
- meta_content_scope: text.html.basic.embedded.js
- include: scope:text.html.basic
现在,您在模板字符串中完全支持es6+HTML语法。
我只需要创建一个新的语法高亮器,因为你不必担心他们是否更新了正常的包。
转到Tools > Developer > New Syntax...
%YAML 1.2
---
# See http://www.sublimetext.com/docs/3/syntax.html
name: Javascript HTML
file_extensions:
- element.js
- tag.js
- jsx
- js
scope: source.js.tag
contexts:
main:
- match: ""
push: Packages/JavaScript/JavaScript.sublime-syntax
with_prototype:
- match: '([a-zA-Z$_]['w$_]*)?(`)'
push:
- meta_content_scope: text.html.basic.embedded.js
- include: 'scope:text.html.basic'
- match: '`'
pop: true
- match: ''$'{'
captures:
0: punctuation.definition.template-expression.begin.js
push:
- meta_scope: meta.template.expression.js
- include: 'scope:source.js'
#- meta_content_scope: source.js.embedded.expression
- match: ''}'
scope: punctuation.definition.template-expression.end.js
pop: true
然后保存为JavascriptHTML.sublime-syntax
Restart Sublime
,然后您可以转到View > Syntax > Open all with this ext as > Javascript HTML
相关文章:
- PHP Javascript显示/隐藏按钮不工作
- 通过javascript显示和更改文本
- 是否可以用JavaScript显示等效的文件夹对话框
- 如何使用javascript显示图像
- BMI计算器以Javascript显示结果
- 单击“JavaScript显示变量”
- Javascript:显示带有复选框值的图像
- 通过ID JavaScript显示随机背景图像
- 无法在qualtrics上使用javascript显示背景图像
- 日期选择器无法使用javascript显示
- javascript 显示空白灰色层
- 页面加载后通过javascript显示图像
- 使用JavaScript显示鼠标的x和y位置
- 用javascript显示html表
- 使用 JavaScript 显示 Laravel's Variable
- javascript显示地理位置
- 搜索XML文件并使用javascript显示结果
- 使用javascript显示文件名上传
- 使用javascript显示隐藏的HTML元素
- 使用jquery和javascript显示PHP中的变量