如何在Atom文本编辑器中通过filetype创build默认语法?

我希望我的.ejs文件具有html语法,但是,它始终以纯文本forms打开文件。

在崇高,你可以select“打开所有与当前扩展为…”,然后select你的语法。

崇高的text3语法

我看到你可以改变左下angular的语法 语法改变

如何用特定的语法打开某种types的文件?

简单模式:包括

如果你的语言真的只是HTML,你可以设置一个简单的包来处理这个问题。

创build一个名为langugage-ejs的包,在grammars/ejs.cson您可以将HTML包含为您关心的模式:

 'fileTypes': [ 'ejs' ] 'name': 'Embedded JavaScript' 'patterns': [ { 'include': 'source.html' } ] 'scopeName': 'source.ejs' 

语言ipynb当然通过扩展JSON来做到这一点。

那么我的模板标签呢?

但事实上,你可以在HTML的顶部使用模板标签来使编辑器识别。 我能find的最好的例子是erb(embedded式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核心,你不需要那个文件types包。

在我工作的地方,我们使用.phl作为某种types的PHP文件。 为了告诉Atom这个,像这样编辑config.cson

 core: customFileTypes: "text.html.php": [ "phl" ] themes: [ // snip 

你可以在~/.atom/config.csonfind这个文件,或者在Settings窗口中点击“Open Config Folder”button。

很容易出错,正如人们在GitHub上针对该function所做的许多错误所certificate的那样。

编辑:自从我写这个答案的时候,这个function已经添加到Atom核心,看到这个答案的细节。

文件types的Atom包

https://atom.io/packages/file-types

它完全符合标题问题要求:您可以通过简单编辑config.cson文件来为现有语言定义新的文件扩展名。

对于单个文件,您可以使用语法select器; Ctrl + Shift + L来设置你在那个文件上使用哪种语言。 与自动检测不同,但在您使用不需要设置默认值的文件时有用。

看起来好像有一个全新的包已经发布了。 https://atom.io/packages/language-ejs

例如,如果要使用JavaScript语法打开所有.jsx文件,则需要将其添加到config.cson

 "*": core: customFileTypes: "source.js": [ "jsx" ] 

这将所有.jsx文件映射为使用js语法打开。

正如戴夫·安德森(Dave Andersen)在埋葬评论中提到的那样,现在可以在没有任何额外的软件包的情况下做到这一点, 这里logging下来 。