Move snippet body parsing to web worker

This commit is contained in:
Kevin Sawicki
2013-01-24 17:10:48 -08:00
parent 5d10d6fb44
commit 5b541ccc2b
2 changed files with 11 additions and 6 deletions

View File

@@ -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)

View File

@@ -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')