update modelist extension
This commit is contained in:
parent
635da1f2ea
commit
35563c5e84
7 changed files with 110 additions and 233 deletions
|
|
@ -451,7 +451,7 @@ event.addListener(container, "drop", function(e) {
|
||||||
if (window.FileReader) {
|
if (window.FileReader) {
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
reader.onload = function() {
|
reader.onload = function() {
|
||||||
var mode = modelist.getModeFromPath(file.name);
|
var mode = modelist.getModeForPath(file.name);
|
||||||
|
|
||||||
env.editor.session.doc.setValue(reader.result);
|
env.editor.session.doc.setValue(reader.result);
|
||||||
modeEl.value = mode.name;
|
modeEl.value = mode.name;
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ function initDoc(file, path, doc) {
|
||||||
session.setUseWrapMode(true);
|
session.setUseWrapMode(true);
|
||||||
session.setWrapLimitRange(80, 80);
|
session.setWrapLimitRange(80, 80);
|
||||||
}
|
}
|
||||||
var mode = modelist.getModeFromPath(path);
|
var mode = modelist.getModeForPath(path);
|
||||||
session.modeName = mode.name;
|
session.modeName = mode.name;
|
||||||
session.setMode(mode.mode);
|
session.setMode(mode.mode);
|
||||||
return session;
|
return session;
|
||||||
|
|
|
||||||
|
|
@ -1,138 +0,0 @@
|
||||||
define(function(require, exports, module) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/************** modes ***********************/
|
|
||||||
var modes = [];
|
|
||||||
function getModeFromPath(path) {
|
|
||||||
var mode = modesByName.text;
|
|
||||||
var fileName = path.split(/[\/\\]/).pop();
|
|
||||||
for (var i = 0; i < modes.length; i++) {
|
|
||||||
if (modes[i].supportsFile(fileName)) {
|
|
||||||
mode = modes[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
var Mode = function(name, desc, extensions) {
|
|
||||||
this.name = name;
|
|
||||||
this.desc = desc;
|
|
||||||
this.mode = "ace/mode/" + name;
|
|
||||||
if (/\^/.test(extensions)) {
|
|
||||||
var re = extensions.replace(/\|(\^)?/g, function(a, b){
|
|
||||||
return "$|" + (b ? "^" : "^.*\\.");
|
|
||||||
}) + "$";
|
|
||||||
} else {
|
|
||||||
var re = "^.*\\.(" + extensions + ")$";
|
|
||||||
}
|
|
||||||
|
|
||||||
this.extRe = new RegExp(re, "gi");
|
|
||||||
};
|
|
||||||
|
|
||||||
Mode.prototype.supportsFile = function(filename) {
|
|
||||||
return filename.match(this.extRe);
|
|
||||||
};
|
|
||||||
|
|
||||||
var modesByName = {
|
|
||||||
asciidoc: ["AsciiDoc" , "asciidoc"],
|
|
||||||
c9search: ["C9Search" , "c9search_results"],
|
|
||||||
coffee: ["CoffeeScript" , "^Cakefile|coffee|cf|cson"],
|
|
||||||
coldfusion: ["ColdFusion" , "cfm"],
|
|
||||||
csharp: ["C#" , "cs"],
|
|
||||||
css: ["CSS" , "css"],
|
|
||||||
curly: ["Curly" , "curly"],
|
|
||||||
dart: ["Dart" , "dart"],
|
|
||||||
diff: ["Diff" , "diff|patch"],
|
|
||||||
dot: ["Dot" , "dot"],
|
|
||||||
ftl: ["FreeMarker" , "ftl"],
|
|
||||||
glsl: ["Glsl" , "glsl|frag|vert"],
|
|
||||||
golang: ["Go" , "go"],
|
|
||||||
groovy: ["Groovy" , "groovy"],
|
|
||||||
haxe: ["haXe" , "hx"],
|
|
||||||
haml: ["HAML" , "haml"],
|
|
||||||
html: ["HTML" , "htm|html|xhtml"],
|
|
||||||
c_cpp: ["C/C++" , "c|cc|cpp|cxx|h|hh|hpp"],
|
|
||||||
clojure: ["Clojure" , "clj"],
|
|
||||||
jade: ["Jade" , "jade"],
|
|
||||||
java: ["Java" , "java"],
|
|
||||||
jsp: ["JSP" , "jsp"],
|
|
||||||
javascript: ["JavaScript" , "js"],
|
|
||||||
json: ["JSON" , "json"],
|
|
||||||
jsx: ["JSX" , "jsx"],
|
|
||||||
latex: ["LaTeX" , "latex|tex|ltx|bib"],
|
|
||||||
less: ["LESS" , "less"],
|
|
||||||
lisp: ["Lisp" , "lisp"],
|
|
||||||
scheme: ["Scheme" , "scm|rkt"],
|
|
||||||
liquid: ["Liquid" , "liquid"],
|
|
||||||
livescript: ["LiveScript" , "ls"],
|
|
||||||
logiql: ["LogiQL" , "logic|lql"],
|
|
||||||
lua: ["Lua" , "lua"],
|
|
||||||
luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates
|
|
||||||
lucene: ["Lucene" , "lucene"],
|
|
||||||
lsl: ["LSL" , "lsl"],
|
|
||||||
makefile: ["Makefile" , "^GNUmakefile|^makefile|^Makefile|^OCamlMakefile|make"],
|
|
||||||
markdown: ["Markdown" , "md|markdown"],
|
|
||||||
mushcode: ["TinyMUSH" , "mc|mush"],
|
|
||||||
objectivec: ["Objective-C" , "m"],
|
|
||||||
ocaml: ["OCaml" , "ml|mli"],
|
|
||||||
pascal: ["Pascal" , "pas|p"],
|
|
||||||
perl: ["Perl" , "pl|pm"],
|
|
||||||
pgsql: ["pgSQL" , "pgsql"],
|
|
||||||
php: ["PHP" , "php|phtml"],
|
|
||||||
powershell: ["Powershell" , "ps1"],
|
|
||||||
properties: ["Properties" , "properties"],
|
|
||||||
python: ["Python" , "py"],
|
|
||||||
r: ["R" , "r"],
|
|
||||||
rdoc: ["RDoc" , "Rd"],
|
|
||||||
rhtml: ["RHTML" , "Rhtml"],
|
|
||||||
ruby: ["Ruby" , "ru|gemspec|rake|rb"],
|
|
||||||
scad: ["OpenSCAD" , "scad"],
|
|
||||||
scala: ["Scala" , "scala"],
|
|
||||||
scss: ["SCSS" , "scss"],
|
|
||||||
sass: ["SASS" , "sass"],
|
|
||||||
sh: ["SH" , "sh|bash"],
|
|
||||||
sql: ["SQL" , "sql"],
|
|
||||||
stylus: ["Stylus" , "styl|stylus"],
|
|
||||||
svg: ["SVG" , "svg"],
|
|
||||||
tcl: ["Tcl" , "tcl"],
|
|
||||||
tex: ["Tex" , "tex"],
|
|
||||||
text: ["Text" , "txt"],
|
|
||||||
textile: ["Textile" , "textile"],
|
|
||||||
tmsnippet: ["tmSnippet" , "tmSnippet"],
|
|
||||||
toml: ["Toml" , "toml"],
|
|
||||||
typescript: ["Typescript" , "typescript|ts|str"],
|
|
||||||
vbscript: ["VBScript" , "vbs"],
|
|
||||||
velocity: ["Velocity" , "vm"],
|
|
||||||
xml: ["XML" , "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],
|
|
||||||
xquery: ["XQuery" , "xq"],
|
|
||||||
jsoniq: ["JSONiq" , "jq"],
|
|
||||||
yaml: ["YAML" , "yaml"],
|
|
||||||
|
|
||||||
abap: ["ABAP" , "abap"],
|
|
||||||
actionscript: ["ActionScript" ,"as"],
|
|
||||||
autohotkey: ["AutoHotKey" , "ahk"],
|
|
||||||
batch_file: ["BatchFile" , "bat|cmd"],
|
|
||||||
erlang: ["Erlang" ,"erl|hrl"],
|
|
||||||
forth: ["Forth", ,"frt|fs|ldr"],
|
|
||||||
haskell: ["Haskell", "hs"],
|
|
||||||
julia: ["Julia", "jl"],
|
|
||||||
prolog: ["Prolog", "plg|prolog"],
|
|
||||||
rust: ["Rust", "rs"]
|
|
||||||
};
|
|
||||||
|
|
||||||
for (var name in modesByName) {
|
|
||||||
var mode = modesByName[name];
|
|
||||||
mode = new Mode(name, mode[0], mode[1]);
|
|
||||||
modesByName[name] = mode;
|
|
||||||
modes.push(mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
getModeFromPath: getModeFromPath,
|
|
||||||
modes: modes,
|
|
||||||
modesByName: modesByName
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
@ -220,8 +220,8 @@ function elt(tag, attributes, content) {
|
||||||
function optgroup(values) {
|
function optgroup(values) {
|
||||||
return values.map(function(item) {
|
return values.map(function(item) {
|
||||||
if (typeof item == "string")
|
if (typeof item == "string")
|
||||||
item = {name: item, desc: item};
|
item = {name: item, caption: item};
|
||||||
return elt("option", {value: item.name}, item.desc);
|
return elt("option", {value: item.name}, item.caption || item.desc);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
define(function(require, exports, module) {
|
define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/************** modes ***********************/
|
|
||||||
/**
|
|
||||||
* An array containing information about rendering modes.
|
|
||||||
*/
|
|
||||||
var modes = [];
|
var modes = [];
|
||||||
/**
|
/**
|
||||||
* Suggests a mode based on the file extension present in the given path
|
* Suggests a mode based on the file extension present in the given path
|
||||||
|
|
@ -12,7 +8,7 @@ var modes = [];
|
||||||
* @returns {object} Returns an object containing information about the
|
* @returns {object} Returns an object containing information about the
|
||||||
* suggested mode.
|
* suggested mode.
|
||||||
*/
|
*/
|
||||||
function getModeFromPath(path) {
|
function getModeForPath(path) {
|
||||||
var mode = modesByName.text;
|
var mode = modesByName.text;
|
||||||
var fileName = path.split(/[\/\\]/).pop();
|
var fileName = path.split(/[\/\\]/).pop();
|
||||||
for (var i = 0; i < modes.length; i++) {
|
for (var i = 0; i < modes.length; i++) {
|
||||||
|
|
@ -24,10 +20,11 @@ function getModeFromPath(path) {
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
var Mode = function(name, desc, extensions) {
|
var Mode = function(name, caption, extensions) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.desc = desc;
|
this.caption = caption;
|
||||||
this.mode = "ace/mode/" + name;
|
this.mode = "ace/mode/" + name;
|
||||||
|
this.extensions = extensions;
|
||||||
if (/\^/.test(extensions)) {
|
if (/\^/.test(extensions)) {
|
||||||
var re = extensions.replace(/\|(\^)?/g, function(a, b){
|
var re = extensions.replace(/\|(\^)?/g, function(a, b){
|
||||||
return "$|" + (b ? "^" : "^.*\\.");
|
return "$|" + (b ? "^" : "^.*\\.");
|
||||||
|
|
@ -43,95 +40,113 @@ Mode.prototype.supportsFile = function(filename) {
|
||||||
return filename.match(this.extRe);
|
return filename.match(this.extRe);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
// todo firstlinematch
|
||||||
* An object containing properties that map to rendering modes. Each property
|
var supportedModes = {
|
||||||
* contains an array where element 0 is the name of the mode and element 1
|
ABAP: ["abap"],
|
||||||
* contains information about the file extensions where this mode is
|
ActionScript:["as"],
|
||||||
* applicable.
|
AsciiDoc: ["asciidoc"],
|
||||||
*/
|
AutoHotKey: ["ahk"],
|
||||||
var modesByName = {
|
BatchFile: ["bat|cmd"],
|
||||||
abap: ["ABAP" , "abap"],
|
C9Search: ["c9search_results"],
|
||||||
asciidoc: ["AsciiDoc" , "asciidoc"],
|
C_Cpp: ["c|cc|cpp|cxx|h|hh|hpp"],
|
||||||
c9search: ["C9Search" , "c9search_results"],
|
Clojure: ["clj"],
|
||||||
coffee: ["CoffeeScript" , "^Cakefile|coffee|cf|cson"],
|
coffee: ["^Cakefile|coffee|cf|cson"],
|
||||||
coldfusion: ["ColdFusion" , "cfm"],
|
ColdFusion: ["cfm"],
|
||||||
csharp: ["C#" , "cs"],
|
CSharp: ["cs"],
|
||||||
css: ["CSS" , "css"],
|
CSS: ["css"],
|
||||||
curly: ["Curly" , "curly"],
|
Curly: ["curly"],
|
||||||
dart: ["Dart" , "dart"],
|
Dart: ["dart"],
|
||||||
diff: ["Diff" , "diff|patch"],
|
Diff: ["diff|patch"],
|
||||||
dot: ["Dot" , "dot"],
|
Dot: ["dot"],
|
||||||
ftl: ["FreeMarker" , "ftl"],
|
Erlang: ["erl|hrl"],
|
||||||
glsl: ["Glsl" , "glsl|frag|vert"],
|
Forth: ["frt|fs|ldr"],
|
||||||
golang: ["Go" , "go"],
|
FreeMarker: ["ftl"],
|
||||||
groovy: ["Groovy" , "groovy"],
|
Glsl: ["glsl|frag|vert"],
|
||||||
haxe: ["haXe" , "hx"],
|
golang: ["go"],
|
||||||
haml: ["HAML" , "haml"],
|
Groovy: ["groovy"],
|
||||||
html: ["HTML" , "htm|html|xhtml"],
|
HAML: ["haml"],
|
||||||
c_cpp: ["C/C++" , "c|cc|cpp|cxx|h|hh|hpp"],
|
Haskell: ["hs"],
|
||||||
clojure: ["Clojure" , "clj"],
|
haXe: ["hx"],
|
||||||
jade: ["Jade" , "jade"],
|
HTML: ["htm|html|xhtml"],
|
||||||
java: ["Java" , "java"],
|
Ini: ["Ini|conf"],
|
||||||
jsp: ["JSP" , "jsp"],
|
Jade: ["jade"],
|
||||||
javascript: ["JavaScript" , "js"],
|
Java: ["java"],
|
||||||
json: ["JSON" , "json"],
|
JavaScript: ["js"],
|
||||||
jsx: ["JSX" , "jsx"],
|
JSON: ["json"],
|
||||||
latex: ["LaTeX" , "latex|tex|ltx|bib"],
|
JSONiq: ["jq"],
|
||||||
less: ["LESS" , "less"],
|
JSP: ["jsp"],
|
||||||
lisp: ["Lisp" , "lisp"],
|
JSX: ["jsx"],
|
||||||
scheme: ["Scheme" , "scm|rkt"],
|
Julia: ["jl"],
|
||||||
liquid: ["Liquid" , "liquid"],
|
LaTeX: ["latex|tex|ltx|bib"],
|
||||||
livescript: ["LiveScript" , "ls"],
|
LESS: ["less"],
|
||||||
logiql: ["LogiQL" , "logic|lql"],
|
Liquid: ["liquid"],
|
||||||
lua: ["Lua" , "lua"],
|
Lisp: ["lisp"],
|
||||||
luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates
|
LiveScript: ["ls"],
|
||||||
lucene: ["Lucene" , "lucene"],
|
LogiQL: ["logic|lql"],
|
||||||
lsl: ["LSL" , "lsl"],
|
LSL: ["lsl"],
|
||||||
makefile: ["Makefile" , "^GNUmakefile|^makefile|^Makefile|^OCamlMakefile|make"],
|
Lua: ["lua"],
|
||||||
markdown: ["Markdown" , "md|markdown"],
|
LuaPage: ["lp"],
|
||||||
mushcode: ["TinyMUSH" , "mc|mush"],
|
Lucene: ["lucene"],
|
||||||
objectivec: ["Objective-C" , "m"],
|
Makefile: ["^GNUmakefile|^makefile|^Makefile|^OCamlMakefile|make"],
|
||||||
ocaml: ["OCaml" , "ml|mli"],
|
Markdown: ["md|markdown"],
|
||||||
pascal: ["Pascal" , "pas|p"],
|
MUSHCode: ["mc|mush"],
|
||||||
perl: ["Perl" , "pl|pm"],
|
ObjectiveC: ["m"],
|
||||||
pgsql: ["pgSQL" , "pgsql"],
|
OCaml: ["ml|mli"],
|
||||||
php: ["PHP" , "php|phtml"],
|
Pascal: ["pas|p"],
|
||||||
powershell: ["Powershell" , "ps1"],
|
Perl: ["pl|pm"],
|
||||||
python: ["Python" , "py"],
|
pgSQL: ["pgsql"],
|
||||||
r: ["R" , "r"],
|
PHP: ["php|phtml"],
|
||||||
rdoc: ["RDoc" , "Rd"],
|
Powershell: ["ps1"],
|
||||||
rhtml: ["RHTML" , "Rhtml"],
|
Prolog: ["plg|prolog"],
|
||||||
ruby: ["Ruby" , "ru|gemspec|rake|rb"],
|
Properties: ["properties"],
|
||||||
scad: ["OpenSCAD" , "scad"],
|
Python: ["py"],
|
||||||
scala: ["Scala" , "scala"],
|
R: ["r"],
|
||||||
scss: ["SCSS" , "scss"],
|
RDoc: ["Rd"],
|
||||||
sass: ["SASS" , "sass"],
|
RHTML: ["Rhtml"],
|
||||||
sh: ["SH" , "sh|bash|bat"],
|
Ruby: ["ru|gemspec|rake|rb"],
|
||||||
sql: ["SQL" , "sql"],
|
Rust: ["rs"],
|
||||||
stylus: ["Stylus" , "styl|stylus"],
|
SASS: ["sass"],
|
||||||
svg: ["SVG" , "svg"],
|
SCAD: ["scad"],
|
||||||
tcl: ["Tcl" , "tcl"],
|
Scala: ["scala"],
|
||||||
tex: ["Tex" , "tex"],
|
Scheme: ["scm|rkt"],
|
||||||
text: ["Text" , "txt"],
|
SCSS: ["scss"],
|
||||||
textile: ["Textile" , "textile"],
|
SH: ["sh|bash"],
|
||||||
tmsnippet: ["tmSnippet" , "tmSnippet"],
|
snippets: ["snippets"],
|
||||||
toml: ["toml" , "toml"],
|
SQL: ["sql"],
|
||||||
typescript: ["Typescript" , "typescript|ts|str"],
|
Stylus: ["styl|stylus"],
|
||||||
vbscript: ["VBScript" , "vbs"],
|
SVG: ["svg"],
|
||||||
xml: ["XML" , "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],
|
Tcl: ["tcl"],
|
||||||
xquery: ["XQuery" , "xq"],
|
Tex: ["tex"],
|
||||||
yaml: ["YAML" , "yaml"]
|
Text: ["txt"],
|
||||||
|
Textile: ["textile"],
|
||||||
|
Toml: ["toml"],
|
||||||
|
Typescript: ["typescript|ts|str"],
|
||||||
|
VBScript: ["vbs"],
|
||||||
|
Velocity: ["vm"],
|
||||||
|
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],
|
||||||
|
XQuery: ["xq"],
|
||||||
|
YAML: ["yaml"]
|
||||||
};
|
};
|
||||||
|
|
||||||
for (var name in modesByName) {
|
var nameOverrides = {
|
||||||
var mode = modesByName[name];
|
ObjectiveC: "Objective-C",
|
||||||
mode = new Mode(name, mode[0], mode[1]);
|
CSharp: "C#",
|
||||||
modesByName[name] = mode;
|
golang: "Go",
|
||||||
|
C_Cpp: "C/C++",
|
||||||
|
coffee: "CoffeeScript"
|
||||||
|
};
|
||||||
|
var modesByName = {};
|
||||||
|
for (var name in supportedModes) {
|
||||||
|
var data = supportedModes[name];
|
||||||
|
var displayName = nameOverrides[name] || name;
|
||||||
|
var filename = name.toLowerCase();
|
||||||
|
mode = new Mode(filename, displayName, data[0]);
|
||||||
|
modesByName[filename] = mode;
|
||||||
modes.push(mode);
|
modes.push(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getModeFromPath: getModeFromPath,
|
getModeForPath: getModeForPath,
|
||||||
modes: modes,
|
modes: modes,
|
||||||
modesByName: modesByName
|
modesByName: modesByName
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ define(function(require, exports, module) {
|
||||||
var oop = require("../lib/oop");
|
var oop = require("../lib/oop");
|
||||||
var TextMode = require("./text").Mode;
|
var TextMode = require("./text").Mode;
|
||||||
var Tokenizer = require("../tokenizer").Tokenizer;
|
var Tokenizer = require("../tokenizer").Tokenizer;
|
||||||
var BatchFileHighlightRules = require("./batch_file_highlight_rules").BatchFileHighlightRules;
|
var BatchFileHighlightRules = require("./batchfile_highlight_rules").BatchFileHighlightRules;
|
||||||
var FoldMode = require("./folding/cstyle").FoldMode;
|
var FoldMode = require("./folding/cstyle").FoldMode;
|
||||||
|
|
||||||
var Mode = function() {
|
var Mode = function() {
|
||||||
Loading…
Add table
Add a link
Reference in a new issue