mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
hljs stscript lang
This commit is contained in:
@ -178,35 +178,105 @@ export class SlashCommandParser {
|
|||||||
relevance: 0,
|
relevance: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const COMMENT = {
|
||||||
|
scope: 'comment',
|
||||||
|
begin: /\/[/#]/,
|
||||||
|
end: /\||$|:}/,
|
||||||
|
contains: [],
|
||||||
|
};
|
||||||
|
const LET = {
|
||||||
|
begin: [
|
||||||
|
/\/(let|var)\s+/,
|
||||||
|
],
|
||||||
|
beginScope: {
|
||||||
|
1: 'variable',
|
||||||
|
},
|
||||||
|
end: /\||$|:}/,
|
||||||
|
contains: [],
|
||||||
|
};
|
||||||
|
const SETVAR = {
|
||||||
|
begin: /\/(setvar|setglobalvar)\s+/,
|
||||||
|
beginScope: 'variable',
|
||||||
|
end: /\||$|:}/,
|
||||||
|
excludeEnd: true,
|
||||||
|
contains: [],
|
||||||
|
};
|
||||||
|
const GETVAR = {
|
||||||
|
begin: /\/(getvar|getglobalvar)\s+/,
|
||||||
|
beginScope: 'variable',
|
||||||
|
end: /\||$|:}/,
|
||||||
|
excludeEnd: true,
|
||||||
|
contains: [],
|
||||||
|
};
|
||||||
|
const RUN = {
|
||||||
|
match: [
|
||||||
|
/\/:/,
|
||||||
|
/(".+?(?<!\\)") |(\S+?) /,
|
||||||
|
],
|
||||||
|
className: {
|
||||||
|
1: 'variable.language',
|
||||||
|
2: 'title.function.invoke',
|
||||||
|
},
|
||||||
|
contains: [], // defined later
|
||||||
|
};
|
||||||
const COMMAND = {
|
const COMMAND = {
|
||||||
scope: 'command',
|
scope: 'command',
|
||||||
begin: /\/\S+/,
|
begin: /\/\S+/,
|
||||||
beginScope: 'title.function',
|
beginScope: 'title.function',
|
||||||
end: /\||$|:}/,
|
end: /\||$|(?=:})/,
|
||||||
|
excludeEnd: true,
|
||||||
contains: [], // defined later
|
contains: [], // defined later
|
||||||
};
|
};
|
||||||
const CLOSURE = {
|
const CLOSURE = {
|
||||||
scope: 'closure',
|
scope: 'closure',
|
||||||
begin: /{:/,
|
begin: /{:/,
|
||||||
end: /:}/,
|
end: /:}(\(\))?/,
|
||||||
|
beginScope: 'punctuation',
|
||||||
|
endScope: 'punctuation',
|
||||||
contains: [], // defined later
|
contains: [], // defined later
|
||||||
};
|
};
|
||||||
const CLOSURE_ARGS = {
|
|
||||||
scope: 'params',
|
|
||||||
begin: /:}\(/,
|
|
||||||
end: /\)/,
|
|
||||||
contains: [],
|
|
||||||
};
|
|
||||||
const NAMED_ARG = {
|
const NAMED_ARG = {
|
||||||
scope: 'type',
|
scope: 'property',
|
||||||
begin: /\w+=/,
|
begin: /\w+=/,
|
||||||
end: '',
|
end: '',
|
||||||
};
|
};
|
||||||
const MACRO = {
|
const MACRO = {
|
||||||
scope: 'operator',
|
scope: 'variable',
|
||||||
begin: /{{/,
|
begin: /{{/,
|
||||||
end: /}}/,
|
end: /}}/,
|
||||||
};
|
};
|
||||||
|
RUN.contains.push(
|
||||||
|
hljs.BACKSLASH_ESCAPE,
|
||||||
|
NAMED_ARG,
|
||||||
|
hljs.QUOTE_STRING_MODE,
|
||||||
|
NUMBER,
|
||||||
|
MACRO,
|
||||||
|
CLOSURE,
|
||||||
|
);
|
||||||
|
LET.contains.push(
|
||||||
|
hljs.BACKSLASH_ESCAPE,
|
||||||
|
NAMED_ARG,
|
||||||
|
hljs.QUOTE_STRING_MODE,
|
||||||
|
NUMBER,
|
||||||
|
MACRO,
|
||||||
|
CLOSURE,
|
||||||
|
);
|
||||||
|
SETVAR.contains.push(
|
||||||
|
hljs.BACKSLASH_ESCAPE,
|
||||||
|
NAMED_ARG,
|
||||||
|
hljs.QUOTE_STRING_MODE,
|
||||||
|
NUMBER,
|
||||||
|
MACRO,
|
||||||
|
CLOSURE,
|
||||||
|
);
|
||||||
|
GETVAR.contains.push(
|
||||||
|
hljs.BACKSLASH_ESCAPE,
|
||||||
|
NAMED_ARG,
|
||||||
|
hljs.QUOTE_STRING_MODE,
|
||||||
|
NUMBER,
|
||||||
|
MACRO,
|
||||||
|
CLOSURE,
|
||||||
|
);
|
||||||
COMMAND.contains.push(
|
COMMAND.contains.push(
|
||||||
hljs.BACKSLASH_ESCAPE,
|
hljs.BACKSLASH_ESCAPE,
|
||||||
NAMED_ARG,
|
NAMED_ARG,
|
||||||
@ -214,35 +284,33 @@ export class SlashCommandParser {
|
|||||||
NUMBER,
|
NUMBER,
|
||||||
MACRO,
|
MACRO,
|
||||||
CLOSURE,
|
CLOSURE,
|
||||||
CLOSURE_ARGS,
|
|
||||||
);
|
);
|
||||||
CLOSURE.contains.push(
|
CLOSURE.contains.push(
|
||||||
hljs.BACKSLASH_ESCAPE,
|
hljs.BACKSLASH_ESCAPE,
|
||||||
|
COMMENT,
|
||||||
NAMED_ARG,
|
NAMED_ARG,
|
||||||
hljs.QUOTE_STRING_MODE,
|
hljs.QUOTE_STRING_MODE,
|
||||||
NUMBER,
|
NUMBER,
|
||||||
MACRO,
|
MACRO,
|
||||||
|
RUN,
|
||||||
|
LET,
|
||||||
|
GETVAR,
|
||||||
|
SETVAR,
|
||||||
COMMAND,
|
COMMAND,
|
||||||
'self',
|
'self',
|
||||||
CLOSURE_ARGS,
|
|
||||||
);
|
|
||||||
CLOSURE_ARGS.contains.push(
|
|
||||||
hljs.BACKSLASH_ESCAPE,
|
|
||||||
NAMED_ARG,
|
|
||||||
hljs.QUOTE_STRING_MODE,
|
|
||||||
NUMBER,
|
|
||||||
MACRO,
|
|
||||||
CLOSURE,
|
|
||||||
'self',
|
|
||||||
);
|
);
|
||||||
hljs.registerLanguage('stscript', ()=>({
|
hljs.registerLanguage('stscript', ()=>({
|
||||||
case_insensitive: false,
|
case_insensitive: false,
|
||||||
keywords: ['|'],
|
keywords: ['|'],
|
||||||
contains: [
|
contains: [
|
||||||
hljs.BACKSLASH_ESCAPE,
|
hljs.BACKSLASH_ESCAPE,
|
||||||
|
COMMENT,
|
||||||
|
RUN,
|
||||||
|
LET,
|
||||||
|
GETVAR,
|
||||||
|
SETVAR,
|
||||||
COMMAND,
|
COMMAND,
|
||||||
CLOSURE,
|
CLOSURE,
|
||||||
CLOSURE_ARGS,
|
|
||||||
],
|
],
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user