monaco-editor
Version:
A browser based code editor
82 lines (79 loc) • 2.09 kB
JavaScript
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.46.0(21007360cad28648bdf46282a2592cb47c3a7a6f)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
// src/basic-languages/ini/ini.ts
var conf = {
comments: {
lineComment: "#"
},
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
]
};
var language = {
defaultToken: "",
tokenPostfix: ".ini",
// we include these common regular expressions
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
// The main tokenizer for our languages
tokenizer: {
root: [
// sections
[/^\[[^\]]*\]/, "metatag"],
// keys
[/(^\w+)(\s*)(\=)/, ["key", "", "delimiter"]],
// whitespace
{ include: "@whitespace" },
// numbers
[/\d+/, "number"],
// strings: recover on non-terminated strings
[/"([^"\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/'([^'\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, "string", '@string."'],
[/'/, "string", "@string.'"]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[/^\s*[#;].*$/, "comment"]
],
string: [
[/[^\\"']+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[
/["']/,
{
cases: {
"$#==$S2": { token: "string", next: "@pop" },
"@default": "string"
}
}
]
]
}
};
export {
conf,
language
};