mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 23:13:02 +01:00
Fix scheme comments
This commit is contained in:
parent
520915ef46
commit
29bee2f3ef
1 changed files with 97 additions and 94 deletions
|
|
@ -9,116 +9,119 @@ import IRichLanguageConfiguration = monaco.languages.LanguageConfiguration;
|
||||||
import ILanguage = monaco.languages.IMonarchLanguage;
|
import ILanguage = monaco.languages.IMonarchLanguage;
|
||||||
|
|
||||||
export const conf: IRichLanguageConfiguration = {
|
export const conf: IRichLanguageConfiguration = {
|
||||||
comments: {
|
comments: {
|
||||||
lineComment: ';',
|
lineComment: ';',
|
||||||
blockComment: ['#|', '|#'],
|
blockComment: ['#|', '|#'],
|
||||||
},
|
},
|
||||||
|
|
||||||
brackets: [['(', ')'], ['{', '}'], ['[', ']']],
|
brackets: [['(', ')'], ['{', '}'], ['[', ']']],
|
||||||
|
|
||||||
autoClosingPairs: [
|
autoClosingPairs: [
|
||||||
{ open: '{', close: '}' },
|
{ open: '{', close: '}' },
|
||||||
{ open: '[', close: ']' },
|
{ open: '[', close: ']' },
|
||||||
{ open: '(', close: ')' },
|
{ open: '(', close: ')' },
|
||||||
{ open: '"', close: '"' },
|
{ open: '"', close: '"' },
|
||||||
],
|
],
|
||||||
|
|
||||||
surroundingPairs: [
|
surroundingPairs: [
|
||||||
{ open: '{', close: '}' },
|
{ open: '{', close: '}' },
|
||||||
{ open: '[', close: ']' },
|
{ open: '[', close: ']' },
|
||||||
{ open: '(', close: ')' },
|
{ open: '(', close: ')' },
|
||||||
{ open: '"', close: '"' },
|
{ open: '"', close: '"' },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
export const language = <ILanguage>{
|
export const language = <ILanguage>{
|
||||||
defaultToken: '',
|
defaultToken: '',
|
||||||
ignoreCase: true,
|
ignoreCase: true,
|
||||||
tokenPostfix: '.scheme',
|
tokenPostfix: '.scheme',
|
||||||
|
|
||||||
brackets: [
|
brackets: [
|
||||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' },
|
{ open: '(', close: ')', token: 'delimiter.parenthesis' },
|
||||||
{ open: '{', close: '}', token: 'delimiter.curly' },
|
{ open: '{', close: '}', token: 'delimiter.curly' },
|
||||||
{ open: '[', close: ']', token: 'delimiter.square' },
|
{ open: '[', close: ']', token: 'delimiter.square' },
|
||||||
],
|
],
|
||||||
|
|
||||||
keywords: [
|
keywords: [
|
||||||
'case',
|
'case',
|
||||||
'do',
|
'do',
|
||||||
'let',
|
'let',
|
||||||
'loop',
|
'loop',
|
||||||
'if',
|
'if',
|
||||||
'else',
|
'else',
|
||||||
'when',
|
'when',
|
||||||
'cons',
|
'cons',
|
||||||
'car',
|
'car',
|
||||||
'cdr',
|
'cdr',
|
||||||
'cond',
|
'cond',
|
||||||
'lambda',
|
'lambda',
|
||||||
'lambda*',
|
'lambda*',
|
||||||
'syntax-rules',
|
'syntax-rules',
|
||||||
'format',
|
'format',
|
||||||
'set!',
|
'set!',
|
||||||
'quote',
|
'quote',
|
||||||
'eval',
|
'eval',
|
||||||
'append',
|
'append',
|
||||||
'list',
|
'list',
|
||||||
'list?',
|
'list?',
|
||||||
'member?',
|
'member?',
|
||||||
'load',
|
'load',
|
||||||
],
|
],
|
||||||
|
|
||||||
constants: ['#t', '#f'],
|
constants: ['#t', '#f'],
|
||||||
|
|
||||||
operators: ['eq?', 'eqv?', 'equal?', 'and', 'or', 'not', 'null?'],
|
operators: ['eq?', 'eqv?', 'equal?', 'and', 'or', 'not', 'null?'],
|
||||||
|
|
||||||
tokenizer: {
|
tokenizer: {
|
||||||
root: [
|
root: [
|
||||||
[/#[xXoObB][0-9a-fA-F]+/, 'number.hex'],
|
[/#[xXoObB][0-9a-fA-F]+/, 'number.hex'],
|
||||||
[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, 'number.float'],
|
[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, 'number.float'],
|
||||||
|
|
||||||
[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/, ['keyword', 'white', 'variable']],
|
[
|
||||||
|
/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,
|
||||||
|
['keyword', 'white', 'variable'],
|
||||||
|
],
|
||||||
|
|
||||||
[
|
{ include: '@whitespace' },
|
||||||
/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,
|
{ include: '@strings' },
|
||||||
{
|
|
||||||
cases: {
|
|
||||||
'@keywords': 'keyword',
|
|
||||||
'@constants': 'constant',
|
|
||||||
'@operators': 'operators',
|
|
||||||
'@default': 'identifier',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
{ include: '@whitespace' },
|
[
|
||||||
{ include: '@strings' },
|
/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,
|
||||||
],
|
{
|
||||||
|
cases: {
|
||||||
|
'@keywords': 'keyword',
|
||||||
|
'@constants': 'constant',
|
||||||
|
'@operators': 'operators',
|
||||||
|
'@default': 'identifier',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
comment: [
|
comment: [
|
||||||
[/[^\|#]+/, 'comment'],
|
[/[^\|#]+/, 'comment'],
|
||||||
[/\|\#/, 'comment', '@push'],
|
[/#\|/, 'comment', '@push'],
|
||||||
[/#\|/, 'comment', '@pop'],
|
[/\|#/, 'comment', '@pop'],
|
||||||
[/[\|#]/, 'comment'],
|
[/[\|#]/, 'comment'],
|
||||||
],
|
],
|
||||||
|
|
||||||
whitespace: [
|
whitespace: [
|
||||||
[/[ \t\r\n]+/, 'white'],
|
[/[ \t\r\n]+/, 'white'],
|
||||||
[/\|\#/, 'comment', '@comment'],
|
[/#\|/, 'comment', '@comment'],
|
||||||
[/;.*$/, 'comment'],
|
[/;.*$/, 'comment'],
|
||||||
],
|
],
|
||||||
|
|
||||||
strings: [
|
strings: [
|
||||||
[/"$/, 'string', '@popall'],
|
[/"$/, 'string', '@popall'],
|
||||||
[/"(?=.)/, 'string', '@multiLineString'],
|
[/"(?=.)/, 'string', '@multiLineString'],
|
||||||
],
|
],
|
||||||
|
|
||||||
multiLineString: [
|
multiLineString: [
|
||||||
[/\\./, 'string.escape'],
|
[/\\./, 'string.escape'],
|
||||||
[/"/, 'string', '@popall'],
|
[/"/, 'string', '@popall'],
|
||||||
[/.(?=.*")/, 'string'],
|
[/.(?=.*")/, 'string'],
|
||||||
[/.*\\$/, 'string'],
|
[/.*\\$/, 'string'],
|
||||||
[/.*$/, 'string', '@popall'],
|
[/.*$/, 'string', '@popall'],
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue