是否可以根据文件名而不是扩展名自定义Atom语言识别?

时间:2016-09-20 05:40:11

标签: syntax-highlighting atom-editor

我搜索了很多,但所有人都在谈论基于扩展的语言识别。我问这个是因为我们使用某个文件名用于某些目的,并且该文件的内容是用某种语言编写的,但是这个文件没有扩展名。

3 个答案:

答案 0 :(得分:1)

马特和德米特里的答案很有启发性,这就是我的所作所为: 首先,我阅读了Atom关于customizing-language-recognition的文档。最初我认为这只适用于文件扩展名,但实际上它也适用于文件名。

'*'
  core:
    customFileTypes:
      'source.python': [
        'my file's name'
      ]

完成。

答案 1 :(得分:0)

是的,这是完全可能的。

在您的语言包中,您很可能会有grammars/language.cson。在此cson中,您将拥有一个带有数组值的fileTypes键。

此数组中的值可以是扩展名或文件名。在这里查看ruby的示例:https://github.com/atom/language-ruby/blob/master/grammars/ruby.cson#L3

在该数组中,我们看到了rb(ruby脚本)和gemspec(ruby gemspec)等扩展。但是,我们还会看到完整的文件名,例如Gemfile(bundler),Puppetfile(r10k),Rakefile(rake)和Vagrantfile(vagrant)。

不看源代码,一个很好的猜测是Atom正在执行该数组中任何内容的匹配器与文件名的结尾,包括但不一定是扩展名。

答案 2 :(得分:0)

有一个插件file-types可将文件类型映射到新语言。您不仅可以基于文件扩展名,还可以基于文件名来执行此操作。请查看“RegExp Matchers”部分。