Prioritize first line matches over bundled/non bundled cirteria

This commit is contained in:
Indrek Ardel
2017-10-20 13:34:15 +03:00
parent 02b1338443
commit 0f89211d55
3 changed files with 5 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
'name': 'Test Ruby'
'scopeName': 'test.rb'
'firstLineMatch': '^\\#!.*(?:\\s|\\/)(?:testruby)(?:$|\\s)'
'fileTypes': [
'rb'
]

View File

@@ -120,6 +120,8 @@ describe "the `grammars` global", ->
atom.grammars.grammarForScopeName('source.ruby').bundledPackage = true
atom.grammars.grammarForScopeName('test.rb').bundledPackage = false
expect(atom.grammars.selectGrammar('test.rb', '#!/usr/bin/env ruby').scopeName).toBe 'source.ruby'
expect(atom.grammars.selectGrammar('test.rb', '#!/usr/bin/env testruby').scopeName).toBe 'test.rb'
expect(atom.grammars.selectGrammar('test.rb').scopeName).toBe 'test.rb'
describe "when there is no file path", ->

View File

@@ -58,10 +58,10 @@ class GrammarRegistry extends FirstMate.GrammarRegistry {
let score = this.getGrammarPathScore(grammar, filePath)
if ((score > 0) && !grammar.bundledPackage) {
score += 0.25
score += 0.125
}
if (this.grammarMatchesContents(grammar, contents)) {
score += 0.125
score += 0.25
}
return score
}