From ea65c6386252359ea077bc7413c7efe26444ce32 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 24 Jan 2013 15:45:09 -0700 Subject: [PATCH] Translate TextMate snippets in the worker thread Might as well do as much work there as possible. --- .../snippets/src/load-snippets-handler.coffee | 17 +++++++++++++++-- .../snippets/src/load-snippets-task.coffee | 14 -------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/packages/snippets/src/load-snippets-handler.coffee b/src/packages/snippets/src/load-snippets-handler.coffee index 94bbdec92..ed66e8b11 100644 --- a/src/packages/snippets/src/load-snippets-handler.coffee +++ b/src/packages/snippets/src/load-snippets-handler.coffee @@ -1,11 +1,14 @@ fs = require 'fs' +TextMatePackage = require 'text-mate-package' module.exports = + snippetsLoaded: (snippets) -> callTaskMethod('snippetsLoaded', snippets) + loadTextmateSnippets: (path) -> snippetsDirPath = fs.join(path, 'Snippets') snippets = fs.list(snippetsDirPath).map (snippetPath) -> fs.readPlist(snippetPath) - @snippetsLoaded(snippets) + @snippetsLoaded(@translateTextmateSnippets(snippets)) loadAtomSnippets: (path) -> snippetsDirPath = fs.join(path, 'snippets') @@ -18,4 +21,14 @@ module.exports = console.warn "Error reading snippets file '#{snippetsPath}'" @snippetsLoaded(snippets) - snippetsLoaded: (snippets) -> callTaskMethod('snippetsLoaded', snippets) + translateTextmateSnippets: (tmSnippets) -> + atomSnippets = {} + for { scope, name, content, tabTrigger } in tmSnippets + if scope + scope = TextMatePackage.cssSelectorFromScopeSelector(scope) + else + scope = '*' + + snippetsForScope = (atomSnippets[scope] ?= {}) + snippetsForScope[name] = { prefix: tabTrigger, body: content } + [atomSnippets] diff --git a/src/packages/snippets/src/load-snippets-task.coffee b/src/packages/snippets/src/load-snippets-task.coffee index 459acc40f..8e277e456 100644 --- a/src/packages/snippets/src/load-snippets-task.coffee +++ b/src/packages/snippets/src/load-snippets-task.coffee @@ -24,19 +24,5 @@ class LoadSnippetsTask extends Task @callWorkerMethod(method, @packageBeingLoaded.path) snippetsLoaded: (snippets) -> - if @packageBeingLoaded instanceof TextMatePackage - snippets = @translateTextmateSnippets(snippets) @snippets.add(snippet) for snippet in snippets @loadNextPackageSnippets() - - translateTextmateSnippets: (tmSnippets) -> - atomSnippets = {} - for { scope, name, content, tabTrigger } in tmSnippets - if scope - scope = TextMatePackage.cssSelectorFromScopeSelector(scope) - else - scope = '*' - - snippetsForScope = (atomSnippets[scope] ?= {}) - snippetsForScope[name] = { prefix: tabTrigger, body: content } - [atomSnippets]