276 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			276 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
ace.define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){/**
 | 
						|
 * ## File mode detection utility
 | 
						|
 *
 | 
						|
 * Provides automatic detection of editor syntax modes based on file paths and extensions. Maps file extensions to
 | 
						|
 * appropriate Ace Editor syntax highlighting modes for over 100 programming languages and file formats including
 | 
						|
 * JavaScript, TypeScript, HTML, CSS, Python, Java, C++, and many others. Supports complex extension patterns and
 | 
						|
 * provides fallback mechanisms for unknown file types.
 | 
						|
 *
 | 
						|
 * @module
 | 
						|
 */
 | 
						|
"use strict";
 | 
						|
var modes = [];
 | 
						|
function getModeForPath(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 = /** @class */ (function () {
 | 
						|
    function Mode(name, caption, extensions) {
 | 
						|
        this.name = name;
 | 
						|
        this.caption = caption;
 | 
						|
        this.mode = "ace/mode/" + name;
 | 
						|
        this.extensions = extensions;
 | 
						|
        var re;
 | 
						|
        if (/\^/.test(extensions)) {
 | 
						|
            re = extensions.replace(/\|(\^)?/g, function (a, b) {
 | 
						|
                return "$|" + (b ? "^" : "^.*\\.");
 | 
						|
            }) + "$";
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            re = "\\.(" + extensions + ")$";
 | 
						|
        }
 | 
						|
        this.extRe = new RegExp(re, "gi");
 | 
						|
    }
 | 
						|
    Mode.prototype.supportsFile = function (filename) {
 | 
						|
        return filename.match(this.extRe);
 | 
						|
    };
 | 
						|
    return Mode;
 | 
						|
}());
 | 
						|
var supportedModes = {
 | 
						|
    ABAP: ["abap"],
 | 
						|
    ABC: ["abc"],
 | 
						|
    ActionScript: ["as"],
 | 
						|
    ADA: ["ada|adb"],
 | 
						|
    Alda: ["alda"],
 | 
						|
    Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
 | 
						|
    Apex: ["apex|cls|trigger|tgr"],
 | 
						|
    AQL: ["aql"],
 | 
						|
    AsciiDoc: ["asciidoc|adoc"],
 | 
						|
    ASL: ["dsl|asl|asl.json"],
 | 
						|
    Assembly_ARM32: ["s"],
 | 
						|
    Assembly_x86: ["asm|a"],
 | 
						|
    Astro: ["astro"],
 | 
						|
    AutoHotKey: ["ahk"],
 | 
						|
    Basic: ["bas|bak"],
 | 
						|
    BatchFile: ["bat|cmd"],
 | 
						|
    BibTeX: ["bib"],
 | 
						|
    C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
 | 
						|
    C9Search: ["c9search_results"],
 | 
						|
    Cirru: ["cirru|cr"],
 | 
						|
    Clojure: ["clj|cljs"],
 | 
						|
    Clue: ["clue"],
 | 
						|
    Cobol: ["CBL|COB"],
 | 
						|
    coffee: ["coffee|cf|cson|^Cakefile"],
 | 
						|
    ColdFusion: ["cfm|cfc"],
 | 
						|
    Crystal: ["cr"],
 | 
						|
    CSharp: ["cs"],
 | 
						|
    Csound_Document: ["csd"],
 | 
						|
    Csound_Orchestra: ["orc"],
 | 
						|
    Csound_Score: ["sco"],
 | 
						|
    CSS: ["css"],
 | 
						|
    CSV: ["csv"],
 | 
						|
    Curly: ["curly"],
 | 
						|
    Cuttlefish: ["conf"],
 | 
						|
    D: ["d|di"],
 | 
						|
    Dart: ["dart"],
 | 
						|
    Diff: ["diff|patch"],
 | 
						|
    Django: ["djt|html.djt|dj.html|djhtml"],
 | 
						|
    Dockerfile: ["^Dockerfile"],
 | 
						|
    Dot: ["dot"],
 | 
						|
    Drools: ["drl"],
 | 
						|
    Edifact: ["edi"],
 | 
						|
    Eiffel: ["e|ge"],
 | 
						|
    EJS: ["ejs"],
 | 
						|
    Elixir: ["ex|exs"],
 | 
						|
    Elm: ["elm"],
 | 
						|
    Erlang: ["erl|hrl"],
 | 
						|
    Flix: ["flix"],
 | 
						|
    Forth: ["frt|fs|ldr|fth|4th"],
 | 
						|
    Fortran: ["f|f90"],
 | 
						|
    FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
 | 
						|
    FSL: ["fsl"],
 | 
						|
    FTL: ["ftl"],
 | 
						|
    Gcode: ["gcode"],
 | 
						|
    Gherkin: ["feature"],
 | 
						|
    Gitignore: ["^.gitignore"],
 | 
						|
    Glsl: ["glsl|frag|vert"],
 | 
						|
    Gobstones: ["gbs"],
 | 
						|
    golang: ["go"],
 | 
						|
    GraphQLSchema: ["gql"],
 | 
						|
    Groovy: ["groovy"],
 | 
						|
    HAML: ["haml"],
 | 
						|
    Handlebars: ["hbs|handlebars|tpl|mustache"],
 | 
						|
    Haskell: ["hs"],
 | 
						|
    Haskell_Cabal: ["cabal"],
 | 
						|
    haXe: ["hx"],
 | 
						|
    Hjson: ["hjson"],
 | 
						|
    HTML: ["html|htm|xhtml|we|wpy"],
 | 
						|
    HTML_Elixir: ["eex|html.eex"],
 | 
						|
    HTML_Ruby: ["erb|rhtml|html.erb"],
 | 
						|
    INI: ["ini|conf|cfg|prefs"],
 | 
						|
    Io: ["io"],
 | 
						|
    Ion: ["ion"],
 | 
						|
    Jack: ["jack"],
 | 
						|
    Jade: ["jade|pug"],
 | 
						|
    Java: ["java"],
 | 
						|
    JavaScript: ["js|jsm|cjs|mjs"],
 | 
						|
    JEXL: ["jexl"],
 | 
						|
    JSON: ["json"],
 | 
						|
    JSON5: ["json5"],
 | 
						|
    JSONiq: ["jq"],
 | 
						|
    JSP: ["jsp"],
 | 
						|
    JSSM: ["jssm|jssm_state"],
 | 
						|
    JSX: ["jsx"],
 | 
						|
    Julia: ["jl"],
 | 
						|
    Kotlin: ["kt|kts"],
 | 
						|
    LaTeX: ["tex|latex|ltx|bib"],
 | 
						|
    Latte: ["latte"],
 | 
						|
    LESS: ["less"],
 | 
						|
    Liquid: ["liquid"],
 | 
						|
    Lisp: ["lisp"],
 | 
						|
    LiveScript: ["ls"],
 | 
						|
    Log: ["log"],
 | 
						|
    LogiQL: ["logic|lql"],
 | 
						|
    Logtalk: ["lgt"],
 | 
						|
    LSL: ["lsl"],
 | 
						|
    Lua: ["lua"],
 | 
						|
    LuaPage: ["lp"],
 | 
						|
    Lucene: ["lucene"],
 | 
						|
    Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
 | 
						|
    Markdown: ["md|markdown"],
 | 
						|
    Mask: ["mask"],
 | 
						|
    MATLAB: ["matlab"],
 | 
						|
    Maze: ["mz"],
 | 
						|
    MediaWiki: ["wiki|mediawiki"],
 | 
						|
    MEL: ["mel"],
 | 
						|
    MIPS: ["s|asm"],
 | 
						|
    MIXAL: ["mixal"],
 | 
						|
    MUSHCode: ["mc|mush"],
 | 
						|
    MySQL: ["mysql"],
 | 
						|
    Nasal: ["nas"],
 | 
						|
    Nginx: ["nginx|conf"],
 | 
						|
    Nim: ["nim"],
 | 
						|
    Nix: ["nix"],
 | 
						|
    NSIS: ["nsi|nsh"],
 | 
						|
    Nunjucks: ["nunjucks|nunjs|nj|njk"],
 | 
						|
    ObjectiveC: ["m|mm"],
 | 
						|
    OCaml: ["ml|mli"],
 | 
						|
    Odin: ["odin"],
 | 
						|
    PartiQL: ["partiql|pql"],
 | 
						|
    Pascal: ["pas|p"],
 | 
						|
    Perl: ["pl|pm"],
 | 
						|
    pgSQL: ["pgsql"],
 | 
						|
    PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
 | 
						|
    PHP_Laravel_blade: ["blade.php"],
 | 
						|
    Pig: ["pig"],
 | 
						|
    PLSQL: ["plsql"],
 | 
						|
    Powershell: ["ps1"],
 | 
						|
    Praat: ["praat|praatscript|psc|proc"],
 | 
						|
    Prisma: ["prisma"],
 | 
						|
    Prolog: ["plg|prolog"],
 | 
						|
    Properties: ["properties"],
 | 
						|
    Protobuf: ["proto"],
 | 
						|
    PRQL: ["prql"],
 | 
						|
    Puppet: ["epp|pp"],
 | 
						|
    Python: ["py"],
 | 
						|
    QML: ["qml"],
 | 
						|
    R: ["r"],
 | 
						|
    Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
 | 
						|
    Razor: ["cshtml|asp"],
 | 
						|
    RDoc: ["Rd"],
 | 
						|
    Red: ["red|reds"],
 | 
						|
    RHTML: ["Rhtml"],
 | 
						|
    Robot: ["robot|resource"],
 | 
						|
    RST: ["rst"],
 | 
						|
    Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
 | 
						|
    Rust: ["rs"],
 | 
						|
    SaC: ["sac"],
 | 
						|
    SASS: ["sass"],
 | 
						|
    SCAD: ["scad"],
 | 
						|
    Scala: ["scala|sbt"],
 | 
						|
    Scheme: ["scm|sm|rkt|oak|scheme"],
 | 
						|
    Scrypt: ["scrypt"],
 | 
						|
    SCSS: ["scss"],
 | 
						|
    SH: ["sh|bash|^.bashrc"],
 | 
						|
    SJS: ["sjs"],
 | 
						|
    Slim: ["slim|skim"],
 | 
						|
    Smarty: ["smarty|tpl"],
 | 
						|
    Smithy: ["smithy"],
 | 
						|
    snippets: ["snippets"],
 | 
						|
    Soy_Template: ["soy"],
 | 
						|
    Space: ["space"],
 | 
						|
    SPARQL: ["rq"],
 | 
						|
    SQL: ["sql"],
 | 
						|
    SQLServer: ["sqlserver"],
 | 
						|
    Stylus: ["styl|stylus"],
 | 
						|
    SVG: ["svg"],
 | 
						|
    Swift: ["swift"],
 | 
						|
    Tcl: ["tcl"],
 | 
						|
    Terraform: ["tf", "tfvars", "terragrunt"],
 | 
						|
    Tex: ["tex"],
 | 
						|
    Text: ["txt"],
 | 
						|
    Textile: ["textile"],
 | 
						|
    Toml: ["toml"],
 | 
						|
    TSV: ["tsv"],
 | 
						|
    TSX: ["tsx"],
 | 
						|
    Turtle: ["ttl"],
 | 
						|
    Twig: ["twig|swig"],
 | 
						|
    Typescript: ["ts|mts|cts|typescript|str"],
 | 
						|
    Vala: ["vala"],
 | 
						|
    VBScript: ["vbs|vb"],
 | 
						|
    Velocity: ["vm"],
 | 
						|
    Verilog: ["v|vh|sv|svh"],
 | 
						|
    VHDL: ["vhd|vhdl"],
 | 
						|
    Visualforce: ["vfp|component|page"],
 | 
						|
    Vue: ["vue"],
 | 
						|
    Wollok: ["wlk|wpgm|wtest"],
 | 
						|
    XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
 | 
						|
    XQuery: ["xq"],
 | 
						|
    YAML: ["yaml|yml"],
 | 
						|
    Zeek: ["zeek|bro"],
 | 
						|
    Zig: ["zig"]
 | 
						|
};
 | 
						|
var nameOverrides = {
 | 
						|
    ObjectiveC: "Objective-C",
 | 
						|
    CSharp: "C#",
 | 
						|
    golang: "Go",
 | 
						|
    C_Cpp: "C and C++",
 | 
						|
    Csound_Document: "Csound Document",
 | 
						|
    Csound_Orchestra: "Csound",
 | 
						|
    Csound_Score: "Csound Score",
 | 
						|
    coffee: "CoffeeScript",
 | 
						|
    HTML_Ruby: "HTML (Ruby)",
 | 
						|
    HTML_Elixir: "HTML (Elixir)",
 | 
						|
    FTL: "FreeMarker",
 | 
						|
    PHP_Laravel_blade: "PHP (Blade Template)",
 | 
						|
    Perl6: "Perl 6",
 | 
						|
    AutoHotKey: "AutoHotkey / AutoIt"
 | 
						|
};
 | 
						|
var modesByName = {};
 | 
						|
for (var name in supportedModes) {
 | 
						|
    var data = supportedModes[name];
 | 
						|
    var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
 | 
						|
    var filename = name.toLowerCase();
 | 
						|
    var mode = new Mode(filename, displayName, data[0]);
 | 
						|
    modesByName[filename] = mode;
 | 
						|
    modes.push(mode);
 | 
						|
}
 | 
						|
exports.getModeForPath = getModeForPath;
 | 
						|
exports.modes = modes;
 | 
						|
exports.modesByName = modesByName;
 | 
						|
 | 
						|
});                (function() {
 | 
						|
                    ace.require(["ace/ext/modelist"], function(m) {
 | 
						|
                        if (typeof module == "object" && typeof exports == "object" && module) {
 | 
						|
                            module.exports = m;
 | 
						|
                        }
 | 
						|
                    });
 | 
						|
                })();
 | 
						|
            
 |