securityos/node_modules/monaco-editor/esm/vs/basic-languages/swift/swift.js

319 lines
7.2 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/swift/swift.ts
var conf = {
comments: {
lineComment: "//",
blockComment: ["/*", "*/"]
},
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" },
{ open: "`", close: "`" }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" },
{ open: "`", close: "`" }
]
};
var language = {
defaultToken: "",
tokenPostfix: ".swift",
identifier: /[a-zA-Z_][\w$]*/,
attributes: [
"@GKInspectable",
"@IBAction",
"@IBDesignable",
"@IBInspectable",
"@IBOutlet",
"@IBSegueAction",
"@NSApplicationMain",
"@NSCopying",
"@NSManaged",
"@Sendable",
"@UIApplicationMain",
"@autoclosure",
"@actorIndependent",
"@asyncHandler",
"@available",
"@convention",
"@derivative",
"@differentiable",
"@discardableResult",
"@dynamicCallable",
"@dynamicMemberLookup",
"@escaping",
"@frozen",
"@globalActor",
"@inlinable",
"@inline",
"@main",
"@noDerivative",
"@nonobjc",
"@noreturn",
"@objc",
"@objcMembers",
"@preconcurrency",
"@propertyWrapper",
"@requires_stored_property_inits",
"@resultBuilder",
"@testable",
"@unchecked",
"@unknown",
"@usableFromInline",
"@warn_unqualified_access"
],
accessmodifiers: ["open", "public", "internal", "fileprivate", "private"],
keywords: [
"#available",
"#colorLiteral",
"#column",
"#dsohandle",
"#else",
"#elseif",
"#endif",
"#error",
"#file",
"#fileID",
"#fileLiteral",
"#filePath",
"#function",
"#if",
"#imageLiteral",
"#keyPath",
"#line",
"#selector",
"#sourceLocation",
"#warning",
"Any",
"Protocol",
"Self",
"Type",
"actor",
"as",
"assignment",
"associatedtype",
"associativity",
"async",
"await",
"break",
"case",
"catch",
"class",
"continue",
"convenience",
"default",
"defer",
"deinit",
"didSet",
"do",
"dynamic",
"dynamicType",
"else",
"enum",
"extension",
"fallthrough",
"false",
"fileprivate",
"final",
"for",
"func",
"get",
"guard",
"higherThan",
"if",
"import",
"in",
"indirect",
"infix",
"init",
"inout",
"internal",
"is",
"isolated",
"lazy",
"left",
"let",
"lowerThan",
"mutating",
"nil",
"none",
"nonisolated",
"nonmutating",
"open",
"operator",
"optional",
"override",
"postfix",
"precedence",
"precedencegroup",
"prefix",
"private",
"protocol",
"public",
"repeat",
"required",
"rethrows",
"return",
"right",
"safe",
"self",
"set",
"some",
"static",
"struct",
"subscript",
"super",
"switch",
"throw",
"throws",
"true",
"try",
"typealias",
"unowned",
"unsafe",
"var",
"weak",
"where",
"while",
"willSet",
"__consuming",
"__owned"
],
symbols: /[=(){}\[\].,:;@#\_&\-<>`?!+*\\\/]/,
operatorstart: /[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,
operatorend: /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,
operators: /(@operatorstart)((@operatorstart)|(@operatorend))*/,
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
tokenizer: {
root: [
{ include: "@whitespace" },
{ include: "@comment" },
{ include: "@attribute" },
{ include: "@literal" },
{ include: "@keyword" },
{ include: "@invokedmethod" },
{ include: "@symbol" }
],
whitespace: [
[/\s+/, "white"],
[/"""/, "string.quote", "@endDblDocString"]
],
endDblDocString: [
[/[^"]+/, "string"],
[/\\"/, "string"],
[/"""/, "string.quote", "@popall"],
[/"/, "string"]
],
symbol: [
[/[{}()\[\]]/, "@brackets"],
[/[<>](?!@symbols)/, "@brackets"],
[/[.]/, "delimiter"],
[/@operators/, "operator"],
[/@symbols/, "operator"]
],
comment: [
[/\/\/\/.*$/, "comment.doc"],
[/\/\*\*/, "comment.doc", "@commentdocbody"],
[/\/\/.*$/, "comment"],
[/\/\*/, "comment", "@commentbody"]
],
commentdocbody: [
[/\/\*/, "comment", "@commentbody"],
[/\*\//, "comment.doc", "@pop"],
[/\:[a-zA-Z]+\:/, "comment.doc.param"],
[/./, "comment.doc"]
],
commentbody: [
[/\/\*/, "comment", "@commentbody"],
[/\*\//, "comment", "@pop"],
[/./, "comment"]
],
attribute: [
[
/@@@identifier/,
{
cases: {
"@attributes": "keyword.control",
"@default": ""
}
}
]
],
literal: [
[/"/, { token: "string.quote", next: "@stringlit" }],
[/0[b]([01]_?)+/, "number.binary"],
[/0[o]([0-7]_?)+/, "number.octal"],
[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/, "number.hex"],
[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/, "number.float"],
[/(\d_?)+/, "number"]
],
stringlit: [
[/\\\(/, { token: "operator", next: "@interpolatedexpression" }],
[/@escapes/, "string"],
[/\\./, "string.escape.invalid"],
[/"/, { token: "string.quote", next: "@pop" }],
[/./, "string"]
],
interpolatedexpression: [
[/\(/, { token: "operator", next: "@interpolatedexpression" }],
[/\)/, { token: "operator", next: "@pop" }],
{ include: "@literal" },
{ include: "@keyword" },
{ include: "@symbol" }
],
keyword: [
[/`/, { token: "operator", next: "@escapedkeyword" }],
[
/@identifier/,
{
cases: {
"@keywords": "keyword",
"[A-Z][a-zA-Z0-9$]*": "type.identifier",
"@default": "identifier"
}
}
]
],
escapedkeyword: [
[/`/, { token: "operator", next: "@pop" }],
[/./, "identifier"]
],
invokedmethod: [
[
/([.])(@identifier)/,
{
cases: {
$2: ["delimeter", "type.identifier"],
"@default": ""
}
}
]
]
}
};
export {
conf,
language
};
/*!---------------------------------------------------------------------------------------------
* Copyright (C) David Owens II, owensd.io. All rights reserved.
*--------------------------------------------------------------------------------------------*/