1
在Sublime Text 3中有一个名为ApplySyntax的程序包,可以根据文件内容设置语法高亮显示。这在Atom中如何实现?如何根据文件内容设置Atom语法?
在Sublime Text 3中有一个名为ApplySyntax的程序包,可以根据文件内容设置语法高亮显示。这在Atom中如何实现?如何根据文件内容设置Atom语法?
通过specs我注意到,凌不实际支持基于内容语法选择寻找:
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文件中的等价评论。
相关阅读:
在这种情况下,如果没有阅读链接,可以匹配的正则表达式可以比第一线其他内容规定? –
似乎没有任何固有的支持这样做,但是你可能能够创建一个正则表达式匹配大量的新行字符来查找firstLine + 1或更多的新行+你正在寻找的字符串 - 这就是可能还有其他一些问题。 –
这正是St3中可以实现的一个或多个正则表达式。如果一个或多个匹配(取决于配置),那么语法适用。令人惊叹的。 –