diff --git a/crates/project/templates/css/atom-one-dark.min.css b/crates/project/templates/css/atom-one-dark.min.css index 5344ee38..181d3b42 100644 --- a/crates/project/templates/css/atom-one-dark.min.css +++ b/crates/project/templates/css/atom-one-dark.min.css @@ -1 +1 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} \ No newline at end of file +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword,.hljs-operator{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string,.hljs-number{color:#98c379}.hljs-attr,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_,.hljs-title.function_,.hljs-title.invoke__{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} diff --git a/crates/project/templates/css/atom-one-light.min.css b/crates/project/templates/css/atom-one-light.min.css index 2e58473d..21019e3b 100644 --- a/crates/project/templates/css/atom-one-light.min.css +++ b/crates/project/templates/css/atom-one-light.min.css @@ -1 +1 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword,.hljs-operator{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string,.hljs-number{color:#50a14f}.hljs-attr,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_,.hljs-title.function_,.hljs-title.invoke__{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} diff --git a/crates/project/templates/js/highlightjs-aiken.js b/crates/project/templates/js/highlightjs-aiken.js index 66525204..5083043b 100644 --- a/crates/project/templates/js/highlightjs-aiken.js +++ b/crates/project/templates/js/highlightjs-aiken.js @@ -1,24 +1,13 @@ hljs.registerLanguage("aiken", function (hljs) { const KEYWORDS = "as assert when is const fn if let use opaque pub assert check todo type"; - const STRING = { - className: "string", - variants: [{ begin: /"/, end: /"/ }], - contains: [hljs.BACKSLASH_ESCAPE], - relevance: 0, - }; - const NAME = { - className: "variable", - begin: "\\b[a-z][a-z0-9_]*\\b", - relevance: 0, - }; - const DISCARD_NAME = { - className: "comment", - begin: "\\b_[a-z][a-z0-9_]*\\b", + const COMMAS = { + scope: "ponctuation", + begin: "[, ]+", relevance: 0, }; const NUMBER = { - className: "number", + scope: "number", variants: [ { // binary @@ -39,6 +28,49 @@ hljs.registerLanguage("aiken", function (hljs) { ], relevance: 0, }; + const STRING = { + scope: "string", + variants: [{ begin: /"/, end: /"/ }], + contains: [hljs.BACKSLASH_ESCAPE], + relevance: 0, + }; + const BYTE_STRING = { + scope: "string", + variants: [{ begin: /#\[/, end: /\]/ }], + contains: [ + { ...NUMBER, scope: "string" }, + COMMAS, + ], + relevance: 0, + }; + const IMPORTS = { + scope: "title", + variants: [{ begin: "/\.{/", end: "}" }], + contains: [ + { + scope: "title", + begin: "[A-Za-z][A-Za-z0-9_]*\\w*", + relevance: 0, + }, + COMMAS, + ], + relevance: 0, + }; + const NAME = { + scope: "variable", + begin: "\\b[a-z][a-z0-9_]*\\b", + relevance: 0, + }; + const LABEL = { + begin: [/\b[a-z][a-z0-9_]*/, ":"], + beginScope: { 1: "symbol", 2: "operator" }, + relevance: 1, + }; + const DISCARD_NAME = { + scope: "comment", + begin: "\\b_[a-z][a-z0-9_]*\\b", + relevance: 0, + }; return { name: "Aiken", @@ -46,68 +78,47 @@ hljs.registerLanguage("aiken", function (hljs) { contains: [ hljs.C_LINE_COMMENT_MODE, STRING, + BYTE_STRING, { - // bit string - begin: "<<", - end: ">>", - contains: [ - { - className: "keyword", - beginKeywords: - "binary bytes int float bit_string bits utf8 utf16 utf32 " + - "utf8_codepoint utf16_codepoint utf32_codepoint signed unsigned " + - "big little native unit size", - }, - KEYWORDS, - STRING, - NAME, - DISCARD_NAME, - NUMBER, - ], - relevance: 10, - }, - { - className: "function", + scope: "function", beginKeywords: "fn", end: "\\(", excludeEnd: true, contains: [ { - className: "title", + scope: "title.function", begin: "[a-z][a-z0-9_]*\\w*", relevance: 0, }, ], }, { - className: "keyword", - beginKeywords: "use", - end: "\n", - excludeEnd: true, - contains: [ - { - className: "title", - begin: "[a-z][a-z0-9_/]*\\w*", - relevance: 0, - }, - ], + begin: [/[a-z][a-z0-9_]*/, /[ ]*\(/], + beginScope: { 1: "title.function.invoke", 2: "ponctuation" }, }, { - className: "keyword", + scope: "keyword", + beginKeywords: "use", + end: " ", + excludeEnd: true, + contains: [], + }, + { + scope: "keyword", beginKeywords: KEYWORDS, }, { - // Type names and constructors - className: "title", + scope: "title", begin: "\\b[A-Z][A-Za-z0-9]*\\b", relevance: 0, }, { - className: "operator", + scope: "operator", begin: "[+\\-*/%!=<>&|.]+", relevance: 0, }, - NAME, + IMPORTS, + LABEL, DISCARD_NAME, NUMBER, ],