mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Extend GrammarRegistry in Syntax
This commit is contained in:
@@ -151,7 +151,7 @@ class AtomPackage extends Package
|
||||
@grammars = []
|
||||
grammarsDirPath = path.join(@path, 'grammars')
|
||||
for grammarPath in fs.listSync(grammarsDirPath, ['.json', '.cson'])
|
||||
@grammars.push(atom.syntax.registry.loadGrammarSync(grammarPath))
|
||||
@grammars.push(atom.syntax.loadGrammarSync(grammarPath))
|
||||
|
||||
loadScopedProperties: ->
|
||||
@scopedProperties = []
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
_ = require 'underscore-plus'
|
||||
{specificity} = require 'clear-cut'
|
||||
{Emitter, Subscriber} = require 'emissary'
|
||||
{Subscriber} = require 'emissary'
|
||||
FirstMate = require 'first-mate'
|
||||
TextMateScopeSelector = FirstMate.ScopeSelector
|
||||
TextMateGrammarRegistry = FirstMate.GrammarRegistry
|
||||
@@ -9,58 +9,24 @@ TextMateGrammarRegistry = FirstMate.GrammarRegistry
|
||||
|
||||
### Public ###
|
||||
module.exports =
|
||||
class Syntax
|
||||
Emitter.includeInto(this)
|
||||
class Syntax extends TextMateGrammarRegistry
|
||||
Subscriber.includeInto(this)
|
||||
|
||||
atom.deserializers.add(this)
|
||||
|
||||
@deserialize: ({grammarOverridesByPath}) ->
|
||||
syntax = new Syntax()
|
||||
syntax.registry.grammarOverridesByPath = grammarOverridesByPath
|
||||
syntax.grammarOverridesByPath = grammarOverridesByPath
|
||||
syntax
|
||||
|
||||
constructor: ->
|
||||
@registry = new TextMateGrammarRegistry()
|
||||
|
||||
#TODO Remove once packages have been updated
|
||||
@subscribe @registry, 'grammar-added', (grammar) =>
|
||||
@emit 'grammar-added', grammar
|
||||
@subscribe @registry, 'grammar-updated', (grammar) =>
|
||||
@emit 'grammar-updated', grammar
|
||||
@__defineGetter__ 'grammars', -> @registry.grammars
|
||||
@nullGrammar = @registry.nullGrammar
|
||||
super
|
||||
|
||||
@scopedPropertiesIndex = 0
|
||||
@scopedProperties = []
|
||||
|
||||
serialize: ->
|
||||
deserializer: @constructor.name
|
||||
grammarOverridesByPath: @registry.grammarOverridesByPath
|
||||
|
||||
addGrammar: (grammar) ->
|
||||
@registry.addGrammar(grammar)
|
||||
|
||||
removeGrammar: (grammar) ->
|
||||
@registry.removeGrammar(grammar)
|
||||
|
||||
setGrammarOverrideForPath: (path, scopeName) ->
|
||||
@registry.setGrammarOverrideForPath(path, scopeName)
|
||||
|
||||
clearGrammarOverrideForPath: (path) ->
|
||||
@registry.clearGrammarOverrideForPath(path)
|
||||
|
||||
clearGrammarOverrides: ->
|
||||
@registry.clearGrammarOverrides()
|
||||
|
||||
selectGrammar: (filePath, fileContents) ->
|
||||
@registry.selectGrammar(filePath, fileContents)
|
||||
|
||||
grammarOverrideForPath: (path) ->
|
||||
@grammarOverridesByPath[path]
|
||||
|
||||
grammarForScopeName: (scopeName) ->
|
||||
@registry.grammarForScopeName(scopeName)
|
||||
{deserializer: @constructor.name, @grammarOverridesByPath}
|
||||
|
||||
addProperties: (args...) ->
|
||||
name = args.shift() if args.length > 2
|
||||
|
||||
@@ -65,8 +65,7 @@ class TextMatePackage extends Package
|
||||
done()
|
||||
|
||||
loadGrammarAtPath: (grammarPath, done) =>
|
||||
atom.syntax.registry.readGrammar grammarPath, (error, grammar) =>
|
||||
console.log error, grammar
|
||||
atom.syntax.readGrammar grammarPath, (error, grammar) =>
|
||||
if error?
|
||||
console.log("Error loading grammar at path '#{grammarPath}':", error.stack ? error)
|
||||
else
|
||||
@@ -75,7 +74,7 @@ class TextMatePackage extends Package
|
||||
|
||||
loadGrammarsSync: ->
|
||||
for grammarPath in fs.listSync(@getSyntaxesPath(), @legalGrammarExtensions)
|
||||
@addGrammar(atom.syntax.registry.readGrammarSync(grammarPath))
|
||||
@addGrammar(atom.syntax.readGrammarSync(grammarPath))
|
||||
|
||||
addGrammar: (grammar) ->
|
||||
@grammars.push(grammar)
|
||||
|
||||
Reference in New Issue
Block a user