UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

45 lines (44 loc) 2.02 kB
import { l as languages } from "../../index-C1_GGQ8y.js"; languages.nim = { "comment": { pattern: /#.*/g, greedy: true }, "string": { // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals) pattern: /(?:\b(?!\d)(?:\w|\\x[89a-fA-F][a-fA-F\d])+)?(?:"""[^]*?"""(?!")|"(?:\\[^]|""|[^\\"])*")/g, greedy: true }, "char": { // Character literals are handled specifically to prevent issues with numeric type suffixes pattern: /'(?:\\(?:\d+|x[a-fA-F\d]{0,2}|.)|[^'])'/g, greedy: true }, "function": { pattern: /(?:(?!\d)(?:\w|\\x[89a-fA-F][a-fA-F\d])+|`[^\n`]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/g, greedy: true, inside: { "operator": /\*$/ } }, // We don't want to highlight operators (and anything really) inside backticks "identifier": { pattern: /`[^\n`]+`/g, greedy: true, inside: { "punctuation": /`/ } }, // The negative look ahead prevents wrong highlighting of the .. operator "number": /\b(?:0[xXoObB][a-fA-F\d_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/, "keyword": /\b(?:addr|asm?|atomic|bind|block|break|cas[et]|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/, "operator": { // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .) // but allow the slice operator .. to take precedence over them // One can define his own operators in Nim so all combination of operators might be an operator. pattern: /(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[\\@$~?:%&|^!=<>/*+-]|\.\.|\.(?![)}\]]))+|\b(?:and|div|in|isnot|is|mod|notin|not|of|sh[lr]|x?or)\b)/m, lookbehind: true }, "punctuation": /[({[]\.|\.[)}\]]|[`()[\]{},:]/ }; //# sourceMappingURL=nim.js.map