如何在Atom文本编辑器中按filetype创建默认语法?

时间:2014-03-12 20:28:40

标签: atom-editor

我希望我的.ejs文件具有html语法,但是,它总是以纯文本形式打开文件。

在崇高中,您可以选择“打开所有当前扩展名为...”,然后选择您的语法。

sublime text3 syntax

我发现您可以更改左下角syntax change

中的语法

如何使用特定语法打开具有特定类型的文件?

6 个答案:

答案 0 :(得分:6)

简易模式:包括

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

创建一个名为langugage-ejs的软件包,在grammars/ejs.cson中,您可以将HTML包含为您关注的模式:

'fileTypes': [
  'ejs'
]

'name': 'Embedded JavaScript'

'patterns': [
  {
    'include': 'source.html'
  }
]

'scopeName': 'source.ejs'

language-ipynb肯定是通过扩展JSON来实现的。

我的模板标签怎么样?

实际上,您可以在HTML之上添加模板标签,以便编辑器识别。我能找到的最好的例子是erb (Embedded Ruby templates)。它来自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'
  }
]
...

答案 1 :(得分:5)

对于单个文件,您可以使用语法选择器; Ctrl + Shift + L 设置您在该文件上使用的语言。与自动检测不同,但在您使用不想为其设置默认值的文件时非常有用。

答案 2 :(得分:5)

编辑:自我撰写此答案以来,此功能已添加到Atom核心,有关详细信息,请参阅this answer

文件类型Atom包

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

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

答案 3 :(得分:3)

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

答案 4 :(得分:3)

例如,如果您要使用javascript语法打开所有kitchen verify个文件,则需要将其添加到UIKit

.jsx

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

答案 5 :(得分:2)

正如Dave Andersen在一篇埋藏的评论中提到的那样,现在可以在没有任何额外包裹的情况下做到这一点并且记录在案here