在Sublime Text 3中有一个名为ApplySyntax的包,它允许根据文件内容设置语法突出显示。怎么能在Atom中实现呢?
答案 0 :(得分:0)
查看specs我注意到Atom确实支持基于内容的语法选择:
it "uses the filePath's shebang line if the grammar cannot be determined by the extension or basename", ->
filePath = require.resolve("./fixtures/shebang")
expect(atom.grammars.selectGrammar(filePath).name).toBe "Ruby"
Atom的工作方式是根据文件路径和文件的内容计算语法分数。
更具体地说,就内容而言,每个语法都包含一个firstLineMatch
,它是一个正则表达式,用于查看第一行或几行,这些行有助于确定文件是否确实属于该语法,如果是Ruby这是:
'firstLineMatch': '^#!\\s*/.*\\bruby|^#\\s+-\\*-\\s*ruby\\s*-\\*-'
这会查找shebang或某些Ruby文件中的等效注释。
相关阅读: