amis-rpc-design/node_modules/monaco-editor/esm/vs/basic-languages/fsharp/fsharp.js

214 lines
4.4 KiB
JavaScript
Raw Normal View History

2023-10-07 19:42:30 +08:00
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.43.0(94c055bcbdd49f04a0fa15515e848542a79fb948)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
// src/basic-languages/fsharp/fsharp.ts
var conf = {
comments: {
lineComment: "//",
blockComment: ["(*", "*)"]
},
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
],
folding: {
markers: {
start: new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),
end: new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")
}
}
};
var language = {
defaultToken: "",
tokenPostfix: ".fs",
keywords: [
"abstract",
"and",
"atomic",
"as",
"assert",
"asr",
"base",
"begin",
"break",
"checked",
"component",
"const",
"constraint",
"constructor",
"continue",
"class",
"default",
"delegate",
"do",
"done",
"downcast",
"downto",
"elif",
"else",
"end",
"exception",
"eager",
"event",
"external",
"extern",
"false",
"finally",
"for",
"fun",
"function",
"fixed",
"functor",
"global",
"if",
"in",
"include",
"inherit",
"inline",
"interface",
"internal",
"land",
"lor",
"lsl",
"lsr",
"lxor",
"lazy",
"let",
"match",
"member",
"mod",
"module",
"mutable",
"namespace",
"method",
"mixin",
"new",
"not",
"null",
"of",
"open",
"or",
"object",
"override",
"private",
"parallel",
"process",
"protected",
"pure",
"public",
"rec",
"return",
"static",
"sealed",
"struct",
"sig",
"then",
"to",
"true",
"tailcall",
"trait",
"try",
"type",
"upcast",
"use",
"val",
"void",
"virtual",
"volatile",
"when",
"while",
"with",
"yield"
],
symbols: /[=><!~?:&|+\-*\^%;\.,\/]+/,
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
integersuffix: /[uU]?[yslnLI]?/,
floatsuffix: /[fFmM]?/,
tokenizer: {
root: [
[
/[a-zA-Z_]\w*/,
{
cases: {
"@keywords": { token: "keyword.$0" },
"@default": "identifier"
}
}
],
{ include: "@whitespace" },
[/\[<.*>\]/, "annotation"],
[/^#(if|else|endif)/, "keyword"],
[/[{}()\[\]]/, "@brackets"],
[/[<>](?!@symbols)/, "@brackets"],
[/@symbols/, "delimiter"],
[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"],
[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"],
[/0x[0-9a-fA-F]+LF/, "number.float"],
[/0x[0-9a-fA-F]+(@integersuffix)/, "number.hex"],
[/0b[0-1]+(@integersuffix)/, "number.bin"],
[/\d+(@integersuffix)/, "number"],
[/[;,.]/, "delimiter"],
[/"([^"\\]|\\.)*$/, "string.invalid"],
[/"""/, "string", '@string."""'],
[/"/, "string", '@string."'],
[/\@"/, { token: "string.quote", next: "@litstring" }],
[/'[^\\']'B?/, "string"],
[/(')(@escapes)(')/, ["string", "string.escape", "string"]],
[/'/, "string.invalid"]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[/\(\*(?!\))/, "comment", "@comment"],
[/\/\/.*$/, "comment"]
],
comment: [
[/[^*(]+/, "comment"],
[/\*\)/, "comment", "@pop"],
[/\*/, "comment"],
[/\(\*\)/, "comment"],
[/\(/, "comment"]
],
string: [
[/[^\\"]+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[
/("""|"B?)/,
{
cases: {
"$#==$S2": { token: "string", next: "@pop" },
"@default": "string"
}
}
]
],
litstring: [
[/[^"]+/, "string"],
[/""/, "string.escape"],
[/"/, { token: "string.quote", next: "@pop" }]
]
}
};
export {
conf,
language
};