chore: make folder names match crate name
This commit is contained in:
126
crates/aiken-project/templates/js/highlightjs-aiken.js
Normal file
126
crates/aiken-project/templates/js/highlightjs-aiken.js
Normal file
@@ -0,0 +1,126 @@
|
||||
hljs.registerLanguage("aiken", function (hljs) {
|
||||
const KEYWORDS =
|
||||
"as assert when is const fn if let use opaque pub assert check todo type";
|
||||
const COMMAS = {
|
||||
scope: "ponctuation",
|
||||
begin: "[, ]+",
|
||||
relevance: 0,
|
||||
};
|
||||
const NUMBER = {
|
||||
scope: "number",
|
||||
variants: [
|
||||
{
|
||||
// binary
|
||||
begin: "\\b0[bB](?:_?[01]+)+",
|
||||
},
|
||||
{
|
||||
// octal
|
||||
begin: "\\b0[oO](?:_?[0-7]+)+",
|
||||
},
|
||||
{
|
||||
// hex
|
||||
begin: "\\b0[xX](?:_?[0-9a-fA-F]+)+",
|
||||
},
|
||||
{
|
||||
// dec, float
|
||||
begin: "\\b\\d(?:_?\\d+)*(?:\\.(?:\\d(?:_?\\d+)*)*)?",
|
||||
},
|
||||
],
|
||||
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",
|
||||
aliases: ["aiken"],
|
||||
contains: [
|
||||
hljs.C_LINE_COMMENT_MODE,
|
||||
STRING,
|
||||
BYTE_STRING,
|
||||
{
|
||||
scope: "function",
|
||||
beginKeywords: "fn",
|
||||
end: "\\(",
|
||||
excludeEnd: true,
|
||||
contains: [
|
||||
{
|
||||
scope: "title.function",
|
||||
begin: "[a-z][a-z0-9_]*\\w*",
|
||||
relevance: 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
begin: [/[a-z][a-z0-9_]*/, /[ ]*\(/],
|
||||
beginScope: { 1: "title.function.invoke", 2: "ponctuation" },
|
||||
},
|
||||
{
|
||||
scope: "keyword",
|
||||
beginKeywords: "use",
|
||||
end: " ",
|
||||
excludeEnd: true,
|
||||
contains: [],
|
||||
},
|
||||
{
|
||||
scope: "keyword",
|
||||
beginKeywords: KEYWORDS,
|
||||
},
|
||||
{
|
||||
scope: "title",
|
||||
begin: "\\b[A-Z][A-Za-z0-9]*\\b",
|
||||
relevance: 0,
|
||||
},
|
||||
{
|
||||
scope: "operator",
|
||||
begin: "[+\\-*/%!=<>&|.]+",
|
||||
relevance: 0,
|
||||
},
|
||||
IMPORTS,
|
||||
LABEL,
|
||||
DISCARD_NAME,
|
||||
NUMBER,
|
||||
],
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user