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
|
||
};
|