mirror of
https://github.com/atom/atom.git
synced 2026-01-24 14:28:14 -05:00
Move snippet body parsing to web worker
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user