diff --git a/src/editor/CSSInlineEditor.js b/src/editor/CSSInlineEditor.js index bd3e10839b7..404c165a2ad 100644 --- a/src/editor/CSSInlineEditor.js +++ b/src/editor/CSSInlineEditor.js @@ -90,7 +90,7 @@ define(function (require, exports, module) { */ function htmlToCSSProvider(hostEditor, pos) { // Only provide a CSS editor when cursor is in HTML content - if (hostEditor.getModeForSelection() !== "html") { + if (hostEditor.getLanguageForSelection().getId() !== "html") { return null; } diff --git a/src/extensions/default/QuickOpenCSS/main.js b/src/extensions/default/QuickOpenCSS/main.js index e335535ed95..04d128272dc 100644 --- a/src/extensions/default/QuickOpenCSS/main.js +++ b/src/extensions/default/QuickOpenCSS/main.js @@ -116,7 +116,7 @@ define(function (require, exports, module) { QuickOpen.addQuickOpenPlugin( { name: "CSS Selectors", - fileTypes: ["css"], + languageIds: ["css"], done: function () {}, search: search, match: match, diff --git a/src/extensions/default/QuickOpenHTML/main.js b/src/extensions/default/QuickOpenHTML/main.js index 20440df69ab..974e35db1d3 100644 --- a/src/extensions/default/QuickOpenHTML/main.js +++ b/src/extensions/default/QuickOpenHTML/main.js @@ -149,7 +149,7 @@ define(function (require, exports, module) { QuickOpen.addQuickOpenPlugin( { name: "html ids", - fileTypes: ["html"], + languageIds: ["html"], done: function () {}, search: search, match: match, diff --git a/src/extensions/default/QuickOpenJavaScript/main.js b/src/extensions/default/QuickOpenJavaScript/main.js index 2f612b959f7..52f5f78fd42 100644 --- a/src/extensions/default/QuickOpenJavaScript/main.js +++ b/src/extensions/default/QuickOpenJavaScript/main.js @@ -143,7 +143,7 @@ define(function (require, exports, module) { QuickOpen.addQuickOpenPlugin( { name: "JavaScript functions", - fileTypes: ["js"], + languageIds: ["javascript"], done: function () {}, search: search, match: match, diff --git a/src/search/QuickOpen.js b/src/search/QuickOpen.js index c284ad22f9f..78f05a244ca 100644 --- a/src/search/QuickOpen.js +++ b/src/search/QuickOpen.js @@ -48,6 +48,7 @@ define(function (require, exports, module) { StringUtils = require("utils/StringUtils"), Commands = require("command/Commands"), ProjectManager = require("project/ProjectManager"), + LanguageManager = require("language/LanguageManager"), KeyEvent = require("utils/KeyEvent"), ModalBar = require("widgets/ModalBar").ModalBar, StringMatch = require("utils/StringMatch"); @@ -97,9 +98,9 @@ define(function (require, exports, module) { /** * Defines API for new QuickOpen plug-ins */ - function QuickOpenPlugin(name, fileTypes, done, search, match, itemFocus, itemSelect, resultsFormatter) { + function QuickOpenPlugin(name, languageIds, done, search, match, itemFocus, itemSelect, resultsFormatter) { this.name = name; - this.fileTypes = fileTypes; + this.languageIds = languageIds; this.done = done; this.search = search; this.match = match; @@ -112,7 +113,7 @@ define(function (require, exports, module) { * Creates and registers a new QuickOpenPlugin * * @param { name: string, - * fileTypes:Array., + * languageIds:Array., * done: function(), * search: function(string, !StringMatch.StringMatcher):Array., * match: function(string):boolean, @@ -124,8 +125,8 @@ define(function (require, exports, module) { * Parameter Documentation: * * name - plug-in name, **must be unique** - * fileTypes - file types array. Example: ["js", "css", "txt"]. An empty array - * indicates all file types. + * languageIds - language Ids array. Example: ["javascript", "css", "html"]. An empty array + * indicates all language IDs. * done - called when quick open is complete. Plug-in should clear its internal state. * search - takes a query string and a StringMatcher (the use of which is optional but can speed up your searches) and returns an array of strings that match the query. * match - takes a query string and returns true if this plug-in wants to provide @@ -141,9 +142,17 @@ define(function (require, exports, module) { * cancels Quick Open (via Esc), those changes are automatically reverted. */ function addQuickOpenPlugin(pluginDef) { + if (pluginDef.fileTypes) { + console.warn("Using fileTypes for QuickOpen plugins is deprecated. Use languageIds instead."); + pluginDef.languageIds = pluginDef.fileTypes.map(function (extension) { + return LanguageManager.getLanguageForPath("file." + extension).getId(); + }); + delete pluginDef.fileTypes; + } + plugins.push(new QuickOpenPlugin( pluginDef.name, - pluginDef.fileTypes, + pluginDef.languageIds, pluginDef.done, pluginDef.search, pluginDef.match, @@ -529,14 +538,13 @@ define(function (require, exports, module) { // Try to invoke a search plugin var curDoc = DocumentManager.getCurrentDocument(); if (curDoc) { - var filename = _filenameFromPath(curDoc.file.fullPath, true); - var extension = filename.slice(filename.lastIndexOf(".") + 1, filename.length); + var languageId = curDoc.getLanguage().getId(); var i; for (i = 0; i < plugins.length; i++) { var plugin = plugins[i]; - var extensionMatch = plugin.fileTypes.indexOf(extension) !== -1 || plugin.fileTypes.length === 0; - if (extensionMatch && plugin.match && plugin.match(query)) { + var LanguageIdMatch = plugin.languageIds.indexOf(languageId) !== -1 || plugin.languageIds.length === 0; + if (LanguageIdMatch && plugin.match && plugin.match(query)) { currentPlugin = plugin; // Look up the StringMatcher for this plugin.