From fa376d9543026ee1d934644ba7e3b56b341f45a5 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 17 Feb 2014 11:26:58 -0800 Subject: [PATCH] Remove TextMatePackage --- src/package.coffee | 20 +++--- src/text-mate-package.coffee | 135 ----------------------------------- 2 files changed, 8 insertions(+), 147 deletions(-) delete mode 100644 src/text-mate-package.coffee diff --git a/src/package.coffee b/src/package.coffee index 7618e80c5..6683872b1 100644 --- a/src/package.coffee +++ b/src/package.coffee @@ -4,21 +4,17 @@ CSON = require 'season' module.exports = class Package @build: (path) -> - TextMatePackage = require './text-mate-package' AtomPackage = require './atom-package' ThemePackage = require './theme-package' - if TextMatePackage.testName(path) - pack = new TextMatePackage(path) - else - try - metadata = @loadMetadata(path) - if metadata.theme - pack = new ThemePackage(path, {metadata}) - else - pack = new AtomPackage(path, {metadata}) - catch e - console.warn "Failed to load package.json '#{basename(path)}'", e.stack ? e + try + metadata = @loadMetadata(path) + if metadata.theme + pack = new ThemePackage(path, {metadata}) + else + pack = new AtomPackage(path, {metadata}) + catch e + console.warn "Failed to load package.json '#{basename(path)}'", e.stack ? e pack diff --git a/src/text-mate-package.coffee b/src/text-mate-package.coffee deleted file mode 100644 index 92bb98bab..000000000 --- a/src/text-mate-package.coffee +++ /dev/null @@ -1,135 +0,0 @@ -Package = require './package' -path = require 'path' -_ = require 'underscore-plus' -fs = require 'fs-plus' -Q = require 'q' - -module.exports = -class TextMatePackage extends Package - @testName: (packageName) -> - packageName = path.basename(packageName) - /(^language-.+)|((\.|_|-)tmbundle$)/.test(packageName) - - @addToActivationPromise = (pack) -> - @activationPromise ?= Q() - @activationPromise = @activationPromise.then => - pack.loadGrammars() - .then -> pack.loadScopedProperties() - .fail (error) -> console.log pack.name, error.stack ? error - - constructor: -> - super - @grammars = [] - @scopedProperties = [] - @metadata = {@name} - - getType: -> 'textmate' - - load: -> - @measure 'loadTime', => - @metadata = Package.loadMetadata(@path, true) - - activate: -> - @measure 'activateTime', => - TextMatePackage.addToActivationPromise(this) - - activateConfig: -> # noop - - deactivate: -> - grammar.deactivate() for grammar in @grammars - atom.syntax.removeProperties(@path) - - loadGrammars: -> - deferred = Q.defer() - fs.isDirectory @getSyntaxesPath(), (isDirectory) => - return deferred.resolve() unless isDirectory - - fs.list @getSyntaxesPath(), ['json', 'cson'], (error, paths) => - if error? - console.log("Error loading grammars of TextMate package '#{@path}':", error.stack, error) - deferred.resolve() - else - promises = paths.map (path) => @loadGrammarAtPath(path) - Q.all(promises).then -> deferred.resolve() - - deferred.promise - - loadGrammarAtPath: (grammarPath) -> - deferred = Q.defer() - atom.syntax.readGrammar grammarPath, (error, grammar) => - if error? - console.log("Error loading grammar at path '#{grammarPath}':", error.stack ? error) - else - @addGrammar(grammar) - deferred.resolve() - - deferred.promise - - addGrammar: (grammar) -> - @grammars.push(grammar) - grammar.activate() - - getGrammars: -> @grammars - - getSyntaxesPath: -> - path.join(@path, "syntaxes") - - getPreferencesPath: -> - path.join(@path, "preferences") - - loadScopedProperties: -> - scopedProperties = [] - - for grammar in @getGrammars() - if properties = @propertiesFromTextMateSettings(grammar) - selector = atom.syntax.cssSelectorFromScopeSelector(grammar.scopeName) - scopedProperties.push({selector, properties}) - - @loadTextMatePreferenceObjects().then (preferenceObjects=[]) => - for {scope, settings} in preferenceObjects - if properties = @propertiesFromTextMateSettings(settings) - selector = atom.syntax.cssSelectorFromScopeSelector(scope) if scope? - scopedProperties.push({selector, properties}) - - @scopedProperties = scopedProperties - for {selector, properties} in @scopedProperties - atom.syntax.addProperties(@path, selector, properties) - - loadTextMatePreferenceObjects: -> - deferred = Q.defer() - fs.isDirectory @getPreferencesPath(), (isDirectory) => - return deferred.resolve() unless isDirectory - fs.list @getPreferencesPath(), (error, paths) => - if error? - console.log("Error loading preferences of TextMate package '#{@path}':", error.stack, error) - deferred.resolve() - else - promises = paths.map (path) => @loadPreferencesAtPath(path) - Q.all(promises).then (preferenceObjects) -> deferred.resolve(preferenceObjects) - - deferred.promise - - loadPreferencesAtPath: (preferencePath) -> - deferred = Q.defer() - fs.readObject preferencePath, (error, preference) -> - if error? - console.warn("Failed to parse preference at path '#{preferencePath}'", error.stack, error) - deferred.resolve(preference) - deferred.promise - - propertiesFromTextMateSettings: (textMateSettings) -> - if textMateSettings.shellVariables - shellVariables = {} - for {name, value} in textMateSettings.shellVariables - shellVariables[name] = value - textMateSettings.shellVariables = shellVariables - - editorProperties = _.compactObject( - commentStart: _.valueForKeyPath(textMateSettings, 'shellVariables.TM_COMMENT_START') - commentEnd: _.valueForKeyPath(textMateSettings, 'shellVariables.TM_COMMENT_END') - increaseIndentPattern: textMateSettings.increaseIndentPattern - decreaseIndentPattern: textMateSettings.decreaseIndentPattern - foldEndPattern: textMateSettings.foldingStopMarker - completions: textMateSettings.completions - ) - { editor: editorProperties } if _.size(editorProperties) > 0