define(function(require, exports, module) { "use strict"; /************** modes ***********************/ var modes = []; function getModeFromPath(path) { var mode = modesByName.text; for (var i = 0; i < modes.length; i++) { if (modes[i].supportsFile(path)) { mode = modes[i]; break; } } return mode; } var Mode = function(name, desc, extensions) { this.name = name; this.desc = desc; this.mode = "ace/mode/" + name; this.extRe = new RegExp("^.*\\.(" + extensions + ")$", "g"); }; Mode.prototype.supportsFile = function(filename) { return filename.match(this.extRe); }; var modesByName = { asciidoc: ["AsciiDoc" , "asciidoc"], c9search: ["C9Search" , "c9search_results"], coffee: ["CoffeeScript" , "coffee|^Cakefile"], coldfusion: ["ColdFusion" , "cfm"], csharp: ["C#" , "cs"], css: ["CSS" , "css"], diff: ["Diff" , "diff|patch"], glsl: ["Glsl" , "glsl|frag|vert"], golang: ["Go" , "go"], groovy: ["Groovy" , "groovy"], haxe: ["haXe" , "hx"], 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"], liquid: ["Liquid" , "liquid"], lua: ["Lua" , "lua"], luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates markdown: ["Markdown" , "md|markdown"], ocaml: ["OCaml" , "ml|mli"], perl: ["Perl" , "pl|pm"], pgsql: ["pgSQL" , "pgsql"], php: ["PHP" , "php|phtml"], powershell: ["Powershell" , "ps1"], python: ["Python" , "py"], ruby: ["Ruby" , "ru|gemspec|rake|rb"], scad: ["OpenSCAD" , "scad"], scala: ["Scala" , "scala"], scss: ["SCSS" , "scss|sass"], sh: ["SH" , "sh|bash|bat"], sql: ["SQL" , "sql"], svg: ["SVG" , "svg"], tcl: ["Tcl" , "tcl"], text: ["Text" , "txt"], textile: ["Textile" , "textile"], typescript: ["Typescript" , "typescript|ts|str"], xml: ["XML" , "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"], xquery: ["XQuery" , "xq"], yaml: ["YAML" , "yaml"] }; 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 }; });