From 5622295654bc60e026796de68d6748e577668a24 Mon Sep 17 00:00:00 2001 From: steliosrousoglou Date: Wed, 6 Jul 2016 21:42:38 +0000 Subject: [PATCH] editorTypes in editors.js --- plugins/c9.ide.editors/editors.js | 8 +++++++- plugins/c9.ide.editors/tabmanager.js | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/c9.ide.editors/editors.js b/plugins/c9.ide.editors/editors.js index 38c50e54..72b799e7 100644 --- a/plugins/c9.ide.editors/editors.js +++ b/plugins/c9.ide.editors/editors.js @@ -1,6 +1,6 @@ define(function(require, module, exports) { main.consumes = [ - "Plugin", "menus", "ui" + "Plugin", "menus", "ui", "settings" ]; main.provides = ["editors"]; return main; @@ -9,6 +9,7 @@ define(function(require, module, exports) { var ui = imports.ui; var Plugin = imports.Plugin; var menus = imports.menus; + var settings = imports.settings; var extname = require("path").extname; var basename = require("path").basename; @@ -69,6 +70,11 @@ define(function(require, module, exports) { function findEditorByFilename(fn) { var ext = extname(fn).substr(1).toLowerCase(); var filename = basename(fn).toLowerCase(); + + // Check custom user settings first for preferred editor + var customEditor = settings.get("user/tabs/editorTypes/@" + ext); + if (customEditor) return customEditor; + var editor = fileExtensions[fn] && fileExtensions[fn][0] || fileExtensions[filename] && fileExtensions[filename][0] || fileExtensions[ext] && fileExtensions[ext][0] diff --git a/plugins/c9.ide.editors/tabmanager.js b/plugins/c9.ide.editors/tabmanager.js index 51be0f0d..d51c5564 100644 --- a/plugins/c9.ide.editors/tabmanager.js +++ b/plugins/c9.ide.editors/tabmanager.js @@ -1078,6 +1078,12 @@ define(function(require, module, exports) { // options.document.filter = true; options.editorType = type; + // Don't proceed if findEditorByFilename returned "none" + if (editor === "none") { + alert("Can't open " + basename(path) + ": file format unsupported"); + return callback(new Error("File not supported")); + } + // Create the tab tab = createTab(options);