|
@@ -9,231 +9,231 @@ import IRichLanguageConfiguration = monaco.languages.LanguageConfiguration;
|
|
import ILanguage = monaco.languages.IMonarchLanguage;
|
|
import ILanguage = monaco.languages.IMonarchLanguage;
|
|
|
|
|
|
export const conf: IRichLanguageConfiguration = {
|
|
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>{
|
|
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'],
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
};
|
|
};
|