pull/2748/head
masad-frost 7 years ago
parent 18e09b4100
commit 0a0c14ab03

@ -9,231 +9,231 @@ import IRichLanguageConfiguration = monaco.languages.LanguageConfiguration;
import ILanguage = monaco.languages.IMonarchLanguage;
export const conf: IRichLanguageConfiguration = {
comments: {
lineComment: ';;',
blockComment: ['(comment', ')'],
},
brackets: [['(', ')'], ['{', '}'], ['[', ']']],
autoClosingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
],
surroundingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
],
comments: {
lineComment: ';;',
blockComment: ['(comment', ')'],
},
brackets: [['(', ')'], ['{', '}'], ['[', ']']],
autoClosingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
],
surroundingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
],
};
export const language = <ILanguage>{
defaultToken: '',
ignoreCase: true,
tokenPostfix: '.clj',
brackets: [
{ open: '(', close: ')', token: 'delimiter.parenthesis' },
{ open: '{', close: '}', token: 'delimiter.curly' },
{ open: '[', close: ']', token: 'delimiter.square' },
],
keywords: [
'ns',
'ns-unmap',
'create-ns',
'in-ns',
'fn',
'def',
'defn',
'defmacro',
'defmulti',
'defonce',
'require',
'import',
'new',
'refer',
'pos',
'pos?',
'filter',
'map',
'reduce',
'repeat',
'key',
'rest',
'concat',
'into',
'reverse',
'iterate',
'range',
'drop',
'drop-while',
'take',
'take-while',
'neg',
'neg?',
'bound-fn',
'if',
'if-not',
'if-let',
'case,',
'contains',
'conj',
'disj',
'sort',
'get',
'assoc',
'merge',
'keys',
'vals',
'nth',
'first',
'last',
'count',
'contains?',
'cond',
'condp',
'cond->',
'cond->>',
'when',
'while',
'when-not',
'when-let',
'when-first',
'do',
'future',
'comment',
'doto',
'locking',
'proxy',
'println',
'type',
'meta',
'var',
'as->',
'reify',
'deftype',
'defrecord',
'defprotocol',
'extend',
'extend-protocol',
'extend-type',
'specify',
'specify!',
'try',
'catch',
'finally',
'let',
'letfn',
'binding',
'loop',
'for',
'seq',
'doseq',
'dotimes',
'when-let',
'if-let',
'when-some',
'if-some',
'this-as',
'defmethod',
'testing',
'deftest',
'are',
'use-fixtures',
'use',
'remove',
'run',
'run*',
'fresh',
'alt!',
'alt!!',
'go',
'go-loop',
'thread',
'boolean',
'str',
],
constants: ['true', 'false', 'nil'],
operators: [
'=',
'not=',
'<',
'<=',
'>',
'>=',
'and',
'or',
'not',
'inc',
'dec',
'max',
'min',
'rem',
'bit-and',
'bit-or',
'bit-xor',
'bit-not',
],
tokenizer: {
root: [
[/0[xX][0-9a-fA-F]+/, 'number.hex'],
[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, 'number.float'],
[
/(?:\b(?:(ns|def|defn|defn-|defmacro|defmulti|defonce|ns|ns-unmap|fn))(?![\w-]))(\s+)((?:\w|\-|\!|\?)*)/,
['keyword', 'white', 'variable'],
],
[
/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,
{
cases: {
'@keywords': 'keyword',
'@constants': 'constant',
'@operators': 'operators',
'@default': 'identifier',
},
},
],
[/\/#"(?:\.|(?:\")|[^""\n])*"\/g/, 'regexp'],
{ include: '@whitespace' },
{ include: '@strings' },
],
comment: [
[/[^comment\(\)]+/, 'comment'],
[/\(comment/, 'comment', '@push'],
[/\)/, 'comment', '@pop'],
[/[comment\(\)]/, 'comment'],
],
whitespace: [
[/[ \t\r\n]+/, 'white'],
[/\(comment/, 'comment', '@comment'],
[/;;.*$/, 'comment'],
],
strings: [
[/"$/, 'string', '@popall'],
[/"(?=.)/, 'string', '@multiLineString'],
],
multiLineString: [
[/\\./, 'string.escape'],
[/"/, 'string', '@popall'],
[/.(?=.*")/, 'string'],
[/.*\\$/, 'string'],
[/.*$/, 'string', '@popall'],
],
},
defaultToken: '',
ignoreCase: true,
tokenPostfix: '.clj',
brackets: [
{ open: '(', close: ')', token: 'delimiter.parenthesis' },
{ open: '{', close: '}', token: 'delimiter.curly' },
{ open: '[', close: ']', token: 'delimiter.square' },
],
keywords: [
'ns',
'ns-unmap',
'create-ns',
'in-ns',
'fn',
'def',
'defn',
'defmacro',
'defmulti',
'defonce',
'require',
'import',
'new',
'refer',
'pos',
'pos?',
'filter',
'map',
'reduce',
'repeat',
'key',
'rest',
'concat',
'into',
'reverse',
'iterate',
'range',
'drop',
'drop-while',
'take',
'take-while',
'neg',
'neg?',
'bound-fn',
'if',
'if-not',
'if-let',
'case,',
'contains',
'conj',
'disj',
'sort',
'get',
'assoc',
'merge',
'keys',
'vals',
'nth',
'first',
'last',
'count',
'contains?',
'cond',
'condp',
'cond->',
'cond->>',
'when',
'while',
'when-not',
'when-let',
'when-first',
'do',
'future',
'comment',
'doto',
'locking',
'proxy',
'println',
'type',
'meta',
'var',
'as->',
'reify',
'deftype',
'defrecord',
'defprotocol',
'extend',
'extend-protocol',
'extend-type',
'specify',
'specify!',
'try',
'catch',
'finally',
'let',
'letfn',
'binding',
'loop',
'for',
'seq',
'doseq',
'dotimes',
'when-let',
'if-let',
'when-some',
'if-some',
'this-as',
'defmethod',
'testing',
'deftest',
'are',
'use-fixtures',
'use',
'remove',
'run',
'run*',
'fresh',
'alt!',
'alt!!',
'go',
'go-loop',
'thread',
'boolean',
'str',
],
constants: ['true', 'false', 'nil'],
operators: [
'=',
'not=',
'<',
'<=',
'>',
'>=',
'and',
'or',
'not',
'inc',
'dec',
'max',
'min',
'rem',
'bit-and',
'bit-or',
'bit-xor',
'bit-not',
],
tokenizer: {
root: [
[/0[xX][0-9a-fA-F]+/, 'number.hex'],
[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, 'number.float'],
[
/(?:\b(?:(ns|def|defn|defn-|defmacro|defmulti|defonce|ns|ns-unmap|fn))(?![\w-]))(\s+)((?:\w|\-|\!|\?)*)/,
['keyword', 'white', 'variable'],
],
[
/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,
{
cases: {
'@keywords': 'keyword',
'@constants': 'constant',
'@operators': 'operators',
'@default': 'identifier',
},
},
],
[/\/#"(?:\.|(?:\")|[^""\n])*"\/g/, 'regexp'],
{ include: '@whitespace' },
{ include: '@strings' },
],
comment: [
[/[^comment\(\)]+/, 'comment'],
[/\(comment/, 'comment', '@push'],
[/\)/, 'comment', '@pop'],
[/[comment\(\)]/, 'comment'],
],
whitespace: [
[/[ \t\r\n]+/, 'white'],
[/\(comment/, 'comment', '@comment'],
[/;;.*$/, 'comment'],
],
strings: [
[/"$/, 'string', '@popall'],
[/"(?=.)/, 'string', '@multiLineString'],
],
multiLineString: [
[/\\./, 'string.escape'],
[/"/, 'string', '@popall'],
[/.(?=.*")/, 'string'],
[/.*\\$/, 'string'],
[/.*$/, 'string', '@popall'],
],
},
};

Loading…
Cancel
Save