我希望我的.ejs文件具有html语法,但是,它始终以纯文本格式打开文件。
在sublime中,您可以选择“使用当前扩展名全部打开...”,然后选择语法。
我看到您可以在左下角更改语法
如何打开具有特定语法的特定类型的文件?
现在,它位于Atom核心中,您不再需要该文件类型包。
在我工作的地方,我们将.phl用于某种PHP文件。 要告诉Atom这一点,请像这样编辑~/.atom/config.cson:
~/.atom/config.cson
core: customFileTypes: "text.html.php": [ "phl" ] themes: [ // snip
您可以在~/.atom/config.cson上找到此文件,或者在“设置”窗口中单击“打开配置文件夹”按钮。
人们在GitHub问题上针对该功能犯下的许多错误证明了这一点很容易出错。
如果您的语言真的只是HTML,则可以设置一个简单的程序包来处理此问题。
创建一个名为langugage-ejs的程序包,并在grammars/ejs.cson中添加HTML,使其具有您关心的模式:
langugage-ejs
grammars/ejs.cson
'fileTypes': [ 'ejs' ] 'name': 'Embedded JavaScript' 'patterns': [ { 'include': 'source.html' } ] 'scopeName': 'source.ejs'
language-ipynb当然可以通过扩展JSON来实现。
但实际上,在HTML之上有模板标记,您希望使编辑器能够识别它们。 我能找到的最佳示例是erb(嵌入式Ruby模板)。 它来自HTML,但也添加了其他标签,如以下代码片段所示:
... 'patterns': [ { 'begin': '<%+#' 'captures': '0': 'name': 'punctuation.definition.comment.erb' 'end': '%>' 'name': 'comment.block.erb' } { 'begin': '<%+(?!>)[-=]?' 'captures': '0': 'name': 'punctuation.section.embedded.ruby' 'end': '-?%>' 'name': 'source.ruby.rails.embedded.html' 'patterns': [ { 'captures': '1': 'name': 'punctuation.definition.comment.ruby' 'match': '(#).*?(?=-?%>)' 'name': 'comment.line.number-sign.ruby' } { 'include': 'source.ruby.rails' } ] } { 'include': 'text.html.basic' } ] ...
编辑:自从我编写此答案的时间起,此功能已添加到Atom核心中,有关详细信息,请参见此答案。
([HTTPS://atom.IO/packages/file-types)]
它恰好满足标题问题的要求:您可以通过简单地编辑config.cson文件来为现有语言定义新的文件扩展名。
config.cson
对于单个文件,您可以使用“语法选择器”; Ctrl + Shift + L设置您在该文件上使用的语言。 不同于自动检测,但在那些您不想为其设置默认值的文件时有用。
似乎已经为此发布了一个全新的软件包。 [https://atom.io/packages/language-ejs。]
例如,如果要使用javascript语法打开所有.jsx文件,则需要将此文件添加到config.cson
.jsx
"*": core: customFileTypes: "source.js": [ "jsx" ]
这会将所有.jsx文件映射为使用js语法打开。
正如Dave Andersen在埋葬的评论中提到的那样,现在无需任何额外的程序包就可以做到这一点,并在此处进行了说明。