2016-04-08 59 views

回答

0

通过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文件中的等价评论。

相关阅读:

+0

在这种情况下,如果没有阅读链接,可以匹配的正则表达式可以比第一线其他内容规定? –

+0

似乎没有任何固有的支持这样做,但是你可能能够创建一个正则表达式匹配大量的新行字符来查找firstLine + 1或更多的新行+你正在寻找的字符串 - 这就是可能还有其他一些问题。 –

+0

这正是St3中可以实现的一个或多个正则表达式。如果一个或多个匹配(取决于配置),那么语法适用。令人惊叹的。 –