diff --git a/src/packages/snippets/index.coffee b/src/packages/snippets/index.coffee index 20502b22f..b55fec2aa 100644 --- a/src/packages/snippets/index.coffee +++ b/src/packages/snippets/index.coffee @@ -1,7 +1,5 @@ AtomPackage = require 'atom-package' fs = require 'fs' -PEG = require 'pegjs' -_ = require 'underscore' SnippetExpansion = require './src/snippet-expansion' Snippet = require './src/snippet' SnippetsTask = require './src/load-snippets-task' @@ -10,7 +8,6 @@ module.exports = class Snippets extends AtomPackage snippetsByExtension: {} - parser: PEG.buildParser(fs.read(require.resolve 'snippets/snippets.pegjs'), trackLineAndColumn: true) loaded: false activate: (@rootView) -> @@ -36,8 +33,7 @@ class Snippets extends AtomPackage for selector, snippetsByName of snippetsBySelector snippetsByPrefix = {} for name, attributes of snippetsByName - { prefix, body } = attributes - bodyTree = @parser.parse(body) + { prefix, body, bodyTree } = attributes snippet = new Snippet({name, prefix, bodyTree}) snippetsByPrefix[snippet.prefix] = snippet syntax.addProperties(selector, snippets: snippetsByPrefix) diff --git a/src/packages/snippets/src/load-snippets-handler.coffee b/src/packages/snippets/src/load-snippets-handler.coffee index de4fe2ec9..704b27de6 100644 --- a/src/packages/snippets/src/load-snippets-handler.coffee +++ b/src/packages/snippets/src/load-snippets-handler.coffee @@ -1,8 +1,17 @@ fs = require 'fs' TextMatePackage = require 'text-mate-package' +PEG = require 'pegjs' module.exports = - snippetsLoaded: (snippets) -> callTaskMethod('snippetsLoaded', snippets) + + parser: PEG.buildParser(fs.read(require.resolve 'snippets/snippets.pegjs'), trackLineAndColumn: true) + + snippetsLoaded: (snippets) -> + for snippet in snippets + for selector, snippetsByName of snippet + for name, attributes of snippetsByName + attributes.bodyTree = @parser.parse(attributes.body) + callTaskMethod('snippetsLoaded', snippets) loadTextmateSnippets: (path) -> snippetsDirPath = fs.join(path, 'Snippets')