Highlight::Languages::Swift
Constants
AVAILABILITY_KEYWORDS = ["iOS", "iOSApplicationExtension", "macOS", "macOSApplicationExtension", "macCatalyst", "macCatalystApplicationExtension", "watchOS", "watchOSApplicationExtension", "tvOS", "tvOSApplicationExtension", "swift"] of ::String
BUILT_INS = ["abs", "all", "any", "assert", "assertionFailure", "debugPrint", "dump", "fatalError", "getVaList", "isKnownUniquelyReferenced", "max", "min", "numericCast", "pointwiseMax", "pointwiseMin", "precondition", "preconditionFailure", "print", "readLine", "repeatElement", "sequence", "stride", "swap", "swift_unboxFromSwiftValueWithType", "transcode", "type", "unsafeBitCast", "unsafeDowncast", "withExtendedLifetime", "withUnsafeMutablePointer", "withUnsafePointer", "withVaList", "withoutActuallyEscaping", "zip"] of ::String
IDENTIFIER = RegexHelpers.concat(IDENTIFIER_HEAD, IDENTIFIER_CHARACTER, "*")
IDENTIFIER_CHARACTER = RegexHelpers.either([IDENTIFIER_HEAD, "\\d", "[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]"] of String)
IDENTIFIER_HEAD = RegexHelpers.either(["[a-zA-Z_]", "[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]", "[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]", "[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]", "[\\u1E00-\\u1FFF]", "[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]", "[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]", "[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]", "[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]", "[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]", "[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]"] of String)
KEYWORD_ATTRIBUTES = ["attached", "autoclosure", "convention\\((?:swift|block|c)\\", "dynamicCallable", "dynamicMemberLookup", "escaping", "freestanding", "frozen", "GKInspectable", "IBAction", "IBDesignable", "IBInspectable", "IBOutlet", "IBSegueAction", "inlinable", "main", "nonobjc", "NSApplicationMain", "NSCopying", "NSManaged", ("objc\\(" + IDENTIFIER) + "\\)", "objcMembers", "propertyWrapper", "requires_stored_property_inits", "resultBuilder", "Sendable", "testable", "UIApplicationMain", "unchecked", "unknown", "usableFromInline", "warn_unqualified_access"] of String | Regex
KEYWORDS_MIXED = ["actor", "any", "associatedtype", "async", "await", /as\?/, /as!/, "as", "borrowing", "break", "case", "catch", "class", "consume", "consuming", "continue", "convenience", "copy", "default", "defer", "deinit", "didSet", "distributed", "do", "dynamic", "each", "else", "enum", "extension", "fallthrough", /fileprivate\(set\)/, "fileprivate", "final", "for", "func", "get", "guard", "if", "import", "indirect", "infix", /init\?/, /init!/, "inout", /internal\(set\)/, "internal", "in", "is", "isolated", "nonisolated", "lazy", "let", "macro", "mutating", "nonmutating", /open\(set\)/, "open", "operator", "optional", "override", "package", "postfix", "precedencegroup", "prefix", /private\(set\)/, "private", "protocol", /public\(set\)/, "public", "repeat", "required", "rethrows", "return", "set", "some", "static", "struct", "subscript", "super", "switch", "throws", "throw", /try\?/, /try!/, "try", "typealias", /unowned\(safe\)/, /unowned\(unsafe\)/, "unowned", "var", "weak", "where", "while", "willSet"] of String | Regex
LITERALS = ["false", "nil", "true"] of ::String
OPERATOR = RegexHelpers.concat(OPERATOR_HEAD, OPERATOR_CHARACTER, "*")
OPERATOR_CHARACTER = RegexHelpers.either([OPERATOR_HEAD, "[\\u0300-\\u036F]", "[\\u1DC0-\\u1DFF]", "[\\u20D0-\\u20FF]", "[\\uFE00-\\uFE0F]", "[\\uFE20-\\uFE2F]"] of String)
OPERATOR_HEAD = RegexHelpers.either(["[/=\\-+!*%<>&|^~?]", "[\\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-\\u3020]", "[\\u3030]"] of String)
OPTIONAL_DOT_KEYWORDS_RAW = ["init", "self"] of ::String
PRECEDENCEGROUP_KEYWORDS = ["assignment", "associativity", "higherThan", "left", "lowerThan", "none", "right"] of ::String
REGEXP_CONTENTS = [MODES::BACKSLASH_ESCAPE, Mode.new.apply(begin: /\[/, end: /\]/, relevance: 0, contains: [MODES::BACKSLASH_ESCAPE] of Mode)] of Mode
TYPE_IDENTIFIER = RegexHelpers.concat(/[A-Z]/, IDENTIFIER_CHARACTER, "*")
Class methods
defined(hljs : HLJS) : Mode
SourceJS keywordWrapper: для RegExp-объектов String(re) кончается на "/", поэтому всегда \B; для строк — \b при словесном конце.