500 lines
10 KiB
JavaScript
500 lines
10 KiB
JavaScript
|
/*!-----------------------------------------------------------------------------
|
|||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|||
|
* Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8)
|
|||
|
* Released under the MIT license
|
|||
|
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
|||
|
*-----------------------------------------------------------------------------*/
|
|||
|
|
|||
|
// src/basic-languages/julia/julia.ts
|
|||
|
var conf = {
|
|||
|
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 = {
|
|||
|
tokenPostfix: ".julia",
|
|||
|
keywords: [
|
|||
|
"begin",
|
|||
|
"while",
|
|||
|
"if",
|
|||
|
"for",
|
|||
|
"try",
|
|||
|
"return",
|
|||
|
"break",
|
|||
|
"continue",
|
|||
|
"function",
|
|||
|
"macro",
|
|||
|
"quote",
|
|||
|
"let",
|
|||
|
"local",
|
|||
|
"global",
|
|||
|
"const",
|
|||
|
"do",
|
|||
|
"struct",
|
|||
|
"module",
|
|||
|
"baremodule",
|
|||
|
"using",
|
|||
|
"import",
|
|||
|
"export",
|
|||
|
"end",
|
|||
|
"else",
|
|||
|
"elseif",
|
|||
|
"catch",
|
|||
|
"finally",
|
|||
|
"mutable",
|
|||
|
"primitive",
|
|||
|
"abstract",
|
|||
|
"type",
|
|||
|
"in",
|
|||
|
"isa",
|
|||
|
"where",
|
|||
|
"new"
|
|||
|
],
|
|||
|
types: [
|
|||
|
"LinRange",
|
|||
|
"LineNumberNode",
|
|||
|
"LinearIndices",
|
|||
|
"LoadError",
|
|||
|
"MIME",
|
|||
|
"Matrix",
|
|||
|
"Method",
|
|||
|
"MethodError",
|
|||
|
"Missing",
|
|||
|
"MissingException",
|
|||
|
"Module",
|
|||
|
"NTuple",
|
|||
|
"NamedTuple",
|
|||
|
"Nothing",
|
|||
|
"Number",
|
|||
|
"OrdinalRange",
|
|||
|
"OutOfMemoryError",
|
|||
|
"OverflowError",
|
|||
|
"Pair",
|
|||
|
"PartialQuickSort",
|
|||
|
"PermutedDimsArray",
|
|||
|
"Pipe",
|
|||
|
"Ptr",
|
|||
|
"QuoteNode",
|
|||
|
"Rational",
|
|||
|
"RawFD",
|
|||
|
"ReadOnlyMemoryError",
|
|||
|
"Real",
|
|||
|
"ReentrantLock",
|
|||
|
"Ref",
|
|||
|
"Regex",
|
|||
|
"RegexMatch",
|
|||
|
"RoundingMode",
|
|||
|
"SegmentationFault",
|
|||
|
"Set",
|
|||
|
"Signed",
|
|||
|
"Some",
|
|||
|
"StackOverflowError",
|
|||
|
"StepRange",
|
|||
|
"StepRangeLen",
|
|||
|
"StridedArray",
|
|||
|
"StridedMatrix",
|
|||
|
"StridedVecOrMat",
|
|||
|
"StridedVector",
|
|||
|
"String",
|
|||
|
"StringIndexError",
|
|||
|
"SubArray",
|
|||
|
"SubString",
|
|||
|
"SubstitutionString",
|
|||
|
"Symbol",
|
|||
|
"SystemError",
|
|||
|
"Task",
|
|||
|
"Text",
|
|||
|
"TextDisplay",
|
|||
|
"Timer",
|
|||
|
"Tuple",
|
|||
|
"Type",
|
|||
|
"TypeError",
|
|||
|
"TypeVar",
|
|||
|
"UInt",
|
|||
|
"UInt128",
|
|||
|
"UInt16",
|
|||
|
"UInt32",
|
|||
|
"UInt64",
|
|||
|
"UInt8",
|
|||
|
"UndefInitializer",
|
|||
|
"AbstractArray",
|
|||
|
"UndefKeywordError",
|
|||
|
"AbstractChannel",
|
|||
|
"UndefRefError",
|
|||
|
"AbstractChar",
|
|||
|
"UndefVarError",
|
|||
|
"AbstractDict",
|
|||
|
"Union",
|
|||
|
"AbstractDisplay",
|
|||
|
"UnionAll",
|
|||
|
"AbstractFloat",
|
|||
|
"UnitRange",
|
|||
|
"AbstractIrrational",
|
|||
|
"Unsigned",
|
|||
|
"AbstractMatrix",
|
|||
|
"AbstractRange",
|
|||
|
"Val",
|
|||
|
"AbstractSet",
|
|||
|
"Vararg",
|
|||
|
"AbstractString",
|
|||
|
"VecElement",
|
|||
|
"AbstractUnitRange",
|
|||
|
"VecOrMat",
|
|||
|
"AbstractVecOrMat",
|
|||
|
"Vector",
|
|||
|
"AbstractVector",
|
|||
|
"VersionNumber",
|
|||
|
"Any",
|
|||
|
"WeakKeyDict",
|
|||
|
"ArgumentError",
|
|||
|
"WeakRef",
|
|||
|
"Array",
|
|||
|
"AssertionError",
|
|||
|
"BigFloat",
|
|||
|
"BigInt",
|
|||
|
"BitArray",
|
|||
|
"BitMatrix",
|
|||
|
"BitSet",
|
|||
|
"BitVector",
|
|||
|
"Bool",
|
|||
|
"BoundsError",
|
|||
|
"CapturedException",
|
|||
|
"CartesianIndex",
|
|||
|
"CartesianIndices",
|
|||
|
"Cchar",
|
|||
|
"Cdouble",
|
|||
|
"Cfloat",
|
|||
|
"Channel",
|
|||
|
"Char",
|
|||
|
"Cint",
|
|||
|
"Cintmax_t",
|
|||
|
"Clong",
|
|||
|
"Clonglong",
|
|||
|
"Cmd",
|
|||
|
"Colon",
|
|||
|
"Complex",
|
|||
|
"ComplexF16",
|
|||
|
"ComplexF32",
|
|||
|
"ComplexF64",
|
|||
|
"CompositeException",
|
|||
|
"Condition",
|
|||
|
"Cptrdiff_t",
|
|||
|
"Cshort",
|
|||
|
"Csize_t",
|
|||
|
"Cssize_t",
|
|||
|
"Cstring",
|
|||
|
"Cuchar",
|
|||
|
"Cuint",
|
|||
|
"Cuintmax_t",
|
|||
|
"Culong",
|
|||
|
"Culonglong",
|
|||
|
"Cushort",
|
|||
|
"Cvoid",
|
|||
|
"Cwchar_t",
|
|||
|
"Cwstring",
|
|||
|
"DataType",
|
|||
|
"DenseArray",
|
|||
|
"DenseMatrix",
|
|||
|
"DenseVecOrMat",
|
|||
|
"DenseVector",
|
|||
|
"Dict",
|
|||
|
"DimensionMismatch",
|
|||
|
"Dims",
|
|||
|
"DivideError",
|
|||
|
"DomainError",
|
|||
|
"EOFError",
|
|||
|
"Enum",
|
|||
|
"ErrorException",
|
|||
|
"Exception",
|
|||
|
"ExponentialBackOff",
|
|||
|
"Expr",
|
|||
|
"Float16",
|
|||
|
"Float32",
|
|||
|
"Float64",
|
|||
|
"Function",
|
|||
|
"GlobalRef",
|
|||
|
"HTML",
|
|||
|
"IO",
|
|||
|
"IOBuffer",
|
|||
|
"IOContext",
|
|||
|
"IOStream",
|
|||
|
"IdDict",
|
|||
|
"IndexCartesian",
|
|||
|
"IndexLinear",
|
|||
|
"IndexStyle",
|
|||
|
"InexactError",
|
|||
|
"InitError",
|
|||
|
"Int",
|
|||
|
"Int128",
|
|||
|
"Int16",
|
|||
|
"Int32",
|
|||
|
"Int64",
|
|||
|
"Int8",
|
|||
|
"Integer",
|
|||
|
"InterruptException",
|
|||
|
"InvalidStateException",
|
|||
|
"Irrational",
|
|||
|
"KeyError"
|
|||
|
],
|
|||
|
keywordops: ["<:", ">:", ":", "=>", "...", ".", "->", "?"],
|
|||
|
allops: /[^\w\d\s()\[\]{}"'#]+/,
|
|||
|
constants: [
|
|||
|
"true",
|
|||
|
"false",
|
|||
|
"nothing",
|
|||
|
"missing",
|
|||
|
"undef",
|
|||
|
"Inf",
|
|||
|
"pi",
|
|||
|
"NaN",
|
|||
|
"\u03C0",
|
|||
|
"\u212F",
|
|||
|
"ans",
|
|||
|
"PROGRAM_FILE",
|
|||
|
"ARGS",
|
|||
|
"C_NULL",
|
|||
|
"VERSION",
|
|||
|
"DEPOT_PATH",
|
|||
|
"LOAD_PATH"
|
|||
|
],
|
|||
|
operators: [
|
|||
|
"!",
|
|||
|
"!=",
|
|||
|
"!==",
|
|||
|
"%",
|
|||
|
"&",
|
|||
|
"*",
|
|||
|
"+",
|
|||
|
"-",
|
|||
|
"/",
|
|||
|
"//",
|
|||
|
"<",
|
|||
|
"<<",
|
|||
|
"<=",
|
|||
|
"==",
|
|||
|
"===",
|
|||
|
"=>",
|
|||
|
">",
|
|||
|
">=",
|
|||
|
">>",
|
|||
|
">>>",
|
|||
|
"\\",
|
|||
|
"^",
|
|||
|
"|",
|
|||
|
"|>",
|
|||
|
"~",
|
|||
|
"\xF7",
|
|||
|
"\u2208",
|
|||
|
"\u2209",
|
|||
|
"\u220B",
|
|||
|
"\u220C",
|
|||
|
"\u2218",
|
|||
|
"\u221A",
|
|||
|
"\u221B",
|
|||
|
"\u2229",
|
|||
|
"\u222A",
|
|||
|
"\u2248",
|
|||
|
"\u2249",
|
|||
|
"\u2260",
|
|||
|
"\u2261",
|
|||
|
"\u2262",
|
|||
|
"\u2264",
|
|||
|
"\u2265",
|
|||
|
"\u2286",
|
|||
|
"\u2287",
|
|||
|
"\u2288",
|
|||
|
"\u2289",
|
|||
|
"\u228A",
|
|||
|
"\u228B",
|
|||
|
"\u22BB"
|
|||
|
],
|
|||
|
brackets: [
|
|||
|
{ open: "(", close: ")", token: "delimiter.parenthesis" },
|
|||
|
{ open: "{", close: "}", token: "delimiter.curly" },
|
|||
|
{ open: "[", close: "]", token: "delimiter.square" }
|
|||
|
],
|
|||
|
ident: /π|ℯ|\b(?!\d)\w+\b/,
|
|||
|
escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,
|
|||
|
escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,
|
|||
|
tokenizer: {
|
|||
|
root: [
|
|||
|
[/(::)\s*|\b(isa)\s+/, "keyword", "@typeanno"],
|
|||
|
[/\b(isa)(\s*\(@ident\s*,\s*)/, ["keyword", { token: "", next: "@typeanno" }]],
|
|||
|
[/\b(type|struct)[ \t]+/, "keyword", "@typeanno"],
|
|||
|
[/^\s*:@ident[!?]?/, "metatag"],
|
|||
|
[/(return)(\s*:@ident[!?]?)/, ["keyword", "metatag"]],
|
|||
|
[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/, ["", "metatag"]],
|
|||
|
[/:\(/, "metatag", "@quote"],
|
|||
|
[/r"""/, "regexp.delim", "@tregexp"],
|
|||
|
[/r"/, "regexp.delim", "@sregexp"],
|
|||
|
[/raw"""/, "string.delim", "@rtstring"],
|
|||
|
[/[bv]?"""/, "string.delim", "@dtstring"],
|
|||
|
[/raw"/, "string.delim", "@rsstring"],
|
|||
|
[/[bv]?"/, "string.delim", "@dsstring"],
|
|||
|
[
|
|||
|
/(@ident)\{/,
|
|||
|
{
|
|||
|
cases: {
|
|||
|
"$1@types": { token: "type", next: "@gen" },
|
|||
|
"@default": { token: "type", next: "@gen" }
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
[
|
|||
|
/@ident[!?'']?(?=\.?\()/,
|
|||
|
{
|
|||
|
cases: {
|
|||
|
"@types": "type",
|
|||
|
"@keywords": "keyword",
|
|||
|
"@constants": "variable",
|
|||
|
"@default": "keyword.flow"
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
[
|
|||
|
/@ident[!?']?/,
|
|||
|
{
|
|||
|
cases: {
|
|||
|
"@types": "type",
|
|||
|
"@keywords": "keyword",
|
|||
|
"@constants": "variable",
|
|||
|
"@default": "identifier"
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
[/\$\w+/, "key"],
|
|||
|
[/\$\(/, "key", "@paste"],
|
|||
|
[/@@@ident/, "annotation"],
|
|||
|
{ include: "@whitespace" },
|
|||
|
[/'(?:@escapes|.)'/, "string.character"],
|
|||
|
[/[()\[\]{}]/, "@brackets"],
|
|||
|
[
|
|||
|
/@allops/,
|
|||
|
{
|
|||
|
cases: {
|
|||
|
"@keywordops": "keyword",
|
|||
|
"@operators": "operator"
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
[/[;,]/, "delimiter"],
|
|||
|
[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, "number.hex"],
|
|||
|
[/0[_oO][0-7](_?[0-7])*/, "number.octal"],
|
|||
|
[/0[bB][01](_?[01])*/, "number.binary"],
|
|||
|
[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/, "number"]
|
|||
|
],
|
|||
|
typeanno: [
|
|||
|
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/, "type", "@gen"],
|
|||
|
[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/, ["type", "keyword"]],
|
|||
|
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/, "type", "@pop"],
|
|||
|
["", "", "@pop"]
|
|||
|
],
|
|||
|
gen: [
|
|||
|
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/, "type", "@push"],
|
|||
|
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/, "type"],
|
|||
|
[/<:/, "keyword"],
|
|||
|
[/(\})(\s*<:\s*)/, ["type", { token: "keyword", next: "@pop" }]],
|
|||
|
[/\}/, "type", "@pop"],
|
|||
|
{ include: "@root" }
|
|||
|
],
|
|||
|
quote: [
|
|||
|
[/\$\(/, "key", "@paste"],
|
|||
|
[/\(/, "@brackets", "@paren"],
|
|||
|
[/\)/, "metatag", "@pop"],
|
|||
|
{ include: "@root" }
|
|||
|
],
|
|||
|
paste: [
|
|||
|
[/:\(/, "metatag", "@quote"],
|
|||
|
[/\(/, "@brackets", "@paren"],
|
|||
|
[/\)/, "key", "@pop"],
|
|||
|
{ include: "@root" }
|
|||
|
],
|
|||
|
paren: [
|
|||
|
[/\$\(/, "key", "@paste"],
|
|||
|
[/:\(/, "metatag", "@quote"],
|
|||
|
[/\(/, "@brackets", "@push"],
|
|||
|
[/\)/, "@brackets", "@pop"],
|
|||
|
{ include: "@root" }
|
|||
|
],
|
|||
|
sregexp: [
|
|||
|
[/^.*/, "invalid"],
|
|||
|
[/[^\\"()\[\]{}]/, "regexp"],
|
|||
|
[/[()\[\]{}]/, "@brackets"],
|
|||
|
[/\\./, "operator.scss"],
|
|||
|
[/"[imsx]*/, "regexp.delim", "@pop"]
|
|||
|
],
|
|||
|
tregexp: [
|
|||
|
[/[^\\"()\[\]{}]/, "regexp"],
|
|||
|
[/[()\[\]{}]/, "@brackets"],
|
|||
|
[/\\./, "operator.scss"],
|
|||
|
[/"(?!"")/, "string"],
|
|||
|
[/"""[imsx]*/, "regexp.delim", "@pop"]
|
|||
|
],
|
|||
|
rsstring: [
|
|||
|
[/^.*/, "invalid"],
|
|||
|
[/[^\\"]/, "string"],
|
|||
|
[/\\./, "string.escape"],
|
|||
|
[/"/, "string.delim", "@pop"]
|
|||
|
],
|
|||
|
rtstring: [
|
|||
|
[/[^\\"]/, "string"],
|
|||
|
[/\\./, "string.escape"],
|
|||
|
[/"(?!"")/, "string"],
|
|||
|
[/"""/, "string.delim", "@pop"]
|
|||
|
],
|
|||
|
dsstring: [
|
|||
|
[/^.*/, "invalid"],
|
|||
|
[/[^\\"\$]/, "string"],
|
|||
|
[/\$/, "", "@interpolated"],
|
|||
|
[/@escapes/, "string.escape"],
|
|||
|
[/\\./, "string.escape.invalid"],
|
|||
|
[/"/, "string.delim", "@pop"]
|
|||
|
],
|
|||
|
dtstring: [
|
|||
|
[/[^\\"\$]/, "string"],
|
|||
|
[/\$/, "", "@interpolated"],
|
|||
|
[/@escapes/, "string.escape"],
|
|||
|
[/\\./, "string.escape.invalid"],
|
|||
|
[/"(?!"")/, "string"],
|
|||
|
[/"""/, "string.delim", "@pop"]
|
|||
|
],
|
|||
|
interpolated: [
|
|||
|
[/\(/, { token: "", switchTo: "@interpolated_compound" }],
|
|||
|
[/[a-zA-Z_]\w*/, "identifier"],
|
|||
|
["", "", "@pop"]
|
|||
|
],
|
|||
|
interpolated_compound: [[/\)/, "", "@pop"], { include: "@root" }],
|
|||
|
whitespace: [
|
|||
|
[/[ \t\r\n]+/, ""],
|
|||
|
[/#=/, "comment", "@multi_comment"],
|
|||
|
[/#.*$/, "comment"]
|
|||
|
],
|
|||
|
multi_comment: [
|
|||
|
[/#=/, "comment", "@push"],
|
|||
|
[/=#/, "comment", "@pop"],
|
|||
|
[/=(?!#)|#(?!=)/, "comment"],
|
|||
|
[/[^#=]+/, "comment"]
|
|||
|
]
|
|||
|
}
|
|||
|
};
|
|||
|
export {
|
|||
|
conf,
|
|||
|
language
|
|||
|
};
|