From bb5d62839788926792da5964f2e1e435576bbf84 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Jun 2014 15:59:26 -0700 Subject: [PATCH] Track packages to preload in Atom class --- src/atom.coffee | 13 +++++++++++++ src/tokenized-buffer.coffee | 10 ---------- src/window-event-handler.coffee | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/atom.coffee b/src/atom.coffee index 923e80549..6a209efd8 100644 --- a/src/atom.coffee +++ b/src/atom.coffee @@ -250,6 +250,13 @@ class Atom extends Model storeWindowDimensions: -> @state.windowDimensions = @getWindowDimensions() + storeGrammarsForOpenEditors: -> + packageNames = [] + for editor in @workspace.getEditors() + {packageName} = editor.getGrammar() + packageNames.push(packageName) if packageName + @state.packagesWithActiveGrammars = _.uniq(packageNames) + # Public: Get the load settings for the current window. # # Returns an object containing all the load setting key/value pairs. @@ -272,6 +279,11 @@ class Atom extends Model @packages.packageStates = @state.packageStates ? {} delete @state.packageStates + preloadGrammarsForOpenEditors: -> + packagesWithActiveGrammars = @state.packagesWithActiveGrammars ? [] + for packageName in packagesWithActiveGrammars + @packages.getLoadedPackage(packageName)?.loadGrammarsSync() + deserializeEditorWindow: -> @deserializePackageStates() @deserializeProject() @@ -293,6 +305,7 @@ class Atom extends Model @keymaps.loadBundledKeymaps() @themes.loadBaseStylesheets() @packages.loadPackages() + @preloadGrammarsForOpenEditors() @deserializeEditorWindow() @packages.activate() @keymaps.loadUserKeymap() diff --git a/src/tokenized-buffer.coffee b/src/tokenized-buffer.coffee index 7c0a66588..b41c0e530 100644 --- a/src/tokenized-buffer.coffee +++ b/src/tokenized-buffer.coffee @@ -47,18 +47,8 @@ class TokenizedBuffer extends Model @reloadGrammar() serializeParams: -> - packageNameForScope = (scope) -> - atom.packages.getPackageForGrammarScopeName(scopeName)?.name - - scopeName = @grammar.scopeName - packageName = packageNameForScope(@grammar.scopeName) - grammars = [{scopeName, packageName}] - for scopeName in @grammar.includedGrammarScopes - grammars.push {scopeName, packageName: packageNameForScope(scopeName)} - bufferPath: @buffer.getPath() tabLength: @tabLength - grammars: grammars deserializeParams: (params) -> if params.grammars? diff --git a/src/window-event-handler.coffee b/src/window-event-handler.coffee index 4e29717c1..aa9568324 100644 --- a/src/window-event-handler.coffee +++ b/src/window-event-handler.coffee @@ -42,6 +42,7 @@ class WindowEventHandler @subscribe $(window), 'unload', -> atom.storeWindowDimensions() + atom.storeGrammarsForOpenEditors() @subscribeToCommand $(window), 'window:toggle-full-screen', -> atom.toggleFullScreen()