parent
4eaf894c40
commit
3804214db7
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,339 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/apex/apex',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
// the default separators except `@$`
|
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '<', close: '>' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))'), |
||||
end: new RegExp('^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))') |
||||
} |
||||
} |
||||
}; |
||||
var keywords = [ |
||||
'abstract', |
||||
'activate', |
||||
'and', |
||||
'any', |
||||
'array', |
||||
'as', |
||||
'asc', |
||||
'assert', |
||||
'autonomous', |
||||
'begin', |
||||
'bigdecimal', |
||||
'blob', |
||||
'boolean', |
||||
'break', |
||||
'bulk', |
||||
'by', |
||||
'case', |
||||
'cast', |
||||
'catch', |
||||
'char', |
||||
'class', |
||||
'collect', |
||||
'commit', |
||||
'const', |
||||
'continue', |
||||
'convertcurrency', |
||||
'decimal', |
||||
'default', |
||||
'delete', |
||||
'desc', |
||||
'do', |
||||
'double', |
||||
'else', |
||||
'end', |
||||
'enum', |
||||
'exception', |
||||
'exit', |
||||
'export', |
||||
'extends', |
||||
'false', |
||||
'final', |
||||
'finally', |
||||
'float', |
||||
'for', |
||||
'from', |
||||
'future', |
||||
'get', |
||||
'global', |
||||
'goto', |
||||
'group', |
||||
'having', |
||||
'hint', |
||||
'if', |
||||
'implements', |
||||
'import', |
||||
'in', |
||||
'inner', |
||||
'insert', |
||||
'instanceof', |
||||
'int', |
||||
'interface', |
||||
'into', |
||||
'join', |
||||
'last_90_days', |
||||
'last_month', |
||||
'last_n_days', |
||||
'last_week', |
||||
'like', |
||||
'limit', |
||||
'list', |
||||
'long', |
||||
'loop', |
||||
'map', |
||||
'merge', |
||||
'native', |
||||
'new', |
||||
'next_90_days', |
||||
'next_month', |
||||
'next_n_days', |
||||
'next_week', |
||||
'not', |
||||
'null', |
||||
'nulls', |
||||
'number', |
||||
'object', |
||||
'of', |
||||
'on', |
||||
'or', |
||||
'outer', |
||||
'override', |
||||
'package', |
||||
'parallel', |
||||
'pragma', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'retrieve', |
||||
'return', |
||||
'returning', |
||||
'rollback', |
||||
'savepoint', |
||||
'search', |
||||
'select', |
||||
'set', |
||||
'short', |
||||
'sort', |
||||
'stat', |
||||
'static', |
||||
'strictfp', |
||||
'super', |
||||
'switch', |
||||
'synchronized', |
||||
'system', |
||||
'testmethod', |
||||
'then', |
||||
'this', |
||||
'this_month', |
||||
'this_week', |
||||
'throw', |
||||
'throws', |
||||
'today', |
||||
'tolabel', |
||||
'tomorrow', |
||||
'transaction', |
||||
'transient', |
||||
'trigger', |
||||
'true', |
||||
'try', |
||||
'type', |
||||
'undelete', |
||||
'update', |
||||
'upsert', |
||||
'using', |
||||
'virtual', |
||||
'void', |
||||
'volatile', |
||||
'webservice', |
||||
'when', |
||||
'where', |
||||
'while', |
||||
'yesterday' |
||||
]; |
||||
// create case variations of the keywords - apex is case insensitive, but we can't make the highlighter case insensitive
|
||||
// because we use a heuristic to assume that identifiers starting with an upper case letter are types.
|
||||
var uppercaseFirstLetter = function (lowercase) { |
||||
return lowercase.charAt(0).toUpperCase() + lowercase.substr(1); |
||||
}; |
||||
var keywordsWithCaseVariations = []; |
||||
keywords.forEach(function (lowercase) { |
||||
keywordsWithCaseVariations.push(lowercase); |
||||
keywordsWithCaseVariations.push(lowercase.toUpperCase()); |
||||
keywordsWithCaseVariations.push(uppercaseFirstLetter(lowercase)); |
||||
}); |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.apex', |
||||
keywords: keywordsWithCaseVariations, |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'!', |
||||
'~', |
||||
'?', |
||||
':', |
||||
'==', |
||||
'<=', |
||||
'>=', |
||||
'!=', |
||||
'&&', |
||||
'||', |
||||
'++', |
||||
'--', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'%', |
||||
'<<', |
||||
'>>', |
||||
'>>>', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>>=' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
digits: /\d+(_+\d+)*/, |
||||
octaldigits: /[0-7]+(_+[0-7]+)*/, |
||||
binarydigits: /[0-1]+(_+[0-1]+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// assume that identifiers starting with an uppercase letter are types
|
||||
[ |
||||
/[A-Z][\w\$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// @ annotations.
|
||||
[/@\s*[a-zA-Z_\$][\w\$]*/, 'annotation'], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, 'number.float'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, 'number.float'], |
||||
[/(@digits)[fFdD]/, 'number.float'], |
||||
[/(@digits)[lL]?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string."'], |
||||
[/'/, 'string', "@string.'"], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@apexdoc'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
// [/\/\*/, 'comment', '@push' ], // nested comment not allowed :-(
|
||||
// [/\/\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/
|
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
//Identical copy of comment above, except for the addition of .doc
|
||||
apexdoc: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
string: [ |
||||
[/[^\\"']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,75 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/azcli/azcli',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: 'keyword', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.azcli', |
||||
str: /[^#\s]/, |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comment' }, |
||||
[ |
||||
/\s-+@str*\s*/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'key.identifier', next: '@popall' }, |
||||
'@default': { token: 'key.identifier', next: '@type' } |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/^-+@str*\s*/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'key.identifier', next: '@popall' }, |
||||
'@default': { token: 'key.identifier', next: '@type' } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
type: [ |
||||
{ include: '@comment' }, |
||||
[ |
||||
/-+@str*\s*/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'key.identifier', next: '@popall' }, |
||||
'@default': 'key.identifier' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/@str+\s*/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
comment: [ |
||||
[ |
||||
/#.*$/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'comment', next: '@popall' } |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,107 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/bat/bat',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: 'REM' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*(::\\s*|REM\\s+)#region'), |
||||
end: new RegExp('^\\s*(::\\s*|REM\\s+)#endregion') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.bat', |
||||
brackets: [ |
||||
{ token: 'delimiter.bracket', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' } |
||||
], |
||||
keywords: /call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/, |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?&|+\-*\/\^;\.,]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/^(\s*)(rem(?:\s.*|))$/, ['', 'comment']], |
||||
[/(\@?)(@keywords)(?!\w)/, [{ token: 'keyword' }, { token: 'keyword.$2' }]], |
||||
// whitespace
|
||||
[/[ \t\r\n]+/, ''], |
||||
// blocks
|
||||
[/setlocal(?!\w)/, 'keyword.tag-setlocal'], |
||||
[/endlocal(?!\w)/, 'keyword.tag-setlocal'], |
||||
// words
|
||||
[/[a-zA-Z_]\w*/, ''], |
||||
// labels
|
||||
[/:\w*/, 'metatag'], |
||||
// variables
|
||||
[/%[^%]+%/, 'variable'], |
||||
[/%%[\w]+(?!\w)/, 'variable'], |
||||
// punctuations
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'], |
||||
[/\d+/, 'number'], |
||||
// punctuation: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings:
|
||||
[/"/, 'string', '@string."'], |
||||
[/'/, 'string', "@string.'"] |
||||
], |
||||
string: [ |
||||
[ |
||||
/[^\\"'%]+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/%[\w ]+%/, 'variable'], |
||||
[/%%[\w]+(?!\w)/, 'variable'], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/$/, 'string', '@popall'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,114 @@ |
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT License.
|
||||
define('vs/basic-languages/bicep/bicep',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
var bounded = function (text) { return "\\b" + text + "\\b"; }; |
||||
var identifierStart = '[_a-zA-Z]'; |
||||
var identifierContinue = '[_a-zA-Z0-9]'; |
||||
var identifier = bounded("" + identifierStart + identifierContinue + "*"); |
||||
var keywords = [ |
||||
'targetScope', |
||||
'resource', |
||||
'module', |
||||
'param', |
||||
'var', |
||||
'output', |
||||
'for', |
||||
'in', |
||||
'if', |
||||
'existing' |
||||
]; |
||||
var namedLiterals = ['true', 'false', 'null']; |
||||
var nonCommentWs = "[ \\t\\r\\n]"; |
||||
var numericLiteral = "[0-9]+"; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: "'''", close: "'''" } |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: "'''", close: "'''", notIn: ['string', 'comment'] } |
||||
], |
||||
autoCloseBefore: ":.,=}])' \n\t", |
||||
indentationRules: { |
||||
increaseIndentPattern: new RegExp('^((?!\\/\\/).)*(\\{[^}"\'`]*|\\([^)"\'`]*|\\[[^\\]"\'`]*)$'), |
||||
decreaseIndentPattern: new RegExp('^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$') |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.bicep', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
symbols: /[=><!~?:&|+\-*/^%]+/, |
||||
keywords: keywords, |
||||
namedLiterals: namedLiterals, |
||||
escapes: "\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)", |
||||
tokenizer: { |
||||
root: [{ include: '@expression' }, { include: '@whitespace' }], |
||||
stringVerbatim: [ |
||||
{ regex: "(|'|'')[^']", action: { token: 'string' } }, |
||||
{ regex: "'''", action: { token: 'string.quote', next: '@pop' } } |
||||
], |
||||
stringLiteral: [ |
||||
{ regex: "\\${", action: { token: 'delimiter.bracket', next: '@bracketCounting' } }, |
||||
{ regex: "[^\\\\'$]+", action: { token: 'string' } }, |
||||
{ regex: '@escapes', action: { token: 'string.escape' } }, |
||||
{ regex: "\\\\.", action: { token: 'string.escape.invalid' } }, |
||||
{ regex: "'", action: { token: 'string', next: '@pop' } } |
||||
], |
||||
bracketCounting: [ |
||||
{ regex: "{", action: { token: 'delimiter.bracket', next: '@bracketCounting' } }, |
||||
{ regex: "}", action: { token: 'delimiter.bracket', next: '@pop' } }, |
||||
{ include: 'expression' } |
||||
], |
||||
comment: [ |
||||
{ regex: "[^\\*]+", action: { token: 'comment' } }, |
||||
{ regex: "\\*\\/", action: { token: 'comment', next: '@pop' } }, |
||||
{ regex: "[\\/*]", action: { token: 'comment' } } |
||||
], |
||||
whitespace: [ |
||||
{ regex: nonCommentWs }, |
||||
{ regex: "\\/\\*", action: { token: 'comment', next: '@comment' } }, |
||||
{ regex: "\\/\\/.*$", action: { token: 'comment' } } |
||||
], |
||||
expression: [ |
||||
{ regex: "'''", action: { token: 'string.quote', next: '@stringVerbatim' } }, |
||||
{ regex: "'", action: { token: 'string.quote', next: '@stringLiteral' } }, |
||||
{ regex: numericLiteral, action: { token: 'number' } }, |
||||
{ |
||||
regex: identifier, |
||||
action: { |
||||
cases: { |
||||
'@keywords': { token: 'keyword' }, |
||||
'@namedLiterals': { token: 'keyword' }, |
||||
'@default': { token: 'identifier' } |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,180 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/cameligo/cameligo',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['(*', '*)'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: '(*', close: '*)' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: '(*', close: '*)' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.cameligo', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
keywords: [ |
||||
'abs', |
||||
'assert', |
||||
'block', |
||||
'Bytes', |
||||
'case', |
||||
'Crypto', |
||||
'Current', |
||||
'else', |
||||
'failwith', |
||||
'false', |
||||
'for', |
||||
'fun', |
||||
'if', |
||||
'in', |
||||
'let', |
||||
'let%entry', |
||||
'let%init', |
||||
'List', |
||||
'list', |
||||
'Map', |
||||
'map', |
||||
'match', |
||||
'match%nat', |
||||
'mod', |
||||
'not', |
||||
'operation', |
||||
'Operation', |
||||
'of', |
||||
'record', |
||||
'Set', |
||||
'set', |
||||
'sender', |
||||
'skip', |
||||
'source', |
||||
'String', |
||||
'then', |
||||
'to', |
||||
'true', |
||||
'type', |
||||
'with' |
||||
], |
||||
typeKeywords: ['int', 'unit', 'string', 'tz', 'nat', 'bool'], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'<=', |
||||
'>=', |
||||
'<>', |
||||
':', |
||||
':=', |
||||
'and', |
||||
'mod', |
||||
'or', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'@', |
||||
'&', |
||||
'^', |
||||
'%', |
||||
'->', |
||||
'<-', |
||||
'&&', |
||||
'||' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><:@\^&|+\-*\/\^%]+/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_][\w]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/\$[0-9a-fA-F]{1,16}/, 'number.hex'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/'/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/'/, 'string.invalid'], |
||||
[/\#\d+/, 'string'] |
||||
], |
||||
/* */ |
||||
comment: [ |
||||
[/[^\(\*]+/, 'comment'], |
||||
//[/\(\*/, 'comment', '@push' ], // nested comment not allowed :-(
|
||||
[/\*\)/, 'comment', '@pop'], |
||||
[/\(\*/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\(\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,767 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/clojure/clojure',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: ';;' |
||||
}, |
||||
brackets: [ |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['{', '}'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '{', close: '}' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '{', close: '}' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.clj', |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' } |
||||
], |
||||
constants: ['true', 'false', 'nil'], |
||||
// delimiters: /[\\\[\]\s"#'(),;@^`{}~]|$/,
|
||||
numbers: /^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/, |
||||
characters: /^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/, |
||||
escapes: /^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// simple-namespace := /^[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*/
|
||||
// simple-symbol := /^(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)/
|
||||
// qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>
|
||||
qualifiedSymbols: /^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/, |
||||
specialForms: [ |
||||
'.', |
||||
'catch', |
||||
'def', |
||||
'do', |
||||
'if', |
||||
'monitor-enter', |
||||
'monitor-exit', |
||||
'new', |
||||
'quote', |
||||
'recur', |
||||
'set!', |
||||
'throw', |
||||
'try', |
||||
'var' |
||||
], |
||||
coreSymbols: [ |
||||
'*', |
||||
"*'", |
||||
'*1', |
||||
'*2', |
||||
'*3', |
||||
'*agent*', |
||||
'*allow-unresolved-vars*', |
||||
'*assert*', |
||||
'*clojure-version*', |
||||
'*command-line-args*', |
||||
'*compile-files*', |
||||
'*compile-path*', |
||||
'*compiler-options*', |
||||
'*data-readers*', |
||||
'*default-data-reader-fn*', |
||||
'*e', |
||||
'*err*', |
||||
'*file*', |
||||
'*flush-on-newline*', |
||||
'*fn-loader*', |
||||
'*in*', |
||||
'*math-context*', |
||||
'*ns*', |
||||
'*out*', |
||||
'*print-dup*', |
||||
'*print-length*', |
||||
'*print-level*', |
||||
'*print-meta*', |
||||
'*print-namespace-maps*', |
||||
'*print-readably*', |
||||
'*read-eval*', |
||||
'*reader-resolver*', |
||||
'*source-path*', |
||||
'*suppress-read*', |
||||
'*unchecked-math*', |
||||
'*use-context-classloader*', |
||||
'*verbose-defrecords*', |
||||
'*warn-on-reflection*', |
||||
'+', |
||||
"+'", |
||||
'-', |
||||
"-'", |
||||
'->', |
||||
'->>', |
||||
'->ArrayChunk', |
||||
'->Eduction', |
||||
'->Vec', |
||||
'->VecNode', |
||||
'->VecSeq', |
||||
'-cache-protocol-fn', |
||||
'-reset-methods', |
||||
'..', |
||||
'/', |
||||
'<', |
||||
'<=', |
||||
'=', |
||||
'==', |
||||
'>', |
||||
'>=', |
||||
'EMPTY-NODE', |
||||
'Inst', |
||||
'StackTraceElement->vec', |
||||
'Throwable->map', |
||||
'accessor', |
||||
'aclone', |
||||
'add-classpath', |
||||
'add-watch', |
||||
'agent', |
||||
'agent-error', |
||||
'agent-errors', |
||||
'aget', |
||||
'alength', |
||||
'alias', |
||||
'all-ns', |
||||
'alter', |
||||
'alter-meta!', |
||||
'alter-var-root', |
||||
'amap', |
||||
'ancestors', |
||||
'and', |
||||
'any?', |
||||
'apply', |
||||
'areduce', |
||||
'array-map', |
||||
'as->', |
||||
'aset', |
||||
'aset-boolean', |
||||
'aset-byte', |
||||
'aset-char', |
||||
'aset-double', |
||||
'aset-float', |
||||
'aset-int', |
||||
'aset-long', |
||||
'aset-short', |
||||
'assert', |
||||
'assoc', |
||||
'assoc!', |
||||
'assoc-in', |
||||
'associative?', |
||||
'atom', |
||||
'await', |
||||
'await-for', |
||||
'await1', |
||||
'bases', |
||||
'bean', |
||||
'bigdec', |
||||
'bigint', |
||||
'biginteger', |
||||
'binding', |
||||
'bit-and', |
||||
'bit-and-not', |
||||
'bit-clear', |
||||
'bit-flip', |
||||
'bit-not', |
||||
'bit-or', |
||||
'bit-set', |
||||
'bit-shift-left', |
||||
'bit-shift-right', |
||||
'bit-test', |
||||
'bit-xor', |
||||
'boolean', |
||||
'boolean-array', |
||||
'boolean?', |
||||
'booleans', |
||||
'bound-fn', |
||||
'bound-fn*', |
||||
'bound?', |
||||
'bounded-count', |
||||
'butlast', |
||||
'byte', |
||||
'byte-array', |
||||
'bytes', |
||||
'bytes?', |
||||
'case', |
||||
'cast', |
||||
'cat', |
||||
'char', |
||||
'char-array', |
||||
'char-escape-string', |
||||
'char-name-string', |
||||
'char?', |
||||
'chars', |
||||
'chunk', |
||||
'chunk-append', |
||||
'chunk-buffer', |
||||
'chunk-cons', |
||||
'chunk-first', |
||||
'chunk-next', |
||||
'chunk-rest', |
||||
'chunked-seq?', |
||||
'class', |
||||
'class?', |
||||
'clear-agent-errors', |
||||
'clojure-version', |
||||
'coll?', |
||||
'comment', |
||||
'commute', |
||||
'comp', |
||||
'comparator', |
||||
'compare', |
||||
'compare-and-set!', |
||||
'compile', |
||||
'complement', |
||||
'completing', |
||||
'concat', |
||||
'cond', |
||||
'cond->', |
||||
'cond->>', |
||||
'condp', |
||||
'conj', |
||||
'conj!', |
||||
'cons', |
||||
'constantly', |
||||
'construct-proxy', |
||||
'contains?', |
||||
'count', |
||||
'counted?', |
||||
'create-ns', |
||||
'create-struct', |
||||
'cycle', |
||||
'dec', |
||||
"dec'", |
||||
'decimal?', |
||||
'declare', |
||||
'dedupe', |
||||
'default-data-readers', |
||||
'definline', |
||||
'definterface', |
||||
'defmacro', |
||||
'defmethod', |
||||
'defmulti', |
||||
'defn', |
||||
'defn-', |
||||
'defonce', |
||||
'defprotocol', |
||||
'defrecord', |
||||
'defstruct', |
||||
'deftype', |
||||
'delay', |
||||
'delay?', |
||||
'deliver', |
||||
'denominator', |
||||
'deref', |
||||
'derive', |
||||
'descendants', |
||||
'destructure', |
||||
'disj', |
||||
'disj!', |
||||
'dissoc', |
||||
'dissoc!', |
||||
'distinct', |
||||
'distinct?', |
||||
'doall', |
||||
'dorun', |
||||
'doseq', |
||||
'dosync', |
||||
'dotimes', |
||||
'doto', |
||||
'double', |
||||
'double-array', |
||||
'double?', |
||||
'doubles', |
||||
'drop', |
||||
'drop-last', |
||||
'drop-while', |
||||
'eduction', |
||||
'empty', |
||||
'empty?', |
||||
'ensure', |
||||
'ensure-reduced', |
||||
'enumeration-seq', |
||||
'error-handler', |
||||
'error-mode', |
||||
'eval', |
||||
'even?', |
||||
'every-pred', |
||||
'every?', |
||||
'ex-data', |
||||
'ex-info', |
||||
'extend', |
||||
'extend-protocol', |
||||
'extend-type', |
||||
'extenders', |
||||
'extends?', |
||||
'false?', |
||||
'ffirst', |
||||
'file-seq', |
||||
'filter', |
||||
'filterv', |
||||
'find', |
||||
'find-keyword', |
||||
'find-ns', |
||||
'find-protocol-impl', |
||||
'find-protocol-method', |
||||
'find-var', |
||||
'first', |
||||
'flatten', |
||||
'float', |
||||
'float-array', |
||||
'float?', |
||||
'floats', |
||||
'flush', |
||||
'fn', |
||||
'fn?', |
||||
'fnext', |
||||
'fnil', |
||||
'for', |
||||
'force', |
||||
'format', |
||||
'frequencies', |
||||
'future', |
||||
'future-call', |
||||
'future-cancel', |
||||
'future-cancelled?', |
||||
'future-done?', |
||||
'future?', |
||||
'gen-class', |
||||
'gen-interface', |
||||
'gensym', |
||||
'get', |
||||
'get-in', |
||||
'get-method', |
||||
'get-proxy-class', |
||||
'get-thread-bindings', |
||||
'get-validator', |
||||
'group-by', |
||||
'halt-when', |
||||
'hash', |
||||
'hash-combine', |
||||
'hash-map', |
||||
'hash-ordered-coll', |
||||
'hash-set', |
||||
'hash-unordered-coll', |
||||
'ident?', |
||||
'identical?', |
||||
'identity', |
||||
'if-let', |
||||
'if-not', |
||||
'if-some', |
||||
'ifn?', |
||||
'import', |
||||
'in-ns', |
||||
'inc', |
||||
"inc'", |
||||
'indexed?', |
||||
'init-proxy', |
||||
'inst-ms', |
||||
'inst-ms*', |
||||
'inst?', |
||||
'instance?', |
||||
'int', |
||||
'int-array', |
||||
'int?', |
||||
'integer?', |
||||
'interleave', |
||||
'intern', |
||||
'interpose', |
||||
'into', |
||||
'into-array', |
||||
'ints', |
||||
'io!', |
||||
'isa?', |
||||
'iterate', |
||||
'iterator-seq', |
||||
'juxt', |
||||
'keep', |
||||
'keep-indexed', |
||||
'key', |
||||
'keys', |
||||
'keyword', |
||||
'keyword?', |
||||
'last', |
||||
'lazy-cat', |
||||
'lazy-seq', |
||||
'let', |
||||
'letfn', |
||||
'line-seq', |
||||
'list', |
||||
'list*', |
||||
'list?', |
||||
'load', |
||||
'load-file', |
||||
'load-reader', |
||||
'load-string', |
||||
'loaded-libs', |
||||
'locking', |
||||
'long', |
||||
'long-array', |
||||
'longs', |
||||
'loop', |
||||
'macroexpand', |
||||
'macroexpand-1', |
||||
'make-array', |
||||
'make-hierarchy', |
||||
'map', |
||||
'map-entry?', |
||||
'map-indexed', |
||||
'map?', |
||||
'mapcat', |
||||
'mapv', |
||||
'max', |
||||
'max-key', |
||||
'memfn', |
||||
'memoize', |
||||
'merge', |
||||
'merge-with', |
||||
'meta', |
||||
'method-sig', |
||||
'methods', |
||||
'min', |
||||
'min-key', |
||||
'mix-collection-hash', |
||||
'mod', |
||||
'munge', |
||||
'name', |
||||
'namespace', |
||||
'namespace-munge', |
||||
'nat-int?', |
||||
'neg-int?', |
||||
'neg?', |
||||
'newline', |
||||
'next', |
||||
'nfirst', |
||||
'nil?', |
||||
'nnext', |
||||
'not', |
||||
'not-any?', |
||||
'not-empty', |
||||
'not-every?', |
||||
'not=', |
||||
'ns', |
||||
'ns-aliases', |
||||
'ns-imports', |
||||
'ns-interns', |
||||
'ns-map', |
||||
'ns-name', |
||||
'ns-publics', |
||||
'ns-refers', |
||||
'ns-resolve', |
||||
'ns-unalias', |
||||
'ns-unmap', |
||||
'nth', |
||||
'nthnext', |
||||
'nthrest', |
||||
'num', |
||||
'number?', |
||||
'numerator', |
||||
'object-array', |
||||
'odd?', |
||||
'or', |
||||
'parents', |
||||
'partial', |
||||
'partition', |
||||
'partition-all', |
||||
'partition-by', |
||||
'pcalls', |
||||
'peek', |
||||
'persistent!', |
||||
'pmap', |
||||
'pop', |
||||
'pop!', |
||||
'pop-thread-bindings', |
||||
'pos-int?', |
||||
'pos?', |
||||
'pr', |
||||
'pr-str', |
||||
'prefer-method', |
||||
'prefers', |
||||
'primitives-classnames', |
||||
'print', |
||||
'print-ctor', |
||||
'print-dup', |
||||
'print-method', |
||||
'print-simple', |
||||
'print-str', |
||||
'printf', |
||||
'println', |
||||
'println-str', |
||||
'prn', |
||||
'prn-str', |
||||
'promise', |
||||
'proxy', |
||||
'proxy-call-with-super', |
||||
'proxy-mappings', |
||||
'proxy-name', |
||||
'proxy-super', |
||||
'push-thread-bindings', |
||||
'pvalues', |
||||
'qualified-ident?', |
||||
'qualified-keyword?', |
||||
'qualified-symbol?', |
||||
'quot', |
||||
'rand', |
||||
'rand-int', |
||||
'rand-nth', |
||||
'random-sample', |
||||
'range', |
||||
'ratio?', |
||||
'rational?', |
||||
'rationalize', |
||||
're-find', |
||||
're-groups', |
||||
're-matcher', |
||||
're-matches', |
||||
're-pattern', |
||||
're-seq', |
||||
'read', |
||||
'read-line', |
||||
'read-string', |
||||
'reader-conditional', |
||||
'reader-conditional?', |
||||
'realized?', |
||||
'record?', |
||||
'reduce', |
||||
'reduce-kv', |
||||
'reduced', |
||||
'reduced?', |
||||
'reductions', |
||||
'ref', |
||||
'ref-history-count', |
||||
'ref-max-history', |
||||
'ref-min-history', |
||||
'ref-set', |
||||
'refer', |
||||
'refer-clojure', |
||||
'reify', |
||||
'release-pending-sends', |
||||
'rem', |
||||
'remove', |
||||
'remove-all-methods', |
||||
'remove-method', |
||||
'remove-ns', |
||||
'remove-watch', |
||||
'repeat', |
||||
'repeatedly', |
||||
'replace', |
||||
'replicate', |
||||
'require', |
||||
'reset!', |
||||
'reset-meta!', |
||||
'reset-vals!', |
||||
'resolve', |
||||
'rest', |
||||
'restart-agent', |
||||
'resultset-seq', |
||||
'reverse', |
||||
'reversible?', |
||||
'rseq', |
||||
'rsubseq', |
||||
'run!', |
||||
'satisfies?', |
||||
'second', |
||||
'select-keys', |
||||
'send', |
||||
'send-off', |
||||
'send-via', |
||||
'seq', |
||||
'seq?', |
||||
'seqable?', |
||||
'seque', |
||||
'sequence', |
||||
'sequential?', |
||||
'set', |
||||
'set-agent-send-executor!', |
||||
'set-agent-send-off-executor!', |
||||
'set-error-handler!', |
||||
'set-error-mode!', |
||||
'set-validator!', |
||||
'set?', |
||||
'short', |
||||
'short-array', |
||||
'shorts', |
||||
'shuffle', |
||||
'shutdown-agents', |
||||
'simple-ident?', |
||||
'simple-keyword?', |
||||
'simple-symbol?', |
||||
'slurp', |
||||
'some', |
||||
'some->', |
||||
'some->>', |
||||
'some-fn', |
||||
'some?', |
||||
'sort', |
||||
'sort-by', |
||||
'sorted-map', |
||||
'sorted-map-by', |
||||
'sorted-set', |
||||
'sorted-set-by', |
||||
'sorted?', |
||||
'special-symbol?', |
||||
'spit', |
||||
'split-at', |
||||
'split-with', |
||||
'str', |
||||
'string?', |
||||
'struct', |
||||
'struct-map', |
||||
'subs', |
||||
'subseq', |
||||
'subvec', |
||||
'supers', |
||||
'swap!', |
||||
'swap-vals!', |
||||
'symbol', |
||||
'symbol?', |
||||
'sync', |
||||
'tagged-literal', |
||||
'tagged-literal?', |
||||
'take', |
||||
'take-last', |
||||
'take-nth', |
||||
'take-while', |
||||
'test', |
||||
'the-ns', |
||||
'thread-bound?', |
||||
'time', |
||||
'to-array', |
||||
'to-array-2d', |
||||
'trampoline', |
||||
'transduce', |
||||
'transient', |
||||
'tree-seq', |
||||
'true?', |
||||
'type', |
||||
'unchecked-add', |
||||
'unchecked-add-int', |
||||
'unchecked-byte', |
||||
'unchecked-char', |
||||
'unchecked-dec', |
||||
'unchecked-dec-int', |
||||
'unchecked-divide-int', |
||||
'unchecked-double', |
||||
'unchecked-float', |
||||
'unchecked-inc', |
||||
'unchecked-inc-int', |
||||
'unchecked-int', |
||||
'unchecked-long', |
||||
'unchecked-multiply', |
||||
'unchecked-multiply-int', |
||||
'unchecked-negate', |
||||
'unchecked-negate-int', |
||||
'unchecked-remainder-int', |
||||
'unchecked-short', |
||||
'unchecked-subtract', |
||||
'unchecked-subtract-int', |
||||
'underive', |
||||
'unquote', |
||||
'unquote-splicing', |
||||
'unreduced', |
||||
'unsigned-bit-shift-right', |
||||
'update', |
||||
'update-in', |
||||
'update-proxy', |
||||
'uri?', |
||||
'use', |
||||
'uuid?', |
||||
'val', |
||||
'vals', |
||||
'var-get', |
||||
'var-set', |
||||
'var?', |
||||
'vary-meta', |
||||
'vec', |
||||
'vector', |
||||
'vector-of', |
||||
'vector?', |
||||
'volatile!', |
||||
'volatile?', |
||||
'vreset!', |
||||
'vswap!', |
||||
'when', |
||||
'when-first', |
||||
'when-let', |
||||
'when-not', |
||||
'when-some', |
||||
'while', |
||||
'with-bindings', |
||||
'with-bindings*', |
||||
'with-in-str', |
||||
'with-loading-context', |
||||
'with-local-vars', |
||||
'with-meta', |
||||
'with-open', |
||||
'with-out-str', |
||||
'with-precision', |
||||
'with-redefs', |
||||
'with-redefs-fn', |
||||
'xml-seq', |
||||
'zero?', |
||||
'zipmap' |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
// whitespaces and comments
|
||||
{ include: '@whitespace' }, |
||||
// numbers
|
||||
[/@numbers/, 'number'], |
||||
// characters
|
||||
[/@characters/, 'string'], |
||||
// strings
|
||||
{ include: '@string' }, |
||||
// brackets
|
||||
[/[()\[\]{}]/, '@brackets'], |
||||
// regular expressions
|
||||
[/\/#"(?:\.|(?:")|[^"\n])*"\/g/, 'regexp'], |
||||
// reader macro characters
|
||||
[/[#'@^`~]/, 'meta'], |
||||
// symbols
|
||||
[ |
||||
/@qualifiedSymbols/, |
||||
{ |
||||
cases: { |
||||
'^:.+$': 'constant', |
||||
'@specialForms': 'keyword', |
||||
'@coreSymbols': 'keyword', |
||||
'@constants': 'constant', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
whitespace: [ |
||||
[/[\s,]+/, 'white'], |
||||
[/;.*$/, 'comment'], |
||||
[/\(comment\b/, 'comment', '@comment'] |
||||
], |
||||
comment: [ |
||||
[/\(/, 'comment', '@push'], |
||||
[/\)/, 'comment', '@pop'], |
||||
[/[^()]/, 'comment'] |
||||
], |
||||
string: [[/"/, 'string', '@multiLineString']], |
||||
multiLineString: [ |
||||
[/"/, 'string', '@popall'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/./, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,239 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/coffee/coffee',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
blockComment: ['###', '###'], |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#region\\b'), |
||||
end: new RegExp('^\\s*#endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.coffee', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/, |
||||
keywords: [ |
||||
'and', |
||||
'or', |
||||
'is', |
||||
'isnt', |
||||
'not', |
||||
'on', |
||||
'yes', |
||||
'@', |
||||
'no', |
||||
'off', |
||||
'true', |
||||
'false', |
||||
'null', |
||||
'this', |
||||
'new', |
||||
'delete', |
||||
'typeof', |
||||
'in', |
||||
'instanceof', |
||||
'return', |
||||
'throw', |
||||
'break', |
||||
'continue', |
||||
'debugger', |
||||
'if', |
||||
'else', |
||||
'switch', |
||||
'for', |
||||
'while', |
||||
'do', |
||||
'try', |
||||
'catch', |
||||
'finally', |
||||
'class', |
||||
'extends', |
||||
'super', |
||||
'undefined', |
||||
'then', |
||||
'unless', |
||||
'until', |
||||
'loop', |
||||
'of', |
||||
'by', |
||||
'when' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?&%|+\-*\/\^\.,\:]+/, |
||||
escapes: /\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[/\@[a-zA-Z_]\w*/, 'variable.predefined'], |
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
this: 'variable.predefined', |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
[/[ \t\r\n]+/, ''], |
||||
// Comments
|
||||
[/###/, 'comment', '@comment'], |
||||
[/#.*$/, 'comment'], |
||||
// regular expressions
|
||||
['///', { token: 'regexp', next: '@hereregexp' }], |
||||
[/^(\s*)(@regEx)/, ['', 'regexp']], |
||||
[/(\()(\s*)(@regEx)/, ['@brackets', '', 'regexp']], |
||||
[/(\,)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\=)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\:)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\[)(\s*)(@regEx)/, ['@brackets', '', 'regexp']], |
||||
[/(\!)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\&)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\|)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\?)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\{)(\s*)(@regEx)/, ['@brackets', '', 'regexp']], |
||||
[/(\;)(\s*)(@regEx)/, ['', '', 'regexp']], |
||||
// delimiters
|
||||
[ |
||||
/}/, |
||||
{ |
||||
cases: { |
||||
'$S2==interpolatedstring': { |
||||
token: 'string', |
||||
next: '@pop' |
||||
}, |
||||
'@default': '@brackets' |
||||
} |
||||
} |
||||
], |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d+[eE]([\-+]?\d+)?/, 'number.float'], |
||||
[/\d+\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F]+/, 'number.hex'], |
||||
[/0[0-7]+(?!\d)/, 'number.octal'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[,.]/, 'delimiter'], |
||||
// strings:
|
||||
[/"""/, 'string', '@herestring."""'], |
||||
[/'''/, 'string', "@herestring.'''"], |
||||
[ |
||||
/"/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'string', |
||||
'@default': { token: 'string', next: '@string."' } |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/'/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'string', |
||||
'@default': { token: 'string', next: "@string.'" } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
string: [ |
||||
[/[^"'\#\\]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\./, 'string.escape.invalid'], |
||||
[/\./, 'string.escape.invalid'], |
||||
[ |
||||
/#{/, |
||||
{ |
||||
cases: { |
||||
'$S2=="': { |
||||
token: 'string', |
||||
next: 'root.interpolatedstring' |
||||
}, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/#/, 'string'] |
||||
], |
||||
herestring: [ |
||||
[ |
||||
/("""|''')/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/[^#\\'"]+/, 'string'], |
||||
[/['"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\./, 'string.escape.invalid'], |
||||
[/#{/, { token: 'string.quote', next: 'root.interpolatedstring' }], |
||||
[/#/, 'string'] |
||||
], |
||||
comment: [ |
||||
[/[^#]+/, 'comment'], |
||||
[/###/, 'comment', '@pop'], |
||||
[/#/, 'comment'] |
||||
], |
||||
hereregexp: [ |
||||
[/[^\\\/#]+/, 'regexp'], |
||||
[/\\./, 'regexp'], |
||||
[/#.*$/, 'comment'], |
||||
['///[igm]*', { token: 'regexp', next: '@pop' }], |
||||
[/\//, 'regexp'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,405 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/cpp/cpp',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#pragma\\s+region\\b'), |
||||
end: new RegExp('^\\s*#pragma\\s+endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.cpp', |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' }, |
||||
{ token: 'delimiter.angle', open: '<', close: '>' } |
||||
], |
||||
keywords: [ |
||||
'abstract', |
||||
'amp', |
||||
'array', |
||||
'auto', |
||||
'bool', |
||||
'break', |
||||
'case', |
||||
'catch', |
||||
'char', |
||||
'class', |
||||
'const', |
||||
'constexpr', |
||||
'const_cast', |
||||
'continue', |
||||
'cpu', |
||||
'decltype', |
||||
'default', |
||||
'delegate', |
||||
'delete', |
||||
'do', |
||||
'double', |
||||
'dynamic_cast', |
||||
'each', |
||||
'else', |
||||
'enum', |
||||
'event', |
||||
'explicit', |
||||
'export', |
||||
'extern', |
||||
'false', |
||||
'final', |
||||
'finally', |
||||
'float', |
||||
'for', |
||||
'friend', |
||||
'gcnew', |
||||
'generic', |
||||
'goto', |
||||
'if', |
||||
'in', |
||||
'initonly', |
||||
'inline', |
||||
'int', |
||||
'interface', |
||||
'interior_ptr', |
||||
'internal', |
||||
'literal', |
||||
'long', |
||||
'mutable', |
||||
'namespace', |
||||
'new', |
||||
'noexcept', |
||||
'nullptr', |
||||
'__nullptr', |
||||
'operator', |
||||
'override', |
||||
'partial', |
||||
'pascal', |
||||
'pin_ptr', |
||||
'private', |
||||
'property', |
||||
'protected', |
||||
'public', |
||||
'ref', |
||||
'register', |
||||
'reinterpret_cast', |
||||
'restrict', |
||||
'return', |
||||
'safe_cast', |
||||
'sealed', |
||||
'short', |
||||
'signed', |
||||
'sizeof', |
||||
'static', |
||||
'static_assert', |
||||
'static_cast', |
||||
'struct', |
||||
'switch', |
||||
'template', |
||||
'this', |
||||
'thread_local', |
||||
'throw', |
||||
'tile_static', |
||||
'true', |
||||
'try', |
||||
'typedef', |
||||
'typeid', |
||||
'typename', |
||||
'union', |
||||
'unsigned', |
||||
'using', |
||||
'virtual', |
||||
'void', |
||||
'volatile', |
||||
'wchar_t', |
||||
'where', |
||||
'while', |
||||
'_asm', |
||||
'_based', |
||||
'_cdecl', |
||||
'_declspec', |
||||
'_fastcall', |
||||
'_if_exists', |
||||
'_if_not_exists', |
||||
'_inline', |
||||
'_multiple_inheritance', |
||||
'_pascal', |
||||
'_single_inheritance', |
||||
'_stdcall', |
||||
'_virtual_inheritance', |
||||
'_w64', |
||||
'__abstract', |
||||
'__alignof', |
||||
'__asm', |
||||
'__assume', |
||||
'__based', |
||||
'__box', |
||||
'__builtin_alignof', |
||||
'__cdecl', |
||||
'__clrcall', |
||||
'__declspec', |
||||
'__delegate', |
||||
'__event', |
||||
'__except', |
||||
'__fastcall', |
||||
'__finally', |
||||
'__forceinline', |
||||
'__gc', |
||||
'__hook', |
||||
'__identifier', |
||||
'__if_exists', |
||||
'__if_not_exists', |
||||
'__inline', |
||||
'__int128', |
||||
'__int16', |
||||
'__int32', |
||||
'__int64', |
||||
'__int8', |
||||
'__interface', |
||||
'__leave', |
||||
'__m128', |
||||
'__m128d', |
||||
'__m128i', |
||||
'__m256', |
||||
'__m256d', |
||||
'__m256i', |
||||
'__m64', |
||||
'__multiple_inheritance', |
||||
'__newslot', |
||||
'__nogc', |
||||
'__noop', |
||||
'__nounwind', |
||||
'__novtordisp', |
||||
'__pascal', |
||||
'__pin', |
||||
'__pragma', |
||||
'__property', |
||||
'__ptr32', |
||||
'__ptr64', |
||||
'__raise', |
||||
'__restrict', |
||||
'__resume', |
||||
'__sealed', |
||||
'__single_inheritance', |
||||
'__stdcall', |
||||
'__super', |
||||
'__thiscall', |
||||
'__try', |
||||
'__try_cast', |
||||
'__typeof', |
||||
'__unaligned', |
||||
'__unhook', |
||||
'__uuidof', |
||||
'__value', |
||||
'__virtual_inheritance', |
||||
'__w64', |
||||
'__wchar_t' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'!', |
||||
'~', |
||||
'?', |
||||
':', |
||||
'==', |
||||
'<=', |
||||
'>=', |
||||
'!=', |
||||
'&&', |
||||
'||', |
||||
'++', |
||||
'--', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'%', |
||||
'<<', |
||||
'>>', |
||||
'>>>', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>>=' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
integersuffix: /([uU](ll|LL|l|L)|(ll|LL|l|L)?[uU]?)/, |
||||
floatsuffix: /[fFlL]?/, |
||||
encoding: /u|u8|U|L/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// C++ 11 Raw String
|
||||
[/@encoding?R\"(?:([^ ()\\\t]*))\(/, { token: 'string.raw.begin', next: '@raw.$1' }], |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// The preprocessor checks must be before whitespace as they check /^\s*#/ which
|
||||
// otherwise fails to match later after other whitespace has been removed.
|
||||
// Inclusion
|
||||
[/^\s*#\s*include/, { token: 'keyword.directive.include', next: '@include' }], |
||||
// Preprocessor directive
|
||||
[/^\s*#\s*\w+/, 'keyword.directive'], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// [[ attributes ]].
|
||||
[/\[\s*\[/, { token: 'annotation', next: '@annotation' }], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, 'number.hex'], |
||||
[/0[0-7']*[0-7](@integersuffix)/, 'number.octal'], |
||||
[/0[bB][0-1']*[0-1](@integersuffix)/, 'number.binary'], |
||||
[/\d[\d']*\d(@integersuffix)/, 'number'], |
||||
[/\d(@integersuffix)/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@doccomment'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*\\$/, 'comment', '@linecomment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
//For use with continuous line comments
|
||||
linecomment: [ |
||||
[/.*[^\\]$/, 'comment', '@pop'], |
||||
[/[^]+/, 'comment'] |
||||
], |
||||
//Identical copy of comment above, except for the addition of .doc
|
||||
doccomment: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
raw: [ |
||||
[ |
||||
/(.*)(\))(?:([^ ()\\\t"]*))(\")/, |
||||
{ |
||||
cases: { |
||||
'$3==$S2': [ |
||||
'string.raw', |
||||
'string.raw.end', |
||||
'string.raw.end', |
||||
{ token: 'string.raw.end', next: '@pop' } |
||||
], |
||||
'@default': ['string.raw', 'string.raw', 'string.raw', 'string.raw'] |
||||
} |
||||
} |
||||
], |
||||
[/.*/, 'string.raw'] |
||||
], |
||||
annotation: [ |
||||
{ include: '@whitespace' }, |
||||
[/using|alignas/, 'keyword'], |
||||
[/[a-zA-Z0-9_]+/, 'annotation'], |
||||
[/[,:]/, 'delimiter'], |
||||
[/[()]/, '@brackets'], |
||||
[/\]\s*\]/, { token: 'annotation', next: '@pop' }] |
||||
], |
||||
include: [ |
||||
[ |
||||
/(\s*)(<)([^<>]*)(>)/, |
||||
[ |
||||
'', |
||||
'keyword.directive.include.begin', |
||||
'string.include.identifier', |
||||
{ token: 'keyword.directive.include.end', next: '@pop' } |
||||
] |
||||
], |
||||
[ |
||||
/(\s*)(")([^"]*)(")/, |
||||
[ |
||||
'', |
||||
'keyword.directive.include.begin', |
||||
'string.include.identifier', |
||||
{ token: 'keyword.directive.include.end', next: '@pop' } |
||||
] |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,331 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/csharp/csharp',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#region\\b'), |
||||
end: new RegExp('^\\s*#endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.cs', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
keywords: [ |
||||
'extern', |
||||
'alias', |
||||
'using', |
||||
'bool', |
||||
'decimal', |
||||
'sbyte', |
||||
'byte', |
||||
'short', |
||||
'ushort', |
||||
'int', |
||||
'uint', |
||||
'long', |
||||
'ulong', |
||||
'char', |
||||
'float', |
||||
'double', |
||||
'object', |
||||
'dynamic', |
||||
'string', |
||||
'assembly', |
||||
'is', |
||||
'as', |
||||
'ref', |
||||
'out', |
||||
'this', |
||||
'base', |
||||
'new', |
||||
'typeof', |
||||
'void', |
||||
'checked', |
||||
'unchecked', |
||||
'default', |
||||
'delegate', |
||||
'var', |
||||
'const', |
||||
'if', |
||||
'else', |
||||
'switch', |
||||
'case', |
||||
'while', |
||||
'do', |
||||
'for', |
||||
'foreach', |
||||
'in', |
||||
'break', |
||||
'continue', |
||||
'goto', |
||||
'return', |
||||
'throw', |
||||
'try', |
||||
'catch', |
||||
'finally', |
||||
'lock', |
||||
'yield', |
||||
'from', |
||||
'let', |
||||
'where', |
||||
'join', |
||||
'on', |
||||
'equals', |
||||
'into', |
||||
'orderby', |
||||
'ascending', |
||||
'descending', |
||||
'select', |
||||
'group', |
||||
'by', |
||||
'namespace', |
||||
'partial', |
||||
'class', |
||||
'field', |
||||
'event', |
||||
'method', |
||||
'param', |
||||
'public', |
||||
'protected', |
||||
'internal', |
||||
'private', |
||||
'abstract', |
||||
'sealed', |
||||
'static', |
||||
'struct', |
||||
'readonly', |
||||
'volatile', |
||||
'virtual', |
||||
'override', |
||||
'params', |
||||
'get', |
||||
'set', |
||||
'add', |
||||
'remove', |
||||
'operator', |
||||
'true', |
||||
'false', |
||||
'implicit', |
||||
'explicit', |
||||
'interface', |
||||
'enum', |
||||
'null', |
||||
'async', |
||||
'await', |
||||
'fixed', |
||||
'sizeof', |
||||
'stackalloc', |
||||
'unsafe', |
||||
'nameof', |
||||
'when' |
||||
], |
||||
namespaceFollows: ['namespace', 'using'], |
||||
parenFollows: ['if', 'for', 'while', 'switch', 'foreach', 'using', 'catch', 'when'], |
||||
operators: [ |
||||
'=', |
||||
'??', |
||||
'||', |
||||
'&&', |
||||
'|', |
||||
'^', |
||||
'&', |
||||
'==', |
||||
'!=', |
||||
'<=', |
||||
'>=', |
||||
'<<', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'!', |
||||
'~', |
||||
'++', |
||||
'--', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'%=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>', |
||||
'=>' |
||||
], |
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
// escape sequences
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/\@?[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@namespaceFollows': { |
||||
token: 'keyword.$0', |
||||
next: '@namespace' |
||||
}, |
||||
'@keywords': { |
||||
token: 'keyword.$0', |
||||
next: '@qualified' |
||||
}, |
||||
'@default': { token: 'identifier', next: '@qualified' } |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[ |
||||
/}/, |
||||
{ |
||||
cases: { |
||||
'$S2==interpolatedstring': { |
||||
token: 'string.quote', |
||||
next: '@pop' |
||||
}, |
||||
'$S2==litinterpstring': { |
||||
token: 'string.quote', |
||||
next: '@pop' |
||||
}, |
||||
'@default': '@brackets' |
||||
} |
||||
} |
||||
], |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]+/, 'number.hex'], |
||||
[/0[bB][01_]+/, 'number.hex'], |
||||
[/[0-9_]+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, { token: 'string.quote', next: '@string' }], |
||||
[/\$\@"/, { token: 'string.quote', next: '@litinterpstring' }], |
||||
[/\@"/, { token: 'string.quote', next: '@litstring' }], |
||||
[/\$"/, { token: 'string.quote', next: '@interpolatedstring' }], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
qualified: [ |
||||
[ |
||||
/[a-zA-Z_][\w]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/\./, 'delimiter'], |
||||
['', '', '@pop'] |
||||
], |
||||
namespace: [ |
||||
{ include: '@whitespace' }, |
||||
[/[A-Z]\w*/, 'namespace'], |
||||
[/[\.=]/, 'delimiter'], |
||||
['', '', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
// [/\/\*/, 'comment', '@push' ], // no nested comments :-(
|
||||
['\\*/', 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, { token: 'string.quote', next: '@pop' }] |
||||
], |
||||
litstring: [ |
||||
[/[^"]+/, 'string'], |
||||
[/""/, 'string.escape'], |
||||
[/"/, { token: 'string.quote', next: '@pop' }] |
||||
], |
||||
litinterpstring: [ |
||||
[/[^"{]+/, 'string'], |
||||
[/""/, 'string.escape'], |
||||
[/{{/, 'string.escape'], |
||||
[/}}/, 'string.escape'], |
||||
[/{/, { token: 'string.quote', next: 'root.litinterpstring' }], |
||||
[/"/, { token: 'string.quote', next: '@pop' }] |
||||
], |
||||
interpolatedstring: [ |
||||
[/[^\\"{]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/{{/, 'string.escape'], |
||||
[/}}/, 'string.escape'], |
||||
[/{/, { token: 'string.quote', next: 'root.interpolatedstring' }], |
||||
[/"/, { token: 'string.quote', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/^[ \t\v\f]*#((r)|(load))(?=\s)/, 'directive.csx'], |
||||
[/^[ \t\v\f]*#\w.*$/, 'namespace.cpp'], |
||||
[/[ \t\v\f\r\n]+/, ''], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,60 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/csp/csp',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
brackets: [], |
||||
autoClosingPairs: [], |
||||
surroundingPairs: [] |
||||
}; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
// defaultToken: 'invalid',
|
||||
keywords: [], |
||||
typeKeywords: [], |
||||
tokenPostfix: '.csp', |
||||
operators: [], |
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
tokenizer: { |
||||
root: [ |
||||
[/child-src/, 'string.quote'], |
||||
[/connect-src/, 'string.quote'], |
||||
[/default-src/, 'string.quote'], |
||||
[/font-src/, 'string.quote'], |
||||
[/frame-src/, 'string.quote'], |
||||
[/img-src/, 'string.quote'], |
||||
[/manifest-src/, 'string.quote'], |
||||
[/media-src/, 'string.quote'], |
||||
[/object-src/, 'string.quote'], |
||||
[/script-src/, 'string.quote'], |
||||
[/style-src/, 'string.quote'], |
||||
[/worker-src/, 'string.quote'], |
||||
[/base-uri/, 'string.quote'], |
||||
[/plugin-types/, 'string.quote'], |
||||
[/sandbox/, 'string.quote'], |
||||
[/disown-opener/, 'string.quote'], |
||||
[/form-action/, 'string.quote'], |
||||
[/frame-ancestors/, 'string.quote'], |
||||
[/report-uri/, 'string.quote'], |
||||
[/report-to/, 'string.quote'], |
||||
[/upgrade-insecure-requests/, 'string.quote'], |
||||
[/block-all-mixed-content/, 'string.quote'], |
||||
[/require-sri-for/, 'string.quote'], |
||||
[/reflected-xss/, 'string.quote'], |
||||
[/referrer/, 'string.quote'], |
||||
[/policy-uri/, 'string.quote'], |
||||
[/'self'/, 'string.quote'], |
||||
[/'unsafe-inline'/, 'string.quote'], |
||||
[/'unsafe-eval'/, 'string.quote'], |
||||
[/'strict-dynamic'/, 'string.quote'], |
||||
[/'unsafe-hashed-attributes'/, 'string.quote'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,185 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/css/css',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g, |
||||
comments: { |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/'), |
||||
end: new RegExp('^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.css', |
||||
ws: '[ \t\n\r\f]*', |
||||
identifier: '-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.bracket' }, |
||||
{ open: '[', close: ']', token: 'delimiter.bracket' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
tokenizer: { |
||||
root: [{ include: '@selector' }], |
||||
selector: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@import' }, |
||||
{ include: '@strings' }, |
||||
[ |
||||
'[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)', |
||||
{ token: 'keyword', next: '@keyframedeclaration' } |
||||
], |
||||
['[@](page|content|font-face|-moz-document)', { token: 'keyword' }], |
||||
['[@](charset|namespace)', { token: 'keyword', next: '@declarationbody' }], |
||||
[ |
||||
'(url-prefix)(\\()', |
||||
['attribute.value', { token: 'delimiter.parenthesis', next: '@urldeclaration' }] |
||||
], |
||||
[ |
||||
'(url)(\\()', |
||||
['attribute.value', { token: 'delimiter.parenthesis', next: '@urldeclaration' }] |
||||
], |
||||
{ include: '@selectorname' }, |
||||
['[\\*]', 'tag'], |
||||
['[>\\+,]', 'delimiter'], |
||||
['\\[', { token: 'delimiter.bracket', next: '@selectorattribute' }], |
||||
['{', { token: 'delimiter.bracket', next: '@selectorbody' }] |
||||
], |
||||
selectorbody: [ |
||||
{ include: '@comments' }, |
||||
['[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))', 'attribute.name', '@rulevalue'], |
||||
['}', { token: 'delimiter.bracket', next: '@pop' }] |
||||
], |
||||
selectorname: [ |
||||
['(\\.|#(?=[^{])|%|(@identifier)|:)+', 'tag'] // selector (.foo, div, ...)
|
||||
], |
||||
selectorattribute: [{ include: '@term' }, [']', { token: 'delimiter.bracket', next: '@pop' }]], |
||||
term: [ |
||||
{ include: '@comments' }, |
||||
[ |
||||
'(url-prefix)(\\()', |
||||
['attribute.value', { token: 'delimiter.parenthesis', next: '@urldeclaration' }] |
||||
], |
||||
[ |
||||
'(url)(\\()', |
||||
['attribute.value', { token: 'delimiter.parenthesis', next: '@urldeclaration' }] |
||||
], |
||||
{ include: '@functioninvocation' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@name' }, |
||||
{ include: '@strings' }, |
||||
['([<>=\\+\\-\\*\\/\\^\\|\\~,])', 'delimiter'], |
||||
[',', 'delimiter'] |
||||
], |
||||
rulevalue: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@term' }, |
||||
['!important', 'keyword'], |
||||
[';', 'delimiter', '@pop'], |
||||
['(?=})', { token: '', next: '@pop' }] // missing semicolon
|
||||
], |
||||
warndebug: [['[@](warn|debug)', { token: 'keyword', next: '@declarationbody' }]], |
||||
import: [['[@](import)', { token: 'keyword', next: '@declarationbody' }]], |
||||
urldeclaration: [ |
||||
{ include: '@strings' }, |
||||
['[^)\r\n]+', 'string'], |
||||
['\\)', { token: 'delimiter.parenthesis', next: '@pop' }] |
||||
], |
||||
parenthizedterm: [ |
||||
{ include: '@term' }, |
||||
['\\)', { token: 'delimiter.parenthesis', next: '@pop' }] |
||||
], |
||||
declarationbody: [ |
||||
{ include: '@term' }, |
||||
[';', 'delimiter', '@pop'], |
||||
['(?=})', { token: '', next: '@pop' }] // missing semicolon
|
||||
], |
||||
comments: [ |
||||
['\\/\\*', 'comment', '@comment'], |
||||
['\\/\\/+.*', 'comment'] |
||||
], |
||||
comment: [ |
||||
['\\*\\/', 'comment', '@pop'], |
||||
[/[^*/]+/, 'comment'], |
||||
[/./, 'comment'] |
||||
], |
||||
name: [['@identifier', 'attribute.value']], |
||||
numbers: [ |
||||
['-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?', { token: 'attribute.value.number', next: '@units' }], |
||||
['#[0-9a-fA-F_]+(?!\\w)', 'attribute.value.hex'] |
||||
], |
||||
units: [ |
||||
[ |
||||
'(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?', |
||||
'attribute.value.unit', |
||||
'@pop' |
||||
] |
||||
], |
||||
keyframedeclaration: [ |
||||
['@identifier', 'attribute.value'], |
||||
['{', { token: 'delimiter.bracket', switchTo: '@keyframebody' }] |
||||
], |
||||
keyframebody: [ |
||||
{ include: '@term' }, |
||||
['{', { token: 'delimiter.bracket', next: '@selectorbody' }], |
||||
['}', { token: 'delimiter.bracket', next: '@pop' }] |
||||
], |
||||
functioninvocation: [ |
||||
['@identifier\\(', { token: 'attribute.value', next: '@functionarguments' }] |
||||
], |
||||
functionarguments: [ |
||||
['\\$@identifier@ws:', 'attribute.name'], |
||||
['[,]', 'delimiter'], |
||||
{ include: '@term' }, |
||||
['\\)', { token: 'attribute.value', next: '@pop' }] |
||||
], |
||||
strings: [ |
||||
['~?"', { token: 'string', next: '@stringenddoublequote' }], |
||||
["~?'", { token: 'string', next: '@stringendquote' }] |
||||
], |
||||
stringenddoublequote: [ |
||||
['\\\\.', 'string'], |
||||
['"', { token: 'string', next: '@pop' }], |
||||
[/[^\\"]+/, 'string'], |
||||
['.', 'string'] |
||||
], |
||||
stringendquote: [ |
||||
['\\\\.', 'string'], |
||||
["'", { token: 'string', next: '@pop' }], |
||||
[/[^\\']+/, 'string'], |
||||
['.', 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,285 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/dart/dart',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: '`', close: '`', notIn: ['string', 'comment'] }, |
||||
{ open: '/**', close: ' */', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: '`', close: '`' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: /^\s*\s*#?region\b/, |
||||
end: /^\s*\s*#?endregion\b/ |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: 'invalid', |
||||
tokenPostfix: '.dart', |
||||
keywords: [ |
||||
'abstract', |
||||
'dynamic', |
||||
'implements', |
||||
'show', |
||||
'as', |
||||
'else', |
||||
'import', |
||||
'static', |
||||
'assert', |
||||
'enum', |
||||
'in', |
||||
'super', |
||||
'async', |
||||
'export', |
||||
'interface', |
||||
'switch', |
||||
'await', |
||||
'extends', |
||||
'is', |
||||
'sync', |
||||
'break', |
||||
'external', |
||||
'library', |
||||
'this', |
||||
'case', |
||||
'factory', |
||||
'mixin', |
||||
'throw', |
||||
'catch', |
||||
'false', |
||||
'new', |
||||
'true', |
||||
'class', |
||||
'final', |
||||
'null', |
||||
'try', |
||||
'const', |
||||
'finally', |
||||
'on', |
||||
'typedef', |
||||
'continue', |
||||
'for', |
||||
'operator', |
||||
'var', |
||||
'covariant', |
||||
'Function', |
||||
'part', |
||||
'void', |
||||
'default', |
||||
'get', |
||||
'rethrow', |
||||
'while', |
||||
'deferred', |
||||
'hide', |
||||
'return', |
||||
'with', |
||||
'do', |
||||
'if', |
||||
'set', |
||||
'yield' |
||||
], |
||||
typeKeywords: ['int', 'double', 'String', 'bool'], |
||||
operators: [ |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'~/', |
||||
'%', |
||||
'++', |
||||
'--', |
||||
'==', |
||||
'!=', |
||||
'>', |
||||
'<', |
||||
'>=', |
||||
'<=', |
||||
'=', |
||||
'-=', |
||||
'/=', |
||||
'%=', |
||||
'>>=', |
||||
'^=', |
||||
'+=', |
||||
'*=', |
||||
'~/=', |
||||
'<<=', |
||||
'&=', |
||||
'!=', |
||||
'||', |
||||
'&&', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'~', |
||||
'<<', |
||||
'>>', |
||||
'!', |
||||
'>>>', |
||||
'??', |
||||
'?', |
||||
':', |
||||
'|=' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
digits: /\d+(_+\d+)*/, |
||||
octaldigits: /[0-7]+(_+[0-7]+)*/, |
||||
binarydigits: /[0-1]+(_+[0-1]+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, |
||||
regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [[/[{}]/, 'delimiter.bracket'], { include: 'common' }], |
||||
common: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@typeKeywords': 'type.identifier', |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[A-Z_$][\w\$]*/, 'type.identifier'], |
||||
// [/[A-Z][\w\$]*/, 'identifier'],
|
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// regular expression: ensure it is terminated before beginning (otherwise it is an opeator)
|
||||
[ |
||||
/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/, |
||||
{ token: 'regexp', bracket: '@open', next: '@regexp' } |
||||
], |
||||
// @ annotations.
|
||||
[/@[a-zA-Z]+/, 'annotation'], |
||||
// variable
|
||||
// delimiters and operators
|
||||
[/[()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[/!(?=([^=]|$))/, 'delimiter'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?/, 'number.float'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, 'number.float'], |
||||
[/0[xX](@hexdigits)n?/, 'number.hex'], |
||||
[/0[oO]?(@octaldigits)n?/, 'number.octal'], |
||||
[/0[bB](@binarydigits)n?/, 'number.binary'], |
||||
[/(@digits)n?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string_double'], |
||||
[/'/, 'string', '@string_single'] |
||||
// [/[a-zA-Z]+/, "variable"]
|
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@jsdoc'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/\/.*$/, 'comment.doc'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
jsdoc: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
// We match regular expression quite precisely
|
||||
regexp: [ |
||||
[ |
||||
/(\{)(\d+(?:,\d*)?)(\})/, |
||||
['regexp.escape.control', 'regexp.escape.control', 'regexp.escape.control'] |
||||
], |
||||
[ |
||||
/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, |
||||
['regexp.escape.control', { token: 'regexp.escape.control', next: '@regexrange' }] |
||||
], |
||||
[/(\()(\?:|\?=|\?!)/, ['regexp.escape.control', 'regexp.escape.control']], |
||||
[/[()]/, 'regexp.escape.control'], |
||||
[/@regexpctl/, 'regexp.escape.control'], |
||||
[/[^\\\/]/, 'regexp'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/\\\./, 'regexp.invalid'], |
||||
[/(\/)([gimsuy]*)/, [{ token: 'regexp', bracket: '@close', next: '@pop' }, 'keyword.other']] |
||||
], |
||||
regexrange: [ |
||||
[/-/, 'regexp.escape.control'], |
||||
[/\^/, 'regexp.invalid'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/[^\]]/, 'regexp'], |
||||
[ |
||||
/\]/, |
||||
{ |
||||
token: 'regexp.escape.control', |
||||
next: '@pop', |
||||
bracket: '@close' |
||||
} |
||||
] |
||||
], |
||||
string_double: [ |
||||
[/[^\\"\$]+/, 'string'], |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'], |
||||
[/\$\w+/, 'identifier'] |
||||
], |
||||
string_single: [ |
||||
[/[^\\'\$]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, 'string', '@pop'], |
||||
[/\$\w+/, 'identifier'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,135 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/dockerfile/dockerfile',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.dockerfile', |
||||
variable: /\${?[\w]+}?/, |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comment' }, |
||||
[/(ONBUILD)(\s+)/, ['keyword', '']], |
||||
[/(ENV)(\s+)([\w]+)/, ['keyword', '', { token: 'variable', next: '@arguments' }]], |
||||
[ |
||||
/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/, |
||||
{ token: 'keyword', next: '@arguments' } |
||||
] |
||||
], |
||||
arguments: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@strings' }, |
||||
[ |
||||
/(@variable)/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'variable', next: '@popall' }, |
||||
'@default': 'variable' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/\\/, |
||||
{ |
||||
cases: { |
||||
'@eos': '', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/./, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: '', next: '@popall' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Deal with white space, including comments
|
||||
whitespace: [ |
||||
[ |
||||
/\s+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: '', next: '@popall' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
comment: [[/(^#.*$)/, 'comment', '@popall']], |
||||
// Recognize strings, including those broken across lines with \ (but not without)
|
||||
strings: [ |
||||
[/\\'$/, '', '@popall'], |
||||
[/\\'/, ''], |
||||
[/'$/, 'string', '@popall'], |
||||
[/'/, 'string', '@stringBody'], |
||||
[/"$/, 'string', '@popall'], |
||||
[/"/, 'string', '@dblStringBody'] |
||||
], |
||||
stringBody: [ |
||||
[ |
||||
/[^\\\$']/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/\\./, 'string.escape'], |
||||
[/'$/, 'string', '@popall'], |
||||
[/'/, 'string', '@pop'], |
||||
[/(@variable)/, 'variable'], |
||||
[/\\$/, 'string'], |
||||
[/$/, 'string', '@popall'] |
||||
], |
||||
dblStringBody: [ |
||||
[ |
||||
/[^\\\$"]/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/\\./, 'string.escape'], |
||||
[/"$/, 'string', '@popall'], |
||||
[/"/, 'string', '@pop'], |
||||
[/(@variable)/, 'variable'], |
||||
[/\\$/, 'string'], |
||||
[/$/, 'string', '@popall'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,462 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/ecl/ecl',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.ecl', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
pounds: [ |
||||
'append', |
||||
'break', |
||||
'declare', |
||||
'demangle', |
||||
'end', |
||||
'for', |
||||
'getdatatype', |
||||
'if', |
||||
'inmodule', |
||||
'loop', |
||||
'mangle', |
||||
'onwarning', |
||||
'option', |
||||
'set', |
||||
'stored', |
||||
'uniquename' |
||||
].join('|'), |
||||
keywords: [ |
||||
'__compressed__', |
||||
'after', |
||||
'all', |
||||
'and', |
||||
'any', |
||||
'as', |
||||
'atmost', |
||||
'before', |
||||
'beginc', |
||||
'best', |
||||
'between', |
||||
'case', |
||||
'cluster', |
||||
'compressed', |
||||
'compression', |
||||
'const', |
||||
'counter', |
||||
'csv', |
||||
'default', |
||||
'descend', |
||||
'embed', |
||||
'encoding', |
||||
'encrypt', |
||||
'end', |
||||
'endc', |
||||
'endembed', |
||||
'endmacro', |
||||
'enum', |
||||
'escape', |
||||
'except', |
||||
'exclusive', |
||||
'expire', |
||||
'export', |
||||
'extend', |
||||
'fail', |
||||
'few', |
||||
'fileposition', |
||||
'first', |
||||
'flat', |
||||
'forward', |
||||
'from', |
||||
'full', |
||||
'function', |
||||
'functionmacro', |
||||
'group', |
||||
'grouped', |
||||
'heading', |
||||
'hole', |
||||
'ifblock', |
||||
'import', |
||||
'in', |
||||
'inner', |
||||
'interface', |
||||
'internal', |
||||
'joined', |
||||
'keep', |
||||
'keyed', |
||||
'last', |
||||
'left', |
||||
'limit', |
||||
'linkcounted', |
||||
'literal', |
||||
'little_endian', |
||||
'load', |
||||
'local', |
||||
'locale', |
||||
'lookup', |
||||
'lzw', |
||||
'macro', |
||||
'many', |
||||
'maxcount', |
||||
'maxlength', |
||||
'min skew', |
||||
'module', |
||||
'mofn', |
||||
'multiple', |
||||
'named', |
||||
'namespace', |
||||
'nocase', |
||||
'noroot', |
||||
'noscan', |
||||
'nosort', |
||||
'not', |
||||
'noxpath', |
||||
'of', |
||||
'onfail', |
||||
'only', |
||||
'opt', |
||||
'or', |
||||
'outer', |
||||
'overwrite', |
||||
'packed', |
||||
'partition', |
||||
'penalty', |
||||
'physicallength', |
||||
'pipe', |
||||
'prefetch', |
||||
'quote', |
||||
'record', |
||||
'repeat', |
||||
'retry', |
||||
'return', |
||||
'right', |
||||
'right1', |
||||
'right2', |
||||
'rows', |
||||
'rowset', |
||||
'scan', |
||||
'scope', |
||||
'self', |
||||
'separator', |
||||
'service', |
||||
'shared', |
||||
'skew', |
||||
'skip', |
||||
'smart', |
||||
'soapaction', |
||||
'sql', |
||||
'stable', |
||||
'store', |
||||
'terminator', |
||||
'thor', |
||||
'threshold', |
||||
'timelimit', |
||||
'timeout', |
||||
'token', |
||||
'transform', |
||||
'trim', |
||||
'type', |
||||
'unicodeorder', |
||||
'unordered', |
||||
'unsorted', |
||||
'unstable', |
||||
'update', |
||||
'use', |
||||
'validate', |
||||
'virtual', |
||||
'whole', |
||||
'width', |
||||
'wild', |
||||
'within', |
||||
'wnotrim', |
||||
'xml', |
||||
'xpath' |
||||
], |
||||
functions: [ |
||||
'abs', |
||||
'acos', |
||||
'aggregate', |
||||
'allnodes', |
||||
'apply', |
||||
'ascii', |
||||
'asin', |
||||
'assert', |
||||
'asstring', |
||||
'atan', |
||||
'atan2', |
||||
'ave', |
||||
'build', |
||||
'buildindex', |
||||
'case', |
||||
'catch', |
||||
'choose', |
||||
'choosen', |
||||
'choosesets', |
||||
'clustersize', |
||||
'combine', |
||||
'correlation', |
||||
'cos', |
||||
'cosh', |
||||
'count', |
||||
'covariance', |
||||
'cron', |
||||
'dataset', |
||||
'dedup', |
||||
'define', |
||||
'denormalize', |
||||
'dictionary', |
||||
'distribute', |
||||
'distributed', |
||||
'distribution', |
||||
'ebcdic', |
||||
'enth', |
||||
'error', |
||||
'evaluate', |
||||
'event', |
||||
'eventextra', |
||||
'eventname', |
||||
'exists', |
||||
'exp', |
||||
'fail', |
||||
'failcode', |
||||
'failmessage', |
||||
'fetch', |
||||
'fromunicode', |
||||
'fromxml', |
||||
'getenv', |
||||
'getisvalid', |
||||
'global', |
||||
'graph', |
||||
'group', |
||||
'hash', |
||||
'hash32', |
||||
'hash64', |
||||
'hashcrc', |
||||
'hashmd5', |
||||
'having', |
||||
'httpcall', |
||||
'httpheader', |
||||
'if', |
||||
'iff', |
||||
'index', |
||||
'intformat', |
||||
'isvalid', |
||||
'iterate', |
||||
'join', |
||||
'keydiff', |
||||
'keypatch', |
||||
'keyunicode', |
||||
'length', |
||||
'library', |
||||
'limit', |
||||
'ln', |
||||
'loadxml', |
||||
'local', |
||||
'log', |
||||
'loop', |
||||
'map', |
||||
'matched', |
||||
'matchlength', |
||||
'matchposition', |
||||
'matchtext', |
||||
'matchunicode', |
||||
'max', |
||||
'merge', |
||||
'mergejoin', |
||||
'min', |
||||
'nofold', |
||||
'nolocal', |
||||
'nonempty', |
||||
'normalize', |
||||
'nothor', |
||||
'notify', |
||||
'output', |
||||
'parallel', |
||||
'parse', |
||||
'pipe', |
||||
'power', |
||||
'preload', |
||||
'process', |
||||
'project', |
||||
'pull', |
||||
'random', |
||||
'range', |
||||
'rank', |
||||
'ranked', |
||||
'realformat', |
||||
'recordof', |
||||
'regexfind', |
||||
'regexreplace', |
||||
'regroup', |
||||
'rejected', |
||||
'rollup', |
||||
'round', |
||||
'roundup', |
||||
'row', |
||||
'rowdiff', |
||||
'sample', |
||||
'sequential', |
||||
'set', |
||||
'sin', |
||||
'sinh', |
||||
'sizeof', |
||||
'soapcall', |
||||
'sort', |
||||
'sorted', |
||||
'sqrt', |
||||
'stepped', |
||||
'stored', |
||||
'sum', |
||||
'table', |
||||
'tan', |
||||
'tanh', |
||||
'thisnode', |
||||
'topn', |
||||
'tounicode', |
||||
'toxml', |
||||
'transfer', |
||||
'transform', |
||||
'trim', |
||||
'truncate', |
||||
'typeof', |
||||
'ungroup', |
||||
'unicodeorder', |
||||
'variance', |
||||
'wait', |
||||
'which', |
||||
'workunit', |
||||
'xmldecode', |
||||
'xmlencode', |
||||
'xmltext', |
||||
'xmlunicode' |
||||
], |
||||
typesint: ['integer', 'unsigned'].join('|'), |
||||
typesnum: ['data', 'qstring', 'string', 'unicode', 'utf8', 'varstring', 'varunicode'], |
||||
typesone: [ |
||||
'ascii', |
||||
'big_endian', |
||||
'boolean', |
||||
'data', |
||||
'decimal', |
||||
'ebcdic', |
||||
'grouped', |
||||
'integer', |
||||
'linkcounted', |
||||
'pattern', |
||||
'qstring', |
||||
'real', |
||||
'record', |
||||
'rule', |
||||
'set of', |
||||
'streamed', |
||||
'string', |
||||
'token', |
||||
'udecimal', |
||||
'unicode', |
||||
'unsigned', |
||||
'utf8', |
||||
'varstring', |
||||
'varunicode' |
||||
].join('|'), |
||||
operators: ['+', '-', '/', ':=', '<', '<>', '=', '>', '\\', 'and', 'in', 'not', 'or'], |
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
// escape sequences
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/@typesint[4|8]/, 'type'], |
||||
[/#(@pounds)/, 'type'], |
||||
[/@typesone/, 'type'], |
||||
[ |
||||
/[a-zA-Z_$][\w-$]*/, |
||||
{ |
||||
cases: { |
||||
'@functions': 'keyword.function', |
||||
'@keywords': 'keyword', |
||||
'@operators': 'operator' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]+/, 'number.hex'], |
||||
[/0[bB][01]+/, 'number.hex'], |
||||
[/[0-9_]+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\v\f\r\n]+/, ''], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, 'string', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,562 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/elixir/elixir',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['comment'] }, |
||||
{ open: '"""', close: '"""' }, |
||||
{ open: '`', close: '`', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '<<', close: '>>' } |
||||
], |
||||
indentationRules: { |
||||
increaseIndentPattern: /^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/, |
||||
decreaseIndentPattern: /^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/ |
||||
} |
||||
}; |
||||
/** |
||||
* A Monarch lexer for the Elixir language. |
||||
* |
||||
* References: |
||||
* |
||||
* * Monarch documentation - https://microsoft.github.io/monaco-editor/monarch.html
|
||||
* * Elixir lexer - https://github.com/elixir-makeup/makeup_elixir/blob/master/lib/makeup/lexers/elixir_lexer.ex
|
||||
* * TextMate lexer (elixir-tmbundle) - https://github.com/elixir-editors/elixir-tmbundle/blob/master/Syntaxes/Elixir.tmLanguage
|
||||
* * TextMate lexer (vscode-elixir-ls) - https://github.com/elixir-lsp/vscode-elixir-ls/blob/master/syntaxes/elixir.json
|
||||
*/ |
||||
exports.language = { |
||||
defaultToken: 'source', |
||||
tokenPostfix: '.elixir', |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '<<', close: '>>', token: 'delimiter.angle.special' } |
||||
], |
||||
// Below are lists/regexps to which we reference later.
|
||||
declarationKeywords: [ |
||||
'def', |
||||
'defp', |
||||
'defn', |
||||
'defnp', |
||||
'defguard', |
||||
'defguardp', |
||||
'defmacro', |
||||
'defmacrop', |
||||
'defdelegate', |
||||
'defcallback', |
||||
'defmacrocallback', |
||||
'defmodule', |
||||
'defprotocol', |
||||
'defexception', |
||||
'defimpl', |
||||
'defstruct' |
||||
], |
||||
operatorKeywords: ['and', 'in', 'not', 'or', 'when'], |
||||
namespaceKeywords: ['alias', 'import', 'require', 'use'], |
||||
otherKeywords: [ |
||||
'after', |
||||
'case', |
||||
'catch', |
||||
'cond', |
||||
'do', |
||||
'else', |
||||
'end', |
||||
'fn', |
||||
'for', |
||||
'if', |
||||
'quote', |
||||
'raise', |
||||
'receive', |
||||
'rescue', |
||||
'super', |
||||
'throw', |
||||
'try', |
||||
'unless', |
||||
'unquote_splicing', |
||||
'unquote', |
||||
'with' |
||||
], |
||||
constants: ['true', 'false', 'nil'], |
||||
nameBuiltin: ['__MODULE__', '__DIR__', '__ENV__', '__CALLER__', '__STACKTRACE__'], |
||||
// Matches any of the operator names:
|
||||
// <<< >>> ||| &&& ^^^ ~~~ === !== ~>> <~> |~> <|> == != <= >= && || \\ <> ++ -- |> =~ -> <- ~> <~ :: .. = < > + - * / | . ^ & !
|
||||
operator: /-[->]?|!={0,2}|\*|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/, |
||||
// See https://hexdocs.pm/elixir/syntax-reference.html#variables
|
||||
variableName: /[a-z_][a-zA-Z0-9_]*[?!]?/, |
||||
// See https://hexdocs.pm/elixir/syntax-reference.html#atoms
|
||||
atomName: /[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/, |
||||
specialAtomName: /\.\.\.|<<>>|%\{\}|%|\{\}/, |
||||
aliasPart: /[A-Z][a-zA-Z0-9_]*/, |
||||
moduleName: /@aliasPart(?:\.@aliasPart)*/, |
||||
// Sigil pairs are: """ """, ''' ''', " ", ' ', / /, | |, < >, { }, [ ], ( )
|
||||
sigilSymmetricDelimiter: /"""|'''|"|'|\/|\|/, |
||||
sigilStartDelimiter: /@sigilSymmetricDelimiter|<|\{|\[|\(/, |
||||
sigilEndDelimiter: /@sigilSymmetricDelimiter|>|\}|\]|\)/, |
||||
decimal: /\d(?:_?\d)*/, |
||||
hex: /[0-9a-fA-F](_?[0-9a-fA-F])*/, |
||||
octal: /[0-7](_?[0-7])*/, |
||||
binary: /[01](_?[01])*/, |
||||
// See https://hexdocs.pm/elixir/master/String.html#module-escape-characters
|
||||
escape: /\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./, |
||||
// The keys below correspond to tokenizer states.
|
||||
// We start from the root state and match against its rules
|
||||
// until we explicitly transition into another state.
|
||||
// The `include` simply brings in all operations from the given state
|
||||
// and is useful for improving readability.
|
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comments' }, |
||||
// Keywords start as either an identifier or a string,
|
||||
// but end with a : so it's important to match this first.
|
||||
{ include: '@keywordsShorthand' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@identifiers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@atoms' }, |
||||
{ include: '@sigils' }, |
||||
{ include: '@attributes' }, |
||||
{ include: '@symbols' } |
||||
], |
||||
// Whitespace
|
||||
whitespace: [[/\s+/, 'white']], |
||||
// Comments
|
||||
comments: [[/(#)(.*)/, ['comment.punctuation', 'comment']]], |
||||
// Keyword list shorthand
|
||||
keywordsShorthand: [ |
||||
[/(@atomName)(:)/, ['constant', 'constant.punctuation']], |
||||
// Use positive look-ahead to ensure the string is followed by :
|
||||
// and should be considered a keyword.
|
||||
[ |
||||
/"(?=([^"]|#\{.*?\}|\\")*":)/, |
||||
{ token: 'constant.delimiter', next: '@doubleQuotedStringKeyword' } |
||||
], |
||||
[ |
||||
/'(?=([^']|#\{.*?\}|\\')*':)/, |
||||
{ token: 'constant.delimiter', next: '@singleQuotedStringKeyword' } |
||||
] |
||||
], |
||||
doubleQuotedStringKeyword: [ |
||||
[/":/, { token: 'constant.delimiter', next: '@pop' }], |
||||
{ include: '@stringConstantContentInterpol' } |
||||
], |
||||
singleQuotedStringKeyword: [ |
||||
[/':/, { token: 'constant.delimiter', next: '@pop' }], |
||||
{ include: '@stringConstantContentInterpol' } |
||||
], |
||||
// Numbers
|
||||
numbers: [ |
||||
[/0b@binary/, 'number.binary'], |
||||
[/0o@octal/, 'number.octal'], |
||||
[/0x@hex/, 'number.hex'], |
||||
[/@decimal\.@decimal([eE]-?@decimal)?/, 'number.float'], |
||||
[/@decimal/, 'number'] |
||||
], |
||||
// Identifiers
|
||||
identifiers: [ |
||||
// Tokenize identifier name in function-like definitions.
|
||||
// Note: given `def a + b, do: nil`, `a` is not a function name,
|
||||
// so we use negative look-ahead to ensure there's no operator.
|
||||
[ |
||||
/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/, |
||||
[ |
||||
'keyword.declaration', |
||||
'white', |
||||
{ |
||||
cases: { |
||||
unquote: 'keyword', |
||||
'@default': 'function' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Tokenize function calls
|
||||
[ |
||||
// In-scope call - an identifier followed by ( or .(
|
||||
/(@variableName)(?=\s*\.?\s*\()/, |
||||
{ |
||||
cases: { |
||||
// Tokenize as keyword in cases like `if(..., do: ..., else: ...)`
|
||||
'@declarationKeywords': 'keyword.declaration', |
||||
'@namespaceKeywords': 'keyword', |
||||
'@otherKeywords': 'keyword', |
||||
'@default': 'function.call' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
// Referencing function in a module
|
||||
/(@moduleName)(\s*)(\.)(\s*)(@variableName)/, |
||||
['type.identifier', 'white', 'operator', 'white', 'function.call'] |
||||
], |
||||
[ |
||||
// Referencing function in an Erlang module
|
||||
/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/, |
||||
['constant.punctuation', 'constant', 'white', 'operator', 'white', 'function.call'] |
||||
], |
||||
[ |
||||
// Piping into a function (tokenized separately as it may not have parentheses)
|
||||
/(\|>)(\s*)(@variableName)/, |
||||
[ |
||||
'operator', |
||||
'white', |
||||
{ |
||||
cases: { |
||||
'@otherKeywords': 'keyword', |
||||
'@default': 'function.call' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
[ |
||||
// Function reference passed to another function
|
||||
/(&)(\s*)(@variableName)/, |
||||
['operator', 'white', 'function.call'] |
||||
], |
||||
// Language keywords, builtins, constants and variables
|
||||
[ |
||||
/@variableName/, |
||||
{ |
||||
cases: { |
||||
'@declarationKeywords': 'keyword.declaration', |
||||
'@operatorKeywords': 'keyword.operator', |
||||
'@namespaceKeywords': 'keyword', |
||||
'@otherKeywords': 'keyword', |
||||
'@constants': 'constant.language', |
||||
'@nameBuiltin': 'variable.language', |
||||
'_.*': 'comment.unused', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// Module names
|
||||
[/@moduleName/, 'type.identifier'] |
||||
], |
||||
// Strings
|
||||
strings: [ |
||||
[/"""/, { token: 'string.delimiter', next: '@doubleQuotedHeredoc' }], |
||||
[/'''/, { token: 'string.delimiter', next: '@singleQuotedHeredoc' }], |
||||
[/"/, { token: 'string.delimiter', next: '@doubleQuotedString' }], |
||||
[/'/, { token: 'string.delimiter', next: '@singleQuotedString' }] |
||||
], |
||||
doubleQuotedHeredoc: [ |
||||
[/"""/, { token: 'string.delimiter', next: '@pop' }], |
||||
{ include: '@stringContentInterpol' } |
||||
], |
||||
singleQuotedHeredoc: [ |
||||
[/'''/, { token: 'string.delimiter', next: '@pop' }], |
||||
{ include: '@stringContentInterpol' } |
||||
], |
||||
doubleQuotedString: [ |
||||
[/"/, { token: 'string.delimiter', next: '@pop' }], |
||||
{ include: '@stringContentInterpol' } |
||||
], |
||||
singleQuotedString: [ |
||||
[/'/, { token: 'string.delimiter', next: '@pop' }], |
||||
{ include: '@stringContentInterpol' } |
||||
], |
||||
// Atoms
|
||||
atoms: [ |
||||
[/(:)(@atomName)/, ['constant.punctuation', 'constant']], |
||||
[/:"/, { token: 'constant.delimiter', next: '@doubleQuotedStringAtom' }], |
||||
[/:'/, { token: 'constant.delimiter', next: '@singleQuotedStringAtom' }] |
||||
], |
||||
doubleQuotedStringAtom: [ |
||||
[/"/, { token: 'constant.delimiter', next: '@pop' }], |
||||
{ include: '@stringConstantContentInterpol' } |
||||
], |
||||
singleQuotedStringAtom: [ |
||||
[/'/, { token: 'constant.delimiter', next: '@pop' }], |
||||
{ include: '@stringConstantContentInterpol' } |
||||
], |
||||
// Sigils
|
||||
// See https://elixir-lang.org/getting-started/sigils.html
|
||||
// Sigils allow for typing values using their textual representation.
|
||||
// All sigils start with ~ followed by a letter indicating sigil type
|
||||
// and then a delimiter pair enclosing the textual representation.
|
||||
// Optional modifiers are allowed after the closing delimiter.
|
||||
// For instance a regular expressions can be written as:
|
||||
// ~r/foo|bar/ ~r{foo|bar} ~r/foo|bar/g
|
||||
//
|
||||
// In general lowercase sigils allow for interpolation
|
||||
// and escaped characters, whereas uppercase sigils don't
|
||||
//
|
||||
// During tokenization we want to distinguish some
|
||||
// specific sigil types, namely string and regexp,
|
||||
// so that they cen be themed separately.
|
||||
//
|
||||
// To reasonably handle all those combinations we leverage
|
||||
// dot-separated states, so if we transition to @sigilStart.interpol.s.{.}
|
||||
// then "sigilStart.interpol.s" state will match and also all
|
||||
// the individual dot-separated parameters can be accessed.
|
||||
sigils: [ |
||||
[/~[a-z]@sigilStartDelimiter/, { token: '@rematch', next: '@sigil.interpol' }], |
||||
[/~[A-Z]@sigilStartDelimiter/, { token: '@rematch', next: '@sigil.noInterpol' }] |
||||
], |
||||
sigil: [ |
||||
[/~([a-zA-Z])\{/, { token: '@rematch', switchTo: '@sigilStart.$S2.$1.{.}' }], |
||||
[/~([a-zA-Z])\[/, { token: '@rematch', switchTo: '@sigilStart.$S2.$1.[.]' }], |
||||
[/~([a-zA-Z])\(/, { token: '@rematch', switchTo: '@sigilStart.$S2.$1.(.)' }], |
||||
[/~([a-zA-Z])\</, { token: '@rematch', switchTo: '@sigilStart.$S2.$1.<.>' }], |
||||
[ |
||||
/~([a-zA-Z])(@sigilSymmetricDelimiter)/, |
||||
{ token: '@rematch', switchTo: '@sigilStart.$S2.$1.$2.$2' } |
||||
] |
||||
], |
||||
// The definitions below expect states to be of the form:
|
||||
//
|
||||
// sigilStart.<interpol-or-noInterpol>.<sigil-letter>.<start-delimiter>.<end-delimiter>
|
||||
// sigilContinue.<interpol-or-noInterpol>.<sigil-letter>.<start-delimiter>.<end-delimiter>
|
||||
//
|
||||
// The sigilStart state is used only to properly classify the token (as string/regex/sigil)
|
||||
// and immediately switches to the sigilContinue sate, which handles the actual content
|
||||
// and waits for the corresponding end delimiter.
|
||||
'sigilStart.interpol.s': [ |
||||
[ |
||||
/~s@sigilStartDelimiter/, |
||||
{ |
||||
token: 'string.delimiter', |
||||
switchTo: '@sigilContinue.$S2.$S3.$S4.$S5' |
||||
} |
||||
] |
||||
], |
||||
'sigilContinue.interpol.s': [ |
||||
[ |
||||
/(@sigilEndDelimiter)[a-zA-Z]*/, |
||||
{ |
||||
cases: { |
||||
'$1==$S5': { token: 'string.delimiter', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@stringContentInterpol' } |
||||
], |
||||
'sigilStart.noInterpol.S': [ |
||||
[ |
||||
/~S@sigilStartDelimiter/, |
||||
{ |
||||
token: 'string.delimiter', |
||||
switchTo: '@sigilContinue.$S2.$S3.$S4.$S5' |
||||
} |
||||
] |
||||
], |
||||
'sigilContinue.noInterpol.S': [ |
||||
// Ignore escaped sigil end
|
||||
[/(^|[^\\])\\@sigilEndDelimiter/, 'string'], |
||||
[ |
||||
/(@sigilEndDelimiter)[a-zA-Z]*/, |
||||
{ |
||||
cases: { |
||||
'$1==$S5': { token: 'string.delimiter', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@stringContent' } |
||||
], |
||||
'sigilStart.interpol.r': [ |
||||
[ |
||||
/~r@sigilStartDelimiter/, |
||||
{ |
||||
token: 'regexp.delimiter', |
||||
switchTo: '@sigilContinue.$S2.$S3.$S4.$S5' |
||||
} |
||||
] |
||||
], |
||||
'sigilContinue.interpol.r': [ |
||||
[ |
||||
/(@sigilEndDelimiter)[a-zA-Z]*/, |
||||
{ |
||||
cases: { |
||||
'$1==$S5': { token: 'regexp.delimiter', next: '@pop' }, |
||||
'@default': 'regexp' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@regexpContentInterpol' } |
||||
], |
||||
'sigilStart.noInterpol.R': [ |
||||
[ |
||||
/~R@sigilStartDelimiter/, |
||||
{ |
||||
token: 'regexp.delimiter', |
||||
switchTo: '@sigilContinue.$S2.$S3.$S4.$S5' |
||||
} |
||||
] |
||||
], |
||||
'sigilContinue.noInterpol.R': [ |
||||
// Ignore escaped sigil end
|
||||
[/(^|[^\\])\\@sigilEndDelimiter/, 'regexp'], |
||||
[ |
||||
/(@sigilEndDelimiter)[a-zA-Z]*/, |
||||
{ |
||||
cases: { |
||||
'$1==$S5': { token: 'regexp.delimiter', next: '@pop' }, |
||||
'@default': 'regexp' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@regexpContent' } |
||||
], |
||||
// Fallback to the generic sigil by default
|
||||
'sigilStart.interpol': [ |
||||
[ |
||||
/~([a-zA-Z])@sigilStartDelimiter/, |
||||
{ |
||||
token: 'sigil.delimiter', |
||||
switchTo: '@sigilContinue.$S2.$S3.$S4.$S5' |
||||
} |
||||
] |
||||
], |
||||
'sigilContinue.interpol': [ |
||||
[ |
||||
/(@sigilEndDelimiter)[a-zA-Z]*/, |
||||
{ |
||||
cases: { |
||||
'$1==$S5': { token: 'sigil.delimiter', next: '@pop' }, |
||||
'@default': 'sigil' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@sigilContentInterpol' } |
||||
], |
||||
'sigilStart.noInterpol': [ |
||||
[ |
||||
/~([a-zA-Z])@sigilStartDelimiter/, |
||||
{ |
||||
token: 'sigil.delimiter', |
||||
switchTo: '@sigilContinue.$S2.$S3.$S4.$S5' |
||||
} |
||||
] |
||||
], |
||||
'sigilContinue.noInterpol': [ |
||||
// Ignore escaped sigil end
|
||||
[/(^|[^\\])\\@sigilEndDelimiter/, 'sigil'], |
||||
[ |
||||
/(@sigilEndDelimiter)[a-zA-Z]*/, |
||||
{ |
||||
cases: { |
||||
'$1==$S5': { token: 'sigil.delimiter', next: '@pop' }, |
||||
'@default': 'sigil' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@sigilContent' } |
||||
], |
||||
// Attributes
|
||||
attributes: [ |
||||
// Module @doc* attributes - tokenized as comments
|
||||
[ |
||||
/\@(module|type)?doc (~[sS])?"""/, |
||||
{ |
||||
token: 'comment.block.documentation', |
||||
next: '@doubleQuotedHeredocDocstring' |
||||
} |
||||
], |
||||
[ |
||||
/\@(module|type)?doc (~[sS])?"/, |
||||
{ |
||||
token: 'comment.block.documentation', |
||||
next: '@doubleQuotedStringDocstring' |
||||
} |
||||
], |
||||
[/\@(module|type)?doc false/, 'comment.block.documentation'], |
||||
// Module attributes
|
||||
[/\@(@variableName)/, 'variable'] |
||||
], |
||||
doubleQuotedHeredocDocstring: [ |
||||
[/"""/, { token: 'comment.block.documentation', next: '@pop' }], |
||||
{ include: '@docstringContent' } |
||||
], |
||||
doubleQuotedStringDocstring: [ |
||||
[/"/, { token: 'comment.block.documentation', next: '@pop' }], |
||||
{ include: '@docstringContent' } |
||||
], |
||||
// Operators, punctuation, brackets
|
||||
symbols: [ |
||||
// Code point operator (either with regular character ?a or an escaped one ?\n)
|
||||
[/\?(\\.|[^\\\s])/, 'number.constant'], |
||||
// Anonymous function arguments
|
||||
[/&\d+/, 'operator'], |
||||
// Bitshift operators (must go before delimiters, so that << >> don't match first)
|
||||
[/<<<|>>>/, 'operator'], |
||||
// Delimiter pairs
|
||||
[/[()\[\]\{\}]|<<|>>/, '@brackets'], |
||||
// Triple dot is a valid name (must go before operators, so that .. doesn't match instead)
|
||||
[/\.\.\./, 'identifier'], |
||||
// Punctuation => (must go before operators, so it's not tokenized as = then >)
|
||||
[/=>/, 'punctuation'], |
||||
// Operators
|
||||
[/@operator/, 'operator'], |
||||
// Punctuation
|
||||
[/[:;,.%]/, 'punctuation'] |
||||
], |
||||
// Generic helpers
|
||||
stringContentInterpol: [ |
||||
{ include: '@interpolation' }, |
||||
{ include: '@escapeChar' }, |
||||
{ include: '@stringContent' } |
||||
], |
||||
stringContent: [[/./, 'string']], |
||||
stringConstantContentInterpol: [ |
||||
{ include: '@interpolation' }, |
||||
{ include: '@escapeChar' }, |
||||
{ include: '@stringConstantContent' } |
||||
], |
||||
stringConstantContent: [[/./, 'constant']], |
||||
regexpContentInterpol: [ |
||||
{ include: '@interpolation' }, |
||||
{ include: '@escapeChar' }, |
||||
{ include: '@regexpContent' } |
||||
], |
||||
regexpContent: [ |
||||
// # may be a regular regexp char, so we use a heuristic
|
||||
// assuming a # surrounded by whitespace is actually a comment.
|
||||
[/(\s)(#)(\s.*)$/, ['white', 'comment.punctuation', 'comment']], |
||||
[/./, 'regexp'] |
||||
], |
||||
sigilContentInterpol: [ |
||||
{ include: '@interpolation' }, |
||||
{ include: '@escapeChar' }, |
||||
{ include: '@sigilContent' } |
||||
], |
||||
sigilContent: [[/./, 'sigil']], |
||||
docstringContent: [[/./, 'comment.block.documentation']], |
||||
escapeChar: [[/@escape/, 'constant.character.escape']], |
||||
interpolation: [[/#{/, { token: 'delimiter.bracket.embed', next: '@interpolationContinue' }]], |
||||
interpolationContinue: [ |
||||
[/}/, { token: 'delimiter.bracket.embed', next: '@pop' }], |
||||
// Interpolation brackets may contain arbitrary code,
|
||||
// so we simply match against all the root rules,
|
||||
// until we reach interpolation end (the above matches).
|
||||
{ include: '@root' } |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,149 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/flow9/flow9',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
blockComment: ['/*', '*/'], |
||||
lineComment: '//' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}', notIn: ['string'] }, |
||||
{ open: '[', close: ']', notIn: ['string'] }, |
||||
{ open: '(', close: ')', notIn: ['string'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '<', close: '>' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.flow', |
||||
keywords: [ |
||||
'import', |
||||
'require', |
||||
'export', |
||||
'forbid', |
||||
'native', |
||||
'if', |
||||
'else', |
||||
'cast', |
||||
'unsafe', |
||||
'switch', |
||||
'default' |
||||
], |
||||
types: [ |
||||
'io', |
||||
'mutable', |
||||
'bool', |
||||
'int', |
||||
'double', |
||||
'string', |
||||
'flow', |
||||
'void', |
||||
'ref', |
||||
'true', |
||||
'false', |
||||
'with' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'<=', |
||||
'>=', |
||||
'==', |
||||
'!', |
||||
'!=', |
||||
':=', |
||||
'::=', |
||||
'&&', |
||||
'||', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'@', |
||||
'&', |
||||
'%', |
||||
':', |
||||
'->', |
||||
'\\', |
||||
'$', |
||||
'??', |
||||
'^' |
||||
], |
||||
symbols: /[@$=><!~?:&|+\-*\\\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@types': 'type', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, 'delimiter'], |
||||
[/[<>](?!@symbols)/, 'delimiter'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,223 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/fsharp/fsharp',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['(*', '*)'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)'), |
||||
end: new RegExp('^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.fs', |
||||
keywords: [ |
||||
'abstract', |
||||
'and', |
||||
'atomic', |
||||
'as', |
||||
'assert', |
||||
'asr', |
||||
'base', |
||||
'begin', |
||||
'break', |
||||
'checked', |
||||
'component', |
||||
'const', |
||||
'constraint', |
||||
'constructor', |
||||
'continue', |
||||
'class', |
||||
'default', |
||||
'delegate', |
||||
'do', |
||||
'done', |
||||
'downcast', |
||||
'downto', |
||||
'elif', |
||||
'else', |
||||
'end', |
||||
'exception', |
||||
'eager', |
||||
'event', |
||||
'external', |
||||
'extern', |
||||
'false', |
||||
'finally', |
||||
'for', |
||||
'fun', |
||||
'function', |
||||
'fixed', |
||||
'functor', |
||||
'global', |
||||
'if', |
||||
'in', |
||||
'include', |
||||
'inherit', |
||||
'inline', |
||||
'interface', |
||||
'internal', |
||||
'land', |
||||
'lor', |
||||
'lsl', |
||||
'lsr', |
||||
'lxor', |
||||
'lazy', |
||||
'let', |
||||
'match', |
||||
'member', |
||||
'mod', |
||||
'module', |
||||
'mutable', |
||||
'namespace', |
||||
'method', |
||||
'mixin', |
||||
'new', |
||||
'not', |
||||
'null', |
||||
'of', |
||||
'open', |
||||
'or', |
||||
'object', |
||||
'override', |
||||
'private', |
||||
'parallel', |
||||
'process', |
||||
'protected', |
||||
'pure', |
||||
'public', |
||||
'rec', |
||||
'return', |
||||
'static', |
||||
'sealed', |
||||
'struct', |
||||
'sig', |
||||
'then', |
||||
'to', |
||||
'true', |
||||
'tailcall', |
||||
'trait', |
||||
'try', |
||||
'type', |
||||
'upcast', |
||||
'use', |
||||
'val', |
||||
'void', |
||||
'virtual', |
||||
'volatile', |
||||
'when', |
||||
'while', |
||||
'with', |
||||
'yield' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\^%;\.,\/]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
integersuffix: /[uU]?[yslnLI]?/, |
||||
floatsuffix: /[fFmM]?/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// [< attributes >].
|
||||
[/\[<.*>\]/, 'annotation'], |
||||
// Preprocessor directive
|
||||
[/^#(if|else|endif)/, 'keyword'], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/0x[0-9a-fA-F]+LF/, 'number.float'], |
||||
[/0x[0-9a-fA-F]+(@integersuffix)/, 'number.hex'], |
||||
[/0b[0-1]+(@integersuffix)/, 'number.bin'], |
||||
[/\d+(@integersuffix)/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"""/, 'string', '@string."""'], |
||||
[/"/, 'string', '@string."'], |
||||
// literal string
|
||||
[/\@"/, { token: 'string.quote', next: '@litstring' }], |
||||
// characters
|
||||
[/'[^\\']'B?/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\(\*(?!\))/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^*(]+/, 'comment'], |
||||
[/\*\)/, 'comment', '@pop'], |
||||
[/\*/, 'comment'], |
||||
[/\(\*\)/, 'comment'], |
||||
[/\(/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[ |
||||
/("""|"B?)/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
litstring: [ |
||||
[/[^"]+/, 'string'], |
||||
[/""/, 'string.escape'], |
||||
[/"/, { token: 'string.quote', next: '@pop' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,224 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/go/go',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '`', close: '`', notIn: ['string'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '`', close: '`' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.go', |
||||
keywords: [ |
||||
'break', |
||||
'case', |
||||
'chan', |
||||
'const', |
||||
'continue', |
||||
'default', |
||||
'defer', |
||||
'else', |
||||
'fallthrough', |
||||
'for', |
||||
'func', |
||||
'go', |
||||
'goto', |
||||
'if', |
||||
'import', |
||||
'interface', |
||||
'map', |
||||
'package', |
||||
'range', |
||||
'return', |
||||
'select', |
||||
'struct', |
||||
'switch', |
||||
'type', |
||||
'var', |
||||
'bool', |
||||
'true', |
||||
'false', |
||||
'uint8', |
||||
'uint16', |
||||
'uint32', |
||||
'uint64', |
||||
'int8', |
||||
'int16', |
||||
'int32', |
||||
'int64', |
||||
'float32', |
||||
'float64', |
||||
'complex64', |
||||
'complex128', |
||||
'byte', |
||||
'rune', |
||||
'uint', |
||||
'int', |
||||
'uintptr', |
||||
'string', |
||||
'nil' |
||||
], |
||||
operators: [ |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'<<', |
||||
'>>', |
||||
'&^', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'%=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'<<=', |
||||
'>>=', |
||||
'&^=', |
||||
'&&', |
||||
'||', |
||||
'<-', |
||||
'++', |
||||
'--', |
||||
'==', |
||||
'<', |
||||
'>', |
||||
'=', |
||||
'!', |
||||
'!=', |
||||
'<=', |
||||
'>=', |
||||
':=', |
||||
'...', |
||||
'(', |
||||
')', |
||||
'', |
||||
']', |
||||
'{', |
||||
'}', |
||||
',', |
||||
';', |
||||
'.', |
||||
':' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// [[ attributes ]].
|
||||
[/\[\[.*\]\]/, 'annotation'], |
||||
// Preprocessor directive
|
||||
[/^\s*#\w+/, 'keyword'], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?/, 'number.float'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, 'number.hex'], |
||||
[/0[0-7']*[0-7]/, 'number.octal'], |
||||
[/0[bB][0-1']*[0-1]/, 'number.binary'], |
||||
[/\d[\d']*/, 'number'], |
||||
[/\d/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'], |
||||
[/`/, 'string', '@rawstring'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@doccomment'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
// [/\/\*/, 'comment', '@push' ], // nested comment not allowed :-(
|
||||
// [/\/\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/
|
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
//Identical copy of comment above, except for the addition of .doc
|
||||
doccomment: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
// [/\/\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(
|
||||
[/\/\*/, 'comment.doc.invalid'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
rawstring: [ |
||||
[/[^\`]/, 'string'], |
||||
[/`/, 'string', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,157 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/graphql/graphql',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"""', close: '"""', notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"""', close: '"""' }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
folding: { |
||||
offSide: true |
||||
} |
||||
}; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
defaultToken: 'invalid', |
||||
tokenPostfix: '.gql', |
||||
keywords: [ |
||||
'null', |
||||
'true', |
||||
'false', |
||||
'query', |
||||
'mutation', |
||||
'subscription', |
||||
'extend', |
||||
'schema', |
||||
'directive', |
||||
'scalar', |
||||
'type', |
||||
'interface', |
||||
'union', |
||||
'enum', |
||||
'input', |
||||
'implements', |
||||
'fragment', |
||||
'on' |
||||
], |
||||
typeKeywords: ['Int', 'Float', 'String', 'Boolean', 'ID'], |
||||
directiveLocations: [ |
||||
'SCHEMA', |
||||
'SCALAR', |
||||
'OBJECT', |
||||
'FIELD_DEFINITION', |
||||
'ARGUMENT_DEFINITION', |
||||
'INTERFACE', |
||||
'UNION', |
||||
'ENUM', |
||||
'ENUM_VALUE', |
||||
'INPUT_OBJECT', |
||||
'INPUT_FIELD_DEFINITION', |
||||
'QUERY', |
||||
'MUTATION', |
||||
'SUBSCRIPTION', |
||||
'FIELD', |
||||
'FRAGMENT_DEFINITION', |
||||
'FRAGMENT_SPREAD', |
||||
'INLINE_FRAGMENT', |
||||
'VARIABLE_DEFINITION' |
||||
], |
||||
operators: ['=', '!', '?', ':', '&', '|'], |
||||
// we include these common regular expressions
|
||||
symbols: /[=!?:&|]+/, |
||||
// https://facebook.github.io/graphql/draft/#sec-String-Value
|
||||
escapes: /\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// fields and argument names
|
||||
[ |
||||
/[a-z_][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'key.identifier' |
||||
} |
||||
} |
||||
], |
||||
// identify typed input variables
|
||||
[ |
||||
/[$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'argument.identifier' |
||||
} |
||||
} |
||||
], |
||||
// to show class names nicely
|
||||
[ |
||||
/[A-Z][\w\$]*/, |
||||
{ |
||||
cases: { |
||||
'@typeKeywords': 'keyword', |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, { cases: { '@operators': 'operator', '@default': '' } }], |
||||
// @ annotations.
|
||||
// As an example, we emit a debugging log message on these tokens.
|
||||
// Note: message are supressed during the first load -- change some lines to see them.
|
||||
[/@\s*[a-zA-Z_\$][\w\$]*/, { token: 'annotation', log: 'annotation token: $0' }], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F]+/, 'number.hex'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
[/"""/, { token: 'string', next: '@mlstring', nextEmbedded: 'markdown' }], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@string' }] |
||||
], |
||||
mlstring: [ |
||||
[/[^"]+/, 'string'], |
||||
['"""', { token: 'string', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/#.*$/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,399 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/handlebars/handlebars',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
var EMPTY_ELEMENTS = [ |
||||
'area', |
||||
'base', |
||||
'br', |
||||
'col', |
||||
'embed', |
||||
'hr', |
||||
'img', |
||||
'input', |
||||
'keygen', |
||||
'link', |
||||
'menuitem', |
||||
'meta', |
||||
'param', |
||||
'source', |
||||
'track', |
||||
'wbr' |
||||
]; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, |
||||
comments: { |
||||
blockComment: ['{{!--', '--}}'] |
||||
}, |
||||
brackets: [ |
||||
['<!--', '-->'], |
||||
['<', '>'], |
||||
['{{', '}}'], |
||||
['{', '}'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '<', close: '>' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
afterText: /^<\/(\w[\w\d]*)\s*>$/i, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent |
||||
} |
||||
}, |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
action: { indentAction: monaco_editor_core_1.languages.IndentAction.Indent } |
||||
} |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '', |
||||
// ignoreCase: true,
|
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/\{\{!--/, 'comment.block.start.handlebars', '@commentBlock'], |
||||
[/\{\{!/, 'comment.start.handlebars', '@comment'], |
||||
[/\{\{/, { token: '@rematch', switchTo: '@handlebarsInSimpleState.root' }], |
||||
[/<!DOCTYPE/, 'metatag.html', '@doctype'], |
||||
[/<!--/, 'comment.html', '@commentHtml'], |
||||
[/(<)(\w+)(\/>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
[/(<)(script)/, ['delimiter.html', { token: 'tag.html', next: '@script' }]], |
||||
[/(<)(style)/, ['delimiter.html', { token: 'tag.html', next: '@style' }]], |
||||
[/(<)([:\w]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/(<\/)(\w+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/</, 'delimiter.html'], |
||||
[/\{/, 'delimiter.html'], |
||||
[/[^<{]+/] // text
|
||||
], |
||||
doctype: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.comment' |
||||
} |
||||
], |
||||
[/[^>]+/, 'metatag.content.html'], |
||||
[/>/, 'metatag.html', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/\}\}/, 'comment.end.handlebars', '@pop'], |
||||
[/./, 'comment.content.handlebars'] |
||||
], |
||||
commentBlock: [ |
||||
[/--\}\}/, 'comment.block.end.handlebars', '@pop'], |
||||
[/./, 'comment.content.handlebars'] |
||||
], |
||||
commentHtml: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.comment' |
||||
} |
||||
], |
||||
[/-->/, 'comment.html', '@pop'], |
||||
[/[^-]+/, 'comment.content.html'], |
||||
[/./, 'comment.content.html'] |
||||
], |
||||
otherTag: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.otherTag' |
||||
} |
||||
], |
||||
[/\/?>/, 'delimiter.html', '@pop'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/] // whitespace
|
||||
], |
||||
// -- BEGIN <script> tags handling
|
||||
// After <script
|
||||
script: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.script' |
||||
} |
||||
], |
||||
[/type/, 'attribute.name', '@scriptAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(script\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <script ... type
|
||||
scriptAfterType: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.scriptAfterType' |
||||
} |
||||
], |
||||
[/=/, 'delimiter', '@scriptAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type =
|
||||
scriptAfterTypeEquals: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.scriptAfterTypeEquals' |
||||
} |
||||
], |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type = $S2
|
||||
scriptWithCustomType: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.scriptWithCustomType.$S2' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
scriptEmbedded: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInEmbeddedState.scriptEmbedded.$S2', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
], |
||||
[/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
// -- END <script> tags handling
|
||||
// -- BEGIN <style> tags handling
|
||||
// After <style
|
||||
style: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.style' |
||||
} |
||||
], |
||||
[/type/, 'attribute.name', '@styleAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(style\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <style ... type
|
||||
styleAfterType: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.styleAfterType' |
||||
} |
||||
], |
||||
[/=/, 'delimiter', '@styleAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type =
|
||||
styleAfterTypeEquals: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.styleAfterTypeEquals' |
||||
} |
||||
], |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type = $S2
|
||||
styleWithCustomType: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInSimpleState.styleWithCustomType.$S2' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
styleEmbedded: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@handlebarsInEmbeddedState.styleEmbedded.$S2', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
], |
||||
[/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
// -- END <style> tags handling
|
||||
handlebarsInSimpleState: [ |
||||
[/\{\{\{?/, 'delimiter.handlebars'], |
||||
[/\}\}\}?/, { token: 'delimiter.handlebars', switchTo: '@$S2.$S3' }], |
||||
{ include: 'handlebarsRoot' } |
||||
], |
||||
handlebarsInEmbeddedState: [ |
||||
[/\{\{\{?/, 'delimiter.handlebars'], |
||||
[ |
||||
/\}\}\}?/, |
||||
{ |
||||
token: 'delimiter.handlebars', |
||||
switchTo: '@$S2.$S3', |
||||
nextEmbedded: '$S3' |
||||
} |
||||
], |
||||
{ include: 'handlebarsRoot' } |
||||
], |
||||
handlebarsRoot: [ |
||||
[/"[^"]*"/, 'string.handlebars'], |
||||
[/[#/][^\s}]+/, 'keyword.helper.handlebars'], |
||||
[/else\b/, 'keyword.helper.handlebars'], |
||||
[/[\s]+/], |
||||
[/[^}]/, 'variable.parameter.handlebars'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,187 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/hcl/hcl',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.hcl', |
||||
keywords: [ |
||||
'var', |
||||
'local', |
||||
'path', |
||||
'for_each', |
||||
'any', |
||||
'string', |
||||
'number', |
||||
'bool', |
||||
'true', |
||||
'false', |
||||
'null', |
||||
'if ', |
||||
'else ', |
||||
'endif ', |
||||
'for ', |
||||
'in', |
||||
'endfor' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>=', |
||||
'<=', |
||||
'==', |
||||
'!=', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'&&', |
||||
'||', |
||||
'!', |
||||
'<', |
||||
'>', |
||||
'?', |
||||
'...', |
||||
':' |
||||
], |
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
terraformFunctions: /(abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)/, |
||||
terraformMainBlocks: /(module|data|terraform|resource|provider|variable|output|locals)/, |
||||
tokenizer: { |
||||
root: [ |
||||
// highlight main blocks
|
||||
[ |
||||
/^@terraformMainBlocks([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/, |
||||
['type', '', 'string', '', 'string', '', '@brackets'] |
||||
], |
||||
// highlight all the remaining blocks
|
||||
[ |
||||
/(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/, |
||||
['identifier', '', 'string', '', 'string', '', '@brackets'] |
||||
], |
||||
// highlight block
|
||||
[ |
||||
/(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)(=)(\{)/, |
||||
['identifier', '', 'string', '', 'operator', '', '@brackets'] |
||||
], |
||||
// terraform general highlight - shared with expressions
|
||||
{ include: '@terraform' } |
||||
], |
||||
terraform: [ |
||||
// highlight terraform functions
|
||||
[/@terraformFunctions(\()/, ['type', '@brackets']], |
||||
// all other words are variables or keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*-*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'variable' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@whitespace' }, |
||||
{ include: '@heredoc' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?/, 'number.float'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/\d[\d']*/, 'number'], |
||||
[/\d/, 'number'], |
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"/, 'string', '@string'], |
||||
[/'/, 'invalid'] |
||||
], |
||||
heredoc: [ |
||||
[/<<[-]*\s*["]?([\w\-]+)["]?/, { token: 'string.heredoc.delimiter', next: '@heredocBody.$1' }] |
||||
], |
||||
heredocBody: [ |
||||
[ |
||||
/([\w\-]+)$/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': [ |
||||
{ |
||||
token: 'string.heredoc.delimiter', |
||||
next: '@popall' |
||||
} |
||||
], |
||||
'@default': 'string.heredoc' |
||||
} |
||||
} |
||||
], |
||||
[/./, 'string.heredoc'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'], |
||||
[/#.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/\$\{/, { token: 'delimiter', next: '@stringExpression' }], |
||||
[/[^\\"\$]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@popall'] |
||||
], |
||||
stringInsideExpression: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
stringExpression: [ |
||||
[/\}/, { token: 'delimiter', next: '@pop' }], |
||||
[/"/, 'string', '@stringInsideExpression'], |
||||
{ include: '@terraform' } |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,310 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/html/html',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
var EMPTY_ELEMENTS = [ |
||||
'area', |
||||
'base', |
||||
'br', |
||||
'col', |
||||
'embed', |
||||
'hr', |
||||
'img', |
||||
'input', |
||||
'keygen', |
||||
'link', |
||||
'menuitem', |
||||
'meta', |
||||
'param', |
||||
'source', |
||||
'track', |
||||
'wbr' |
||||
]; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, |
||||
comments: { |
||||
blockComment: ['<!--', '-->'] |
||||
}, |
||||
brackets: [ |
||||
['<!--', '-->'], |
||||
['<', '>'], |
||||
['{', '}'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' } |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent |
||||
} |
||||
}, |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
action: { indentAction: monaco_editor_core_1.languages.IndentAction.Indent } |
||||
} |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*<!--\\s*#region\\b.*-->'), |
||||
end: new RegExp('^\\s*<!--\\s*#endregion\\b.*-->') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.html', |
||||
ignoreCase: true, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/<!DOCTYPE/, 'metatag', '@doctype'], |
||||
[/<!--/, 'comment', '@comment'], |
||||
[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ['delimiter', 'tag', '', 'delimiter']], |
||||
[/(<)(script)/, ['delimiter', { token: 'tag', next: '@script' }]], |
||||
[/(<)(style)/, ['delimiter', { token: 'tag', next: '@style' }]], |
||||
[/(<)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter', { token: 'tag', next: '@otherTag' }]], |
||||
[/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter', { token: 'tag', next: '@otherTag' }]], |
||||
[/</, 'delimiter'], |
||||
[/[^<]+/] // text
|
||||
], |
||||
doctype: [ |
||||
[/[^>]+/, 'metatag.content'], |
||||
[/>/, 'metatag', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/-->/, 'comment', '@pop'], |
||||
[/[^-]+/, 'comment.content'], |
||||
[/./, 'comment.content'] |
||||
], |
||||
otherTag: [ |
||||
[/\/?>/, 'delimiter', '@pop'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/] // whitespace
|
||||
], |
||||
// -- BEGIN <script> tags handling
|
||||
// After <script
|
||||
script: [ |
||||
[/type/, 'attribute.name', '@scriptAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@scriptEmbedded', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/(<\/)(script\s*)(>)/, ['delimiter', 'tag', { token: 'delimiter', next: '@pop' }]] |
||||
], |
||||
// After <script ... type
|
||||
scriptAfterType: [ |
||||
[/=/, 'delimiter', '@scriptAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@scriptEmbedded', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type =
|
||||
scriptAfterTypeEquals: [ |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@scriptEmbedded', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type = $S2
|
||||
scriptWithCustomType: [ |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@scriptEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
scriptEmbedded: [ |
||||
[/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/[^<]+/, ''] |
||||
], |
||||
// -- END <script> tags handling
|
||||
// -- BEGIN <style> tags handling
|
||||
// After <style
|
||||
style: [ |
||||
[/type/, 'attribute.name', '@styleAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@styleEmbedded', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/(<\/)(style\s*)(>)/, ['delimiter', 'tag', { token: 'delimiter', next: '@pop' }]] |
||||
], |
||||
// After <style ... type
|
||||
styleAfterType: [ |
||||
[/=/, 'delimiter', '@styleAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@styleEmbedded', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type =
|
||||
styleAfterTypeEquals: [ |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@styleEmbedded', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type = $S2
|
||||
styleWithCustomType: [ |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter', |
||||
next: '@styleEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
styleEmbedded: [ |
||||
[/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/[^<]+/, ''] |
||||
] |
||||
// -- END <style> tags handling
|
||||
} |
||||
}; |
||||
}); |
||||
// TESTED WITH:
|
||||
// <!DOCTYPE html>
|
||||
// <html>
|
||||
// <head>
|
||||
// <title>Monarch Workbench</title>
|
||||
// <meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
// <!----
|
||||
// -- -- -- a comment -- -- --
|
||||
// ---->
|
||||
// <style bah="bah">
|
||||
// body { font-family: Consolas; } /* nice */
|
||||
// </style>
|
||||
// </head
|
||||
// >
|
||||
// a = "asd"
|
||||
// <body>
|
||||
// <br/>
|
||||
// <div
|
||||
// class
|
||||
// =
|
||||
// "test"
|
||||
// >
|
||||
// <script>
|
||||
// function() {
|
||||
// alert("hi </ script>"); // javascript
|
||||
// };
|
||||
// </script>
|
||||
// <script
|
||||
// bah="asdfg"
|
||||
// type="text/css"
|
||||
// >
|
||||
// .bar { text-decoration: underline; }
|
||||
// </script>
|
||||
// </div>
|
||||
// </body>
|
||||
// </html>
|
||||
; |
@ -0,0 +1,76 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/ini/ini',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.ini', |
||||
// we include these common regular expressions
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// sections
|
||||
[/^\[[^\]]*\]/, 'metatag'], |
||||
// keys
|
||||
[/(^\w+)(\s*)(\=)/, ['key', '', 'delimiter']], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// numbers
|
||||
[/\d+/, 'number'], |
||||
// strings: recover on non-terminated strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string."'], |
||||
[/'/, 'string', "@string.'"] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/^\s*[#;].*$/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,238 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/java/java',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
// the default separators except `@$`
|
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '<', close: '>' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))'), |
||||
end: new RegExp('^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.java', |
||||
keywords: [ |
||||
'abstract', |
||||
'continue', |
||||
'for', |
||||
'new', |
||||
'switch', |
||||
'assert', |
||||
'default', |
||||
'goto', |
||||
'package', |
||||
'synchronized', |
||||
'boolean', |
||||
'do', |
||||
'if', |
||||
'private', |
||||
'this', |
||||
'break', |
||||
'double', |
||||
'implements', |
||||
'protected', |
||||
'throw', |
||||
'byte', |
||||
'else', |
||||
'import', |
||||
'public', |
||||
'throws', |
||||
'case', |
||||
'enum', |
||||
'instanceof', |
||||
'return', |
||||
'transient', |
||||
'catch', |
||||
'extends', |
||||
'int', |
||||
'short', |
||||
'try', |
||||
'char', |
||||
'final', |
||||
'interface', |
||||
'static', |
||||
'void', |
||||
'class', |
||||
'finally', |
||||
'long', |
||||
'strictfp', |
||||
'volatile', |
||||
'const', |
||||
'float', |
||||
'native', |
||||
'super', |
||||
'while', |
||||
'true', |
||||
'false', |
||||
'yield', |
||||
'record', |
||||
'sealed', |
||||
'non-sealed', |
||||
'permits' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'!', |
||||
'~', |
||||
'?', |
||||
':', |
||||
'==', |
||||
'<=', |
||||
'>=', |
||||
'!=', |
||||
'&&', |
||||
'||', |
||||
'++', |
||||
'--', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'%', |
||||
'<<', |
||||
'>>', |
||||
'>>>', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>>=' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
digits: /\d+(_+\d+)*/, |
||||
octaldigits: /[0-7]+(_+[0-7]+)*/, |
||||
binarydigits: /[0-1]+(_+[0-1]+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// Special keyword with a dash
|
||||
['non-sealed', 'keyword.non-sealed'], |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// @ annotations.
|
||||
[/@\s*[a-zA-Z_\$][\w\$]*/, 'annotation'], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, 'number.float'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, 'number.float'], |
||||
[/0[xX](@hexdigits)[Ll]?/, 'number.hex'], |
||||
[/0(@octaldigits)[Ll]?/, 'number.octal'], |
||||
[/0[bB](@binarydigits)[Ll]?/, 'number.binary'], |
||||
[/(@digits)[fFdD]/, 'number.float'], |
||||
[/(@digits)[lL]?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"""/, 'string', '@multistring'], |
||||
[/"/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@javadoc'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
// [/\/\*/, 'comment', '@push' ], // nested comment not allowed :-(
|
||||
// [/\/\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/
|
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
//Identical copy of comment above, except for the addition of .doc
|
||||
javadoc: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
// [/\/\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(
|
||||
[/\/\*/, 'comment.doc.invalid'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
multistring: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"""/, 'string', '@pop'], |
||||
[/./, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,412 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/typescript/typescript',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
// e.g. /** | */
|
||||
beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, |
||||
afterText: /^\s*\*\/$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent, |
||||
appendText: ' * ' |
||||
} |
||||
}, |
||||
{ |
||||
// e.g. /** ...|
|
||||
beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.None, |
||||
appendText: ' * ' |
||||
} |
||||
}, |
||||
{ |
||||
// e.g. * ...|
|
||||
beforeText: /^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.None, |
||||
appendText: '* ' |
||||
} |
||||
}, |
||||
{ |
||||
// e.g. */|
|
||||
beforeText: /^(\t|(\ \ ))*\ \*\/\s*$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.None, |
||||
removeText: 1 |
||||
} |
||||
} |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '`', close: '`', notIn: ['string', 'comment'] }, |
||||
{ open: '/**', close: ' */', notIn: ['string'] } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*#?region\\b'), |
||||
end: new RegExp('^\\s*//\\s*#?endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
defaultToken: 'invalid', |
||||
tokenPostfix: '.ts', |
||||
keywords: [ |
||||
// Should match the keys of textToKeywordObj in
|
||||
// https://github.com/microsoft/TypeScript/blob/master/src/compiler/scanner.ts
|
||||
'abstract', |
||||
'any', |
||||
'as', |
||||
'asserts', |
||||
'bigint', |
||||
'boolean', |
||||
'break', |
||||
'case', |
||||
'catch', |
||||
'class', |
||||
'continue', |
||||
'const', |
||||
'constructor', |
||||
'debugger', |
||||
'declare', |
||||
'default', |
||||
'delete', |
||||
'do', |
||||
'else', |
||||
'enum', |
||||
'export', |
||||
'extends', |
||||
'false', |
||||
'finally', |
||||
'for', |
||||
'from', |
||||
'function', |
||||
'get', |
||||
'if', |
||||
'implements', |
||||
'import', |
||||
'in', |
||||
'infer', |
||||
'instanceof', |
||||
'interface', |
||||
'is', |
||||
'keyof', |
||||
'let', |
||||
'module', |
||||
'namespace', |
||||
'never', |
||||
'new', |
||||
'null', |
||||
'number', |
||||
'object', |
||||
'package', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'override', |
||||
'readonly', |
||||
'require', |
||||
'global', |
||||
'return', |
||||
'set', |
||||
'static', |
||||
'string', |
||||
'super', |
||||
'switch', |
||||
'symbol', |
||||
'this', |
||||
'throw', |
||||
'true', |
||||
'try', |
||||
'type', |
||||
'typeof', |
||||
'undefined', |
||||
'unique', |
||||
'unknown', |
||||
'var', |
||||
'void', |
||||
'while', |
||||
'with', |
||||
'yield', |
||||
'async', |
||||
'await', |
||||
'of' |
||||
], |
||||
operators: [ |
||||
'<=', |
||||
'>=', |
||||
'==', |
||||
'!=', |
||||
'===', |
||||
'!==', |
||||
'=>', |
||||
'+', |
||||
'-', |
||||
'**', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'++', |
||||
'--', |
||||
'<<', |
||||
'</', |
||||
'>>', |
||||
'>>>', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'!', |
||||
'~', |
||||
'&&', |
||||
'||', |
||||
'??', |
||||
'?', |
||||
':', |
||||
'=', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'**=', |
||||
'/=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>>=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'@' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
digits: /\d+(_+\d+)*/, |
||||
octaldigits: /[0-7]+(_+[0-7]+)*/, |
||||
binarydigits: /[0-1]+(_+[0-1]+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, |
||||
regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [[/[{}]/, 'delimiter.bracket'], { include: 'common' }], |
||||
common: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[A-Z][\w\$]*/, 'type.identifier'], |
||||
// [/[A-Z][\w\$]*/, 'identifier'],
|
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// regular expression: ensure it is terminated before beginning (otherwise it is an opeator)
|
||||
[ |
||||
/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/, |
||||
{ token: 'regexp', bracket: '@open', next: '@regexp' } |
||||
], |
||||
// delimiters and operators
|
||||
[/[()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[/!(?=([^=]|$))/, 'delimiter'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?/, 'number.float'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, 'number.float'], |
||||
[/0[xX](@hexdigits)n?/, 'number.hex'], |
||||
[/0[oO]?(@octaldigits)n?/, 'number.octal'], |
||||
[/0[bB](@binarydigits)n?/, 'number.binary'], |
||||
[/(@digits)n?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string_double'], |
||||
[/'/, 'string', '@string_single'], |
||||
[/`/, 'string', '@string_backtick'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@jsdoc'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
jsdoc: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
// We match regular expression quite precisely
|
||||
regexp: [ |
||||
[ |
||||
/(\{)(\d+(?:,\d*)?)(\})/, |
||||
['regexp.escape.control', 'regexp.escape.control', 'regexp.escape.control'] |
||||
], |
||||
[ |
||||
/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, |
||||
['regexp.escape.control', { token: 'regexp.escape.control', next: '@regexrange' }] |
||||
], |
||||
[/(\()(\?:|\?=|\?!)/, ['regexp.escape.control', 'regexp.escape.control']], |
||||
[/[()]/, 'regexp.escape.control'], |
||||
[/@regexpctl/, 'regexp.escape.control'], |
||||
[/[^\\\/]/, 'regexp'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/\\\./, 'regexp.invalid'], |
||||
[/(\/)([dgimsuy]*)/, [{ token: 'regexp', bracket: '@close', next: '@pop' }, 'keyword.other']] |
||||
], |
||||
regexrange: [ |
||||
[/-/, 'regexp.escape.control'], |
||||
[/\^/, 'regexp.invalid'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/[^\]]/, 'regexp'], |
||||
[ |
||||
/\]/, |
||||
{ |
||||
token: 'regexp.escape.control', |
||||
next: '@pop', |
||||
bracket: '@close' |
||||
} |
||||
] |
||||
], |
||||
string_double: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
string_single: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, 'string', '@pop'] |
||||
], |
||||
string_backtick: [ |
||||
[/\$\{/, { token: 'delimiter.bracket', next: '@bracketCounting' }], |
||||
[/[^\\`$]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/`/, 'string', '@pop'] |
||||
], |
||||
bracketCounting: [ |
||||
[/\{/, 'delimiter.bracket', '@bracketCounting'], |
||||
[/\}/, 'delimiter.bracket', '@pop'], |
||||
{ include: 'common' } |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/javascript/javascript',["require", "exports", "../typescript/typescript"], function (require, exports, typescript_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = typescript_1.conf; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
defaultToken: 'invalid', |
||||
tokenPostfix: '.js', |
||||
keywords: [ |
||||
'break', |
||||
'case', |
||||
'catch', |
||||
'class', |
||||
'continue', |
||||
'const', |
||||
'constructor', |
||||
'debugger', |
||||
'default', |
||||
'delete', |
||||
'do', |
||||
'else', |
||||
'export', |
||||
'extends', |
||||
'false', |
||||
'finally', |
||||
'for', |
||||
'from', |
||||
'function', |
||||
'get', |
||||
'if', |
||||
'import', |
||||
'in', |
||||
'instanceof', |
||||
'let', |
||||
'new', |
||||
'null', |
||||
'return', |
||||
'set', |
||||
'super', |
||||
'switch', |
||||
'symbol', |
||||
'this', |
||||
'throw', |
||||
'true', |
||||
'try', |
||||
'typeof', |
||||
'undefined', |
||||
'var', |
||||
'void', |
||||
'while', |
||||
'with', |
||||
'yield', |
||||
'async', |
||||
'await', |
||||
'of' |
||||
], |
||||
typeKeywords: [], |
||||
operators: typescript_1.language.operators, |
||||
symbols: typescript_1.language.symbols, |
||||
escapes: typescript_1.language.escapes, |
||||
digits: typescript_1.language.digits, |
||||
octaldigits: typescript_1.language.octaldigits, |
||||
binarydigits: typescript_1.language.binarydigits, |
||||
hexdigits: typescript_1.language.hexdigits, |
||||
regexpctl: typescript_1.language.regexpctl, |
||||
regexpesc: typescript_1.language.regexpesc, |
||||
tokenizer: typescript_1.language.tokenizer |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,517 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/julia/julia',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
tokenPostfix: '.julia', |
||||
keywords: [ |
||||
'begin', |
||||
'while', |
||||
'if', |
||||
'for', |
||||
'try', |
||||
'return', |
||||
'break', |
||||
'continue', |
||||
'function', |
||||
'macro', |
||||
'quote', |
||||
'let', |
||||
'local', |
||||
'global', |
||||
'const', |
||||
'do', |
||||
'struct', |
||||
'module', |
||||
'baremodule', |
||||
'using', |
||||
'import', |
||||
'export', |
||||
'end', |
||||
'else', |
||||
'elseif', |
||||
'catch', |
||||
'finally', |
||||
'mutable', |
||||
'primitive', |
||||
'abstract', |
||||
'type', |
||||
'in', |
||||
'isa', |
||||
'where', |
||||
'new' |
||||
], |
||||
types: [ |
||||
'LinRange', |
||||
'LineNumberNode', |
||||
'LinearIndices', |
||||
'LoadError', |
||||
'MIME', |
||||
'Matrix', |
||||
'Method', |
||||
'MethodError', |
||||
'Missing', |
||||
'MissingException', |
||||
'Module', |
||||
'NTuple', |
||||
'NamedTuple', |
||||
'Nothing', |
||||
'Number', |
||||
'OrdinalRange', |
||||
'OutOfMemoryError', |
||||
'OverflowError', |
||||
'Pair', |
||||
'PartialQuickSort', |
||||
'PermutedDimsArray', |
||||
'Pipe', |
||||
'Ptr', |
||||
'QuoteNode', |
||||
'Rational', |
||||
'RawFD', |
||||
'ReadOnlyMemoryError', |
||||
'Real', |
||||
'ReentrantLock', |
||||
'Ref', |
||||
'Regex', |
||||
'RegexMatch', |
||||
'RoundingMode', |
||||
'SegmentationFault', |
||||
'Set', |
||||
'Signed', |
||||
'Some', |
||||
'StackOverflowError', |
||||
'StepRange', |
||||
'StepRangeLen', |
||||
'StridedArray', |
||||
'StridedMatrix', |
||||
'StridedVecOrMat', |
||||
'StridedVector', |
||||
'String', |
||||
'StringIndexError', |
||||
'SubArray', |
||||
'SubString', |
||||
'SubstitutionString', |
||||
'Symbol', |
||||
'SystemError', |
||||
'Task', |
||||
'Text', |
||||
'TextDisplay', |
||||
'Timer', |
||||
'Tuple', |
||||
'Type', |
||||
'TypeError', |
||||
'TypeVar', |
||||
'UInt', |
||||
'UInt128', |
||||
'UInt16', |
||||
'UInt32', |
||||
'UInt64', |
||||
'UInt8', |
||||
'UndefInitializer', |
||||
'AbstractArray', |
||||
'UndefKeywordError', |
||||
'AbstractChannel', |
||||
'UndefRefError', |
||||
'AbstractChar', |
||||
'UndefVarError', |
||||
'AbstractDict', |
||||
'Union', |
||||
'AbstractDisplay', |
||||
'UnionAll', |
||||
'AbstractFloat', |
||||
'UnitRange', |
||||
'AbstractIrrational', |
||||
'Unsigned', |
||||
'AbstractMatrix', |
||||
'AbstractRange', |
||||
'Val', |
||||
'AbstractSet', |
||||
'Vararg', |
||||
'AbstractString', |
||||
'VecElement', |
||||
'AbstractUnitRange', |
||||
'VecOrMat', |
||||
'AbstractVecOrMat', |
||||
'Vector', |
||||
'AbstractVector', |
||||
'VersionNumber', |
||||
'Any', |
||||
'WeakKeyDict', |
||||
'ArgumentError', |
||||
'WeakRef', |
||||
'Array', |
||||
'AssertionError', |
||||
'BigFloat', |
||||
'BigInt', |
||||
'BitArray', |
||||
'BitMatrix', |
||||
'BitSet', |
||||
'BitVector', |
||||
'Bool', |
||||
'BoundsError', |
||||
'CapturedException', |
||||
'CartesianIndex', |
||||
'CartesianIndices', |
||||
'Cchar', |
||||
'Cdouble', |
||||
'Cfloat', |
||||
'Channel', |
||||
'Char', |
||||
'Cint', |
||||
'Cintmax_t', |
||||
'Clong', |
||||
'Clonglong', |
||||
'Cmd', |
||||
'Colon', |
||||
'Complex', |
||||
'ComplexF16', |
||||
'ComplexF32', |
||||
'ComplexF64', |
||||
'CompositeException', |
||||
'Condition', |
||||
'Cptrdiff_t', |
||||
'Cshort', |
||||
'Csize_t', |
||||
'Cssize_t', |
||||
'Cstring', |
||||
'Cuchar', |
||||
'Cuint', |
||||
'Cuintmax_t', |
||||
'Culong', |
||||
'Culonglong', |
||||
'Cushort', |
||||
'Cvoid', |
||||
'Cwchar_t', |
||||
'Cwstring', |
||||
'DataType', |
||||
'DenseArray', |
||||
'DenseMatrix', |
||||
'DenseVecOrMat', |
||||
'DenseVector', |
||||
'Dict', |
||||
'DimensionMismatch', |
||||
'Dims', |
||||
'DivideError', |
||||
'DomainError', |
||||
'EOFError', |
||||
'Enum', |
||||
'ErrorException', |
||||
'Exception', |
||||
'ExponentialBackOff', |
||||
'Expr', |
||||
'Float16', |
||||
'Float32', |
||||
'Float64', |
||||
'Function', |
||||
'GlobalRef', |
||||
'HTML', |
||||
'IO', |
||||
'IOBuffer', |
||||
'IOContext', |
||||
'IOStream', |
||||
'IdDict', |
||||
'IndexCartesian', |
||||
'IndexLinear', |
||||
'IndexStyle', |
||||
'InexactError', |
||||
'InitError', |
||||
'Int', |
||||
'Int128', |
||||
'Int16', |
||||
'Int32', |
||||
'Int64', |
||||
'Int8', |
||||
'Integer', |
||||
'InterruptException', |
||||
'InvalidStateException', |
||||
'Irrational', |
||||
'KeyError' |
||||
], |
||||
keywordops: ['<:', '>:', ':', '=>', '...', '.', '->', '?'], |
||||
allops: /[^\w\d\s()\[\]{}"'#]+/, |
||||
constants: [ |
||||
'true', |
||||
'false', |
||||
'nothing', |
||||
'missing', |
||||
'undef', |
||||
'Inf', |
||||
'pi', |
||||
'NaN', |
||||
'π', |
||||
'ℯ', |
||||
'ans', |
||||
'PROGRAM_FILE', |
||||
'ARGS', |
||||
'C_NULL', |
||||
'VERSION', |
||||
'DEPOT_PATH', |
||||
'LOAD_PATH' |
||||
], |
||||
operators: [ |
||||
'!', |
||||
'!=', |
||||
'!==', |
||||
'%', |
||||
'&', |
||||
'*', |
||||
'+', |
||||
'-', |
||||
'/', |
||||
'//', |
||||
'<', |
||||
'<<', |
||||
'<=', |
||||
'==', |
||||
'===', |
||||
'=>', |
||||
'>', |
||||
'>=', |
||||
'>>', |
||||
'>>>', |
||||
'\\', |
||||
'^', |
||||
'|', |
||||
'|>', |
||||
'~', |
||||
'÷', |
||||
'∈', |
||||
'∉', |
||||
'∋', |
||||
'∌', |
||||
'∘', |
||||
'√', |
||||
'∛', |
||||
'∩', |
||||
'∪', |
||||
'≈', |
||||
'≉', |
||||
'≠', |
||||
'≡', |
||||
'≢', |
||||
'≤', |
||||
'≥', |
||||
'⊆', |
||||
'⊇', |
||||
'⊈', |
||||
'⊉', |
||||
'⊊', |
||||
'⊋', |
||||
'⊻' |
||||
], |
||||
brackets: [ |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' } |
||||
], |
||||
ident: /π|ℯ|\b(?!\d)\w+\b/, |
||||
// escape sequences
|
||||
escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/, |
||||
escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/(::)\s*|\b(isa)\s+/, 'keyword', '@typeanno'], |
||||
[/\b(isa)(\s*\(@ident\s*,\s*)/, ['keyword', { token: '', next: '@typeanno' }]], |
||||
[/\b(type|struct)[ \t]+/, 'keyword', '@typeanno'], |
||||
// symbols
|
||||
[/^\s*:@ident[!?]?/, 'metatag'], |
||||
[/(return)(\s*:@ident[!?]?)/, ['keyword', 'metatag']], |
||||
[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/, ['', 'metatag']], |
||||
[/:\(/, 'metatag', '@quote'], |
||||
// regular expressions
|
||||
[/r"""/, 'regexp.delim', '@tregexp'], |
||||
[/r"/, 'regexp.delim', '@sregexp'], |
||||
// strings
|
||||
[/raw"""/, 'string.delim', '@rtstring'], |
||||
[/[bv]?"""/, 'string.delim', '@dtstring'], |
||||
[/raw"/, 'string.delim', '@rsstring'], |
||||
[/[bv]?"/, 'string.delim', '@dsstring'], |
||||
[ |
||||
/(@ident)\{/, |
||||
{ |
||||
cases: { |
||||
'$1@types': { token: 'type', next: '@gen' }, |
||||
'@default': { token: 'type', next: '@gen' } |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/@ident[!?'']?(?=\.?\()/, |
||||
{ |
||||
cases: { |
||||
'@types': 'type', |
||||
'@keywords': 'keyword', |
||||
'@constants': 'variable', |
||||
'@default': 'keyword.flow' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/@ident[!?']?/, |
||||
{ |
||||
cases: { |
||||
'@types': 'type', |
||||
'@keywords': 'keyword', |
||||
'@constants': 'variable', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/\$\w+/, 'key'], |
||||
[/\$\(/, 'key', '@paste'], |
||||
[/@@@ident/, 'annotation'], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// characters
|
||||
[/'(?:@escapes|.)'/, 'string.character'], |
||||
// delimiters and operators
|
||||
[/[()\[\]{}]/, '@brackets'], |
||||
[ |
||||
/@allops/, |
||||
{ |
||||
cases: { |
||||
'@keywordops': 'keyword', |
||||
'@operators': 'operator' |
||||
} |
||||
} |
||||
], |
||||
[/[;,]/, 'delimiter'], |
||||
// numbers
|
||||
[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, 'number.hex'], |
||||
[/0[_oO][0-7](_?[0-7])*/, 'number.octal'], |
||||
[/0[bB][01](_?[01])*/, 'number.binary'], |
||||
[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/, 'number'] |
||||
], |
||||
// type
|
||||
typeanno: [ |
||||
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/, 'type', '@gen'], |
||||
[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/, ['type', 'keyword']], |
||||
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/, 'type', '@pop'], |
||||
['', '', '@pop'] |
||||
], |
||||
// generic type
|
||||
gen: [ |
||||
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/, 'type', '@push'], |
||||
[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/, 'type'], |
||||
[/<:/, 'keyword'], |
||||
[/(\})(\s*<:\s*)/, ['type', { token: 'keyword', next: '@pop' }]], |
||||
[/\}/, 'type', '@pop'], |
||||
{ include: '@root' } |
||||
], |
||||
// $(...)
|
||||
quote: [ |
||||
[/\$\(/, 'key', '@paste'], |
||||
[/\(/, '@brackets', '@paren'], |
||||
[/\)/, 'metatag', '@pop'], |
||||
{ include: '@root' } |
||||
], |
||||
// :(...)
|
||||
paste: [ |
||||
[/:\(/, 'metatag', '@quote'], |
||||
[/\(/, '@brackets', '@paren'], |
||||
[/\)/, 'key', '@pop'], |
||||
{ include: '@root' } |
||||
], |
||||
// (...)
|
||||
paren: [ |
||||
[/\$\(/, 'key', '@paste'], |
||||
[/:\(/, 'metatag', '@quote'], |
||||
[/\(/, '@brackets', '@push'], |
||||
[/\)/, '@brackets', '@pop'], |
||||
{ include: '@root' } |
||||
], |
||||
// r"egex string"
|
||||
sregexp: [ |
||||
[/^.*/, 'invalid'], |
||||
[/[^\\"()\[\]{}]/, 'regexp'], |
||||
[/[()\[\]{}]/, '@brackets'], |
||||
[/\\./, 'operator.scss'], |
||||
[/"[imsx]*/, 'regexp.delim', '@pop'] |
||||
], |
||||
tregexp: [ |
||||
[/[^\\"()\[\]{}]/, 'regexp'], |
||||
[/[()\[\]{}]/, '@brackets'], |
||||
[/\\./, 'operator.scss'], |
||||
[/"(?!"")/, 'string'], |
||||
[/"""[imsx]*/, 'regexp.delim', '@pop'] |
||||
], |
||||
// raw"string"
|
||||
rsstring: [ |
||||
[/^.*/, 'invalid'], |
||||
[/[^\\"]/, 'string'], |
||||
[/\\./, 'string.escape'], |
||||
[/"/, 'string.delim', '@pop'] |
||||
], |
||||
rtstring: [ |
||||
[/[^\\"]/, 'string'], |
||||
[/\\./, 'string.escape'], |
||||
[/"(?!"")/, 'string'], |
||||
[/"""/, 'string.delim', '@pop'] |
||||
], |
||||
// "string".
|
||||
dsstring: [ |
||||
[/^.*/, 'invalid'], |
||||
[/[^\\"\$]/, 'string'], |
||||
[/\$/, '', '@interpolated'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string.delim', '@pop'] |
||||
], |
||||
dtstring: [ |
||||
[/[^\\"\$]/, 'string'], |
||||
[/\$/, '', '@interpolated'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"(?!"")/, 'string'], |
||||
[/"""/, 'string.delim', '@pop'] |
||||
], |
||||
// interpolated sequence
|
||||
interpolated: [ |
||||
[/\(/, { token: '', switchTo: '@interpolated_compound' }], |
||||
[/[a-zA-Z_]\w*/, 'identifier'], |
||||
['', '', '@pop'] // just a $ is interpreted as a $
|
||||
], |
||||
// any code
|
||||
interpolated_compound: [[/\)/, '', '@pop'], { include: '@root' }], |
||||
// whitespace & comments
|
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/#=/, 'comment', '@multi_comment'], |
||||
[/#.*$/, 'comment'] |
||||
], |
||||
multi_comment: [ |
||||
[/#=/, 'comment', '@push'], |
||||
[/=#/, 'comment', '@pop'], |
||||
[/=(?!#)|#(?!=)/, 'comment'], |
||||
[/[^#=]+/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,259 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/kotlin/kotlin',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
// the default separators except `@$`
|
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '<', close: '>' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))'), |
||||
end: new RegExp('^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.kt', |
||||
keywords: [ |
||||
'as', |
||||
'as?', |
||||
'break', |
||||
'class', |
||||
'continue', |
||||
'do', |
||||
'else', |
||||
'false', |
||||
'for', |
||||
'fun', |
||||
'if', |
||||
'in', |
||||
'!in', |
||||
'interface', |
||||
'is', |
||||
'!is', |
||||
'null', |
||||
'object', |
||||
'package', |
||||
'return', |
||||
'super', |
||||
'this', |
||||
'throw', |
||||
'true', |
||||
'try', |
||||
'typealias', |
||||
'val', |
||||
'var', |
||||
'when', |
||||
'while', |
||||
'by', |
||||
'catch', |
||||
'constructor', |
||||
'delegate', |
||||
'dynamic', |
||||
'field', |
||||
'file', |
||||
'finally', |
||||
'get', |
||||
'import', |
||||
'init', |
||||
'param', |
||||
'property', |
||||
'receiver', |
||||
'set', |
||||
'setparam', |
||||
'where', |
||||
'actual', |
||||
'abstract', |
||||
'annotation', |
||||
'companion', |
||||
'const', |
||||
'crossinline', |
||||
'data', |
||||
'enum', |
||||
'expect', |
||||
'external', |
||||
'final', |
||||
'infix', |
||||
'inline', |
||||
'inner', |
||||
'internal', |
||||
'lateinit', |
||||
'noinline', |
||||
'open', |
||||
'operator', |
||||
'out', |
||||
'override', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'reified', |
||||
'sealed', |
||||
'suspend', |
||||
'tailrec', |
||||
'vararg', |
||||
'field', |
||||
'it' |
||||
], |
||||
operators: [ |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'=', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'%=', |
||||
'++', |
||||
'--', |
||||
'&&', |
||||
'||', |
||||
'!', |
||||
'==', |
||||
'!=', |
||||
'===', |
||||
'!==', |
||||
'>', |
||||
'<', |
||||
'<=', |
||||
'>=', |
||||
'[', |
||||
']', |
||||
'!!', |
||||
'?.', |
||||
'?:', |
||||
'::', |
||||
'..', |
||||
':', |
||||
'?', |
||||
'->', |
||||
'@', |
||||
';', |
||||
'$', |
||||
'_' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
digits: /\d+(_+\d+)*/, |
||||
octaldigits: /[0-7]+(_+[0-7]+)*/, |
||||
binarydigits: /[0-1]+(_+[0-1]+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// class name highlighting
|
||||
[/[A-Z][\w\$]*/, 'type.identifier'], |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// @ annotations.
|
||||
[/@\s*[a-zA-Z_\$][\w\$]*/, 'annotation'], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, 'number.float'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, 'number.float'], |
||||
[/0[xX](@hexdigits)[Ll]?/, 'number.hex'], |
||||
[/0(@octaldigits)[Ll]?/, 'number.octal'], |
||||
[/0[bB](@binarydigits)[Ll]?/, 'number.binary'], |
||||
[/(@digits)[fFdD]/, 'number.float'], |
||||
[/(@digits)[lL]?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"""/, 'string', '@multistring'], |
||||
[/"/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@javadoc'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
//Identical copy of comment above, except for the addition of .doc
|
||||
javadoc: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\/\*/, 'comment.doc', '@push'], |
||||
[/\/\*/, 'comment.doc.invalid'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
multistring: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"""/, 'string', '@pop'], |
||||
[/./, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,168 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/less/less',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g, |
||||
comments: { |
||||
blockComment: ['/*', '*/'], |
||||
lineComment: '//' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/'), |
||||
end: new RegExp('^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.less', |
||||
identifier: '-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*', |
||||
identifierPlus: '-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.bracket' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@nestedJSBegin' }, |
||||
['[ \\t\\r\\n]+', ''], |
||||
{ include: '@comments' }, |
||||
{ include: '@keyword' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@numbers' }, |
||||
['[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))', 'attribute.name', '@attribute'], |
||||
['url(\\-prefix)?\\(', { token: 'tag', next: '@urldeclaration' }], |
||||
['[{}()\\[\\]]', '@brackets'], |
||||
['[,:;]', 'delimiter'], |
||||
['#@identifierPlus', 'tag.id'], |
||||
['&', 'tag'], |
||||
['\\.@identifierPlus(?=\\()', 'tag.class', '@attribute'], |
||||
['\\.@identifierPlus', 'tag.class'], |
||||
['@identifierPlus', 'tag'], |
||||
{ include: '@operators' }, |
||||
['@(@identifier(?=[:,\\)]))', 'variable', '@attribute'], |
||||
['@(@identifier)', 'variable'], |
||||
['@', 'key', '@atRules'] |
||||
], |
||||
nestedJSBegin: [ |
||||
['``', 'delimiter.backtick'], |
||||
[ |
||||
'`', |
||||
{ |
||||
token: 'delimiter.backtick', |
||||
next: '@nestedJSEnd', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
] |
||||
], |
||||
nestedJSEnd: [ |
||||
[ |
||||
'`', |
||||
{ |
||||
token: 'delimiter.backtick', |
||||
next: '@pop', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
] |
||||
], |
||||
operators: [['[<>=\\+\\-\\*\\/\\^\\|\\~]', 'operator']], |
||||
keyword: [ |
||||
[ |
||||
'(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b', |
||||
'keyword' |
||||
] |
||||
], |
||||
urldeclaration: [ |
||||
{ include: '@strings' }, |
||||
['[^)\r\n]+', 'string'], |
||||
['\\)', { token: 'tag', next: '@pop' }] |
||||
], |
||||
attribute: [ |
||||
{ include: '@nestedJSBegin' }, |
||||
{ include: '@comments' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@keyword' }, |
||||
['[a-zA-Z\\-]+(?=\\()', 'attribute.value', '@attribute'], |
||||
['>', 'operator', '@pop'], |
||||
['@identifier', 'attribute.value'], |
||||
{ include: '@operators' }, |
||||
['@(@identifier)', 'variable'], |
||||
['[)\\}]', '@brackets', '@pop'], |
||||
['[{}()\\[\\]>]', '@brackets'], |
||||
['[;]', 'delimiter', '@pop'], |
||||
['[,=:]', 'delimiter'], |
||||
['\\s', ''], |
||||
['.', 'attribute.value'] |
||||
], |
||||
comments: [ |
||||
['\\/\\*', 'comment', '@comment'], |
||||
['\\/\\/+.*', 'comment'] |
||||
], |
||||
comment: [ |
||||
['\\*\\/', 'comment', '@pop'], |
||||
['.', 'comment'] |
||||
], |
||||
numbers: [ |
||||
['(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?', { token: 'attribute.value.number', next: '@units' }], |
||||
['#[0-9a-fA-F_]+(?!\\w)', 'attribute.value.hex'] |
||||
], |
||||
units: [ |
||||
[ |
||||
'(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?', |
||||
'attribute.value.unit', |
||||
'@pop' |
||||
] |
||||
], |
||||
strings: [ |
||||
['~?"', { token: 'string.delimiter', next: '@stringsEndDoubleQuote' }], |
||||
["~?'", { token: 'string.delimiter', next: '@stringsEndQuote' }] |
||||
], |
||||
stringsEndDoubleQuote: [ |
||||
['\\\\"', 'string'], |
||||
['"', { token: 'string.delimiter', next: '@popall' }], |
||||
['.', 'string'] |
||||
], |
||||
stringsEndQuote: [ |
||||
["\\\\'", 'string'], |
||||
["'", { token: 'string.delimiter', next: '@popall' }], |
||||
['.', 'string'] |
||||
], |
||||
atRules: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@strings' }, |
||||
['[()]', 'delimiter'], |
||||
['[\\{;]', 'delimiter', '@pop'], |
||||
['.', 'key'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,164 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/lexon/lexon',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: 'COMMENT' |
||||
// blockComment: ['COMMENT', '.'],
|
||||
}, |
||||
brackets: [['(', ')']], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: ':', close: '.' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '`', close: '`' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: ':', close: '.' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*(::\\s*|COMMENT\\s+)#region'), |
||||
end: new RegExp('^\\s*(::\\s*|COMMENT\\s+)#endregion') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
// defaultToken: 'invalid',
|
||||
tokenPostfix: '.lexon', |
||||
ignoreCase: true, |
||||
keywords: [ |
||||
'lexon', |
||||
'lex', |
||||
'clause', |
||||
'terms', |
||||
'contracts', |
||||
'may', |
||||
'pay', |
||||
'pays', |
||||
'appoints', |
||||
'into', |
||||
'to' |
||||
], |
||||
typeKeywords: ['amount', 'person', 'key', 'time', 'date', 'asset', 'text'], |
||||
operators: [ |
||||
'less', |
||||
'greater', |
||||
'equal', |
||||
'le', |
||||
'gt', |
||||
'or', |
||||
'and', |
||||
'add', |
||||
'added', |
||||
'subtract', |
||||
'subtracted', |
||||
'multiply', |
||||
'multiplied', |
||||
'times', |
||||
'divide', |
||||
'divided', |
||||
'is', |
||||
'be', |
||||
'certified' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// comment
|
||||
[/^(\s*)(comment:?(?:\s.*|))$/, ['', 'comment']], |
||||
// special identifier cases
|
||||
[ |
||||
/"/, |
||||
{ |
||||
token: 'identifier.quote', |
||||
bracket: '@open', |
||||
next: '@quoted_identifier' |
||||
} |
||||
], |
||||
[ |
||||
'LEX$', |
||||
{ |
||||
token: 'keyword', |
||||
bracket: '@open', |
||||
next: '@identifier_until_period' |
||||
} |
||||
], |
||||
['LEXON', { token: 'keyword', bracket: '@open', next: '@semver' }], |
||||
[ |
||||
':', |
||||
{ |
||||
token: 'delimiter', |
||||
bracket: '@open', |
||||
next: '@identifier_until_period' |
||||
} |
||||
], |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator', |
||||
'@typeKeywords': 'keyword.type', |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d*\.\d*\.\d*/, 'number.semver'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F]+/, 'number.hex'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'] |
||||
], |
||||
quoted_identifier: [ |
||||
[/[^\\"]+/, 'identifier'], |
||||
[/"/, { token: 'identifier.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
space_identifier_until_period: [ |
||||
[':', 'delimiter'], |
||||
[' ', { token: 'white', next: '@identifier_rest' }] |
||||
], |
||||
identifier_until_period: [ |
||||
{ include: '@whitespace' }, |
||||
[':', { token: 'delimiter', next: '@identifier_rest' }], |
||||
[/[^\\.]+/, 'identifier'], |
||||
[/\./, { token: 'delimiter', bracket: '@close', next: '@pop' }] |
||||
], |
||||
identifier_rest: [ |
||||
[/[^\\.]+/, 'identifier'], |
||||
[/\./, { token: 'delimiter', bracket: '@close', next: '@pop' }] |
||||
], |
||||
semver: [ |
||||
{ include: '@whitespace' }, |
||||
[':', 'delimiter'], |
||||
[/\d*\.\d*\.\d*/, { token: 'number.semver', bracket: '@close', next: '@pop' }] |
||||
], |
||||
whitespace: [[/[ \t\r\n]+/, 'white']] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,232 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/liquid/liquid',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
var EMPTY_ELEMENTS = [ |
||||
'area', |
||||
'base', |
||||
'br', |
||||
'col', |
||||
'embed', |
||||
'hr', |
||||
'img', |
||||
'input', |
||||
'keygen', |
||||
'link', |
||||
'menuitem', |
||||
'meta', |
||||
'param', |
||||
'source', |
||||
'track', |
||||
'wbr' |
||||
]; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, |
||||
brackets: [ |
||||
['<!--', '-->'], |
||||
['<', '>'], |
||||
['{{', '}}'], |
||||
['{%', '%}'], |
||||
['{', '}'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '%', close: '%' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '<', close: '>' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
afterText: /^<\/(\w[\w\d]*)\s*>$/i, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent |
||||
} |
||||
}, |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
action: { indentAction: monaco_editor_core_1.languages.IndentAction.Indent } |
||||
} |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '', |
||||
builtinTags: [ |
||||
'if', |
||||
'else', |
||||
'elseif', |
||||
'endif', |
||||
'render', |
||||
'assign', |
||||
'capture', |
||||
'endcapture', |
||||
'case', |
||||
'endcase', |
||||
'comment', |
||||
'endcomment', |
||||
'cycle', |
||||
'decrement', |
||||
'for', |
||||
'endfor', |
||||
'include', |
||||
'increment', |
||||
'layout', |
||||
'raw', |
||||
'endraw', |
||||
'render', |
||||
'tablerow', |
||||
'endtablerow', |
||||
'unless', |
||||
'endunless' |
||||
], |
||||
builtinFilters: [ |
||||
'abs', |
||||
'append', |
||||
'at_least', |
||||
'at_most', |
||||
'capitalize', |
||||
'ceil', |
||||
'compact', |
||||
'date', |
||||
'default', |
||||
'divided_by', |
||||
'downcase', |
||||
'escape', |
||||
'escape_once', |
||||
'first', |
||||
'floor', |
||||
'join', |
||||
'json', |
||||
'last', |
||||
'lstrip', |
||||
'map', |
||||
'minus', |
||||
'modulo', |
||||
'newline_to_br', |
||||
'plus', |
||||
'prepend', |
||||
'remove', |
||||
'remove_first', |
||||
'replace', |
||||
'replace_first', |
||||
'reverse', |
||||
'round', |
||||
'rstrip', |
||||
'size', |
||||
'slice', |
||||
'sort', |
||||
'sort_natural', |
||||
'split', |
||||
'strip', |
||||
'strip_html', |
||||
'strip_newlines', |
||||
'times', |
||||
'truncate', |
||||
'truncatewords', |
||||
'uniq', |
||||
'upcase', |
||||
'url_decode', |
||||
'url_encode', |
||||
'where' |
||||
], |
||||
constants: ['true', 'false'], |
||||
operators: ['==', '!=', '>', '<', '>=', '<='], |
||||
symbol: /[=><!]+/, |
||||
identifier: /[a-zA-Z_][\w]*/, |
||||
tokenizer: { |
||||
root: [ |
||||
[/\{\%\s*comment\s*\%\}/, 'comment.start.liquid', '@comment'], |
||||
[/\{\{/, { token: '@rematch', switchTo: '@liquidState.root' }], |
||||
[/\{\%/, { token: '@rematch', switchTo: '@liquidState.root' }], |
||||
[/(<)([\w\-]+)(\/>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
[/(<)([:\w]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/(<\/)([\w\-]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/</, 'delimiter.html'], |
||||
[/\{/, 'delimiter.html'], |
||||
[/[^<{]+/] // text
|
||||
], |
||||
comment: [ |
||||
[/\{\%\s*endcomment\s*\%\}/, 'comment.end.liquid', '@pop'], |
||||
[/./, 'comment.content.liquid'] |
||||
], |
||||
otherTag: [ |
||||
[ |
||||
/\{\{/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@liquidState.otherTag' |
||||
} |
||||
], |
||||
[ |
||||
/\{\%/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@liquidState.otherTag' |
||||
} |
||||
], |
||||
[/\/?>/, 'delimiter.html', '@pop'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/] // whitespace
|
||||
], |
||||
liquidState: [ |
||||
[/\{\{/, 'delimiter.output.liquid'], |
||||
[/\}\}/, { token: 'delimiter.output.liquid', switchTo: '@$S2.$S3' }], |
||||
[/\{\%/, 'delimiter.tag.liquid'], |
||||
[/raw\s*\%\}/, 'delimiter.tag.liquid', '@liquidRaw'], |
||||
[/\%\}/, { token: 'delimiter.tag.liquid', switchTo: '@$S2.$S3' }], |
||||
{ include: 'liquidRoot' } |
||||
], |
||||
liquidRaw: [ |
||||
[/^(?!\{\%\s*endraw\s*\%\}).+/], |
||||
[/\{\%/, 'delimiter.tag.liquid'], |
||||
[/@identifier/], |
||||
[/\%\}/, { token: 'delimiter.tag.liquid', next: '@root' }] |
||||
], |
||||
liquidRoot: [ |
||||
[/\d+(\.\d+)?/, 'number.liquid'], |
||||
[/"[^"]*"/, 'string.liquid'], |
||||
[/'[^']*'/, 'string.liquid'], |
||||
[/\s+/], |
||||
[ |
||||
/@symbol/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator.liquid', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
[/\./], |
||||
[ |
||||
/@identifier/, |
||||
{ |
||||
cases: { |
||||
'@constants': 'keyword.liquid', |
||||
'@builtinFilters': 'predefined.liquid', |
||||
'@builtinTags': 'predefined.liquid', |
||||
'@default': 'variable.liquid' |
||||
} |
||||
} |
||||
], |
||||
[/[^}|%]/, 'variable.liquid'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,167 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/lua/lua',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '--', |
||||
blockComment: ['--[[', ']]'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.lua', |
||||
keywords: [ |
||||
'and', |
||||
'break', |
||||
'do', |
||||
'else', |
||||
'elseif', |
||||
'end', |
||||
'false', |
||||
'for', |
||||
'function', |
||||
'goto', |
||||
'if', |
||||
'in', |
||||
'local', |
||||
'nil', |
||||
'not', |
||||
'or', |
||||
'repeat', |
||||
'return', |
||||
'then', |
||||
'true', |
||||
'until', |
||||
'while' |
||||
], |
||||
brackets: [ |
||||
{ token: 'delimiter.bracket', open: '{', close: '}' }, |
||||
{ token: 'delimiter.array', open: '[', close: ']' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' } |
||||
], |
||||
operators: [ |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'^', |
||||
'#', |
||||
'==', |
||||
'~=', |
||||
'<=', |
||||
'>=', |
||||
'<', |
||||
'>', |
||||
'=', |
||||
';', |
||||
':', |
||||
',', |
||||
'.', |
||||
'..', |
||||
'...' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// keys
|
||||
[/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, ['delimiter', '', 'key', '', 'delimiter']], |
||||
[/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, ['@brackets', '', 'key', '', 'delimiter']], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'], |
||||
[/\d+?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings: recover on non-terminated strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string."'], |
||||
[/'/, 'string', "@string.'"] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/--\[([=]*)\[/, 'comment', '@comment.$1'], |
||||
[/--.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\]]+/, 'comment'], |
||||
[ |
||||
/\]([=]*)\]/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': { token: 'comment', next: '@pop' }, |
||||
'@default': 'comment' |
||||
} |
||||
} |
||||
], |
||||
[/./, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,217 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/m3/m3',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
blockComment: ['(*', '*)'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '(*', close: '*)' }, |
||||
{ open: '<*', close: '*>' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.m3', |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' } |
||||
], |
||||
keywords: [ |
||||
'AND', |
||||
'ANY', |
||||
'ARRAY', |
||||
'AS', |
||||
'BEGIN', |
||||
'BITS', |
||||
'BRANDED', |
||||
'BY', |
||||
'CASE', |
||||
'CONST', |
||||
'DIV', |
||||
'DO', |
||||
'ELSE', |
||||
'ELSIF', |
||||
'END', |
||||
'EVAL', |
||||
'EXCEPT', |
||||
'EXCEPTION', |
||||
'EXIT', |
||||
'EXPORTS', |
||||
'FINALLY', |
||||
'FOR', |
||||
'FROM', |
||||
'GENERIC', |
||||
'IF', |
||||
'IMPORT', |
||||
'IN', |
||||
'INTERFACE', |
||||
'LOCK', |
||||
'LOOP', |
||||
'METHODS', |
||||
'MOD', |
||||
'MODULE', |
||||
'NOT', |
||||
'OBJECT', |
||||
'OF', |
||||
'OR', |
||||
'OVERRIDES', |
||||
'PROCEDURE', |
||||
'RAISE', |
||||
'RAISES', |
||||
'READONLY', |
||||
'RECORD', |
||||
'REF', |
||||
'REPEAT', |
||||
'RETURN', |
||||
'REVEAL', |
||||
'SET', |
||||
'THEN', |
||||
'TO', |
||||
'TRY', |
||||
'TYPE', |
||||
'TYPECASE', |
||||
'UNSAFE', |
||||
'UNTIL', |
||||
'UNTRACED', |
||||
'VALUE', |
||||
'VAR', |
||||
'WHILE', |
||||
'WITH' |
||||
], |
||||
reservedConstNames: [ |
||||
'ABS', |
||||
'ADR', |
||||
'ADRSIZE', |
||||
'BITSIZE', |
||||
'BYTESIZE', |
||||
'CEILING', |
||||
'DEC', |
||||
'DISPOSE', |
||||
'FALSE', |
||||
'FIRST', |
||||
'FLOAT', |
||||
'FLOOR', |
||||
'INC', |
||||
'ISTYPE', |
||||
'LAST', |
||||
'LOOPHOLE', |
||||
'MAX', |
||||
'MIN', |
||||
'NARROW', |
||||
'NEW', |
||||
'NIL', |
||||
'NUMBER', |
||||
'ORD', |
||||
'ROUND', |
||||
'SUBARRAY', |
||||
'TRUE', |
||||
'TRUNC', |
||||
'TYPECODE', |
||||
'VAL' |
||||
], |
||||
reservedTypeNames: [ |
||||
'ADDRESS', |
||||
'ANY', |
||||
'BOOLEAN', |
||||
'CARDINAL', |
||||
'CHAR', |
||||
'EXTENDED', |
||||
'INTEGER', |
||||
'LONGCARD', |
||||
'LONGINT', |
||||
'LONGREAL', |
||||
'MUTEX', |
||||
'NULL', |
||||
'REAL', |
||||
'REFANY', |
||||
'ROOT', |
||||
'TEXT' |
||||
], |
||||
operators: ['+', '-', '*', '/', '&', '^', '.'], |
||||
relations: ['=', '#', '<', '<=', '>', '>=', '<:', ':'], |
||||
delimiters: ['|', '..', '=>', ',', ';', ':='], |
||||
symbols: /[>=<#.,:;+\-*/&^]+/, |
||||
escapes: /\\(?:[\\fnrt"']|[0-7]{3})/, |
||||
tokenizer: { |
||||
root: [ |
||||
// Identifiers and keywords
|
||||
[/_\w*/, 'invalid'], |
||||
[ |
||||
/[a-zA-Z][a-zA-Z0-9_]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@reservedConstNames': { token: 'constant.reserved.$0' }, |
||||
'@reservedTypeNames': { token: 'type.reserved.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// Whitespace
|
||||
{ include: '@whitespace' }, |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
// Integer- and real literals
|
||||
[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/, 'number.float'], |
||||
[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/, 'number'], |
||||
// Operators, relations, and delimiters
|
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operators', |
||||
'@relations': 'operators', |
||||
'@delimiters': 'delimiter', |
||||
'@default': 'invalid' |
||||
} |
||||
} |
||||
], |
||||
// Character literals
|
||||
[/'[^\\']'/, 'string.char'], |
||||
[/(')(@escapes)(')/, ['string.char', 'string.escape', 'string.char']], |
||||
[/'/, 'invalid'], |
||||
// Text literals
|
||||
[/"([^"\\]|\\.)*$/, 'invalid'], |
||||
[/"/, 'string.text', '@text'] |
||||
], |
||||
text: [ |
||||
[/[^\\"]+/, 'string.text'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'invalid'], |
||||
[/"/, 'string.text', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/\(\*/, 'comment', '@push'], |
||||
[/\*\)/, 'comment', '@pop'], |
||||
[/./, 'comment'] |
||||
], |
||||
pragma: [ |
||||
[/<\*/, 'keyword.pragma', '@push'], |
||||
[/\*>/, 'keyword.pragma', '@pop'], |
||||
[/./, 'keyword.pragma'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\(\*/, 'comment', '@comment'], |
||||
[/<\*/, 'keyword.pragma', '@pragma'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,229 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/markdown/markdown',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
blockComment: ['<!--', '-->'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '(', close: ')' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '`', close: '`' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*<!--\\s*#?region\\b.*-->'), |
||||
end: new RegExp('^\\s*<!--\\s*#?endregion\\b.*-->') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.md', |
||||
// escape codes
|
||||
control: /[\\`*_\[\]{}()#+\-\.!]/, |
||||
noncontrol: /[^\\`*_\[\]{}()#+\-\.!]/, |
||||
escapes: /\\(?:@control)/, |
||||
// escape codes for javascript/CSS strings
|
||||
jsescapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/, |
||||
// non matched elements
|
||||
empty: [ |
||||
'area', |
||||
'base', |
||||
'basefont', |
||||
'br', |
||||
'col', |
||||
'frame', |
||||
'hr', |
||||
'img', |
||||
'input', |
||||
'isindex', |
||||
'link', |
||||
'meta', |
||||
'param' |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
// markdown tables
|
||||
[/^\s*\|/, '@rematch', '@table_header'], |
||||
// headers (with #)
|
||||
[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/, ['white', 'keyword', 'keyword', 'keyword']], |
||||
// headers (with =)
|
||||
[/^\s*(=+|\-+)\s*$/, 'keyword'], |
||||
// headers (with ***)
|
||||
[/^\s*((\*[ ]?)+)\s*$/, 'meta.separator'], |
||||
// quote
|
||||
[/^\s*>+/, 'comment'], |
||||
// list (starting with * or number)
|
||||
[/^\s*([\*\-+:]|\d+\.)\s/, 'keyword'], |
||||
// code block (4 spaces indent)
|
||||
[/^(\t|[ ]{4})[^ ].*$/, 'string'], |
||||
// code block (3 tilde)
|
||||
[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/, { token: 'string', next: '@codeblock' }], |
||||
// github style code blocks (with backticks and language)
|
||||
[ |
||||
/^\s*```\s*((?:\w|[\/\-#])+).*$/, |
||||
{ token: 'string', next: '@codeblockgh', nextEmbedded: '$1' } |
||||
], |
||||
// github style code blocks (with backticks but no language)
|
||||
[/^\s*```\s*$/, { token: 'string', next: '@codeblock' }], |
||||
// markup within lines
|
||||
{ include: '@linecontent' } |
||||
], |
||||
table_header: [ |
||||
{ include: '@table_common' }, |
||||
[/[^\|]+/, 'keyword.table.header'] // table header
|
||||
], |
||||
table_body: [{ include: '@table_common' }, { include: '@linecontent' }], |
||||
table_common: [ |
||||
[/\s*[\-:]+\s*/, { token: 'keyword', switchTo: 'table_body' }], |
||||
[/^\s*\|/, 'keyword.table.left'], |
||||
[/^\s*[^\|]/, '@rematch', '@pop'], |
||||
[/^\s*$/, '@rematch', '@pop'], |
||||
[ |
||||
/\|/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'keyword.table.right', |
||||
'@default': 'keyword.table.middle' // inner |
|
||||
} |
||||
} |
||||
] |
||||
], |
||||
codeblock: [ |
||||
[/^\s*~~~\s*$/, { token: 'string', next: '@pop' }], |
||||
[/^\s*```\s*$/, { token: 'string', next: '@pop' }], |
||||
[/.*$/, 'variable.source'] |
||||
], |
||||
// github style code blocks
|
||||
codeblockgh: [ |
||||
[/```\s*$/, { token: 'string', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/[^`]+/, 'variable.source'] |
||||
], |
||||
linecontent: [ |
||||
// escapes
|
||||
[/&\w+;/, 'string.escape'], |
||||
[/@escapes/, 'escape'], |
||||
// various markup
|
||||
[/\b__([^\\_]|@escapes|_(?!_))+__\b/, 'strong'], |
||||
[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/, 'strong'], |
||||
[/\b_[^_]+_\b/, 'emphasis'], |
||||
[/\*([^\\*]|@escapes)+\*/, 'emphasis'], |
||||
[/`([^\\`]|@escapes)+`/, 'variable'], |
||||
// links
|
||||
[/\{+[^}]+\}+/, 'string.target'], |
||||
[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/, ['string.link', '', 'string.link']], |
||||
[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/, 'string.link'], |
||||
// or html
|
||||
{ include: 'html' } |
||||
], |
||||
// Note: it is tempting to rather switch to the real HTML mode instead of building our own here
|
||||
// but currently there is a limitation in Monarch that prevents us from doing it: The opening
|
||||
// '<' would start the HTML mode, however there is no way to jump 1 character back to let the
|
||||
// HTML mode also tokenize the opening angle bracket. Thus, even though we could jump to HTML,
|
||||
// we cannot correctly tokenize it in that mode yet.
|
||||
html: [ |
||||
// html tags
|
||||
[/<(\w+)\/>/, 'tag'], |
||||
[ |
||||
/<(\w+)/, |
||||
{ |
||||
cases: { |
||||
'@empty': { token: 'tag', next: '@tag.$1' }, |
||||
'@default': { token: 'tag', next: '@tag.$1' } |
||||
} |
||||
} |
||||
], |
||||
[/<\/(\w+)\s*>/, { token: 'tag' }], |
||||
[/<!--/, 'comment', '@comment'] |
||||
], |
||||
comment: [ |
||||
[/[^<\-]+/, 'comment.content'], |
||||
[/-->/, 'comment', '@pop'], |
||||
[/<!--/, 'comment.content.invalid'], |
||||
[/[<\-]/, 'comment.content'] |
||||
], |
||||
// Almost full HTML tag matching, complete with embedded scripts & styles
|
||||
tag: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[ |
||||
/(type)(\s*=\s*)(")([^"]+)(")/, |
||||
[ |
||||
'attribute.name.html', |
||||
'delimiter.html', |
||||
'string.html', |
||||
{ token: 'string.html', switchTo: '@tag.$S2.$4' }, |
||||
'string.html' |
||||
] |
||||
], |
||||
[ |
||||
/(type)(\s*=\s*)(')([^']+)(')/, |
||||
[ |
||||
'attribute.name.html', |
||||
'delimiter.html', |
||||
'string.html', |
||||
{ token: 'string.html', switchTo: '@tag.$S2.$4' }, |
||||
'string.html' |
||||
] |
||||
], |
||||
[/(\w+)(\s*=\s*)("[^"]*"|'[^']*')/, ['attribute.name.html', 'delimiter.html', 'string.html']], |
||||
[/\w+/, 'attribute.name.html'], |
||||
[/\/>/, 'tag', '@pop'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
cases: { |
||||
'$S2==style': { |
||||
token: 'tag', |
||||
switchTo: 'embeddedStyle', |
||||
nextEmbedded: 'text/css' |
||||
}, |
||||
'$S2==script': { |
||||
cases: { |
||||
$S3: { |
||||
token: 'tag', |
||||
switchTo: 'embeddedScript', |
||||
nextEmbedded: '$S3' |
||||
}, |
||||
'@default': { |
||||
token: 'tag', |
||||
switchTo: 'embeddedScript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
} |
||||
}, |
||||
'@default': { token: 'tag', next: '@pop' } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
embeddedStyle: [ |
||||
[/[^<]+/, ''], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/</, ''] |
||||
], |
||||
embeddedScript: [ |
||||
[/[^<]+/, ''], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/</, ''] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,205 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/mips/mips',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
blockComment: ['###', '###'], |
||||
lineComment: '#' |
||||
}, |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#region\\b'), |
||||
end: new RegExp('^\\s*#endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: false, |
||||
tokenPostfix: '.mips', |
||||
regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/, |
||||
keywords: [ |
||||
'.data', |
||||
'.text', |
||||
'syscall', |
||||
'trap', |
||||
'add', |
||||
'addu', |
||||
'addi', |
||||
'addiu', |
||||
'and', |
||||
'andi', |
||||
'div', |
||||
'divu', |
||||
'mult', |
||||
'multu', |
||||
'nor', |
||||
'or', |
||||
'ori', |
||||
'sll', |
||||
'slv', |
||||
'sra', |
||||
'srav', |
||||
'srl', |
||||
'srlv', |
||||
'sub', |
||||
'subu', |
||||
'xor', |
||||
'xori', |
||||
'lhi', |
||||
'lho', |
||||
'lhi', |
||||
'llo', |
||||
'slt', |
||||
'slti', |
||||
'sltu', |
||||
'sltiu', |
||||
'beq', |
||||
'bgtz', |
||||
'blez', |
||||
'bne', |
||||
'j', |
||||
'jal', |
||||
'jalr', |
||||
'jr', |
||||
'lb', |
||||
'lbu', |
||||
'lh', |
||||
'lhu', |
||||
'lw', |
||||
'li', |
||||
'la', |
||||
'sb', |
||||
'sh', |
||||
'sw', |
||||
'mfhi', |
||||
'mflo', |
||||
'mthi', |
||||
'mtlo', |
||||
'move' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[\.,\:]+/, |
||||
escapes: /\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[/\$[a-zA-Z_]\w*/, 'variable.predefined'], |
||||
[ |
||||
/[.a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
this: 'variable.predefined', |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
[/[ \t\r\n]+/, ''], |
||||
// Comments
|
||||
[/#.*$/, 'comment'], |
||||
// regular expressions
|
||||
['///', { token: 'regexp', next: '@hereregexp' }], |
||||
[/^(\s*)(@regEx)/, ['', 'regexp']], |
||||
[/(\,)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
[/(\:)(\s*)(@regEx)/, ['delimiter', '', 'regexp']], |
||||
// delimiters
|
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d+[eE]([\-+]?\d+)?/, 'number.float'], |
||||
[/\d+\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F]+/, 'number.hex'], |
||||
[/0[0-7]+(?!\d)/, 'number.octal'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[,.]/, 'delimiter'], |
||||
// strings:
|
||||
[/"""/, 'string', '@herestring."""'], |
||||
[/'''/, 'string', "@herestring.'''"], |
||||
[ |
||||
/"/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'string', |
||||
'@default': { token: 'string', next: '@string."' } |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/'/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'string', |
||||
'@default': { token: 'string', next: "@string.'" } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
string: [ |
||||
[/[^"'\#\\]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\./, 'string.escape.invalid'], |
||||
[/\./, 'string.escape.invalid'], |
||||
[ |
||||
/#{/, |
||||
{ |
||||
cases: { |
||||
'$S2=="': { |
||||
token: 'string', |
||||
next: 'root.interpolatedstring' |
||||
}, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/#/, 'string'] |
||||
], |
||||
herestring: [ |
||||
[ |
||||
/("""|''')/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/[^#\\'"]+/, 'string'], |
||||
[/['"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\./, 'string.escape.invalid'], |
||||
[/#{/, { token: 'string.quote', next: 'root.interpolatedstring' }], |
||||
[/#/, 'string'] |
||||
], |
||||
comment: [ |
||||
[/[^#]+/, 'comment'], |
||||
[/#/, 'comment'] |
||||
], |
||||
hereregexp: [ |
||||
[/[^\\\/#]+/, 'regexp'], |
||||
[/\\./, 'regexp'], |
||||
[/#.*$/, 'comment'], |
||||
['///[igm]*', { token: 'regexp', next: '@pop' }], |
||||
[/\//, 'regexp'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,382 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/msdax/msdax',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['{', '}'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.msdax', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '{', close: '}', token: 'delimiter.brackets' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
// Query keywords
|
||||
'VAR', |
||||
'RETURN', |
||||
'NOT', |
||||
'EVALUATE', |
||||
'DATATABLE', |
||||
'ORDER', |
||||
'BY', |
||||
'START', |
||||
'AT', |
||||
'DEFINE', |
||||
'MEASURE', |
||||
'ASC', |
||||
'DESC', |
||||
'IN', |
||||
// Datatable types
|
||||
'BOOLEAN', |
||||
'DOUBLE', |
||||
'INTEGER', |
||||
'DATETIME', |
||||
'CURRENCY', |
||||
'STRING' |
||||
], |
||||
functions: [ |
||||
// Relational
|
||||
'CLOSINGBALANCEMONTH', |
||||
'CLOSINGBALANCEQUARTER', |
||||
'CLOSINGBALANCEYEAR', |
||||
'DATEADD', |
||||
'DATESBETWEEN', |
||||
'DATESINPERIOD', |
||||
'DATESMTD', |
||||
'DATESQTD', |
||||
'DATESYTD', |
||||
'ENDOFMONTH', |
||||
'ENDOFQUARTER', |
||||
'ENDOFYEAR', |
||||
'FIRSTDATE', |
||||
'FIRSTNONBLANK', |
||||
'LASTDATE', |
||||
'LASTNONBLANK', |
||||
'NEXTDAY', |
||||
'NEXTMONTH', |
||||
'NEXTQUARTER', |
||||
'NEXTYEAR', |
||||
'OPENINGBALANCEMONTH', |
||||
'OPENINGBALANCEQUARTER', |
||||
'OPENINGBALANCEYEAR', |
||||
'PARALLELPERIOD', |
||||
'PREVIOUSDAY', |
||||
'PREVIOUSMONTH', |
||||
'PREVIOUSQUARTER', |
||||
'PREVIOUSYEAR', |
||||
'SAMEPERIODLASTYEAR', |
||||
'STARTOFMONTH', |
||||
'STARTOFQUARTER', |
||||
'STARTOFYEAR', |
||||
'TOTALMTD', |
||||
'TOTALQTD', |
||||
'TOTALYTD', |
||||
'ADDCOLUMNS', |
||||
'ADDMISSINGITEMS', |
||||
'ALL', |
||||
'ALLEXCEPT', |
||||
'ALLNOBLANKROW', |
||||
'ALLSELECTED', |
||||
'CALCULATE', |
||||
'CALCULATETABLE', |
||||
'CALENDAR', |
||||
'CALENDARAUTO', |
||||
'CROSSFILTER', |
||||
'CROSSJOIN', |
||||
'CURRENTGROUP', |
||||
'DATATABLE', |
||||
'DETAILROWS', |
||||
'DISTINCT', |
||||
'EARLIER', |
||||
'EARLIEST', |
||||
'EXCEPT', |
||||
'FILTER', |
||||
'FILTERS', |
||||
'GENERATE', |
||||
'GENERATEALL', |
||||
'GROUPBY', |
||||
'IGNORE', |
||||
'INTERSECT', |
||||
'ISONORAFTER', |
||||
'KEEPFILTERS', |
||||
'LOOKUPVALUE', |
||||
'NATURALINNERJOIN', |
||||
'NATURALLEFTOUTERJOIN', |
||||
'RELATED', |
||||
'RELATEDTABLE', |
||||
'ROLLUP', |
||||
'ROLLUPADDISSUBTOTAL', |
||||
'ROLLUPGROUP', |
||||
'ROLLUPISSUBTOTAL', |
||||
'ROW', |
||||
'SAMPLE', |
||||
'SELECTCOLUMNS', |
||||
'SUBSTITUTEWITHINDEX', |
||||
'SUMMARIZE', |
||||
'SUMMARIZECOLUMNS', |
||||
'TOPN', |
||||
'TREATAS', |
||||
'UNION', |
||||
'USERELATIONSHIP', |
||||
'VALUES', |
||||
'SUM', |
||||
'SUMX', |
||||
'PATH', |
||||
'PATHCONTAINS', |
||||
'PATHITEM', |
||||
'PATHITEMREVERSE', |
||||
'PATHLENGTH', |
||||
'AVERAGE', |
||||
'AVERAGEA', |
||||
'AVERAGEX', |
||||
'COUNT', |
||||
'COUNTA', |
||||
'COUNTAX', |
||||
'COUNTBLANK', |
||||
'COUNTROWS', |
||||
'COUNTX', |
||||
'DISTINCTCOUNT', |
||||
'DIVIDE', |
||||
'GEOMEAN', |
||||
'GEOMEANX', |
||||
'MAX', |
||||
'MAXA', |
||||
'MAXX', |
||||
'MEDIAN', |
||||
'MEDIANX', |
||||
'MIN', |
||||
'MINA', |
||||
'MINX', |
||||
'PERCENTILE.EXC', |
||||
'PERCENTILE.INC', |
||||
'PERCENTILEX.EXC', |
||||
'PERCENTILEX.INC', |
||||
'PRODUCT', |
||||
'PRODUCTX', |
||||
'RANK.EQ', |
||||
'RANKX', |
||||
'STDEV.P', |
||||
'STDEV.S', |
||||
'STDEVX.P', |
||||
'STDEVX.S', |
||||
'VAR.P', |
||||
'VAR.S', |
||||
'VARX.P', |
||||
'VARX.S', |
||||
'XIRR', |
||||
'XNPV', |
||||
// Scalar
|
||||
'DATE', |
||||
'DATEDIFF', |
||||
'DATEVALUE', |
||||
'DAY', |
||||
'EDATE', |
||||
'EOMONTH', |
||||
'HOUR', |
||||
'MINUTE', |
||||
'MONTH', |
||||
'NOW', |
||||
'SECOND', |
||||
'TIME', |
||||
'TIMEVALUE', |
||||
'TODAY', |
||||
'WEEKDAY', |
||||
'WEEKNUM', |
||||
'YEAR', |
||||
'YEARFRAC', |
||||
'CONTAINS', |
||||
'CONTAINSROW', |
||||
'CUSTOMDATA', |
||||
'ERROR', |
||||
'HASONEFILTER', |
||||
'HASONEVALUE', |
||||
'ISBLANK', |
||||
'ISCROSSFILTERED', |
||||
'ISEMPTY', |
||||
'ISERROR', |
||||
'ISEVEN', |
||||
'ISFILTERED', |
||||
'ISLOGICAL', |
||||
'ISNONTEXT', |
||||
'ISNUMBER', |
||||
'ISODD', |
||||
'ISSUBTOTAL', |
||||
'ISTEXT', |
||||
'USERNAME', |
||||
'USERPRINCIPALNAME', |
||||
'AND', |
||||
'FALSE', |
||||
'IF', |
||||
'IFERROR', |
||||
'NOT', |
||||
'OR', |
||||
'SWITCH', |
||||
'TRUE', |
||||
'ABS', |
||||
'ACOS', |
||||
'ACOSH', |
||||
'ACOT', |
||||
'ACOTH', |
||||
'ASIN', |
||||
'ASINH', |
||||
'ATAN', |
||||
'ATANH', |
||||
'BETA.DIST', |
||||
'BETA.INV', |
||||
'CEILING', |
||||
'CHISQ.DIST', |
||||
'CHISQ.DIST.RT', |
||||
'CHISQ.INV', |
||||
'CHISQ.INV.RT', |
||||
'COMBIN', |
||||
'COMBINA', |
||||
'CONFIDENCE.NORM', |
||||
'CONFIDENCE.T', |
||||
'COS', |
||||
'COSH', |
||||
'COT', |
||||
'COTH', |
||||
'CURRENCY', |
||||
'DEGREES', |
||||
'EVEN', |
||||
'EXP', |
||||
'EXPON.DIST', |
||||
'FACT', |
||||
'FLOOR', |
||||
'GCD', |
||||
'INT', |
||||
'ISO.CEILING', |
||||
'LCM', |
||||
'LN', |
||||
'LOG', |
||||
'LOG10', |
||||
'MOD', |
||||
'MROUND', |
||||
'ODD', |
||||
'PERMUT', |
||||
'PI', |
||||
'POISSON.DIST', |
||||
'POWER', |
||||
'QUOTIENT', |
||||
'RADIANS', |
||||
'RAND', |
||||
'RANDBETWEEN', |
||||
'ROUND', |
||||
'ROUNDDOWN', |
||||
'ROUNDUP', |
||||
'SIGN', |
||||
'SIN', |
||||
'SINH', |
||||
'SQRT', |
||||
'SQRTPI', |
||||
'TAN', |
||||
'TANH', |
||||
'TRUNC', |
||||
'BLANK', |
||||
'CONCATENATE', |
||||
'CONCATENATEX', |
||||
'EXACT', |
||||
'FIND', |
||||
'FIXED', |
||||
'FORMAT', |
||||
'LEFT', |
||||
'LEN', |
||||
'LOWER', |
||||
'MID', |
||||
'REPLACE', |
||||
'REPT', |
||||
'RIGHT', |
||||
'SEARCH', |
||||
'SUBSTITUTE', |
||||
'TRIM', |
||||
'UNICHAR', |
||||
'UNICODE', |
||||
'UPPER', |
||||
'VALUE' |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@whitespace' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@complexIdentifiers' }, |
||||
[/[;,.]/, 'delimiter'], |
||||
[/[({})]/, '@brackets'], |
||||
[ |
||||
/[a-z_][a-zA-Z0-9_]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@functions': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=!%&+\-*/|~^]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
[/\/\/+.*/, 'comment'], |
||||
[/\/\*/, { token: 'comment.quote', next: '@comment' }] |
||||
], |
||||
comment: [ |
||||
[/[^*/]+/, 'comment'], |
||||
[/\*\//, { token: 'comment.quote', next: '@pop' }], |
||||
[/./, 'comment'] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*/, 'number'], |
||||
[/[$][+-]*\d*(\.\d*)?/, 'number'], |
||||
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] |
||||
], |
||||
strings: [ |
||||
[/N"/, { token: 'string', next: '@string' }], |
||||
[/"/, { token: 'string', next: '@string' }] |
||||
], |
||||
string: [ |
||||
[/[^"]+/, 'string'], |
||||
[/""/, 'string'], |
||||
[/"/, { token: 'string', next: '@pop' }] |
||||
], |
||||
complexIdentifiers: [ |
||||
[/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }], |
||||
[/'/, { token: 'identifier.quote', next: '@quotedIdentifier' }] |
||||
], |
||||
bracketedIdentifier: [ |
||||
[/[^\]]+/, 'identifier'], |
||||
[/]]/, 'identifier'], |
||||
[/]/, { token: 'identifier.quote', next: '@pop' }] |
||||
], |
||||
quotedIdentifier: [ |
||||
[/[^']+/, 'identifier'], |
||||
[/''/, 'identifier'], |
||||
[/'/, { token: 'identifier.quote', next: '@pop' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,824 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/mysql/mysql',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '--', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.sql', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
// This list is generated using `keywords.js`
|
||||
'ACCESSIBLE', |
||||
'ADD', |
||||
'ALL', |
||||
'ALTER', |
||||
'ANALYZE', |
||||
'AND', |
||||
'AS', |
||||
'ASC', |
||||
'ASENSITIVE', |
||||
'BEFORE', |
||||
'BETWEEN', |
||||
'BIGINT', |
||||
'BINARY', |
||||
'BLOB', |
||||
'BOTH', |
||||
'BY', |
||||
'CALL', |
||||
'CASCADE', |
||||
'CASE', |
||||
'CHANGE', |
||||
'CHAR', |
||||
'CHARACTER', |
||||
'CHECK', |
||||
'COLLATE', |
||||
'COLUMN', |
||||
'CONDITION', |
||||
'CONSTRAINT', |
||||
'CONTINUE', |
||||
'CONVERT', |
||||
'CREATE', |
||||
'CROSS', |
||||
'CUBE', |
||||
'CUME_DIST', |
||||
'CURRENT_DATE', |
||||
'CURRENT_TIME', |
||||
'CURRENT_TIMESTAMP', |
||||
'CURRENT_USER', |
||||
'CURSOR', |
||||
'DATABASE', |
||||
'DATABASES', |
||||
'DAY_HOUR', |
||||
'DAY_MICROSECOND', |
||||
'DAY_MINUTE', |
||||
'DAY_SECOND', |
||||
'DEC', |
||||
'DECIMAL', |
||||
'DECLARE', |
||||
'DEFAULT', |
||||
'DELAYED', |
||||
'DELETE', |
||||
'DENSE_RANK', |
||||
'DESC', |
||||
'DESCRIBE', |
||||
'DETERMINISTIC', |
||||
'DISTINCT', |
||||
'DISTINCTROW', |
||||
'DIV', |
||||
'DOUBLE', |
||||
'DROP', |
||||
'DUAL', |
||||
'EACH', |
||||
'ELSE', |
||||
'ELSEIF', |
||||
'EMPTY', |
||||
'ENCLOSED', |
||||
'ESCAPED', |
||||
'EXCEPT', |
||||
'EXISTS', |
||||
'EXIT', |
||||
'EXPLAIN', |
||||
'FALSE', |
||||
'FETCH', |
||||
'FIRST_VALUE', |
||||
'FLOAT', |
||||
'FLOAT4', |
||||
'FLOAT8', |
||||
'FOR', |
||||
'FORCE', |
||||
'FOREIGN', |
||||
'FROM', |
||||
'FULLTEXT', |
||||
'FUNCTION', |
||||
'GENERATED', |
||||
'GET', |
||||
'GRANT', |
||||
'GROUP', |
||||
'GROUPING', |
||||
'GROUPS', |
||||
'HAVING', |
||||
'HIGH_PRIORITY', |
||||
'HOUR_MICROSECOND', |
||||
'HOUR_MINUTE', |
||||
'HOUR_SECOND', |
||||
'IF', |
||||
'IGNORE', |
||||
'IN', |
||||
'INDEX', |
||||
'INFILE', |
||||
'INNER', |
||||
'INOUT', |
||||
'INSENSITIVE', |
||||
'INSERT', |
||||
'INT', |
||||
'INT1', |
||||
'INT2', |
||||
'INT3', |
||||
'INT4', |
||||
'INT8', |
||||
'INTEGER', |
||||
'INTERVAL', |
||||
'INTO', |
||||
'IO_AFTER_GTIDS', |
||||
'IO_BEFORE_GTIDS', |
||||
'IS', |
||||
'ITERATE', |
||||
'JOIN', |
||||
'JSON_TABLE', |
||||
'KEY', |
||||
'KEYS', |
||||
'KILL', |
||||
'LAG', |
||||
'LAST_VALUE', |
||||
'LATERAL', |
||||
'LEAD', |
||||
'LEADING', |
||||
'LEAVE', |
||||
'LEFT', |
||||
'LIKE', |
||||
'LIMIT', |
||||
'LINEAR', |
||||
'LINES', |
||||
'LOAD', |
||||
'LOCALTIME', |
||||
'LOCALTIMESTAMP', |
||||
'LOCK', |
||||
'LONG', |
||||
'LONGBLOB', |
||||
'LONGTEXT', |
||||
'LOOP', |
||||
'LOW_PRIORITY', |
||||
'MASTER_BIND', |
||||
'MASTER_SSL_VERIFY_SERVER_CERT', |
||||
'MATCH', |
||||
'MAXVALUE', |
||||
'MEDIUMBLOB', |
||||
'MEDIUMINT', |
||||
'MEDIUMTEXT', |
||||
'MIDDLEINT', |
||||
'MINUTE_MICROSECOND', |
||||
'MINUTE_SECOND', |
||||
'MOD', |
||||
'MODIFIES', |
||||
'NATURAL', |
||||
'NOT', |
||||
'NO_WRITE_TO_BINLOG', |
||||
'NTH_VALUE', |
||||
'NTILE', |
||||
'NULL', |
||||
'NUMERIC', |
||||
'OF', |
||||
'ON', |
||||
'OPTIMIZE', |
||||
'OPTIMIZER_COSTS', |
||||
'OPTION', |
||||
'OPTIONALLY', |
||||
'OR', |
||||
'ORDER', |
||||
'OUT', |
||||
'OUTER', |
||||
'OUTFILE', |
||||
'OVER', |
||||
'PARTITION', |
||||
'PERCENT_RANK', |
||||
'PRECISION', |
||||
'PRIMARY', |
||||
'PROCEDURE', |
||||
'PURGE', |
||||
'RANGE', |
||||
'RANK', |
||||
'READ', |
||||
'READS', |
||||
'READ_WRITE', |
||||
'REAL', |
||||
'RECURSIVE', |
||||
'REFERENCES', |
||||
'REGEXP', |
||||
'RELEASE', |
||||
'RENAME', |
||||
'REPEAT', |
||||
'REPLACE', |
||||
'REQUIRE', |
||||
'RESIGNAL', |
||||
'RESTRICT', |
||||
'RETURN', |
||||
'REVOKE', |
||||
'RIGHT', |
||||
'RLIKE', |
||||
'ROW', |
||||
'ROWS', |
||||
'ROW_NUMBER', |
||||
'SCHEMA', |
||||
'SCHEMAS', |
||||
'SECOND_MICROSECOND', |
||||
'SELECT', |
||||
'SENSITIVE', |
||||
'SEPARATOR', |
||||
'SET', |
||||
'SHOW', |
||||
'SIGNAL', |
||||
'SMALLINT', |
||||
'SPATIAL', |
||||
'SPECIFIC', |
||||
'SQL', |
||||
'SQLEXCEPTION', |
||||
'SQLSTATE', |
||||
'SQLWARNING', |
||||
'SQL_BIG_RESULT', |
||||
'SQL_CALC_FOUND_ROWS', |
||||
'SQL_SMALL_RESULT', |
||||
'SSL', |
||||
'STARTING', |
||||
'STORED', |
||||
'STRAIGHT_JOIN', |
||||
'SYSTEM', |
||||
'TABLE', |
||||
'TERMINATED', |
||||
'THEN', |
||||
'TINYBLOB', |
||||
'TINYINT', |
||||
'TINYTEXT', |
||||
'TO', |
||||
'TRAILING', |
||||
'TRIGGER', |
||||
'TRUE', |
||||
'UNDO', |
||||
'UNION', |
||||
'UNIQUE', |
||||
'UNLOCK', |
||||
'UNSIGNED', |
||||
'UPDATE', |
||||
'USAGE', |
||||
'USE', |
||||
'USING', |
||||
'UTC_DATE', |
||||
'UTC_TIME', |
||||
'UTC_TIMESTAMP', |
||||
'VALUES', |
||||
'VARBINARY', |
||||
'VARCHAR', |
||||
'VARCHARACTER', |
||||
'VARYING', |
||||
'VIRTUAL', |
||||
'WHEN', |
||||
'WHERE', |
||||
'WHILE', |
||||
'WINDOW', |
||||
'WITH', |
||||
'WRITE', |
||||
'XOR', |
||||
'YEAR_MONTH', |
||||
'ZEROFILL' |
||||
], |
||||
operators: [ |
||||
'AND', |
||||
'BETWEEN', |
||||
'IN', |
||||
'LIKE', |
||||
'NOT', |
||||
'OR', |
||||
'IS', |
||||
'NULL', |
||||
'INTERSECT', |
||||
'UNION', |
||||
'INNER', |
||||
'JOIN', |
||||
'LEFT', |
||||
'OUTER', |
||||
'RIGHT' |
||||
], |
||||
builtinFunctions: [ |
||||
'ABS', |
||||
'ACOS', |
||||
'ADDDATE', |
||||
'ADDTIME', |
||||
'AES_DECRYPT', |
||||
'AES_ENCRYPT', |
||||
'ANY_VALUE', |
||||
'Area', |
||||
'AsBinary', |
||||
'AsWKB', |
||||
'ASCII', |
||||
'ASIN', |
||||
'AsText', |
||||
'AsWKT', |
||||
'ASYMMETRIC_DECRYPT', |
||||
'ASYMMETRIC_DERIVE', |
||||
'ASYMMETRIC_ENCRYPT', |
||||
'ASYMMETRIC_SIGN', |
||||
'ASYMMETRIC_VERIFY', |
||||
'ATAN', |
||||
'ATAN2', |
||||
'ATAN', |
||||
'AVG', |
||||
'BENCHMARK', |
||||
'BIN', |
||||
'BIT_AND', |
||||
'BIT_COUNT', |
||||
'BIT_LENGTH', |
||||
'BIT_OR', |
||||
'BIT_XOR', |
||||
'Buffer', |
||||
'CAST', |
||||
'CEIL', |
||||
'CEILING', |
||||
'Centroid', |
||||
'CHAR', |
||||
'CHAR_LENGTH', |
||||
'CHARACTER_LENGTH', |
||||
'CHARSET', |
||||
'COALESCE', |
||||
'COERCIBILITY', |
||||
'COLLATION', |
||||
'COMPRESS', |
||||
'CONCAT', |
||||
'CONCAT_WS', |
||||
'CONNECTION_ID', |
||||
'Contains', |
||||
'CONV', |
||||
'CONVERT', |
||||
'CONVERT_TZ', |
||||
'ConvexHull', |
||||
'COS', |
||||
'COT', |
||||
'COUNT', |
||||
'CRC32', |
||||
'CREATE_ASYMMETRIC_PRIV_KEY', |
||||
'CREATE_ASYMMETRIC_PUB_KEY', |
||||
'CREATE_DH_PARAMETERS', |
||||
'CREATE_DIGEST', |
||||
'Crosses', |
||||
'CURDATE', |
||||
'CURRENT_DATE', |
||||
'CURRENT_TIME', |
||||
'CURRENT_TIMESTAMP', |
||||
'CURRENT_USER', |
||||
'CURTIME', |
||||
'DATABASE', |
||||
'DATE', |
||||
'DATE_ADD', |
||||
'DATE_FORMAT', |
||||
'DATE_SUB', |
||||
'DATEDIFF', |
||||
'DAY', |
||||
'DAYNAME', |
||||
'DAYOFMONTH', |
||||
'DAYOFWEEK', |
||||
'DAYOFYEAR', |
||||
'DECODE', |
||||
'DEFAULT', |
||||
'DEGREES', |
||||
'DES_DECRYPT', |
||||
'DES_ENCRYPT', |
||||
'Dimension', |
||||
'Disjoint', |
||||
'Distance', |
||||
'ELT', |
||||
'ENCODE', |
||||
'ENCRYPT', |
||||
'EndPoint', |
||||
'Envelope', |
||||
'Equals', |
||||
'EXP', |
||||
'EXPORT_SET', |
||||
'ExteriorRing', |
||||
'EXTRACT', |
||||
'ExtractValue', |
||||
'FIELD', |
||||
'FIND_IN_SET', |
||||
'FLOOR', |
||||
'FORMAT', |
||||
'FOUND_ROWS', |
||||
'FROM_BASE64', |
||||
'FROM_DAYS', |
||||
'FROM_UNIXTIME', |
||||
'GeomCollFromText', |
||||
'GeometryCollectionFromText', |
||||
'GeomCollFromWKB', |
||||
'GeometryCollectionFromWKB', |
||||
'GeometryCollection', |
||||
'GeometryN', |
||||
'GeometryType', |
||||
'GeomFromText', |
||||
'GeometryFromText', |
||||
'GeomFromWKB', |
||||
'GeometryFromWKB', |
||||
'GET_FORMAT', |
||||
'GET_LOCK', |
||||
'GLength', |
||||
'GREATEST', |
||||
'GROUP_CONCAT', |
||||
'GTID_SUBSET', |
||||
'GTID_SUBTRACT', |
||||
'HEX', |
||||
'HOUR', |
||||
'IF', |
||||
'IFNULL', |
||||
'INET_ATON', |
||||
'INET_NTOA', |
||||
'INET6_ATON', |
||||
'INET6_NTOA', |
||||
'INSERT', |
||||
'INSTR', |
||||
'InteriorRingN', |
||||
'Intersects', |
||||
'INTERVAL', |
||||
'IS_FREE_LOCK', |
||||
'IS_IPV4', |
||||
'IS_IPV4_COMPAT', |
||||
'IS_IPV4_MAPPED', |
||||
'IS_IPV6', |
||||
'IS_USED_LOCK', |
||||
'IsClosed', |
||||
'IsEmpty', |
||||
'ISNULL', |
||||
'IsSimple', |
||||
'JSON_APPEND', |
||||
'JSON_ARRAY', |
||||
'JSON_ARRAY_APPEND', |
||||
'JSON_ARRAY_INSERT', |
||||
'JSON_CONTAINS', |
||||
'JSON_CONTAINS_PATH', |
||||
'JSON_DEPTH', |
||||
'JSON_EXTRACT', |
||||
'JSON_INSERT', |
||||
'JSON_KEYS', |
||||
'JSON_LENGTH', |
||||
'JSON_MERGE', |
||||
'JSON_MERGE_PRESERVE', |
||||
'JSON_OBJECT', |
||||
'JSON_QUOTE', |
||||
'JSON_REMOVE', |
||||
'JSON_REPLACE', |
||||
'JSON_SEARCH', |
||||
'JSON_SET', |
||||
'JSON_TYPE', |
||||
'JSON_UNQUOTE', |
||||
'JSON_VALID', |
||||
'LAST_INSERT_ID', |
||||
'LCASE', |
||||
'LEAST', |
||||
'LEFT', |
||||
'LENGTH', |
||||
'LineFromText', |
||||
'LineStringFromText', |
||||
'LineFromWKB', |
||||
'LineStringFromWKB', |
||||
'LineString', |
||||
'LN', |
||||
'LOAD_FILE', |
||||
'LOCALTIME', |
||||
'LOCALTIMESTAMP', |
||||
'LOCATE', |
||||
'LOG', |
||||
'LOG10', |
||||
'LOG2', |
||||
'LOWER', |
||||
'LPAD', |
||||
'LTRIM', |
||||
'MAKE_SET', |
||||
'MAKEDATE', |
||||
'MAKETIME', |
||||
'MASTER_POS_WAIT', |
||||
'MAX', |
||||
'MBRContains', |
||||
'MBRCoveredBy', |
||||
'MBRCovers', |
||||
'MBRDisjoint', |
||||
'MBREqual', |
||||
'MBREquals', |
||||
'MBRIntersects', |
||||
'MBROverlaps', |
||||
'MBRTouches', |
||||
'MBRWithin', |
||||
'MD5', |
||||
'MICROSECOND', |
||||
'MID', |
||||
'MIN', |
||||
'MINUTE', |
||||
'MLineFromText', |
||||
'MultiLineStringFromText', |
||||
'MLineFromWKB', |
||||
'MultiLineStringFromWKB', |
||||
'MOD', |
||||
'MONTH', |
||||
'MONTHNAME', |
||||
'MPointFromText', |
||||
'MultiPointFromText', |
||||
'MPointFromWKB', |
||||
'MultiPointFromWKB', |
||||
'MPolyFromText', |
||||
'MultiPolygonFromText', |
||||
'MPolyFromWKB', |
||||
'MultiPolygonFromWKB', |
||||
'MultiLineString', |
||||
'MultiPoint', |
||||
'MultiPolygon', |
||||
'NAME_CONST', |
||||
'NOT IN', |
||||
'NOW', |
||||
'NULLIF', |
||||
'NumGeometries', |
||||
'NumInteriorRings', |
||||
'NumPoints', |
||||
'OCT', |
||||
'OCTET_LENGTH', |
||||
'OLD_PASSWORD', |
||||
'ORD', |
||||
'Overlaps', |
||||
'PASSWORD', |
||||
'PERIOD_ADD', |
||||
'PERIOD_DIFF', |
||||
'PI', |
||||
'Point', |
||||
'PointFromText', |
||||
'PointFromWKB', |
||||
'PointN', |
||||
'PolyFromText', |
||||
'PolygonFromText', |
||||
'PolyFromWKB', |
||||
'PolygonFromWKB', |
||||
'Polygon', |
||||
'POSITION', |
||||
'POW', |
||||
'POWER', |
||||
'PROCEDURE ANALYSE', |
||||
'QUARTER', |
||||
'QUOTE', |
||||
'RADIANS', |
||||
'RAND', |
||||
'RANDOM_BYTES', |
||||
'RELEASE_ALL_LOCKS', |
||||
'RELEASE_LOCK', |
||||
'REPEAT', |
||||
'REPLACE', |
||||
'REVERSE', |
||||
'RIGHT', |
||||
'ROUND', |
||||
'ROW_COUNT', |
||||
'RPAD', |
||||
'RTRIM', |
||||
'SCHEMA', |
||||
'SEC_TO_TIME', |
||||
'SECOND', |
||||
'SESSION_USER', |
||||
'SHA1', |
||||
'SHA', |
||||
'SHA2', |
||||
'SIGN', |
||||
'SIN', |
||||
'SLEEP', |
||||
'SOUNDEX', |
||||
'SPACE', |
||||
'SQRT', |
||||
'SRID', |
||||
'ST_Area', |
||||
'ST_AsBinary', |
||||
'ST_AsWKB', |
||||
'ST_AsGeoJSON', |
||||
'ST_AsText', |
||||
'ST_AsWKT', |
||||
'ST_Buffer', |
||||
'ST_Buffer_Strategy', |
||||
'ST_Centroid', |
||||
'ST_Contains', |
||||
'ST_ConvexHull', |
||||
'ST_Crosses', |
||||
'ST_Difference', |
||||
'ST_Dimension', |
||||
'ST_Disjoint', |
||||
'ST_Distance', |
||||
'ST_Distance_Sphere', |
||||
'ST_EndPoint', |
||||
'ST_Envelope', |
||||
'ST_Equals', |
||||
'ST_ExteriorRing', |
||||
'ST_GeoHash', |
||||
'ST_GeomCollFromText', |
||||
'ST_GeometryCollectionFromText', |
||||
'ST_GeomCollFromTxt', |
||||
'ST_GeomCollFromWKB', |
||||
'ST_GeometryCollectionFromWKB', |
||||
'ST_GeometryN', |
||||
'ST_GeometryType', |
||||
'ST_GeomFromGeoJSON', |
||||
'ST_GeomFromText', |
||||
'ST_GeometryFromText', |
||||
'ST_GeomFromWKB', |
||||
'ST_GeometryFromWKB', |
||||
'ST_InteriorRingN', |
||||
'ST_Intersection', |
||||
'ST_Intersects', |
||||
'ST_IsClosed', |
||||
'ST_IsEmpty', |
||||
'ST_IsSimple', |
||||
'ST_IsValid', |
||||
'ST_LatFromGeoHash', |
||||
'ST_Length', |
||||
'ST_LineFromText', |
||||
'ST_LineStringFromText', |
||||
'ST_LineFromWKB', |
||||
'ST_LineStringFromWKB', |
||||
'ST_LongFromGeoHash', |
||||
'ST_MakeEnvelope', |
||||
'ST_MLineFromText', |
||||
'ST_MultiLineStringFromText', |
||||
'ST_MLineFromWKB', |
||||
'ST_MultiLineStringFromWKB', |
||||
'ST_MPointFromText', |
||||
'ST_MultiPointFromText', |
||||
'ST_MPointFromWKB', |
||||
'ST_MultiPointFromWKB', |
||||
'ST_MPolyFromText', |
||||
'ST_MultiPolygonFromText', |
||||
'ST_MPolyFromWKB', |
||||
'ST_MultiPolygonFromWKB', |
||||
'ST_NumGeometries', |
||||
'ST_NumInteriorRing', |
||||
'ST_NumInteriorRings', |
||||
'ST_NumPoints', |
||||
'ST_Overlaps', |
||||
'ST_PointFromGeoHash', |
||||
'ST_PointFromText', |
||||
'ST_PointFromWKB', |
||||
'ST_PointN', |
||||
'ST_PolyFromText', |
||||
'ST_PolygonFromText', |
||||
'ST_PolyFromWKB', |
||||
'ST_PolygonFromWKB', |
||||
'ST_Simplify', |
||||
'ST_SRID', |
||||
'ST_StartPoint', |
||||
'ST_SymDifference', |
||||
'ST_Touches', |
||||
'ST_Union', |
||||
'ST_Validate', |
||||
'ST_Within', |
||||
'ST_X', |
||||
'ST_Y', |
||||
'StartPoint', |
||||
'STD', |
||||
'STDDEV', |
||||
'STDDEV_POP', |
||||
'STDDEV_SAMP', |
||||
'STR_TO_DATE', |
||||
'STRCMP', |
||||
'SUBDATE', |
||||
'SUBSTR', |
||||
'SUBSTRING', |
||||
'SUBSTRING_INDEX', |
||||
'SUBTIME', |
||||
'SUM', |
||||
'SYSDATE', |
||||
'SYSTEM_USER', |
||||
'TAN', |
||||
'TIME', |
||||
'TIME_FORMAT', |
||||
'TIME_TO_SEC', |
||||
'TIMEDIFF', |
||||
'TIMESTAMP', |
||||
'TIMESTAMPADD', |
||||
'TIMESTAMPDIFF', |
||||
'TO_BASE64', |
||||
'TO_DAYS', |
||||
'TO_SECONDS', |
||||
'Touches', |
||||
'TRIM', |
||||
'TRUNCATE', |
||||
'UCASE', |
||||
'UNCOMPRESS', |
||||
'UNCOMPRESSED_LENGTH', |
||||
'UNHEX', |
||||
'UNIX_TIMESTAMP', |
||||
'UpdateXML', |
||||
'UPPER', |
||||
'USER', |
||||
'UTC_DATE', |
||||
'UTC_TIME', |
||||
'UTC_TIMESTAMP', |
||||
'UUID', |
||||
'UUID_SHORT', |
||||
'VALIDATE_PASSWORD_STRENGTH', |
||||
'VALUES', |
||||
'VAR_POP', |
||||
'VAR_SAMP', |
||||
'VARIANCE', |
||||
'VERSION', |
||||
'WAIT_FOR_EXECUTED_GTID_SET', |
||||
'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS', |
||||
'WEEK', |
||||
'WEEKDAY', |
||||
'WEEKOFYEAR', |
||||
'WEIGHT_STRING', |
||||
'Within', |
||||
'X', |
||||
'Y', |
||||
'YEAR', |
||||
'YEARWEEK' |
||||
], |
||||
builtinVariables: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@whitespace' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@complexIdentifiers' }, |
||||
{ include: '@scopes' }, |
||||
[/[;,.]/, 'delimiter'], |
||||
[/[()]/, '@brackets'], |
||||
[ |
||||
/[\w@]+/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator', |
||||
'@builtinVariables': 'predefined', |
||||
'@builtinFunctions': 'predefined', |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=!%&+\-*/|~^]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
[/--+.*/, 'comment'], |
||||
[/#+.*/, 'comment'], |
||||
[/\/\*/, { token: 'comment.quote', next: '@comment' }] |
||||
], |
||||
comment: [ |
||||
[/[^*/]+/, 'comment'], |
||||
// Not supporting nested comments, as nested comments seem to not be standard?
|
||||
// i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
|
||||
// [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
|
||||
[/\*\//, { token: 'comment.quote', next: '@pop' }], |
||||
[/./, 'comment'] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*/, 'number'], |
||||
[/[$][+-]*\d*(\.\d*)?/, 'number'], |
||||
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] |
||||
], |
||||
strings: [ |
||||
[/'/, { token: 'string', next: '@string' }], |
||||
[/"/, { token: 'string.double', next: '@stringDouble' }] |
||||
], |
||||
string: [ |
||||
[/[^']+/, 'string'], |
||||
[/''/, 'string'], |
||||
[/'/, { token: 'string', next: '@pop' }] |
||||
], |
||||
stringDouble: [ |
||||
[/[^"]+/, 'string.double'], |
||||
[/""/, 'string.double'], |
||||
[/"/, { token: 'string.double', next: '@pop' }] |
||||
], |
||||
complexIdentifiers: [[/`/, { token: 'identifier.quote', next: '@quotedIdentifier' }]], |
||||
quotedIdentifier: [ |
||||
[/[^`]+/, 'identifier'], |
||||
[/``/, 'identifier'], |
||||
[/`/, { token: 'identifier.quote', next: '@pop' }] |
||||
], |
||||
scopes: [ |
||||
// NOT SUPPORTED
|
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,190 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/objective-c/objective-c',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.objective-c', |
||||
keywords: [ |
||||
'#import', |
||||
'#include', |
||||
'#define', |
||||
'#else', |
||||
'#endif', |
||||
'#if', |
||||
'#ifdef', |
||||
'#ifndef', |
||||
'#ident', |
||||
'#undef', |
||||
'@class', |
||||
'@defs', |
||||
'@dynamic', |
||||
'@encode', |
||||
'@end', |
||||
'@implementation', |
||||
'@interface', |
||||
'@package', |
||||
'@private', |
||||
'@protected', |
||||
'@property', |
||||
'@protocol', |
||||
'@public', |
||||
'@selector', |
||||
'@synthesize', |
||||
'__declspec', |
||||
'assign', |
||||
'auto', |
||||
'BOOL', |
||||
'break', |
||||
'bycopy', |
||||
'byref', |
||||
'case', |
||||
'char', |
||||
'Class', |
||||
'const', |
||||
'copy', |
||||
'continue', |
||||
'default', |
||||
'do', |
||||
'double', |
||||
'else', |
||||
'enum', |
||||
'extern', |
||||
'FALSE', |
||||
'false', |
||||
'float', |
||||
'for', |
||||
'goto', |
||||
'if', |
||||
'in', |
||||
'int', |
||||
'id', |
||||
'inout', |
||||
'IMP', |
||||
'long', |
||||
'nil', |
||||
'nonatomic', |
||||
'NULL', |
||||
'oneway', |
||||
'out', |
||||
'private', |
||||
'public', |
||||
'protected', |
||||
'readwrite', |
||||
'readonly', |
||||
'register', |
||||
'return', |
||||
'SEL', |
||||
'self', |
||||
'short', |
||||
'signed', |
||||
'sizeof', |
||||
'static', |
||||
'struct', |
||||
'super', |
||||
'switch', |
||||
'typedef', |
||||
'TRUE', |
||||
'true', |
||||
'union', |
||||
'unsigned', |
||||
'volatile', |
||||
'void', |
||||
'while' |
||||
], |
||||
decpart: /\d(_?\d)*/, |
||||
decimal: /0|@decpart/, |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@whitespace' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
[/[,:;]/, 'delimiter'], |
||||
[/[{}\[\]()<>]/, '@brackets'], |
||||
[ |
||||
/[a-zA-Z@#]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
['\\/\\*', 'comment', '@comment'], |
||||
['\\/\\/+.*', 'comment'] |
||||
], |
||||
comment: [ |
||||
['\\*\\/', 'comment', '@pop'], |
||||
['.', 'comment'] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/, 'number.hex'], |
||||
[ |
||||
/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/, |
||||
{ |
||||
cases: { |
||||
'(\\d)*': 'number', |
||||
$0: 'number.float' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Recognize strings, including those broken across lines with \ (but not without)
|
||||
strings: [ |
||||
[/'$/, 'string.escape', '@popall'], |
||||
[/'/, 'string.escape', '@stringBody'], |
||||
[/"$/, 'string.escape', '@popall'], |
||||
[/"/, 'string.escape', '@dblStringBody'] |
||||
], |
||||
stringBody: [ |
||||
[/[^\\']+$/, 'string', '@popall'], |
||||
[/[^\\']+/, 'string'], |
||||
[/\\./, 'string'], |
||||
[/'/, 'string.escape', '@popall'], |
||||
[/\\$/, 'string'] |
||||
], |
||||
dblStringBody: [ |
||||
[/[^\\"]+$/, 'string', '@popall'], |
||||
[/[^\\"]+/, 'string'], |
||||
[/\\./, 'string'], |
||||
[/"/, 'string.escape', '@popall'], |
||||
[/\\$/, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,257 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/pascal/pascal',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
// the default separators except `@$`
|
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['{', '}'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"), |
||||
end: new RegExp('^\\s*\\{\\$ENDREGION\\}') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.pascal', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
keywords: [ |
||||
'absolute', |
||||
'abstract', |
||||
'all', |
||||
'and_then', |
||||
'array', |
||||
'as', |
||||
'asm', |
||||
'attribute', |
||||
'begin', |
||||
'bindable', |
||||
'case', |
||||
'class', |
||||
'const', |
||||
'contains', |
||||
'default', |
||||
'div', |
||||
'else', |
||||
'end', |
||||
'except', |
||||
'exports', |
||||
'external', |
||||
'far', |
||||
'file', |
||||
'finalization', |
||||
'finally', |
||||
'forward', |
||||
'generic', |
||||
'goto', |
||||
'if', |
||||
'implements', |
||||
'import', |
||||
'in', |
||||
'index', |
||||
'inherited', |
||||
'initialization', |
||||
'interrupt', |
||||
'is', |
||||
'label', |
||||
'library', |
||||
'mod', |
||||
'module', |
||||
'name', |
||||
'near', |
||||
'not', |
||||
'object', |
||||
'of', |
||||
'on', |
||||
'only', |
||||
'operator', |
||||
'or_else', |
||||
'otherwise', |
||||
'override', |
||||
'package', |
||||
'packed', |
||||
'pow', |
||||
'private', |
||||
'program', |
||||
'protected', |
||||
'public', |
||||
'published', |
||||
'interface', |
||||
'implementation', |
||||
'qualified', |
||||
'read', |
||||
'record', |
||||
'resident', |
||||
'requires', |
||||
'resourcestring', |
||||
'restricted', |
||||
'segment', |
||||
'set', |
||||
'shl', |
||||
'shr', |
||||
'specialize', |
||||
'stored', |
||||
'strict', |
||||
'then', |
||||
'threadvar', |
||||
'to', |
||||
'try', |
||||
'type', |
||||
'unit', |
||||
'uses', |
||||
'var', |
||||
'view', |
||||
'virtual', |
||||
'dynamic', |
||||
'overload', |
||||
'reintroduce', |
||||
'with', |
||||
'write', |
||||
'xor', |
||||
'true', |
||||
'false', |
||||
'procedure', |
||||
'function', |
||||
'constructor', |
||||
'destructor', |
||||
'property', |
||||
'break', |
||||
'continue', |
||||
'exit', |
||||
'abort', |
||||
'while', |
||||
'do', |
||||
'for', |
||||
'raise', |
||||
'repeat', |
||||
'until' |
||||
], |
||||
typeKeywords: [ |
||||
'boolean', |
||||
'double', |
||||
'byte', |
||||
'integer', |
||||
'shortint', |
||||
'char', |
||||
'longint', |
||||
'float', |
||||
'string' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'<=', |
||||
'>=', |
||||
'<>', |
||||
':', |
||||
':=', |
||||
'and', |
||||
'or', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'@', |
||||
'&', |
||||
'^', |
||||
'%' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><:@\^&|+\-*\/\^%]+/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_][\w]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/\$[0-9a-fA-F]{1,16}/, 'number.hex'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/'/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/'/, 'string.invalid'], |
||||
[/\#\d+/, 'string'] |
||||
], |
||||
comment: [ |
||||
[/[^\*\}]+/, 'comment'], |
||||
//[/\(\*/, 'comment', '@push' ], // nested comment not allowed :-(
|
||||
[/\}/, 'comment', '@pop'], |
||||
[/[\{]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\{/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,170 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/pascaligo/pascaligo',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['(*', '*)'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.pascaligo', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
keywords: [ |
||||
'begin', |
||||
'block', |
||||
'case', |
||||
'const', |
||||
'else', |
||||
'end', |
||||
'fail', |
||||
'for', |
||||
'from', |
||||
'function', |
||||
'if', |
||||
'is', |
||||
'nil', |
||||
'of', |
||||
'remove', |
||||
'return', |
||||
'skip', |
||||
'then', |
||||
'type', |
||||
'var', |
||||
'while', |
||||
'with', |
||||
'option', |
||||
'None', |
||||
'transaction' |
||||
], |
||||
typeKeywords: [ |
||||
'bool', |
||||
'int', |
||||
'list', |
||||
'map', |
||||
'nat', |
||||
'record', |
||||
'string', |
||||
'unit', |
||||
'address', |
||||
'map', |
||||
'mtz', |
||||
'xtz' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'<=', |
||||
'>=', |
||||
'<>', |
||||
':', |
||||
':=', |
||||
'and', |
||||
'mod', |
||||
'or', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'@', |
||||
'&', |
||||
'^', |
||||
'%' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><:@\^&|+\-*\/\^%]+/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_][\w]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/\$[0-9a-fA-F]{1,16}/, 'number.hex'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/'/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/'/, 'string.invalid'], |
||||
[/\#\d+/, 'string'] |
||||
], |
||||
/* */ |
||||
comment: [ |
||||
[/[^\(\*]+/, 'comment'], |
||||
//[/\(\*/, 'comment', '@push' ], // nested comment not allowed :-(
|
||||
[/\*\)/, 'comment', '@pop'], |
||||
[/\(\*/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\(\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,628 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/perl/perl',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '`', close: '`' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '`', close: '`' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.perl', |
||||
brackets: [ |
||||
{ token: 'delimiter.bracket', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' } |
||||
], |
||||
// https://learn.perl.org/docs/keywords.html
|
||||
// Perl syntax
|
||||
keywords: [ |
||||
'__DATA__', |
||||
'else', |
||||
'lock', |
||||
'__END__', |
||||
'elsif', |
||||
'lt', |
||||
'__FILE__', |
||||
'eq', |
||||
'__LINE__', |
||||
'exp', |
||||
'ne', |
||||
'sub', |
||||
'__PACKAGE__', |
||||
'for', |
||||
'no', |
||||
'and', |
||||
'foreach', |
||||
'or', |
||||
'unless', |
||||
'cmp', |
||||
'ge', |
||||
'package', |
||||
'until', |
||||
'continue', |
||||
'gt', |
||||
'while', |
||||
'CORE', |
||||
'if', |
||||
'xor', |
||||
'do', |
||||
'le', |
||||
'__DIE__', |
||||
'__WARN__' |
||||
], |
||||
// Perl functions
|
||||
builtinFunctions: [ |
||||
'-A', |
||||
'END', |
||||
'length', |
||||
'setpgrp', |
||||
'-B', |
||||
'endgrent', |
||||
'link', |
||||
'setpriority', |
||||
'-b', |
||||
'endhostent', |
||||
'listen', |
||||
'setprotoent', |
||||
'-C', |
||||
'endnetent', |
||||
'local', |
||||
'setpwent', |
||||
'-c', |
||||
'endprotoent', |
||||
'localtime', |
||||
'setservent', |
||||
'-d', |
||||
'endpwent', |
||||
'log', |
||||
'setsockopt', |
||||
'-e', |
||||
'endservent', |
||||
'lstat', |
||||
'shift', |
||||
'-f', |
||||
'eof', |
||||
'map', |
||||
'shmctl', |
||||
'-g', |
||||
'eval', |
||||
'mkdir', |
||||
'shmget', |
||||
'-k', |
||||
'exec', |
||||
'msgctl', |
||||
'shmread', |
||||
'-l', |
||||
'exists', |
||||
'msgget', |
||||
'shmwrite', |
||||
'-M', |
||||
'exit', |
||||
'msgrcv', |
||||
'shutdown', |
||||
'-O', |
||||
'fcntl', |
||||
'msgsnd', |
||||
'sin', |
||||
'-o', |
||||
'fileno', |
||||
'my', |
||||
'sleep', |
||||
'-p', |
||||
'flock', |
||||
'next', |
||||
'socket', |
||||
'-r', |
||||
'fork', |
||||
'not', |
||||
'socketpair', |
||||
'-R', |
||||
'format', |
||||
'oct', |
||||
'sort', |
||||
'-S', |
||||
'formline', |
||||
'open', |
||||
'splice', |
||||
'-s', |
||||
'getc', |
||||
'opendir', |
||||
'split', |
||||
'-T', |
||||
'getgrent', |
||||
'ord', |
||||
'sprintf', |
||||
'-t', |
||||
'getgrgid', |
||||
'our', |
||||
'sqrt', |
||||
'-u', |
||||
'getgrnam', |
||||
'pack', |
||||
'srand', |
||||
'-w', |
||||
'gethostbyaddr', |
||||
'pipe', |
||||
'stat', |
||||
'-W', |
||||
'gethostbyname', |
||||
'pop', |
||||
'state', |
||||
'-X', |
||||
'gethostent', |
||||
'pos', |
||||
'study', |
||||
'-x', |
||||
'getlogin', |
||||
'print', |
||||
'substr', |
||||
'-z', |
||||
'getnetbyaddr', |
||||
'printf', |
||||
'symlink', |
||||
'abs', |
||||
'getnetbyname', |
||||
'prototype', |
||||
'syscall', |
||||
'accept', |
||||
'getnetent', |
||||
'push', |
||||
'sysopen', |
||||
'alarm', |
||||
'getpeername', |
||||
'quotemeta', |
||||
'sysread', |
||||
'atan2', |
||||
'getpgrp', |
||||
'rand', |
||||
'sysseek', |
||||
'AUTOLOAD', |
||||
'getppid', |
||||
'read', |
||||
'system', |
||||
'BEGIN', |
||||
'getpriority', |
||||
'readdir', |
||||
'syswrite', |
||||
'bind', |
||||
'getprotobyname', |
||||
'readline', |
||||
'tell', |
||||
'binmode', |
||||
'getprotobynumber', |
||||
'readlink', |
||||
'telldir', |
||||
'bless', |
||||
'getprotoent', |
||||
'readpipe', |
||||
'tie', |
||||
'break', |
||||
'getpwent', |
||||
'recv', |
||||
'tied', |
||||
'caller', |
||||
'getpwnam', |
||||
'redo', |
||||
'time', |
||||
'chdir', |
||||
'getpwuid', |
||||
'ref', |
||||
'times', |
||||
'CHECK', |
||||
'getservbyname', |
||||
'rename', |
||||
'truncate', |
||||
'chmod', |
||||
'getservbyport', |
||||
'require', |
||||
'uc', |
||||
'chomp', |
||||
'getservent', |
||||
'reset', |
||||
'ucfirst', |
||||
'chop', |
||||
'getsockname', |
||||
'return', |
||||
'umask', |
||||
'chown', |
||||
'getsockopt', |
||||
'reverse', |
||||
'undef', |
||||
'chr', |
||||
'glob', |
||||
'rewinddir', |
||||
'UNITCHECK', |
||||
'chroot', |
||||
'gmtime', |
||||
'rindex', |
||||
'unlink', |
||||
'close', |
||||
'goto', |
||||
'rmdir', |
||||
'unpack', |
||||
'closedir', |
||||
'grep', |
||||
'say', |
||||
'unshift', |
||||
'connect', |
||||
'hex', |
||||
'scalar', |
||||
'untie', |
||||
'cos', |
||||
'index', |
||||
'seek', |
||||
'use', |
||||
'crypt', |
||||
'INIT', |
||||
'seekdir', |
||||
'utime', |
||||
'dbmclose', |
||||
'int', |
||||
'select', |
||||
'values', |
||||
'dbmopen', |
||||
'ioctl', |
||||
'semctl', |
||||
'vec', |
||||
'defined', |
||||
'join', |
||||
'semget', |
||||
'wait', |
||||
'delete', |
||||
'keys', |
||||
'semop', |
||||
'waitpid', |
||||
'DESTROY', |
||||
'kill', |
||||
'send', |
||||
'wantarray', |
||||
'die', |
||||
'last', |
||||
'setgrent', |
||||
'warn', |
||||
'dump', |
||||
'lc', |
||||
'sethostent', |
||||
'write', |
||||
'each', |
||||
'lcfirst', |
||||
'setnetent' |
||||
], |
||||
// File handlers
|
||||
builtinFileHandlers: ['ARGV', 'STDERR', 'STDOUT', 'ARGVOUT', 'STDIN', 'ENV'], |
||||
// Perl variables
|
||||
builtinVariables: [ |
||||
'$!', |
||||
'$^RE_TRIE_MAXBUF', |
||||
'$LAST_REGEXP_CODE_RESULT', |
||||
'$"', |
||||
'$^S', |
||||
'$LIST_SEPARATOR', |
||||
'$#', |
||||
'$^T', |
||||
'$MATCH', |
||||
'$$', |
||||
'$^TAINT', |
||||
'$MULTILINE_MATCHING', |
||||
'$%', |
||||
'$^UNICODE', |
||||
'$NR', |
||||
'$&', |
||||
'$^UTF8LOCALE', |
||||
'$OFMT', |
||||
"$'", |
||||
'$^V', |
||||
'$OFS', |
||||
'$(', |
||||
'$^W', |
||||
'$ORS', |
||||
'$)', |
||||
'$^WARNING_BITS', |
||||
'$OS_ERROR', |
||||
'$*', |
||||
'$^WIDE_SYSTEM_CALLS', |
||||
'$OSNAME', |
||||
'$+', |
||||
'$^X', |
||||
'$OUTPUT_AUTO_FLUSH', |
||||
'$,', |
||||
'$_', |
||||
'$OUTPUT_FIELD_SEPARATOR', |
||||
'$-', |
||||
'$`', |
||||
'$OUTPUT_RECORD_SEPARATOR', |
||||
'$.', |
||||
'$a', |
||||
'$PERL_VERSION', |
||||
'$/', |
||||
'$ACCUMULATOR', |
||||
'$PERLDB', |
||||
'$0', |
||||
'$ARG', |
||||
'$PID', |
||||
'$:', |
||||
'$ARGV', |
||||
'$POSTMATCH', |
||||
'$;', |
||||
'$b', |
||||
'$PREMATCH', |
||||
'$<', |
||||
'$BASETIME', |
||||
'$PROCESS_ID', |
||||
'$=', |
||||
'$CHILD_ERROR', |
||||
'$PROGRAM_NAME', |
||||
'$>', |
||||
'$COMPILING', |
||||
'$REAL_GROUP_ID', |
||||
'$?', |
||||
'$DEBUGGING', |
||||
'$REAL_USER_ID', |
||||
'$@', |
||||
'$EFFECTIVE_GROUP_ID', |
||||
'$RS', |
||||
'$[', |
||||
'$EFFECTIVE_USER_ID', |
||||
'$SUBSCRIPT_SEPARATOR', |
||||
'$\\', |
||||
'$EGID', |
||||
'$SUBSEP', |
||||
'$]', |
||||
'$ERRNO', |
||||
'$SYSTEM_FD_MAX', |
||||
'$^', |
||||
'$EUID', |
||||
'$UID', |
||||
'$^A', |
||||
'$EVAL_ERROR', |
||||
'$WARNING', |
||||
'$^C', |
||||
'$EXCEPTIONS_BEING_CAUGHT', |
||||
'$|', |
||||
'$^CHILD_ERROR_NATIVE', |
||||
'$EXECUTABLE_NAME', |
||||
'$~', |
||||
'$^D', |
||||
'$EXTENDED_OS_ERROR', |
||||
'%!', |
||||
'$^E', |
||||
'$FORMAT_FORMFEED', |
||||
'%^H', |
||||
'$^ENCODING', |
||||
'$FORMAT_LINE_BREAK_CHARACTERS', |
||||
'%ENV', |
||||
'$^F', |
||||
'$FORMAT_LINES_LEFT', |
||||
'%INC', |
||||
'$^H', |
||||
'$FORMAT_LINES_PER_PAGE', |
||||
'%OVERLOAD', |
||||
'$^I', |
||||
'$FORMAT_NAME', |
||||
'%SIG', |
||||
'$^L', |
||||
'$FORMAT_PAGE_NUMBER', |
||||
'@+', |
||||
'$^M', |
||||
'$FORMAT_TOP_NAME', |
||||
'@-', |
||||
'$^N', |
||||
'$GID', |
||||
'@_', |
||||
'$^O', |
||||
'$INPLACE_EDIT', |
||||
'@ARGV', |
||||
'$^OPEN', |
||||
'$INPUT_LINE_NUMBER', |
||||
'@INC', |
||||
'$^P', |
||||
'$INPUT_RECORD_SEPARATOR', |
||||
'@LAST_MATCH_START', |
||||
'$^R', |
||||
'$LAST_MATCH_END', |
||||
'$^RE_DEBUG_FLAGS', |
||||
'$LAST_PAREN_MATCH' |
||||
], |
||||
// operators
|
||||
symbols: /[:+\-\^*$&%@=<>!?|\/~\.]/, |
||||
quoteLikeOps: ['qr', 'm', 's', 'q', 'qq', 'qx', 'qw', 'tr', 'y'], |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
[ |
||||
/[a-zA-Z\-_][\w\-_]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@builtinFunctions': 'type.identifier', |
||||
'@builtinFileHandlers': 'variable.predefined', |
||||
'@quoteLikeOps': { |
||||
token: '@rematch', |
||||
next: 'quotedConstructs' |
||||
}, |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// Perl variables
|
||||
[ |
||||
/[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/, |
||||
{ |
||||
cases: { |
||||
'@builtinVariables': 'variable.predefined', |
||||
'@default': 'variable' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@strings' }, |
||||
{ include: '@dblStrings' }, |
||||
// Perl Doc
|
||||
{ include: '@perldoc' }, |
||||
// Here Doc
|
||||
{ include: '@heredoc' }, |
||||
[/[{}\[\]()]/, '@brackets'], |
||||
// RegExp
|
||||
[/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/, 'regexp'], |
||||
[/@symbols/, 'operators'], |
||||
{ include: '@numbers' }, |
||||
[/[,;]/, 'delimiter'] |
||||
], |
||||
whitespace: [ |
||||
[/\s+/, 'white'], |
||||
[/(^#!.*$)/, 'metatag'], |
||||
[/(^#.*$)/, 'comment'] |
||||
], |
||||
numbers: [ |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'], |
||||
[/\d+/, 'number'] |
||||
], |
||||
// Single quote string
|
||||
strings: [[/'/, 'string', '@stringBody']], |
||||
stringBody: [ |
||||
[/'/, 'string', '@popall'], |
||||
[/\\'/, 'string.escape'], |
||||
[/./, 'string'] |
||||
], |
||||
// Double quote string
|
||||
dblStrings: [[/"/, 'string', '@dblStringBody']], |
||||
dblStringBody: [ |
||||
[/"/, 'string', '@popall'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
{ include: '@variables' }, |
||||
[/./, 'string'] |
||||
], |
||||
// Quoted constructs
|
||||
// Percent strings in Ruby are similar to quote-like operators in Perl.
|
||||
// This is adapted from pstrings in ../ruby/ruby.ts.
|
||||
quotedConstructs: [ |
||||
[/(q|qw|tr|y)\s*\(/, { token: 'string.delim', switchTo: '@qstring.(.)' }], |
||||
[/(q|qw|tr|y)\s*\[/, { token: 'string.delim', switchTo: '@qstring.[.]' }], |
||||
[/(q|qw|tr|y)\s*\{/, { token: 'string.delim', switchTo: '@qstring.{.}' }], |
||||
[/(q|qw|tr|y)\s*</, { token: 'string.delim', switchTo: '@qstring.<.>' }], |
||||
[/(q|qw|tr|y)#/, { token: 'string.delim', switchTo: '@qstring.#.#' }], |
||||
[/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/, { token: 'string.delim', switchTo: '@qstring.$2.$2' }], |
||||
[/(q|qw|tr|y)\s+(\w)/, { token: 'string.delim', switchTo: '@qstring.$2.$2' }], |
||||
[/(qr|m|s)\s*\(/, { token: 'regexp.delim', switchTo: '@qregexp.(.)' }], |
||||
[/(qr|m|s)\s*\[/, { token: 'regexp.delim', switchTo: '@qregexp.[.]' }], |
||||
[/(qr|m|s)\s*\{/, { token: 'regexp.delim', switchTo: '@qregexp.{.}' }], |
||||
[/(qr|m|s)\s*</, { token: 'regexp.delim', switchTo: '@qregexp.<.>' }], |
||||
[/(qr|m|s)#/, { token: 'regexp.delim', switchTo: '@qregexp.#.#' }], |
||||
[/(qr|m|s)\s*([^A-Za-z0-9_#\s])/, { token: 'regexp.delim', switchTo: '@qregexp.$2.$2' }], |
||||
[/(qr|m|s)\s+(\w)/, { token: 'regexp.delim', switchTo: '@qregexp.$2.$2' }], |
||||
[/(qq|qx)\s*\(/, { token: 'string.delim', switchTo: '@qqstring.(.)' }], |
||||
[/(qq|qx)\s*\[/, { token: 'string.delim', switchTo: '@qqstring.[.]' }], |
||||
[/(qq|qx)\s*\{/, { token: 'string.delim', switchTo: '@qqstring.{.}' }], |
||||
[/(qq|qx)\s*</, { token: 'string.delim', switchTo: '@qqstring.<.>' }], |
||||
[/(qq|qx)#/, { token: 'string.delim', switchTo: '@qqstring.#.#' }], |
||||
[/(qq|qx)\s*([^A-Za-z0-9#\s])/, { token: 'string.delim', switchTo: '@qqstring.$2.$2' }], |
||||
[/(qq|qx)\s+(\w)/, { token: 'string.delim', switchTo: '@qqstring.$2.$2' }] |
||||
], |
||||
// Non-expanded quoted string
|
||||
// qstring<open>.<close>
|
||||
// open = open delimiter
|
||||
// close = close delimiter
|
||||
qstring: [ |
||||
[/\\./, 'string.escape'], |
||||
[ |
||||
/./, |
||||
{ |
||||
cases: { |
||||
'$#==$S3': { token: 'string.delim', next: '@pop' }, |
||||
'$#==$S2': { token: 'string.delim', next: '@push' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Quoted regexp
|
||||
// qregexp.<open>.<close>
|
||||
// open = open delimiter
|
||||
// close = close delimiter
|
||||
qregexp: [ |
||||
{ include: '@variables' }, |
||||
[/\\./, 'regexp.escape'], |
||||
[ |
||||
/./, |
||||
{ |
||||
cases: { |
||||
'$#==$S3': { |
||||
token: 'regexp.delim', |
||||
next: '@regexpModifiers' |
||||
}, |
||||
'$#==$S2': { token: 'regexp.delim', next: '@push' }, |
||||
'@default': 'regexp' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
regexpModifiers: [[/[msixpodualngcer]+/, { token: 'regexp.modifier', next: '@popall' }]], |
||||
// Expanded quoted string
|
||||
// qqstring.<open>.<close>
|
||||
// open = open delimiter
|
||||
// close = close delimiter
|
||||
qqstring: [{ include: '@variables' }, { include: '@qstring' }], |
||||
heredoc: [ |
||||
[/<<\s*['"`]?([\w\-]+)['"`]?/, { token: 'string.heredoc.delimiter', next: '@heredocBody.$1' }] |
||||
], |
||||
heredocBody: [ |
||||
[ |
||||
/^([\w\-]+)$/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': [ |
||||
{ |
||||
token: 'string.heredoc.delimiter', |
||||
next: '@popall' |
||||
} |
||||
], |
||||
'@default': 'string.heredoc' |
||||
} |
||||
} |
||||
], |
||||
[/./, 'string.heredoc'] |
||||
], |
||||
perldoc: [[/^=\w/, 'comment.doc', '@perldocBody']], |
||||
perldocBody: [ |
||||
[/^=cut\b/, 'type.identifier', '@popall'], |
||||
[/./, 'comment.doc'] |
||||
], |
||||
variables: [ |
||||
[/\$\w+/, 'variable'], |
||||
[/@\w+/, 'variable'], |
||||
[/%\w+/, 'variable'] // key/value
|
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,854 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/pgsql/pgsql',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '--', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.sql', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
// This list is generated using `keywords.js`
|
||||
'ALL', |
||||
'ANALYSE', |
||||
'ANALYZE', |
||||
'AND', |
||||
'ANY', |
||||
'ARRAY', |
||||
'AS', |
||||
'ASC', |
||||
'ASYMMETRIC', |
||||
'AUTHORIZATION', |
||||
'BINARY', |
||||
'BOTH', |
||||
'CASE', |
||||
'CAST', |
||||
'CHECK', |
||||
'COLLATE', |
||||
'COLLATION', |
||||
'COLUMN', |
||||
'CONCURRENTLY', |
||||
'CONSTRAINT', |
||||
'CREATE', |
||||
'CROSS', |
||||
'CURRENT_CATALOG', |
||||
'CURRENT_DATE', |
||||
'CURRENT_ROLE', |
||||
'CURRENT_SCHEMA', |
||||
'CURRENT_TIME', |
||||
'CURRENT_TIMESTAMP', |
||||
'CURRENT_USER', |
||||
'DEFAULT', |
||||
'DEFERRABLE', |
||||
'DESC', |
||||
'DISTINCT', |
||||
'DO', |
||||
'ELSE', |
||||
'END', |
||||
'EXCEPT', |
||||
'FALSE', |
||||
'FETCH', |
||||
'FOR', |
||||
'FOREIGN', |
||||
'FREEZE', |
||||
'FROM', |
||||
'FULL', |
||||
'GRANT', |
||||
'GROUP', |
||||
'HAVING', |
||||
'ILIKE', |
||||
'IN', |
||||
'INITIALLY', |
||||
'INNER', |
||||
'INTERSECT', |
||||
'INTO', |
||||
'IS', |
||||
'ISNULL', |
||||
'JOIN', |
||||
'LATERAL', |
||||
'LEADING', |
||||
'LEFT', |
||||
'LIKE', |
||||
'LIMIT', |
||||
'LOCALTIME', |
||||
'LOCALTIMESTAMP', |
||||
'NATURAL', |
||||
'NOT', |
||||
'NOTNULL', |
||||
'NULL', |
||||
'OFFSET', |
||||
'ON', |
||||
'ONLY', |
||||
'OR', |
||||
'ORDER', |
||||
'OUTER', |
||||
'OVERLAPS', |
||||
'PLACING', |
||||
'PRIMARY', |
||||
'REFERENCES', |
||||
'RETURNING', |
||||
'RIGHT', |
||||
'SELECT', |
||||
'SESSION_USER', |
||||
'SIMILAR', |
||||
'SOME', |
||||
'SYMMETRIC', |
||||
'TABLE', |
||||
'TABLESAMPLE', |
||||
'THEN', |
||||
'TO', |
||||
'TRAILING', |
||||
'TRUE', |
||||
'UNION', |
||||
'UNIQUE', |
||||
'USER', |
||||
'USING', |
||||
'VARIADIC', |
||||
'VERBOSE', |
||||
'WHEN', |
||||
'WHERE', |
||||
'WINDOW', |
||||
'WITH' |
||||
], |
||||
operators: [ |
||||
'AND', |
||||
'BETWEEN', |
||||
'IN', |
||||
'LIKE', |
||||
'NOT', |
||||
'OR', |
||||
'IS', |
||||
'NULL', |
||||
'INTERSECT', |
||||
'UNION', |
||||
'INNER', |
||||
'JOIN', |
||||
'LEFT', |
||||
'OUTER', |
||||
'RIGHT' |
||||
], |
||||
builtinFunctions: [ |
||||
'abbrev', |
||||
'abs', |
||||
'acldefault', |
||||
'aclexplode', |
||||
'acos', |
||||
'acosd', |
||||
'acosh', |
||||
'age', |
||||
'any', |
||||
'area', |
||||
'array_agg', |
||||
'array_append', |
||||
'array_cat', |
||||
'array_dims', |
||||
'array_fill', |
||||
'array_length', |
||||
'array_lower', |
||||
'array_ndims', |
||||
'array_position', |
||||
'array_positions', |
||||
'array_prepend', |
||||
'array_remove', |
||||
'array_replace', |
||||
'array_to_json', |
||||
'array_to_string', |
||||
'array_to_tsvector', |
||||
'array_upper', |
||||
'ascii', |
||||
'asin', |
||||
'asind', |
||||
'asinh', |
||||
'atan', |
||||
'atan2', |
||||
'atan2d', |
||||
'atand', |
||||
'atanh', |
||||
'avg', |
||||
'bit', |
||||
'bit_and', |
||||
'bit_count', |
||||
'bit_length', |
||||
'bit_or', |
||||
'bit_xor', |
||||
'bool_and', |
||||
'bool_or', |
||||
'bound_box', |
||||
'box', |
||||
'brin_desummarize_range', |
||||
'brin_summarize_new_values', |
||||
'brin_summarize_range', |
||||
'broadcast', |
||||
'btrim', |
||||
'cardinality', |
||||
'cbrt', |
||||
'ceil', |
||||
'ceiling', |
||||
'center', |
||||
'char_length', |
||||
'character_length', |
||||
'chr', |
||||
'circle', |
||||
'clock_timestamp', |
||||
'coalesce', |
||||
'col_description', |
||||
'concat', |
||||
'concat_ws', |
||||
'convert', |
||||
'convert_from', |
||||
'convert_to', |
||||
'corr', |
||||
'cos', |
||||
'cosd', |
||||
'cosh', |
||||
'cot', |
||||
'cotd', |
||||
'count', |
||||
'covar_pop', |
||||
'covar_samp', |
||||
'cume_dist', |
||||
'current_catalog', |
||||
'current_database', |
||||
'current_date', |
||||
'current_query', |
||||
'current_role', |
||||
'current_schema', |
||||
'current_schemas', |
||||
'current_setting', |
||||
'current_time', |
||||
'current_timestamp', |
||||
'current_user', |
||||
'currval', |
||||
'cursor_to_xml', |
||||
'cursor_to_xmlschema', |
||||
'date_bin', |
||||
'date_part', |
||||
'date_trunc', |
||||
'database_to_xml', |
||||
'database_to_xml_and_xmlschema', |
||||
'database_to_xmlschema', |
||||
'decode', |
||||
'degrees', |
||||
'dense_rank', |
||||
'diagonal', |
||||
'diameter', |
||||
'div', |
||||
'encode', |
||||
'enum_first', |
||||
'enum_last', |
||||
'enum_range', |
||||
'every', |
||||
'exp', |
||||
'extract', |
||||
'factorial', |
||||
'family', |
||||
'first_value', |
||||
'floor', |
||||
'format', |
||||
'format_type', |
||||
'gcd', |
||||
'gen_random_uuid', |
||||
'generate_series', |
||||
'generate_subscripts', |
||||
'get_bit', |
||||
'get_byte', |
||||
'get_current_ts_config', |
||||
'gin_clean_pending_list', |
||||
'greatest', |
||||
'grouping', |
||||
'has_any_column_privilege', |
||||
'has_column_privilege', |
||||
'has_database_privilege', |
||||
'has_foreign_data_wrapper_privilege', |
||||
'has_function_privilege', |
||||
'has_language_privilege', |
||||
'has_schema_privilege', |
||||
'has_sequence_privilege', |
||||
'has_server_privilege', |
||||
'has_table_privilege', |
||||
'has_tablespace_privilege', |
||||
'has_type_privilege', |
||||
'height', |
||||
'host', |
||||
'hostmask', |
||||
'inet_client_addr', |
||||
'inet_client_port', |
||||
'inet_merge', |
||||
'inet_same_family', |
||||
'inet_server_addr', |
||||
'inet_server_port', |
||||
'initcap', |
||||
'isclosed', |
||||
'isempty', |
||||
'isfinite', |
||||
'isopen', |
||||
'json_agg', |
||||
'json_array_elements', |
||||
'json_array_elements_text', |
||||
'json_array_length', |
||||
'json_build_array', |
||||
'json_build_object', |
||||
'json_each', |
||||
'json_each_text', |
||||
'json_extract_path', |
||||
'json_extract_path_text', |
||||
'json_object', |
||||
'json_object_agg', |
||||
'json_object_keys', |
||||
'json_populate_record', |
||||
'json_populate_recordset', |
||||
'json_strip_nulls', |
||||
'json_to_record', |
||||
'json_to_recordset', |
||||
'json_to_tsvector', |
||||
'json_typeof', |
||||
'jsonb_agg', |
||||
'jsonb_array_elements', |
||||
'jsonb_array_elements_text', |
||||
'jsonb_array_length', |
||||
'jsonb_build_array', |
||||
'jsonb_build_object', |
||||
'jsonb_each', |
||||
'jsonb_each_text', |
||||
'jsonb_extract_path', |
||||
'jsonb_extract_path_text', |
||||
'jsonb_insert', |
||||
'jsonb_object', |
||||
'jsonb_object_agg', |
||||
'jsonb_object_keys', |
||||
'jsonb_path_exists', |
||||
'jsonb_path_match', |
||||
'jsonb_path_query', |
||||
'jsonb_path_query_array', |
||||
'jsonb_path_exists_tz', |
||||
'jsonb_path_query_first', |
||||
'jsonb_path_query_array_tz', |
||||
'jsonb_path_query_first_tz', |
||||
'jsonb_path_query_tz', |
||||
'jsonb_path_match_tz', |
||||
'jsonb_populate_record', |
||||
'jsonb_populate_recordset', |
||||
'jsonb_pretty', |
||||
'jsonb_set', |
||||
'jsonb_set_lax', |
||||
'jsonb_strip_nulls', |
||||
'jsonb_to_record', |
||||
'jsonb_to_recordset', |
||||
'jsonb_to_tsvector', |
||||
'jsonb_typeof', |
||||
'justify_days', |
||||
'justify_hours', |
||||
'justify_interval', |
||||
'lag', |
||||
'last_value', |
||||
'lastval', |
||||
'lcm', |
||||
'lead', |
||||
'least', |
||||
'left', |
||||
'length', |
||||
'line', |
||||
'ln', |
||||
'localtime', |
||||
'localtimestamp', |
||||
'log', |
||||
'log10', |
||||
'lower', |
||||
'lower_inc', |
||||
'lower_inf', |
||||
'lpad', |
||||
'lseg', |
||||
'ltrim', |
||||
'macaddr8_set7bit', |
||||
'make_date', |
||||
'make_interval', |
||||
'make_time', |
||||
'make_timestamp', |
||||
'make_timestamptz', |
||||
'makeaclitem', |
||||
'masklen', |
||||
'max', |
||||
'md5', |
||||
'min', |
||||
'min_scale', |
||||
'mod', |
||||
'mode', |
||||
'multirange', |
||||
'netmask', |
||||
'network', |
||||
'nextval', |
||||
'normalize', |
||||
'now', |
||||
'npoints', |
||||
'nth_value', |
||||
'ntile', |
||||
'nullif', |
||||
'num_nonnulls', |
||||
'num_nulls', |
||||
'numnode', |
||||
'obj_description', |
||||
'octet_length', |
||||
'overlay', |
||||
'parse_ident', |
||||
'path', |
||||
'pclose', |
||||
'percent_rank', |
||||
'percentile_cont', |
||||
'percentile_disc', |
||||
'pg_advisory_lock', |
||||
'pg_advisory_lock_shared', |
||||
'pg_advisory_unlock', |
||||
'pg_advisory_unlock_all', |
||||
'pg_advisory_unlock_shared', |
||||
'pg_advisory_xact_lock', |
||||
'pg_advisory_xact_lock_shared', |
||||
'pg_backend_pid', |
||||
'pg_backup_start_time', |
||||
'pg_blocking_pids', |
||||
'pg_cancel_backend', |
||||
'pg_client_encoding', |
||||
'pg_collation_actual_version', |
||||
'pg_collation_is_visible', |
||||
'pg_column_compression', |
||||
'pg_column_size', |
||||
'pg_conf_load_time', |
||||
'pg_control_checkpoint', |
||||
'pg_control_init', |
||||
'pg_control_recovery', |
||||
'pg_control_system', |
||||
'pg_conversion_is_visible', |
||||
'pg_copy_logical_replication_slot', |
||||
'pg_copy_physical_replication_slot', |
||||
'pg_create_logical_replication_slot', |
||||
'pg_create_physical_replication_slot', |
||||
'pg_create_restore_point', |
||||
'pg_current_logfile', |
||||
'pg_current_snapshot', |
||||
'pg_current_wal_flush_lsn', |
||||
'pg_current_wal_insert_lsn', |
||||
'pg_current_wal_lsn', |
||||
'pg_current_xact_id', |
||||
'pg_current_xact_id_if_assigned', |
||||
'pg_current_xlog_flush_location', |
||||
'pg_current_xlog_insert_location', |
||||
'pg_current_xlog_location', |
||||
'pg_database_size', |
||||
'pg_describe_object', |
||||
'pg_drop_replication_slot', |
||||
'pg_event_trigger_ddl_commands', |
||||
'pg_event_trigger_dropped_objects', |
||||
'pg_event_trigger_table_rewrite_oid', |
||||
'pg_event_trigger_table_rewrite_reason', |
||||
'pg_export_snapshot', |
||||
'pg_filenode_relation', |
||||
'pg_function_is_visible', |
||||
'pg_get_catalog_foreign_keys', |
||||
'pg_get_constraintdef', |
||||
'pg_get_expr', |
||||
'pg_get_function_arguments', |
||||
'pg_get_function_identity_arguments', |
||||
'pg_get_function_result', |
||||
'pg_get_functiondef', |
||||
'pg_get_indexdef', |
||||
'pg_get_keywords', |
||||
'pg_get_object_address', |
||||
'pg_get_owned_sequence', |
||||
'pg_get_ruledef', |
||||
'pg_get_serial_sequence', |
||||
'pg_get_statisticsobjdef', |
||||
'pg_get_triggerdef', |
||||
'pg_get_userbyid', |
||||
'pg_get_viewdef', |
||||
'pg_get_wal_replay_pause_state', |
||||
'pg_has_role', |
||||
'pg_identify_object', |
||||
'pg_identify_object_as_address', |
||||
'pg_import_system_collations', |
||||
'pg_index_column_has_property', |
||||
'pg_index_has_property', |
||||
'pg_indexam_has_property', |
||||
'pg_indexes_size', |
||||
'pg_is_in_backup', |
||||
'pg_is_in_recovery', |
||||
'pg_is_other_temp_schema', |
||||
'pg_is_wal_replay_paused', |
||||
'pg_is_xlog_replay_paused', |
||||
'pg_jit_available', |
||||
'pg_last_committed_xact', |
||||
'pg_last_wal_receive_lsn', |
||||
'pg_last_wal_replay_lsn', |
||||
'pg_last_xact_replay_timestamp', |
||||
'pg_last_xlog_receive_location', |
||||
'pg_last_xlog_replay_location', |
||||
'pg_listening_channels', |
||||
'pg_log_backend_memory_contexts', |
||||
'pg_logical_emit_message', |
||||
'pg_logical_slot_get_binary_changes', |
||||
'pg_logical_slot_get_changes', |
||||
'pg_logical_slot_peek_binary_changes', |
||||
'pg_logical_slot_peek_changes', |
||||
'pg_ls_archive_statusdir', |
||||
'pg_ls_dir', |
||||
'pg_ls_logdir', |
||||
'pg_ls_tmpdir', |
||||
'pg_ls_waldir', |
||||
'pg_mcv_list_items', |
||||
'pg_my_temp_schema', |
||||
'pg_notification_queue_usage', |
||||
'pg_opclass_is_visible', |
||||
'pg_operator_is_visible', |
||||
'pg_opfamily_is_visible', |
||||
'pg_options_to_table', |
||||
'pg_partition_ancestors', |
||||
'pg_partition_root', |
||||
'pg_partition_tree', |
||||
'pg_postmaster_start_time', |
||||
'pg_promote', |
||||
'pg_read_binary_file', |
||||
'pg_read_file', |
||||
'pg_relation_filenode', |
||||
'pg_relation_filepath', |
||||
'pg_relation_size', |
||||
'pg_reload_conf', |
||||
'pg_replication_origin_advance', |
||||
'pg_replication_origin_create', |
||||
'pg_replication_origin_drop', |
||||
'pg_replication_origin_oid', |
||||
'pg_replication_origin_progress', |
||||
'pg_replication_origin_session_is_setup', |
||||
'pg_replication_origin_session_progress', |
||||
'pg_replication_origin_session_reset', |
||||
'pg_replication_origin_session_setup', |
||||
'pg_replication_origin_xact_reset', |
||||
'pg_replication_origin_xact_setup', |
||||
'pg_replication_slot_advance', |
||||
'pg_rotate_logfile', |
||||
'pg_safe_snapshot_blocking_pids', |
||||
'pg_size_bytes', |
||||
'pg_size_pretty', |
||||
'pg_sleep', |
||||
'pg_sleep_for', |
||||
'pg_sleep_until', |
||||
'pg_snapshot_xip', |
||||
'pg_snapshot_xmax', |
||||
'pg_snapshot_xmin', |
||||
'pg_start_backup', |
||||
'pg_stat_file', |
||||
'pg_statistics_obj_is_visible', |
||||
'pg_stop_backup', |
||||
'pg_switch_wal', |
||||
'pg_switch_xlog', |
||||
'pg_table_is_visible', |
||||
'pg_table_size', |
||||
'pg_tablespace_databases', |
||||
'pg_tablespace_location', |
||||
'pg_tablespace_size', |
||||
'pg_terminate_backend', |
||||
'pg_total_relation_size', |
||||
'pg_trigger_depth', |
||||
'pg_try_advisory_lock', |
||||
'pg_try_advisory_lock_shared', |
||||
'pg_try_advisory_xact_lock', |
||||
'pg_try_advisory_xact_lock_shared', |
||||
'pg_ts_config_is_visible', |
||||
'pg_ts_dict_is_visible', |
||||
'pg_ts_parser_is_visible', |
||||
'pg_ts_template_is_visible', |
||||
'pg_type_is_visible', |
||||
'pg_typeof', |
||||
'pg_visible_in_snapshot', |
||||
'pg_wal_lsn_diff', |
||||
'pg_wal_replay_pause', |
||||
'pg_wal_replay_resume', |
||||
'pg_walfile_name', |
||||
'pg_walfile_name_offset', |
||||
'pg_xact_commit_timestamp', |
||||
'pg_xact_commit_timestamp_origin', |
||||
'pg_xact_status', |
||||
'pg_xlog_location_diff', |
||||
'pg_xlog_replay_pause', |
||||
'pg_xlog_replay_resume', |
||||
'pg_xlogfile_name', |
||||
'pg_xlogfile_name_offset', |
||||
'phraseto_tsquery', |
||||
'pi', |
||||
'plainto_tsquery', |
||||
'point', |
||||
'polygon', |
||||
'popen', |
||||
'position', |
||||
'power', |
||||
'pqserverversion', |
||||
'query_to_xml', |
||||
'query_to_xml_and_xmlschema', |
||||
'query_to_xmlschema', |
||||
'querytree', |
||||
'quote_ident', |
||||
'quote_literal', |
||||
'quote_nullable', |
||||
'radians', |
||||
'radius', |
||||
'random', |
||||
'range_agg', |
||||
'range_intersect_agg', |
||||
'range_merge', |
||||
'rank', |
||||
'regexp_match', |
||||
'regexp_matches', |
||||
'regexp_replace', |
||||
'regexp_split_to_array', |
||||
'regexp_split_to_table', |
||||
'regr_avgx', |
||||
'regr_avgy', |
||||
'regr_count', |
||||
'regr_intercept', |
||||
'regr_r2', |
||||
'regr_slope', |
||||
'regr_sxx', |
||||
'regr_sxy', |
||||
'regr_syy', |
||||
'repeat', |
||||
'replace', |
||||
'reverse', |
||||
'right', |
||||
'round', |
||||
'row_number', |
||||
'row_security_active', |
||||
'row_to_json', |
||||
'rpad', |
||||
'rtrim', |
||||
'scale', |
||||
'schema_to_xml', |
||||
'schema_to_xml_and_xmlschema', |
||||
'schema_to_xmlschema', |
||||
'session_user', |
||||
'set_bit', |
||||
'set_byte', |
||||
'set_config', |
||||
'set_masklen', |
||||
'setseed', |
||||
'setval', |
||||
'setweight', |
||||
'sha224', |
||||
'sha256', |
||||
'sha384', |
||||
'sha512', |
||||
'shobj_description', |
||||
'sign', |
||||
'sin', |
||||
'sind', |
||||
'sinh', |
||||
'slope', |
||||
'split_part', |
||||
'sprintf', |
||||
'sqrt', |
||||
'starts_with', |
||||
'statement_timestamp', |
||||
'stddev', |
||||
'stddev_pop', |
||||
'stddev_samp', |
||||
'string_agg', |
||||
'string_to_array', |
||||
'string_to_table', |
||||
'strip', |
||||
'strpos', |
||||
'substr', |
||||
'substring', |
||||
'sum', |
||||
'suppress_redundant_updates_trigger', |
||||
'table_to_xml', |
||||
'table_to_xml_and_xmlschema', |
||||
'table_to_xmlschema', |
||||
'tan', |
||||
'tand', |
||||
'tanh', |
||||
'text', |
||||
'timeofday', |
||||
'timezone', |
||||
'to_ascii', |
||||
'to_char', |
||||
'to_date', |
||||
'to_hex', |
||||
'to_json', |
||||
'to_number', |
||||
'to_regclass', |
||||
'to_regcollation', |
||||
'to_regnamespace', |
||||
'to_regoper', |
||||
'to_regoperator', |
||||
'to_regproc', |
||||
'to_regprocedure', |
||||
'to_regrole', |
||||
'to_regtype', |
||||
'to_timestamp', |
||||
'to_tsquery', |
||||
'to_tsvector', |
||||
'transaction_timestamp', |
||||
'translate', |
||||
'trim', |
||||
'trim_array', |
||||
'trim_scale', |
||||
'trunc', |
||||
'ts_debug', |
||||
'ts_delete', |
||||
'ts_filter', |
||||
'ts_headline', |
||||
'ts_lexize', |
||||
'ts_parse', |
||||
'ts_rank', |
||||
'ts_rank_cd', |
||||
'ts_rewrite', |
||||
'ts_stat', |
||||
'ts_token_type', |
||||
'tsquery_phrase', |
||||
'tsvector_to_array', |
||||
'tsvector_update_trigger', |
||||
'tsvector_update_trigger_column', |
||||
'txid_current', |
||||
'txid_current_if_assigned', |
||||
'txid_current_snapshot', |
||||
'txid_snapshot_xip', |
||||
'txid_snapshot_xmax', |
||||
'txid_snapshot_xmin', |
||||
'txid_status', |
||||
'txid_visible_in_snapshot', |
||||
'unistr', |
||||
'unnest', |
||||
'upper', |
||||
'upper_inc', |
||||
'upper_inf', |
||||
'user', |
||||
'var_pop', |
||||
'var_samp', |
||||
'variance', |
||||
'version', |
||||
'websearch_to_tsquery', |
||||
'width', |
||||
'width_bucket', |
||||
'xml_is_well_formed', |
||||
'xml_is_well_formed_content', |
||||
'xml_is_well_formed_document', |
||||
'xmlagg', |
||||
'xmlcomment', |
||||
'xmlconcat', |
||||
'xmlelement', |
||||
'xmlexists', |
||||
'xmlforest', |
||||
'xmlparse', |
||||
'xmlpi', |
||||
'xmlroot', |
||||
'xmlserialize', |
||||
'xpath', |
||||
'xpath_exists' |
||||
], |
||||
builtinVariables: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
pseudoColumns: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@whitespace' }, |
||||
{ include: '@pseudoColumns' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@complexIdentifiers' }, |
||||
{ include: '@scopes' }, |
||||
[/[;,.]/, 'delimiter'], |
||||
[/[()]/, '@brackets'], |
||||
[ |
||||
/[\w@#$]+/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator', |
||||
'@builtinVariables': 'predefined', |
||||
'@builtinFunctions': 'predefined', |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=!%&+\-*/|~^]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
[/--+.*/, 'comment'], |
||||
[/\/\*/, { token: 'comment.quote', next: '@comment' }] |
||||
], |
||||
comment: [ |
||||
[/[^*/]+/, 'comment'], |
||||
// Not supporting nested comments, as nested comments seem to not be standard?
|
||||
// i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
|
||||
// [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
|
||||
[/\*\//, { token: 'comment.quote', next: '@pop' }], |
||||
[/./, 'comment'] |
||||
], |
||||
pseudoColumns: [ |
||||
[ |
||||
/[$][A-Za-z_][\w@#$]*/, |
||||
{ |
||||
cases: { |
||||
'@pseudoColumns': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*/, 'number'], |
||||
[/[$][+-]*\d*(\.\d*)?/, 'number'], |
||||
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] |
||||
], |
||||
strings: [[/'/, { token: 'string', next: '@string' }]], |
||||
string: [ |
||||
[/[^']+/, 'string'], |
||||
[/''/, 'string'], |
||||
[/'/, { token: 'string', next: '@pop' }] |
||||
], |
||||
complexIdentifiers: [[/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }]], |
||||
quotedIdentifier: [ |
||||
[/[^"]+/, 'identifier'], |
||||
[/""/, 'identifier'], |
||||
[/"/, { token: 'identifier.quote', next: '@pop' }] |
||||
], |
||||
scopes: [ |
||||
// NOT SUPPORTED
|
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,579 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/php/php',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}', notIn: ['string'] }, |
||||
{ open: '[', close: ']', notIn: ['string'] }, |
||||
{ open: '(', close: ')', notIn: ['string'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*(#|//)region\\b'), |
||||
end: new RegExp('^\\s*(#|//)endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '', |
||||
// ignoreCase: true,
|
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/<\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.root' }], |
||||
[/<!DOCTYPE/, 'metatag.html', '@doctype'], |
||||
[/<!--/, 'comment.html', '@comment'], |
||||
[/(<)(\w+)(\/>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
[/(<)(script)/, ['delimiter.html', { token: 'tag.html', next: '@script' }]], |
||||
[/(<)(style)/, ['delimiter.html', { token: 'tag.html', next: '@style' }]], |
||||
[/(<)([:\w]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/(<\/)(\w+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/</, 'delimiter.html'], |
||||
[/[^<]+/] // text
|
||||
], |
||||
doctype: [ |
||||
[/<\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.comment' }], |
||||
[/[^>]+/, 'metatag.content.html'], |
||||
[/>/, 'metatag.html', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/<\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.comment' }], |
||||
[/-->/, 'comment.html', '@pop'], |
||||
[/[^-]+/, 'comment.content.html'], |
||||
[/./, 'comment.content.html'] |
||||
], |
||||
otherTag: [ |
||||
[/<\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.otherTag' }], |
||||
[/\/?>/, 'delimiter.html', '@pop'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/] // whitespace
|
||||
], |
||||
// -- BEGIN <script> tags handling
|
||||
// After <script
|
||||
script: [ |
||||
[/<\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.script' }], |
||||
[/type/, 'attribute.name', '@scriptAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(script\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <script ... type
|
||||
scriptAfterType: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInSimpleState.scriptAfterType' |
||||
} |
||||
], |
||||
[/=/, 'delimiter', '@scriptAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type =
|
||||
scriptAfterTypeEquals: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInSimpleState.scriptAfterTypeEquals' |
||||
} |
||||
], |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type = $S2
|
||||
scriptWithCustomType: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInSimpleState.scriptWithCustomType.$S2' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
scriptEmbedded: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInEmbeddedState.scriptEmbedded.$S2', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
], |
||||
[/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
// -- END <script> tags handling
|
||||
// -- BEGIN <style> tags handling
|
||||
// After <style
|
||||
style: [ |
||||
[/<\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.style' }], |
||||
[/type/, 'attribute.name', '@styleAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(style\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <style ... type
|
||||
styleAfterType: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInSimpleState.styleAfterType' |
||||
} |
||||
], |
||||
[/=/, 'delimiter', '@styleAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type =
|
||||
styleAfterTypeEquals: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInSimpleState.styleAfterTypeEquals' |
||||
} |
||||
], |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type = $S2
|
||||
styleWithCustomType: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInSimpleState.styleWithCustomType.$S2' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
styleEmbedded: [ |
||||
[ |
||||
/<\?((php)|=)?/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@phpInEmbeddedState.styleEmbedded.$S2', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
], |
||||
[/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
// -- END <style> tags handling
|
||||
phpInSimpleState: [ |
||||
[/<\?((php)|=)?/, 'metatag.php'], |
||||
[/\?>/, { token: 'metatag.php', switchTo: '@$S2.$S3' }], |
||||
{ include: 'phpRoot' } |
||||
], |
||||
phpInEmbeddedState: [ |
||||
[/<\?((php)|=)?/, 'metatag.php'], |
||||
[ |
||||
/\?>/, |
||||
{ |
||||
token: 'metatag.php', |
||||
switchTo: '@$S2.$S3', |
||||
nextEmbedded: '$S3' |
||||
} |
||||
], |
||||
{ include: 'phpRoot' } |
||||
], |
||||
phpRoot: [ |
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@phpKeywords': { token: 'keyword.php' }, |
||||
'@phpCompileTimeConstants': { token: 'constant.php' }, |
||||
'@default': 'identifier.php' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/[$a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@phpPreDefinedVariables': { |
||||
token: 'variable.predefined.php' |
||||
}, |
||||
'@default': 'variable.php' |
||||
} |
||||
} |
||||
], |
||||
// brackets
|
||||
[/[{}]/, 'delimiter.bracket.php'], |
||||
[/[\[\]]/, 'delimiter.array.php'], |
||||
[/[()]/, 'delimiter.parenthesis.php'], |
||||
// whitespace
|
||||
[/[ \t\r\n]+/], |
||||
// comments
|
||||
[/(#|\/\/)$/, 'comment.php'], |
||||
[/(#|\/\/)/, 'comment.php', '@phpLineComment'], |
||||
// block comments
|
||||
[/\/\*/, 'comment.php', '@phpComment'], |
||||
// strings
|
||||
[/"/, 'string.php', '@phpDoubleQuoteString'], |
||||
[/'/, 'string.php', '@phpSingleQuoteString'], |
||||
// delimiters
|
||||
[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/, 'delimiter.php'], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?/, 'number.float.php'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float.php'], |
||||
[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, 'number.hex.php'], |
||||
[/0[0-7']*[0-7]/, 'number.octal.php'], |
||||
[/0[bB][0-1']*[0-1]/, 'number.binary.php'], |
||||
[/\d[\d']*/, 'number.php'], |
||||
[/\d/, 'number.php'] |
||||
], |
||||
phpComment: [ |
||||
[/\*\//, 'comment.php', '@pop'], |
||||
[/[^*]+/, 'comment.php'], |
||||
[/./, 'comment.php'] |
||||
], |
||||
phpLineComment: [ |
||||
[/\?>/, { token: '@rematch', next: '@pop' }], |
||||
[/.$/, 'comment.php', '@pop'], |
||||
[/[^?]+$/, 'comment.php', '@pop'], |
||||
[/[^?]+/, 'comment.php'], |
||||
[/./, 'comment.php'] |
||||
], |
||||
phpDoubleQuoteString: [ |
||||
[/[^\\"]+/, 'string.php'], |
||||
[/@escapes/, 'string.escape.php'], |
||||
[/\\./, 'string.escape.invalid.php'], |
||||
[/"/, 'string.php', '@pop'] |
||||
], |
||||
phpSingleQuoteString: [ |
||||
[/[^\\']+/, 'string.php'], |
||||
[/@escapes/, 'string.escape.php'], |
||||
[/\\./, 'string.escape.invalid.php'], |
||||
[/'/, 'string.php', '@pop'] |
||||
] |
||||
}, |
||||
phpKeywords: [ |
||||
'abstract', |
||||
'and', |
||||
'array', |
||||
'as', |
||||
'break', |
||||
'callable', |
||||
'case', |
||||
'catch', |
||||
'cfunction', |
||||
'class', |
||||
'clone', |
||||
'const', |
||||
'continue', |
||||
'declare', |
||||
'default', |
||||
'do', |
||||
'else', |
||||
'elseif', |
||||
'enddeclare', |
||||
'endfor', |
||||
'endforeach', |
||||
'endif', |
||||
'endswitch', |
||||
'endwhile', |
||||
'extends', |
||||
'false', |
||||
'final', |
||||
'for', |
||||
'foreach', |
||||
'function', |
||||
'global', |
||||
'goto', |
||||
'if', |
||||
'implements', |
||||
'interface', |
||||
'instanceof', |
||||
'insteadof', |
||||
'namespace', |
||||
'new', |
||||
'null', |
||||
'object', |
||||
'old_function', |
||||
'or', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'resource', |
||||
'static', |
||||
'switch', |
||||
'throw', |
||||
'trait', |
||||
'try', |
||||
'true', |
||||
'use', |
||||
'var', |
||||
'while', |
||||
'xor', |
||||
'die', |
||||
'echo', |
||||
'empty', |
||||
'exit', |
||||
'eval', |
||||
'include', |
||||
'include_once', |
||||
'isset', |
||||
'list', |
||||
'require', |
||||
'require_once', |
||||
'return', |
||||
'print', |
||||
'unset', |
||||
'yield', |
||||
'__construct' |
||||
], |
||||
phpCompileTimeConstants: [ |
||||
'__CLASS__', |
||||
'__DIR__', |
||||
'__FILE__', |
||||
'__LINE__', |
||||
'__NAMESPACE__', |
||||
'__METHOD__', |
||||
'__FUNCTION__', |
||||
'__TRAIT__' |
||||
], |
||||
phpPreDefinedVariables: [ |
||||
'$GLOBALS', |
||||
'$_SERVER', |
||||
'$_GET', |
||||
'$_POST', |
||||
'$_FILES', |
||||
'$_REQUEST', |
||||
'$_SESSION', |
||||
'$_ENV', |
||||
'$_COOKIE', |
||||
'$php_errormsg', |
||||
'$HTTP_RAW_POST_DATA', |
||||
'$http_response_header', |
||||
'$argc', |
||||
'$argv' |
||||
], |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/ |
||||
}; |
||||
}); |
||||
// TESTED WITH
|
||||
// <style type="text/css" >
|
||||
// .boo { background: blue;
|
||||
// <?=''?>
|
||||
// }
|
||||
// .boo { background: blue; <?=''?> }
|
||||
// </style>
|
||||
// <!--
|
||||
// <?= '' ?>
|
||||
// -->
|
||||
// <?php
|
||||
// // The next line contains a syntax error:
|
||||
// __construct
|
||||
// if () {
|
||||
// return "The parser recovers from this type of syntax error";
|
||||
// }
|
||||
// ?>
|
||||
// <html>
|
||||
// <head>
|
||||
// <title <?=''?>>Example page</title>
|
||||
// <style <?=''?>>
|
||||
// .boo { background: blue; <?=''?> }
|
||||
// </style>
|
||||
// </head>
|
||||
// <body>
|
||||
// <script <?=''?> type<?=''?>=<?=''?>"text/javascript"<?=''?>>
|
||||
// // Some PHP embedded inside JS
|
||||
// // Generated <?=date('l, F jS, Y')?>
|
||||
// var server_token = <?=rand(5, 10000)?>
|
||||
// if (typeof server_token === 'number') {
|
||||
// alert('token: ' + server_token);
|
||||
// }
|
||||
// </script>
|
||||
// <div>
|
||||
// Hello
|
||||
// <? if (isset($user)) { ?>
|
||||
// <b><?=$user?></b>
|
||||
// <? } else { ?>
|
||||
// <i>guest</i>
|
||||
// <? } ?>
|
||||
// !
|
||||
// </div>
|
||||
// <?php
|
||||
// /* Example PHP file
|
||||
// multiline comment
|
||||
// */
|
||||
// # Another single line comment
|
||||
// $cards = array("ah", "ac", "ad", "as",
|
||||
// "2h", "2c", "2d", "2s",
|
||||
// "3h", "3c", "3d", "3s",
|
||||
// "4h", "4c", "4d", "4s",
|
||||
// "5h", "5c", "5d", "5s",
|
||||
// "6h", "6c", "6d", "6s",
|
||||
// "7h", "7c", "7d", "7s",
|
||||
// "8h", "8c", "8d", "8s",
|
||||
// "9h", "9c", "9d", "9s",
|
||||
// "th", "tc", "td", "ts",
|
||||
// "jh", "jc", "jd", "js",
|
||||
// "qh", "qc", "qd", "qs",
|
||||
// "kh", "kc", "kd", "ks");
|
||||
// srand(time());
|
||||
// for($i = 0; $i < 52; $i++) {
|
||||
// $count = count($cards);
|
||||
// $random = (rand()%$count);
|
||||
// if($cards[$random] == "") {
|
||||
// $i--;
|
||||
// } else {
|
||||
// $deck[] = $cards[$random];
|
||||
// $cards[$random] = "";
|
||||
// }
|
||||
// }
|
||||
// $_GET
|
||||
// __CLASS__
|
||||
// srand(time());
|
||||
// $starting_point = (rand()%51);
|
||||
// print("Starting point for cut cards is: $starting_point<p>");
|
||||
// // display shuffled cards (EXAMPLE ONLY)
|
||||
// for ($index = 0; $index < 52; $index++) {
|
||||
// if ($starting_point == 52) { $starting_point = 0; }
|
||||
// print("Uncut Point: <strong>$deck[$index]</strong> ");
|
||||
// print("Starting Point: <strong>$deck[$starting_point]</strong><br>");
|
||||
// $starting_point++;
|
||||
// }
|
||||
// ?>
|
||||
// </body>
|
||||
// </html>
|
||||
; |
@ -0,0 +1,144 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/pla/pla',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['[', ']'], |
||||
['<', '>'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: '(', close: ')' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: '(', close: ')' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.pla', |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
'.i', |
||||
'.o', |
||||
'.mv', |
||||
'.ilb', |
||||
'.ob', |
||||
'.label', |
||||
'.type', |
||||
'.phase', |
||||
'.pair', |
||||
'.symbolic', |
||||
'.symbolic-output', |
||||
'.kiss', |
||||
'.p', |
||||
'.e', |
||||
'.end' |
||||
], |
||||
// regular expressions
|
||||
comment: /#.*$/, |
||||
identifier: /[a-zA-Z]+[a-zA-Z0-9_\-]*/, |
||||
plaContent: /[01\-~\|]+/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// comments and whitespace
|
||||
{ include: '@whitespace' }, |
||||
[/@comment/, 'comment'], |
||||
// keyword
|
||||
[ |
||||
/\.([a-zA-Z_\-]+)/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'keyword.$1' }, |
||||
'@keywords': { |
||||
cases: { |
||||
'.type': { token: 'keyword.$1', next: '@type' }, |
||||
'@default': { token: 'keyword.$1', next: '@keywordArg' } |
||||
} |
||||
}, |
||||
'@default': { token: 'keyword.$1' } |
||||
} |
||||
} |
||||
], |
||||
// identifiers
|
||||
[/@identifier/, 'identifier'], |
||||
// PLA row
|
||||
[/@plaContent/, 'string'] |
||||
], |
||||
whitespace: [[/[ \t\r\n]+/, '']], |
||||
type: [{ include: '@whitespace' }, [/\w+/, { token: 'type', next: '@pop' }]], |
||||
keywordArg: [ |
||||
// whitespace
|
||||
[ |
||||
/[ \t\r\n]+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: '', next: '@pop' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// comments
|
||||
[/@comment/, 'comment', '@pop'], |
||||
// brackets
|
||||
[ |
||||
/[<>()\[\]]/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: '@brackets', next: '@pop' }, |
||||
'@default': '@brackets' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[ |
||||
/\-?\d+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'number', next: '@pop' }, |
||||
'@default': 'number' |
||||
} |
||||
} |
||||
], |
||||
// identifiers
|
||||
[ |
||||
/@identifier/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'identifier', next: '@pop' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// delimiter
|
||||
[ |
||||
/[;=]/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'delimiter', next: '@pop' }, |
||||
'@default': 'delimiter' |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,716 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Artyom Shalkhakov. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
* |
||||
* Based on the ATS/Postiats lexer by Hongwei Xi. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/postiats/postiats',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['(*', '*)'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
tokenPostfix: '.pats', |
||||
// TODO: staload and dynload are followed by a special kind of string literals
|
||||
// with {$IDENTIFER} variables, and it also may make sense to highlight
|
||||
// the punctuation (. and / and \) differently.
|
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
defaultToken: 'invalid', |
||||
// keyword reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing_token.dats
|
||||
keywords: [ |
||||
//
|
||||
'abstype', |
||||
'abst0ype', |
||||
'absprop', |
||||
'absview', |
||||
'absvtype', |
||||
'absviewtype', |
||||
'absvt0ype', |
||||
'absviewt0ype', |
||||
//
|
||||
'as', |
||||
//
|
||||
'and', |
||||
//
|
||||
'assume', |
||||
//
|
||||
'begin', |
||||
//
|
||||
/* |
||||
"case", // CASE
|
||||
*/ |
||||
//
|
||||
'classdec', |
||||
//
|
||||
'datasort', |
||||
//
|
||||
'datatype', |
||||
'dataprop', |
||||
'dataview', |
||||
'datavtype', |
||||
'dataviewtype', |
||||
//
|
||||
'do', |
||||
//
|
||||
'end', |
||||
//
|
||||
'extern', |
||||
'extype', |
||||
'extvar', |
||||
//
|
||||
'exception', |
||||
//
|
||||
'fn', |
||||
'fnx', |
||||
'fun', |
||||
//
|
||||
'prfn', |
||||
'prfun', |
||||
//
|
||||
'praxi', |
||||
'castfn', |
||||
//
|
||||
'if', |
||||
'then', |
||||
'else', |
||||
//
|
||||
'ifcase', |
||||
//
|
||||
'in', |
||||
//
|
||||
'infix', |
||||
'infixl', |
||||
'infixr', |
||||
'prefix', |
||||
'postfix', |
||||
//
|
||||
'implmnt', |
||||
'implement', |
||||
//
|
||||
'primplmnt', |
||||
'primplement', |
||||
//
|
||||
'import', |
||||
//
|
||||
/* |
||||
"lam", // LAM
|
||||
"llam", // LLAM
|
||||
"fix", // FIX
|
||||
*/ |
||||
//
|
||||
'let', |
||||
//
|
||||
'local', |
||||
//
|
||||
'macdef', |
||||
'macrodef', |
||||
//
|
||||
'nonfix', |
||||
//
|
||||
'symelim', |
||||
'symintr', |
||||
'overload', |
||||
//
|
||||
'of', |
||||
'op', |
||||
//
|
||||
'rec', |
||||
//
|
||||
'sif', |
||||
'scase', |
||||
//
|
||||
'sortdef', |
||||
/* |
||||
// HX: [sta] is now deprecated
|
||||
*/ |
||||
'sta', |
||||
'stacst', |
||||
'stadef', |
||||
'static', |
||||
/* |
||||
"stavar", // T_STAVAR
|
||||
*/ |
||||
//
|
||||
'staload', |
||||
'dynload', |
||||
//
|
||||
'try', |
||||
//
|
||||
'tkindef', |
||||
//
|
||||
/* |
||||
"type", // TYPE
|
||||
*/ |
||||
'typedef', |
||||
'propdef', |
||||
'viewdef', |
||||
'vtypedef', |
||||
'viewtypedef', |
||||
//
|
||||
/* |
||||
"val", // VAL
|
||||
*/ |
||||
'prval', |
||||
//
|
||||
'var', |
||||
'prvar', |
||||
//
|
||||
'when', |
||||
'where', |
||||
//
|
||||
/* |
||||
"for", // T_FOR
|
||||
"while", // T_WHILE
|
||||
*/ |
||||
//
|
||||
'with', |
||||
//
|
||||
'withtype', |
||||
'withprop', |
||||
'withview', |
||||
'withvtype', |
||||
'withviewtype' // WITHVIEWTYPE
|
||||
//
|
||||
], |
||||
keywords_dlr: [ |
||||
'$delay', |
||||
'$ldelay', |
||||
//
|
||||
'$arrpsz', |
||||
'$arrptrsize', |
||||
//
|
||||
'$d2ctype', |
||||
//
|
||||
'$effmask', |
||||
'$effmask_ntm', |
||||
'$effmask_exn', |
||||
'$effmask_ref', |
||||
'$effmask_wrt', |
||||
'$effmask_all', |
||||
//
|
||||
'$extern', |
||||
'$extkind', |
||||
'$extype', |
||||
'$extype_struct', |
||||
//
|
||||
'$extval', |
||||
'$extfcall', |
||||
'$extmcall', |
||||
//
|
||||
'$literal', |
||||
//
|
||||
'$myfilename', |
||||
'$mylocation', |
||||
'$myfunction', |
||||
//
|
||||
'$lst', |
||||
'$lst_t', |
||||
'$lst_vt', |
||||
'$list', |
||||
'$list_t', |
||||
'$list_vt', |
||||
//
|
||||
'$rec', |
||||
'$rec_t', |
||||
'$rec_vt', |
||||
'$record', |
||||
'$record_t', |
||||
'$record_vt', |
||||
//
|
||||
'$tup', |
||||
'$tup_t', |
||||
'$tup_vt', |
||||
'$tuple', |
||||
'$tuple_t', |
||||
'$tuple_vt', |
||||
//
|
||||
'$break', |
||||
'$continue', |
||||
//
|
||||
'$raise', |
||||
//
|
||||
'$showtype', |
||||
//
|
||||
'$vcopyenv_v', |
||||
'$vcopyenv_vt', |
||||
//
|
||||
'$tempenver', |
||||
//
|
||||
'$solver_assert', |
||||
'$solver_verify' // T_DLRSOLVERIFY
|
||||
], |
||||
keywords_srp: [ |
||||
//
|
||||
'#if', |
||||
'#ifdef', |
||||
'#ifndef', |
||||
//
|
||||
'#then', |
||||
//
|
||||
'#elif', |
||||
'#elifdef', |
||||
'#elifndef', |
||||
//
|
||||
'#else', |
||||
'#endif', |
||||
//
|
||||
'#error', |
||||
//
|
||||
'#prerr', |
||||
'#print', |
||||
//
|
||||
'#assert', |
||||
//
|
||||
'#undef', |
||||
'#define', |
||||
//
|
||||
'#include', |
||||
'#require', |
||||
//
|
||||
'#pragma', |
||||
'#codegen2', |
||||
'#codegen3' // T_SRPCODEGEN3 // for level-3 codegen
|
||||
//
|
||||
// HX: end of special tokens
|
||||
//
|
||||
], |
||||
irregular_keyword_list: [ |
||||
'val+', |
||||
'val-', |
||||
'val', |
||||
'case+', |
||||
'case-', |
||||
'case', |
||||
'addr@', |
||||
'addr', |
||||
'fold@', |
||||
'free@', |
||||
'fix@', |
||||
'fix', |
||||
'lam@', |
||||
'lam', |
||||
'llam@', |
||||
'llam', |
||||
'viewt@ype+', |
||||
'viewt@ype-', |
||||
'viewt@ype', |
||||
'viewtype+', |
||||
'viewtype-', |
||||
'viewtype', |
||||
'view+', |
||||
'view-', |
||||
'view@', |
||||
'view', |
||||
'type+', |
||||
'type-', |
||||
'type', |
||||
'vtype+', |
||||
'vtype-', |
||||
'vtype', |
||||
'vt@ype+', |
||||
'vt@ype-', |
||||
'vt@ype', |
||||
'viewt@ype+', |
||||
'viewt@ype-', |
||||
'viewt@ype', |
||||
'viewtype+', |
||||
'viewtype-', |
||||
'viewtype', |
||||
'prop+', |
||||
'prop-', |
||||
'prop', |
||||
'type+', |
||||
'type-', |
||||
'type', |
||||
't@ype', |
||||
't@ype+', |
||||
't@ype-', |
||||
'abst@ype', |
||||
'abstype', |
||||
'absviewt@ype', |
||||
'absvt@ype', |
||||
'for*', |
||||
'for', |
||||
'while*', |
||||
'while' |
||||
], |
||||
keywords_types: [ |
||||
'bool', |
||||
'double', |
||||
'byte', |
||||
'int', |
||||
'short', |
||||
'char', |
||||
'void', |
||||
'unit', |
||||
'long', |
||||
'float', |
||||
'string', |
||||
'strptr' |
||||
], |
||||
// TODO: reference for this?
|
||||
keywords_effects: [ |
||||
'0', |
||||
'fun', |
||||
'clo', |
||||
'prf', |
||||
'funclo', |
||||
'cloptr', |
||||
'cloref', |
||||
'ref', |
||||
'ntm', |
||||
'1' // all effects
|
||||
], |
||||
operators: [ |
||||
'@', |
||||
'!', |
||||
'|', |
||||
'`', |
||||
':', |
||||
'$', |
||||
'.', |
||||
'=', |
||||
'#', |
||||
'~', |
||||
//
|
||||
'..', |
||||
'...', |
||||
//
|
||||
'=>', |
||||
// "=<", // T_EQLT
|
||||
'=<>', |
||||
'=/=>', |
||||
'=>>', |
||||
'=/=>>', |
||||
//
|
||||
'<', |
||||
'>', |
||||
//
|
||||
'><', |
||||
//
|
||||
'.<', |
||||
'>.', |
||||
//
|
||||
'.<>.', |
||||
//
|
||||
'->', |
||||
//"-<", // T_MINUSLT
|
||||
'-<>' // T_MINUSLTGT
|
||||
//
|
||||
/* |
||||
":<", // T_COLONLT
|
||||
*/ |
||||
], |
||||
brackets: [ |
||||
{ open: ',(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '`(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '%(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: "'(", close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: "'{", close: '}', token: 'delimiter.parenthesis' }, |
||||
{ open: '@(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '@{', close: '}', token: 'delimiter.brace' }, |
||||
{ open: '@[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '#[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
IDENTFST: /[a-zA-Z_]/, |
||||
IDENTRST: /[a-zA-Z0-9_'$]/, |
||||
symbolic: /[%&+-./:=@~`^|*!$#?<>]/, |
||||
digit: /[0-9]/, |
||||
digitseq0: /@digit*/, |
||||
xdigit: /[0-9A-Za-z]/, |
||||
xdigitseq0: /@xdigit*/, |
||||
INTSP: /[lLuU]/, |
||||
FLOATSP: /[fFlL]/, |
||||
fexponent: /[eE][+-]?[0-9]+/, |
||||
fexponent_bin: /[pP][+-]?[0-9]+/, |
||||
deciexp: /\.[0-9]*@fexponent?/, |
||||
hexiexp: /\.[0-9a-zA-Z]*@fexponent_bin?/, |
||||
irregular_keywords: /val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/, |
||||
ESCHAR: /[ntvbrfa\\\?'"\(\[\{]/, |
||||
start: 'root', |
||||
// The main tokenizer for ATS/Postiats
|
||||
// reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing.dats
|
||||
tokenizer: { |
||||
root: [ |
||||
// lexing_blankseq0
|
||||
{ regex: /[ \t\r\n]+/, action: { token: '' } }, |
||||
// NOTE: (*) is an invalid ML-like comment!
|
||||
{ regex: /\(\*\)/, action: { token: 'invalid' } }, |
||||
{ |
||||
regex: /\(\*/, |
||||
action: { token: 'comment', next: 'lexing_COMMENT_block_ml' } |
||||
}, |
||||
{ |
||||
regex: /\(/, |
||||
action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ |
||||
}, |
||||
{ |
||||
regex: /\)/, |
||||
action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ |
||||
}, |
||||
{ |
||||
regex: /\[/, |
||||
action: '@brackets' /*{ token: 'delimiter.bracket' }*/ |
||||
}, |
||||
{ |
||||
regex: /\]/, |
||||
action: '@brackets' /*{ token: 'delimiter.bracket' }*/ |
||||
}, |
||||
{ |
||||
regex: /\{/, |
||||
action: '@brackets' /*{ token: 'delimiter.brace' }*/ |
||||
}, |
||||
{ |
||||
regex: /\}/, |
||||
action: '@brackets' /*{ token: 'delimiter.brace' }*/ |
||||
}, |
||||
// lexing_COMMA
|
||||
{ |
||||
regex: /,\(/, |
||||
action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ |
||||
}, |
||||
{ regex: /,/, action: { token: 'delimiter.comma' } }, |
||||
{ regex: /;/, action: { token: 'delimiter.semicolon' } }, |
||||
// lexing_AT
|
||||
{ |
||||
regex: /@\(/, |
||||
action: '@brackets' /* { token: 'delimiter.parenthesis' }*/ |
||||
}, |
||||
{ |
||||
regex: /@\[/, |
||||
action: '@brackets' /* { token: 'delimiter.bracket' }*/ |
||||
}, |
||||
{ |
||||
regex: /@\{/, |
||||
action: '@brackets' /*{ token: 'delimiter.brace' }*/ |
||||
}, |
||||
// lexing_COLON
|
||||
{ |
||||
regex: /:</, |
||||
action: { token: 'keyword', next: '@lexing_EFFECT_commaseq0' } |
||||
}, |
||||
/* |
||||
lexing_DOT: |
||||
|
||||
. // SYMBOLIC => lexing_IDENT_sym
|
||||
. FLOATDOT => lexing_FLOAT_deciexp |
||||
. DIGIT => T_DOTINT |
||||
*/ |
||||
{ regex: /\.@symbolic+/, action: { token: 'identifier.sym' } }, |
||||
// FLOATDOT case
|
||||
{ |
||||
regex: /\.@digit*@fexponent@FLOATSP*/, |
||||
action: { token: 'number.float' } |
||||
}, |
||||
{ regex: /\.@digit+/, action: { token: 'number.float' } }, |
||||
// lexing_DOLLAR:
|
||||
// '$' IDENTFST IDENTRST* => lexing_IDENT_dlr, _ => lexing_IDENT_sym
|
||||
{ |
||||
regex: /\$@IDENTFST@IDENTRST*/, |
||||
action: { |
||||
cases: { |
||||
'@keywords_dlr': { token: 'keyword.dlr' }, |
||||
'@default': { token: 'namespace' } // most likely a module qualifier
|
||||
} |
||||
} |
||||
}, |
||||
// lexing_SHARP:
|
||||
// '#' IDENTFST IDENTRST* => lexing_ident_srp, _ => lexing_IDENT_sym
|
||||
{ |
||||
regex: /\#@IDENTFST@IDENTRST*/, |
||||
action: { |
||||
cases: { |
||||
'@keywords_srp': { token: 'keyword.srp' }, |
||||
'@default': { token: 'identifier' } |
||||
} |
||||
} |
||||
}, |
||||
// lexing_PERCENT:
|
||||
{ regex: /%\(/, action: { token: 'delimiter.parenthesis' } }, |
||||
{ |
||||
regex: /^%{(#|\^|\$)?/, |
||||
action: { |
||||
token: 'keyword', |
||||
next: '@lexing_EXTCODE', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
}, |
||||
{ regex: /^%}/, action: { token: 'keyword' } }, |
||||
// lexing_QUOTE
|
||||
{ regex: /'\(/, action: { token: 'delimiter.parenthesis' } }, |
||||
{ regex: /'\[/, action: { token: 'delimiter.bracket' } }, |
||||
{ regex: /'\{/, action: { token: 'delimiter.brace' } }, |
||||
[/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/, ['string', 'string.escape', 'string']], |
||||
[/'[^\\']'/, 'string'], |
||||
// lexing_DQUOTE
|
||||
[/"/, 'string.quote', '@lexing_DQUOTE'], |
||||
// lexing_BQUOTE
|
||||
{ |
||||
regex: /`\(/, |
||||
action: '@brackets' /* { token: 'delimiter.parenthesis' }*/ |
||||
}, |
||||
// TODO: otherwise, try lexing_IDENT_sym
|
||||
{ regex: /\\/, action: { token: 'punctuation' } }, |
||||
// lexing_IDENT_alp:
|
||||
// NOTE: (?!regex) is syntax for "not-followed-by" regex
|
||||
// to resolve ambiguity such as foreach$fwork being incorrectly lexed as [for] [each$fwork]!
|
||||
{ |
||||
regex: /@irregular_keywords(?!@IDENTRST)/, |
||||
action: { token: 'keyword' } |
||||
}, |
||||
{ |
||||
regex: /@IDENTFST@IDENTRST*[<!\[]?/, |
||||
action: { |
||||
cases: { |
||||
// TODO: dynload and staload should be specially parsed
|
||||
// dynload whitespace+ "special_string"
|
||||
// this special string is really:
|
||||
// '/' '\\' '.' => punctuation
|
||||
// ({\$)([a-zA-Z_][a-zA-Z_0-9]*)(}) => punctuation,keyword,punctuation
|
||||
// [^"] => identifier/literal
|
||||
'@keywords': { token: 'keyword' }, |
||||
'@keywords_types': { token: 'type' }, |
||||
'@default': { token: 'identifier' } |
||||
} |
||||
} |
||||
}, |
||||
// lexing_IDENT_sym:
|
||||
{ |
||||
regex: /\/\/\/\//, |
||||
action: { token: 'comment', next: '@lexing_COMMENT_rest' } |
||||
}, |
||||
{ regex: /\/\/.*$/, action: { token: 'comment' } }, |
||||
{ |
||||
regex: /\/\*/, |
||||
action: { token: 'comment', next: '@lexing_COMMENT_block_c' } |
||||
}, |
||||
// AS-20160627: specifically for effect annotations
|
||||
{ |
||||
regex: /-<|=</, |
||||
action: { token: 'keyword', next: '@lexing_EFFECT_commaseq0' } |
||||
}, |
||||
{ |
||||
regex: /@symbolic+/, |
||||
action: { |
||||
cases: { |
||||
'@operators': 'keyword', |
||||
'@default': 'operator' |
||||
} |
||||
} |
||||
}, |
||||
// lexing_ZERO:
|
||||
// FIXME: this one is quite messy/unfinished yet
|
||||
// TODO: lexing_INT_hex
|
||||
// - testing_hexiexp => lexing_FLOAT_hexiexp
|
||||
// - testing_fexponent_bin => lexing_FLOAT_hexiexp
|
||||
// - testing_intspseq0 => T_INT_hex
|
||||
// lexing_INT_hex:
|
||||
{ |
||||
regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/, |
||||
action: { token: 'number.float' } |
||||
}, |
||||
{ regex: /0[xX]@xdigit+@INTSP*/, action: { token: 'number.hex' } }, |
||||
{ |
||||
regex: /0[0-7]+(?![0-9])@INTSP*/, |
||||
action: { token: 'number.octal' } |
||||
}, |
||||
//{regex: /0/, action: { token: 'number' } }, // INTZERO
|
||||
// lexing_INT_dec:
|
||||
// - testing_deciexp => lexing_FLOAT_deciexp
|
||||
// - testing_fexponent => lexing_FLOAT_deciexp
|
||||
// - otherwise => intspseq0 ([0-9]*[lLuU]?)
|
||||
{ |
||||
regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/, |
||||
action: { token: 'number.float' } |
||||
}, |
||||
{ |
||||
regex: /@digit@digitseq0@INTSP*/, |
||||
action: { token: 'number.decimal' } |
||||
}, |
||||
// DIGIT, if followed by digitseq0, is lexing_INT_dec
|
||||
{ regex: /@digit+@INTSP*/, action: { token: 'number' } } |
||||
], |
||||
lexing_COMMENT_block_ml: [ |
||||
[/[^\(\*]+/, 'comment'], |
||||
[/\(\*/, 'comment', '@push'], |
||||
[/\(\*/, 'comment.invalid'], |
||||
[/\*\)/, 'comment', '@pop'], |
||||
[/\*/, 'comment'] |
||||
], |
||||
lexing_COMMENT_block_c: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
// [/\/\*/, 'comment', '@push' ], // nested C-style block comments not allowed
|
||||
// [/\/\*/, 'comment.invalid' ], // NOTE: this breaks block comments in the shape of /* //*/
|
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
lexing_COMMENT_rest: [ |
||||
[/$/, 'comment', '@pop'], |
||||
[/.*/, 'comment'] |
||||
], |
||||
// NOTE: added by AS, specifically for highlighting
|
||||
lexing_EFFECT_commaseq0: [ |
||||
{ |
||||
regex: /@IDENTFST@IDENTRST+|@digit+/, |
||||
action: { |
||||
cases: { |
||||
'@keywords_effects': { token: 'type.effect' }, |
||||
'@default': { token: 'identifier' } |
||||
} |
||||
} |
||||
}, |
||||
{ regex: /,/, action: { token: 'punctuation' } }, |
||||
{ regex: />/, action: { token: '@rematch', next: '@pop' } } |
||||
], |
||||
lexing_EXTCODE: [ |
||||
{ |
||||
regex: /^%}/, |
||||
action: { |
||||
token: '@rematch', |
||||
next: '@pop', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
}, |
||||
{ regex: /[^%]+/, action: '' } |
||||
], |
||||
lexing_DQUOTE: [ |
||||
{ regex: /"/, action: { token: 'string.quote', next: '@pop' } }, |
||||
// AS-20160628: additional hi-lighting for variables in staload/dynload strings
|
||||
{ |
||||
regex: /(\{\$)(@IDENTFST@IDENTRST*)(\})/, |
||||
action: [{ token: 'string.escape' }, { token: 'identifier' }, { token: 'string.escape' }] |
||||
}, |
||||
{ regex: /\\$/, action: { token: 'string.escape' } }, |
||||
{ |
||||
regex: /\\(@ESCHAR|[xX]@xdigit+|@digit+)/, |
||||
action: { token: 'string.escape' } |
||||
}, |
||||
{ regex: /[^\\"]+/, action: { token: 'string' } } |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,897 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/powerquery/powerquery',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['{', '}'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment', 'identifier'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment', 'identifier'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment', 'identifier'] }, |
||||
{ open: '{', close: '}', notIn: ['string', 'comment', 'identifier'] } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.pq', |
||||
ignoreCase: false, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '{', close: '}', token: 'delimiter.brackets' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
operatorKeywords: ['and', 'not', 'or'], |
||||
keywords: [ |
||||
'as', |
||||
'each', |
||||
'else', |
||||
'error', |
||||
'false', |
||||
'if', |
||||
'in', |
||||
'is', |
||||
'let', |
||||
'meta', |
||||
'otherwise', |
||||
'section', |
||||
'shared', |
||||
'then', |
||||
'true', |
||||
'try', |
||||
'type' |
||||
], |
||||
constructors: ['#binary', '#date', '#datetime', '#datetimezone', '#duration', '#table', '#time'], |
||||
constants: ['#infinity', '#nan', '#sections', '#shared'], |
||||
typeKeywords: [ |
||||
'action', |
||||
'any', |
||||
'anynonnull', |
||||
'none', |
||||
'null', |
||||
'logical', |
||||
'number', |
||||
'time', |
||||
'date', |
||||
'datetime', |
||||
'datetimezone', |
||||
'duration', |
||||
'text', |
||||
'binary', |
||||
'list', |
||||
'record', |
||||
'table', |
||||
'function' |
||||
], |
||||
builtinFunctions: [ |
||||
'Access.Database', |
||||
'Action.Return', |
||||
'Action.Sequence', |
||||
'Action.Try', |
||||
'ActiveDirectory.Domains', |
||||
'AdoDotNet.DataSource', |
||||
'AdoDotNet.Query', |
||||
'AdobeAnalytics.Cubes', |
||||
'AnalysisServices.Database', |
||||
'AnalysisServices.Databases', |
||||
'AzureStorage.BlobContents', |
||||
'AzureStorage.Blobs', |
||||
'AzureStorage.Tables', |
||||
'Binary.Buffer', |
||||
'Binary.Combine', |
||||
'Binary.Compress', |
||||
'Binary.Decompress', |
||||
'Binary.End', |
||||
'Binary.From', |
||||
'Binary.FromList', |
||||
'Binary.FromText', |
||||
'Binary.InferContentType', |
||||
'Binary.Length', |
||||
'Binary.ToList', |
||||
'Binary.ToText', |
||||
'BinaryFormat.7BitEncodedSignedInteger', |
||||
'BinaryFormat.7BitEncodedUnsignedInteger', |
||||
'BinaryFormat.Binary', |
||||
'BinaryFormat.Byte', |
||||
'BinaryFormat.ByteOrder', |
||||
'BinaryFormat.Choice', |
||||
'BinaryFormat.Decimal', |
||||
'BinaryFormat.Double', |
||||
'BinaryFormat.Group', |
||||
'BinaryFormat.Length', |
||||
'BinaryFormat.List', |
||||
'BinaryFormat.Null', |
||||
'BinaryFormat.Record', |
||||
'BinaryFormat.SignedInteger16', |
||||
'BinaryFormat.SignedInteger32', |
||||
'BinaryFormat.SignedInteger64', |
||||
'BinaryFormat.Single', |
||||
'BinaryFormat.Text', |
||||
'BinaryFormat.Transform', |
||||
'BinaryFormat.UnsignedInteger16', |
||||
'BinaryFormat.UnsignedInteger32', |
||||
'BinaryFormat.UnsignedInteger64', |
||||
'Byte.From', |
||||
'Character.FromNumber', |
||||
'Character.ToNumber', |
||||
'Combiner.CombineTextByDelimiter', |
||||
'Combiner.CombineTextByEachDelimiter', |
||||
'Combiner.CombineTextByLengths', |
||||
'Combiner.CombineTextByPositions', |
||||
'Combiner.CombineTextByRanges', |
||||
'Comparer.Equals', |
||||
'Comparer.FromCulture', |
||||
'Comparer.Ordinal', |
||||
'Comparer.OrdinalIgnoreCase', |
||||
'Csv.Document', |
||||
'Cube.AddAndExpandDimensionColumn', |
||||
'Cube.AddMeasureColumn', |
||||
'Cube.ApplyParameter', |
||||
'Cube.AttributeMemberId', |
||||
'Cube.AttributeMemberProperty', |
||||
'Cube.CollapseAndRemoveColumns', |
||||
'Cube.Dimensions', |
||||
'Cube.DisplayFolders', |
||||
'Cube.Measures', |
||||
'Cube.Parameters', |
||||
'Cube.Properties', |
||||
'Cube.PropertyKey', |
||||
'Cube.ReplaceDimensions', |
||||
'Cube.Transform', |
||||
'Currency.From', |
||||
'DB2.Database', |
||||
'Date.AddDays', |
||||
'Date.AddMonths', |
||||
'Date.AddQuarters', |
||||
'Date.AddWeeks', |
||||
'Date.AddYears', |
||||
'Date.Day', |
||||
'Date.DayOfWeek', |
||||
'Date.DayOfWeekName', |
||||
'Date.DayOfYear', |
||||
'Date.DaysInMonth', |
||||
'Date.EndOfDay', |
||||
'Date.EndOfMonth', |
||||
'Date.EndOfQuarter', |
||||
'Date.EndOfWeek', |
||||
'Date.EndOfYear', |
||||
'Date.From', |
||||
'Date.FromText', |
||||
'Date.IsInCurrentDay', |
||||
'Date.IsInCurrentMonth', |
||||
'Date.IsInCurrentQuarter', |
||||
'Date.IsInCurrentWeek', |
||||
'Date.IsInCurrentYear', |
||||
'Date.IsInNextDay', |
||||
'Date.IsInNextMonth', |
||||
'Date.IsInNextNDays', |
||||
'Date.IsInNextNMonths', |
||||
'Date.IsInNextNQuarters', |
||||
'Date.IsInNextNWeeks', |
||||
'Date.IsInNextNYears', |
||||
'Date.IsInNextQuarter', |
||||
'Date.IsInNextWeek', |
||||
'Date.IsInNextYear', |
||||
'Date.IsInPreviousDay', |
||||
'Date.IsInPreviousMonth', |
||||
'Date.IsInPreviousNDays', |
||||
'Date.IsInPreviousNMonths', |
||||
'Date.IsInPreviousNQuarters', |
||||
'Date.IsInPreviousNWeeks', |
||||
'Date.IsInPreviousNYears', |
||||
'Date.IsInPreviousQuarter', |
||||
'Date.IsInPreviousWeek', |
||||
'Date.IsInPreviousYear', |
||||
'Date.IsInYearToDate', |
||||
'Date.IsLeapYear', |
||||
'Date.Month', |
||||
'Date.MonthName', |
||||
'Date.QuarterOfYear', |
||||
'Date.StartOfDay', |
||||
'Date.StartOfMonth', |
||||
'Date.StartOfQuarter', |
||||
'Date.StartOfWeek', |
||||
'Date.StartOfYear', |
||||
'Date.ToRecord', |
||||
'Date.ToText', |
||||
'Date.WeekOfMonth', |
||||
'Date.WeekOfYear', |
||||
'Date.Year', |
||||
'DateTime.AddZone', |
||||
'DateTime.Date', |
||||
'DateTime.FixedLocalNow', |
||||
'DateTime.From', |
||||
'DateTime.FromFileTime', |
||||
'DateTime.FromText', |
||||
'DateTime.IsInCurrentHour', |
||||
'DateTime.IsInCurrentMinute', |
||||
'DateTime.IsInCurrentSecond', |
||||
'DateTime.IsInNextHour', |
||||
'DateTime.IsInNextMinute', |
||||
'DateTime.IsInNextNHours', |
||||
'DateTime.IsInNextNMinutes', |
||||
'DateTime.IsInNextNSeconds', |
||||
'DateTime.IsInNextSecond', |
||||
'DateTime.IsInPreviousHour', |
||||
'DateTime.IsInPreviousMinute', |
||||
'DateTime.IsInPreviousNHours', |
||||
'DateTime.IsInPreviousNMinutes', |
||||
'DateTime.IsInPreviousNSeconds', |
||||
'DateTime.IsInPreviousSecond', |
||||
'DateTime.LocalNow', |
||||
'DateTime.Time', |
||||
'DateTime.ToRecord', |
||||
'DateTime.ToText', |
||||
'DateTimeZone.FixedLocalNow', |
||||
'DateTimeZone.FixedUtcNow', |
||||
'DateTimeZone.From', |
||||
'DateTimeZone.FromFileTime', |
||||
'DateTimeZone.FromText', |
||||
'DateTimeZone.LocalNow', |
||||
'DateTimeZone.RemoveZone', |
||||
'DateTimeZone.SwitchZone', |
||||
'DateTimeZone.ToLocal', |
||||
'DateTimeZone.ToRecord', |
||||
'DateTimeZone.ToText', |
||||
'DateTimeZone.ToUtc', |
||||
'DateTimeZone.UtcNow', |
||||
'DateTimeZone.ZoneHours', |
||||
'DateTimeZone.ZoneMinutes', |
||||
'Decimal.From', |
||||
'Diagnostics.ActivityId', |
||||
'Diagnostics.Trace', |
||||
'DirectQueryCapabilities.From', |
||||
'Double.From', |
||||
'Duration.Days', |
||||
'Duration.From', |
||||
'Duration.FromText', |
||||
'Duration.Hours', |
||||
'Duration.Minutes', |
||||
'Duration.Seconds', |
||||
'Duration.ToRecord', |
||||
'Duration.ToText', |
||||
'Duration.TotalDays', |
||||
'Duration.TotalHours', |
||||
'Duration.TotalMinutes', |
||||
'Duration.TotalSeconds', |
||||
'Embedded.Value', |
||||
'Error.Record', |
||||
'Excel.CurrentWorkbook', |
||||
'Excel.Workbook', |
||||
'Exchange.Contents', |
||||
'Expression.Constant', |
||||
'Expression.Evaluate', |
||||
'Expression.Identifier', |
||||
'Facebook.Graph', |
||||
'File.Contents', |
||||
'Folder.Contents', |
||||
'Folder.Files', |
||||
'Function.From', |
||||
'Function.Invoke', |
||||
'Function.InvokeAfter', |
||||
'Function.IsDataSource', |
||||
'GoogleAnalytics.Accounts', |
||||
'Guid.From', |
||||
'HdInsight.Containers', |
||||
'HdInsight.Contents', |
||||
'HdInsight.Files', |
||||
'Hdfs.Contents', |
||||
'Hdfs.Files', |
||||
'Informix.Database', |
||||
'Int16.From', |
||||
'Int32.From', |
||||
'Int64.From', |
||||
'Int8.From', |
||||
'ItemExpression.From', |
||||
'Json.Document', |
||||
'Json.FromValue', |
||||
'Lines.FromBinary', |
||||
'Lines.FromText', |
||||
'Lines.ToBinary', |
||||
'Lines.ToText', |
||||
'List.Accumulate', |
||||
'List.AllTrue', |
||||
'List.Alternate', |
||||
'List.AnyTrue', |
||||
'List.Average', |
||||
'List.Buffer', |
||||
'List.Combine', |
||||
'List.Contains', |
||||
'List.ContainsAll', |
||||
'List.ContainsAny', |
||||
'List.Count', |
||||
'List.Covariance', |
||||
'List.DateTimeZones', |
||||
'List.DateTimes', |
||||
'List.Dates', |
||||
'List.Difference', |
||||
'List.Distinct', |
||||
'List.Durations', |
||||
'List.FindText', |
||||
'List.First', |
||||
'List.FirstN', |
||||
'List.Generate', |
||||
'List.InsertRange', |
||||
'List.Intersect', |
||||
'List.IsDistinct', |
||||
'List.IsEmpty', |
||||
'List.Last', |
||||
'List.LastN', |
||||
'List.MatchesAll', |
||||
'List.MatchesAny', |
||||
'List.Max', |
||||
'List.MaxN', |
||||
'List.Median', |
||||
'List.Min', |
||||
'List.MinN', |
||||
'List.Mode', |
||||
'List.Modes', |
||||
'List.NonNullCount', |
||||
'List.Numbers', |
||||
'List.PositionOf', |
||||
'List.PositionOfAny', |
||||
'List.Positions', |
||||
'List.Product', |
||||
'List.Random', |
||||
'List.Range', |
||||
'List.RemoveFirstN', |
||||
'List.RemoveItems', |
||||
'List.RemoveLastN', |
||||
'List.RemoveMatchingItems', |
||||
'List.RemoveNulls', |
||||
'List.RemoveRange', |
||||
'List.Repeat', |
||||
'List.ReplaceMatchingItems', |
||||
'List.ReplaceRange', |
||||
'List.ReplaceValue', |
||||
'List.Reverse', |
||||
'List.Select', |
||||
'List.Single', |
||||
'List.SingleOrDefault', |
||||
'List.Skip', |
||||
'List.Sort', |
||||
'List.StandardDeviation', |
||||
'List.Sum', |
||||
'List.Times', |
||||
'List.Transform', |
||||
'List.TransformMany', |
||||
'List.Union', |
||||
'List.Zip', |
||||
'Logical.From', |
||||
'Logical.FromText', |
||||
'Logical.ToText', |
||||
'MQ.Queue', |
||||
'MySQL.Database', |
||||
'Number.Abs', |
||||
'Number.Acos', |
||||
'Number.Asin', |
||||
'Number.Atan', |
||||
'Number.Atan2', |
||||
'Number.BitwiseAnd', |
||||
'Number.BitwiseNot', |
||||
'Number.BitwiseOr', |
||||
'Number.BitwiseShiftLeft', |
||||
'Number.BitwiseShiftRight', |
||||
'Number.BitwiseXor', |
||||
'Number.Combinations', |
||||
'Number.Cos', |
||||
'Number.Cosh', |
||||
'Number.Exp', |
||||
'Number.Factorial', |
||||
'Number.From', |
||||
'Number.FromText', |
||||
'Number.IntegerDivide', |
||||
'Number.IsEven', |
||||
'Number.IsNaN', |
||||
'Number.IsOdd', |
||||
'Number.Ln', |
||||
'Number.Log', |
||||
'Number.Log10', |
||||
'Number.Mod', |
||||
'Number.Permutations', |
||||
'Number.Power', |
||||
'Number.Random', |
||||
'Number.RandomBetween', |
||||
'Number.Round', |
||||
'Number.RoundAwayFromZero', |
||||
'Number.RoundDown', |
||||
'Number.RoundTowardZero', |
||||
'Number.RoundUp', |
||||
'Number.Sign', |
||||
'Number.Sin', |
||||
'Number.Sinh', |
||||
'Number.Sqrt', |
||||
'Number.Tan', |
||||
'Number.Tanh', |
||||
'Number.ToText', |
||||
'OData.Feed', |
||||
'Odbc.DataSource', |
||||
'Odbc.Query', |
||||
'OleDb.DataSource', |
||||
'OleDb.Query', |
||||
'Oracle.Database', |
||||
'Percentage.From', |
||||
'PostgreSQL.Database', |
||||
'RData.FromBinary', |
||||
'Record.AddField', |
||||
'Record.Combine', |
||||
'Record.Field', |
||||
'Record.FieldCount', |
||||
'Record.FieldNames', |
||||
'Record.FieldOrDefault', |
||||
'Record.FieldValues', |
||||
'Record.FromList', |
||||
'Record.FromTable', |
||||
'Record.HasFields', |
||||
'Record.RemoveFields', |
||||
'Record.RenameFields', |
||||
'Record.ReorderFields', |
||||
'Record.SelectFields', |
||||
'Record.ToList', |
||||
'Record.ToTable', |
||||
'Record.TransformFields', |
||||
'Replacer.ReplaceText', |
||||
'Replacer.ReplaceValue', |
||||
'RowExpression.Column', |
||||
'RowExpression.From', |
||||
'Salesforce.Data', |
||||
'Salesforce.Reports', |
||||
'SapBusinessWarehouse.Cubes', |
||||
'SapHana.Database', |
||||
'SharePoint.Contents', |
||||
'SharePoint.Files', |
||||
'SharePoint.Tables', |
||||
'Single.From', |
||||
'Soda.Feed', |
||||
'Splitter.SplitByNothing', |
||||
'Splitter.SplitTextByAnyDelimiter', |
||||
'Splitter.SplitTextByDelimiter', |
||||
'Splitter.SplitTextByEachDelimiter', |
||||
'Splitter.SplitTextByLengths', |
||||
'Splitter.SplitTextByPositions', |
||||
'Splitter.SplitTextByRanges', |
||||
'Splitter.SplitTextByRepeatedLengths', |
||||
'Splitter.SplitTextByWhitespace', |
||||
'Sql.Database', |
||||
'Sql.Databases', |
||||
'SqlExpression.SchemaFrom', |
||||
'SqlExpression.ToExpression', |
||||
'Sybase.Database', |
||||
'Table.AddColumn', |
||||
'Table.AddIndexColumn', |
||||
'Table.AddJoinColumn', |
||||
'Table.AddKey', |
||||
'Table.AggregateTableColumn', |
||||
'Table.AlternateRows', |
||||
'Table.Buffer', |
||||
'Table.Column', |
||||
'Table.ColumnCount', |
||||
'Table.ColumnNames', |
||||
'Table.ColumnsOfType', |
||||
'Table.Combine', |
||||
'Table.CombineColumns', |
||||
'Table.Contains', |
||||
'Table.ContainsAll', |
||||
'Table.ContainsAny', |
||||
'Table.DemoteHeaders', |
||||
'Table.Distinct', |
||||
'Table.DuplicateColumn', |
||||
'Table.ExpandListColumn', |
||||
'Table.ExpandRecordColumn', |
||||
'Table.ExpandTableColumn', |
||||
'Table.FillDown', |
||||
'Table.FillUp', |
||||
'Table.FilterWithDataTable', |
||||
'Table.FindText', |
||||
'Table.First', |
||||
'Table.FirstN', |
||||
'Table.FirstValue', |
||||
'Table.FromColumns', |
||||
'Table.FromList', |
||||
'Table.FromPartitions', |
||||
'Table.FromRecords', |
||||
'Table.FromRows', |
||||
'Table.FromValue', |
||||
'Table.Group', |
||||
'Table.HasColumns', |
||||
'Table.InsertRows', |
||||
'Table.IsDistinct', |
||||
'Table.IsEmpty', |
||||
'Table.Join', |
||||
'Table.Keys', |
||||
'Table.Last', |
||||
'Table.LastN', |
||||
'Table.MatchesAllRows', |
||||
'Table.MatchesAnyRows', |
||||
'Table.Max', |
||||
'Table.MaxN', |
||||
'Table.Min', |
||||
'Table.MinN', |
||||
'Table.NestedJoin', |
||||
'Table.Partition', |
||||
'Table.PartitionValues', |
||||
'Table.Pivot', |
||||
'Table.PositionOf', |
||||
'Table.PositionOfAny', |
||||
'Table.PrefixColumns', |
||||
'Table.Profile', |
||||
'Table.PromoteHeaders', |
||||
'Table.Range', |
||||
'Table.RemoveColumns', |
||||
'Table.RemoveFirstN', |
||||
'Table.RemoveLastN', |
||||
'Table.RemoveMatchingRows', |
||||
'Table.RemoveRows', |
||||
'Table.RemoveRowsWithErrors', |
||||
'Table.RenameColumns', |
||||
'Table.ReorderColumns', |
||||
'Table.Repeat', |
||||
'Table.ReplaceErrorValues', |
||||
'Table.ReplaceKeys', |
||||
'Table.ReplaceMatchingRows', |
||||
'Table.ReplaceRelationshipIdentity', |
||||
'Table.ReplaceRows', |
||||
'Table.ReplaceValue', |
||||
'Table.ReverseRows', |
||||
'Table.RowCount', |
||||
'Table.Schema', |
||||
'Table.SelectColumns', |
||||
'Table.SelectRows', |
||||
'Table.SelectRowsWithErrors', |
||||
'Table.SingleRow', |
||||
'Table.Skip', |
||||
'Table.Sort', |
||||
'Table.SplitColumn', |
||||
'Table.ToColumns', |
||||
'Table.ToList', |
||||
'Table.ToRecords', |
||||
'Table.ToRows', |
||||
'Table.TransformColumnNames', |
||||
'Table.TransformColumnTypes', |
||||
'Table.TransformColumns', |
||||
'Table.TransformRows', |
||||
'Table.Transpose', |
||||
'Table.Unpivot', |
||||
'Table.UnpivotOtherColumns', |
||||
'Table.View', |
||||
'Table.ViewFunction', |
||||
'TableAction.DeleteRows', |
||||
'TableAction.InsertRows', |
||||
'TableAction.UpdateRows', |
||||
'Tables.GetRelationships', |
||||
'Teradata.Database', |
||||
'Text.AfterDelimiter', |
||||
'Text.At', |
||||
'Text.BeforeDelimiter', |
||||
'Text.BetweenDelimiters', |
||||
'Text.Clean', |
||||
'Text.Combine', |
||||
'Text.Contains', |
||||
'Text.End', |
||||
'Text.EndsWith', |
||||
'Text.Format', |
||||
'Text.From', |
||||
'Text.FromBinary', |
||||
'Text.Insert', |
||||
'Text.Length', |
||||
'Text.Lower', |
||||
'Text.Middle', |
||||
'Text.NewGuid', |
||||
'Text.PadEnd', |
||||
'Text.PadStart', |
||||
'Text.PositionOf', |
||||
'Text.PositionOfAny', |
||||
'Text.Proper', |
||||
'Text.Range', |
||||
'Text.Remove', |
||||
'Text.RemoveRange', |
||||
'Text.Repeat', |
||||
'Text.Replace', |
||||
'Text.ReplaceRange', |
||||
'Text.Select', |
||||
'Text.Split', |
||||
'Text.SplitAny', |
||||
'Text.Start', |
||||
'Text.StartsWith', |
||||
'Text.ToBinary', |
||||
'Text.ToList', |
||||
'Text.Trim', |
||||
'Text.TrimEnd', |
||||
'Text.TrimStart', |
||||
'Text.Upper', |
||||
'Time.EndOfHour', |
||||
'Time.From', |
||||
'Time.FromText', |
||||
'Time.Hour', |
||||
'Time.Minute', |
||||
'Time.Second', |
||||
'Time.StartOfHour', |
||||
'Time.ToRecord', |
||||
'Time.ToText', |
||||
'Type.AddTableKey', |
||||
'Type.ClosedRecord', |
||||
'Type.Facets', |
||||
'Type.ForFunction', |
||||
'Type.ForRecord', |
||||
'Type.FunctionParameters', |
||||
'Type.FunctionRequiredParameters', |
||||
'Type.FunctionReturn', |
||||
'Type.Is', |
||||
'Type.IsNullable', |
||||
'Type.IsOpenRecord', |
||||
'Type.ListItem', |
||||
'Type.NonNullable', |
||||
'Type.OpenRecord', |
||||
'Type.RecordFields', |
||||
'Type.ReplaceFacets', |
||||
'Type.ReplaceTableKeys', |
||||
'Type.TableColumn', |
||||
'Type.TableKeys', |
||||
'Type.TableRow', |
||||
'Type.TableSchema', |
||||
'Type.Union', |
||||
'Uri.BuildQueryString', |
||||
'Uri.Combine', |
||||
'Uri.EscapeDataString', |
||||
'Uri.Parts', |
||||
'Value.Add', |
||||
'Value.As', |
||||
'Value.Compare', |
||||
'Value.Divide', |
||||
'Value.Equals', |
||||
'Value.Firewall', |
||||
'Value.FromText', |
||||
'Value.Is', |
||||
'Value.Metadata', |
||||
'Value.Multiply', |
||||
'Value.NativeQuery', |
||||
'Value.NullableEquals', |
||||
'Value.RemoveMetadata', |
||||
'Value.ReplaceMetadata', |
||||
'Value.ReplaceType', |
||||
'Value.Subtract', |
||||
'Value.Type', |
||||
'ValueAction.NativeStatement', |
||||
'ValueAction.Replace', |
||||
'Variable.Value', |
||||
'Web.Contents', |
||||
'Web.Page', |
||||
'WebAction.Request', |
||||
'Xml.Document', |
||||
'Xml.Tables' |
||||
], |
||||
builtinConstants: [ |
||||
'BinaryEncoding.Base64', |
||||
'BinaryEncoding.Hex', |
||||
'BinaryOccurrence.Optional', |
||||
'BinaryOccurrence.Repeating', |
||||
'BinaryOccurrence.Required', |
||||
'ByteOrder.BigEndian', |
||||
'ByteOrder.LittleEndian', |
||||
'Compression.Deflate', |
||||
'Compression.GZip', |
||||
'CsvStyle.QuoteAfterDelimiter', |
||||
'CsvStyle.QuoteAlways', |
||||
'Culture.Current', |
||||
'Day.Friday', |
||||
'Day.Monday', |
||||
'Day.Saturday', |
||||
'Day.Sunday', |
||||
'Day.Thursday', |
||||
'Day.Tuesday', |
||||
'Day.Wednesday', |
||||
'ExtraValues.Error', |
||||
'ExtraValues.Ignore', |
||||
'ExtraValues.List', |
||||
'GroupKind.Global', |
||||
'GroupKind.Local', |
||||
'JoinAlgorithm.Dynamic', |
||||
'JoinAlgorithm.LeftHash', |
||||
'JoinAlgorithm.LeftIndex', |
||||
'JoinAlgorithm.PairwiseHash', |
||||
'JoinAlgorithm.RightHash', |
||||
'JoinAlgorithm.RightIndex', |
||||
'JoinAlgorithm.SortMerge', |
||||
'JoinKind.FullOuter', |
||||
'JoinKind.Inner', |
||||
'JoinKind.LeftAnti', |
||||
'JoinKind.LeftOuter', |
||||
'JoinKind.RightAnti', |
||||
'JoinKind.RightOuter', |
||||
'JoinSide.Left', |
||||
'JoinSide.Right', |
||||
'MissingField.Error', |
||||
'MissingField.Ignore', |
||||
'MissingField.UseNull', |
||||
'Number.E', |
||||
'Number.Epsilon', |
||||
'Number.NaN', |
||||
'Number.NegativeInfinity', |
||||
'Number.PI', |
||||
'Number.PositiveInfinity', |
||||
'Occurrence.All', |
||||
'Occurrence.First', |
||||
'Occurrence.Last', |
||||
'Occurrence.Optional', |
||||
'Occurrence.Repeating', |
||||
'Occurrence.Required', |
||||
'Order.Ascending', |
||||
'Order.Descending', |
||||
'Precision.Decimal', |
||||
'Precision.Double', |
||||
'QuoteStyle.Csv', |
||||
'QuoteStyle.None', |
||||
'RelativePosition.FromEnd', |
||||
'RelativePosition.FromStart', |
||||
'RoundingMode.AwayFromZero', |
||||
'RoundingMode.Down', |
||||
'RoundingMode.ToEven', |
||||
'RoundingMode.TowardZero', |
||||
'RoundingMode.Up', |
||||
'SapHanaDistribution.All', |
||||
'SapHanaDistribution.Connection', |
||||
'SapHanaDistribution.Off', |
||||
'SapHanaDistribution.Statement', |
||||
'SapHanaRangeOperator.Equals', |
||||
'SapHanaRangeOperator.GreaterThan', |
||||
'SapHanaRangeOperator.GreaterThanOrEquals', |
||||
'SapHanaRangeOperator.LessThan', |
||||
'SapHanaRangeOperator.LessThanOrEquals', |
||||
'SapHanaRangeOperator.NotEquals', |
||||
'TextEncoding.Ascii', |
||||
'TextEncoding.BigEndianUnicode', |
||||
'TextEncoding.Unicode', |
||||
'TextEncoding.Utf16', |
||||
'TextEncoding.Utf8', |
||||
'TextEncoding.Windows', |
||||
'TraceLevel.Critical', |
||||
'TraceLevel.Error', |
||||
'TraceLevel.Information', |
||||
'TraceLevel.Verbose', |
||||
'TraceLevel.Warning', |
||||
'WebMethod.Delete', |
||||
'WebMethod.Get', |
||||
'WebMethod.Head', |
||||
'WebMethod.Patch', |
||||
'WebMethod.Post', |
||||
'WebMethod.Put' |
||||
], |
||||
builtinTypes: [ |
||||
'Action.Type', |
||||
'Any.Type', |
||||
'Binary.Type', |
||||
'BinaryEncoding.Type', |
||||
'BinaryOccurrence.Type', |
||||
'Byte.Type', |
||||
'ByteOrder.Type', |
||||
'Character.Type', |
||||
'Compression.Type', |
||||
'CsvStyle.Type', |
||||
'Currency.Type', |
||||
'Date.Type', |
||||
'DateTime.Type', |
||||
'DateTimeZone.Type', |
||||
'Day.Type', |
||||
'Decimal.Type', |
||||
'Double.Type', |
||||
'Duration.Type', |
||||
'ExtraValues.Type', |
||||
'Function.Type', |
||||
'GroupKind.Type', |
||||
'Guid.Type', |
||||
'Int16.Type', |
||||
'Int32.Type', |
||||
'Int64.Type', |
||||
'Int8.Type', |
||||
'JoinAlgorithm.Type', |
||||
'JoinKind.Type', |
||||
'JoinSide.Type', |
||||
'List.Type', |
||||
'Logical.Type', |
||||
'MissingField.Type', |
||||
'None.Type', |
||||
'Null.Type', |
||||
'Number.Type', |
||||
'Occurrence.Type', |
||||
'Order.Type', |
||||
'Password.Type', |
||||
'Percentage.Type', |
||||
'Precision.Type', |
||||
'QuoteStyle.Type', |
||||
'Record.Type', |
||||
'RelativePosition.Type', |
||||
'RoundingMode.Type', |
||||
'SapHanaDistribution.Type', |
||||
'SapHanaRangeOperator.Type', |
||||
'Single.Type', |
||||
'Table.Type', |
||||
'Text.Type', |
||||
'TextEncoding.Type', |
||||
'Time.Type', |
||||
'TraceLevel.Type', |
||||
'Type.Type', |
||||
'Uri.Type', |
||||
'WebMethod.Type' |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
// quoted identifier
|
||||
[/#"[\w \.]+"/, 'identifier.quote'], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F]+/, 'number.hex'], |
||||
[/\d+([eE][\-+]?\d+)?/, 'number'], |
||||
// keywords
|
||||
[ |
||||
/(#?[a-z]+)\b/, |
||||
{ |
||||
cases: { |
||||
'@typeKeywords': 'type', |
||||
'@keywords': 'keyword', |
||||
'@constants': 'constant', |
||||
'@constructors': 'constructor', |
||||
'@operatorKeywords': 'operators', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// built-in types
|
||||
[ |
||||
/\b([A-Z][a-zA-Z0-9]+\.Type)\b/, |
||||
{ |
||||
cases: { |
||||
'@builtinTypes': 'type', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// other built-ins
|
||||
[ |
||||
/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/, |
||||
{ |
||||
cases: { |
||||
'@builtinFunctions': 'keyword.function', |
||||
'@builtinConstants': 'constant', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// other identifiers
|
||||
[/\b([a-zA-Z_][\w\.]*)\b/, 'identifier'], |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comments' }, |
||||
{ include: '@strings' }, |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/, 'operators'], |
||||
[/[,;]/, 'delimiter'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
['\\/\\*', 'comment', '@comment'], |
||||
['\\/\\/+.*', 'comment'] |
||||
], |
||||
comment: [ |
||||
['\\*\\/', 'comment', '@pop'], |
||||
['.', 'comment'] |
||||
], |
||||
strings: [['"', 'string', '@string']], |
||||
string: [ |
||||
['""', 'string.escape'], |
||||
['"', 'string', '@pop'], |
||||
['.', 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,246 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/powershell/powershell',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
// the default separators except `$-`
|
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '#', |
||||
blockComment: ['<#', '#>'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#region\\b'), |
||||
end: new RegExp('^\\s*#endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.ps1', |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' } |
||||
], |
||||
keywords: [ |
||||
'begin', |
||||
'break', |
||||
'catch', |
||||
'class', |
||||
'continue', |
||||
'data', |
||||
'define', |
||||
'do', |
||||
'dynamicparam', |
||||
'else', |
||||
'elseif', |
||||
'end', |
||||
'exit', |
||||
'filter', |
||||
'finally', |
||||
'for', |
||||
'foreach', |
||||
'from', |
||||
'function', |
||||
'if', |
||||
'in', |
||||
'param', |
||||
'process', |
||||
'return', |
||||
'switch', |
||||
'throw', |
||||
'trap', |
||||
'try', |
||||
'until', |
||||
'using', |
||||
'var', |
||||
'while', |
||||
'workflow', |
||||
'parallel', |
||||
'sequence', |
||||
'inlinescript', |
||||
'configuration' |
||||
], |
||||
helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/, |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?&%|+\-*\/\^;\.,]+/, |
||||
escapes: /`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// commands and keywords
|
||||
[ |
||||
/[a-zA-Z_][\w-]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
[/[ \t\r\n]+/, ''], |
||||
// labels
|
||||
[/^:\w*/, 'metatag'], |
||||
// variables
|
||||
[ |
||||
/\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/, |
||||
'variable' |
||||
], |
||||
// Comments
|
||||
[/<#/, 'comment', '@comment'], |
||||
[/#.*$/, 'comment'], |
||||
// delimiters
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'], |
||||
[/\d+?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings:
|
||||
[/\@"/, 'string', '@herestring."'], |
||||
[/\@'/, 'string', "@herestring.'"], |
||||
[ |
||||
/"/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'string', |
||||
'@default': { token: 'string', next: '@string."' } |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/'/, |
||||
{ |
||||
cases: { |
||||
'@eos': 'string', |
||||
'@default': { token: 'string', next: "@string.'" } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
string: [ |
||||
[ |
||||
/[^"'\$`]+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/@escapes/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string.escape', next: '@popall' }, |
||||
'@default': 'string.escape' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/`./, |
||||
{ |
||||
cases: { |
||||
'@eos': { |
||||
token: 'string.escape.invalid', |
||||
next: '@popall' |
||||
}, |
||||
'@default': 'string.escape.invalid' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/\$[\w]+$/, |
||||
{ |
||||
cases: { |
||||
'$S2=="': { token: 'variable', next: '@popall' }, |
||||
'@default': { token: 'string', next: '@popall' } |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/\$[\w]+/, |
||||
{ |
||||
cases: { |
||||
'$S2=="': 'variable', |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': { |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
] |
||||
], |
||||
herestring: [ |
||||
[ |
||||
/^\s*(["'])@/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[/[^\$`]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/`./, 'string.escape.invalid'], |
||||
[ |
||||
/\$[\w]+/, |
||||
{ |
||||
cases: { |
||||
'$S2=="': 'variable', |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
comment: [ |
||||
[/[^#\.]+/, 'comment'], |
||||
[/#>/, 'comment', '@pop'], |
||||
[/(\.)(@helpKeywords)(?!\w)/, { token: 'comment.keyword.$2' }], |
||||
[/[\.#]/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,418 @@ |
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT License.
|
||||
define('vs/basic-languages/protobuf/protobuf',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
var namedLiterals = ['true', 'false']; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>' }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string'] } |
||||
], |
||||
autoCloseBefore: ".,=}])>' \n\t", |
||||
indentationRules: { |
||||
increaseIndentPattern: new RegExp('^((?!\\/\\/).)*(\\{[^}"\'`]*|\\([^)"\'`]*|\\[[^\\]"\'`]*)$'), |
||||
decreaseIndentPattern: new RegExp('^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$') |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.proto', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
symbols: /[=><!~?:&|+\-*/^%]+/, |
||||
keywords: [ |
||||
'syntax', |
||||
'import', |
||||
'weak', |
||||
'public', |
||||
'package', |
||||
'option', |
||||
'repeated', |
||||
'oneof', |
||||
'map', |
||||
'reserved', |
||||
'to', |
||||
'max', |
||||
'enum', |
||||
'message', |
||||
'service', |
||||
'rpc', |
||||
'stream', |
||||
'returns', |
||||
'package', |
||||
'optional', |
||||
'true', |
||||
'false' |
||||
], |
||||
builtinTypes: [ |
||||
'double', |
||||
'float', |
||||
'int32', |
||||
'int64', |
||||
'uint32', |
||||
'uint64', |
||||
'sint32', |
||||
'sint64', |
||||
'fixed32', |
||||
'fixed64', |
||||
'sfixed32', |
||||
'sfixed64', |
||||
'bool', |
||||
'string', |
||||
'bytes' |
||||
], |
||||
operators: ['=', '+', '-'], |
||||
namedLiterals: namedLiterals, |
||||
escapes: "\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)", |
||||
identifier: /[a-zA-Z]\w*/, |
||||
fullIdentifier: /@identifier(?:\s*\.\s*@identifier)*/, |
||||
optionName: /(?:@identifier|\(\s*@fullIdentifier\s*\))(?:\s*\.\s*@identifier)*/, |
||||
messageName: /@identifier/, |
||||
enumName: /@identifier/, |
||||
messageType: /\.?\s*(?:@identifier\s*\.\s*)*@messageName/, |
||||
enumType: /\.?\s*(?:@identifier\s*\.\s*)*@enumName/, |
||||
floatLit: /[0-9]+\s*\.\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\.[0-9]+(?:@exponent)?/, |
||||
exponent: /[eE]\s*[+-]?\s*[0-9]+/, |
||||
boolLit: /true\b|false\b/, |
||||
decimalLit: /[1-9][0-9]*/, |
||||
octalLit: /0[0-7]*/, |
||||
hexLit: /0[xX][0-9a-fA-F]+/, |
||||
type: /double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/, |
||||
keyType: /int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/, |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
[/syntax/, 'keyword'], |
||||
[/=/, 'operators'], |
||||
[/;/, 'delimiter'], |
||||
[ |
||||
/(")(proto3)(")/, |
||||
['string.quote', 'string', { token: 'string.quote', switchTo: '@topLevel.proto3' }] |
||||
], |
||||
[ |
||||
/(")(proto2)(")/, |
||||
['string.quote', 'string', { token: 'string.quote', switchTo: '@topLevel.proto2' }] |
||||
] |
||||
], |
||||
topLevel: [ |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/=/, 'operators'], |
||||
[/[;.]/, 'delimiter'], |
||||
[ |
||||
/@fullIdentifier/, |
||||
{ |
||||
cases: { |
||||
option: { token: 'keyword', next: '@option.$S2' }, |
||||
enum: { token: 'keyword', next: '@enumDecl.$S2' }, |
||||
message: { token: 'keyword', next: '@messageDecl.$S2' }, |
||||
service: { token: 'keyword', next: '@serviceDecl.$S2' }, |
||||
extend: { |
||||
cases: { |
||||
'$S2==proto2': { token: 'keyword', next: '@extendDecl.$S2' } |
||||
} |
||||
}, |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
enumDecl: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'type.identifier'], |
||||
[/{/, { token: '@brackets', bracket: '@open', switchTo: '@enumBody.$S2' }] |
||||
], |
||||
enumBody: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/=/, 'operators'], |
||||
[/;/, 'delimiter'], |
||||
[/option\b/, 'keyword', '@option.$S2'], |
||||
[/@identifier/, 'identifier'], |
||||
[/\[/, { token: '@brackets', bracket: '@open', next: '@options.$S2' }], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
messageDecl: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'type.identifier'], |
||||
[/{/, { token: '@brackets', bracket: '@open', switchTo: '@messageBody.$S2' }] |
||||
], |
||||
messageBody: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/=/, 'operators'], |
||||
[/;/, 'delimiter'], |
||||
[ |
||||
'(map)(s*)(<)', |
||||
['keyword', 'white', { token: '@brackets', bracket: '@open', next: '@map.$S2' }] |
||||
], |
||||
[ |
||||
/@identifier/, |
||||
{ |
||||
cases: { |
||||
option: { token: 'keyword', next: '@option.$S2' }, |
||||
enum: { token: 'keyword', next: '@enumDecl.$S2' }, |
||||
message: { token: 'keyword', next: '@messageDecl.$S2' }, |
||||
oneof: { token: 'keyword', next: '@oneofDecl.$S2' }, |
||||
extensions: { |
||||
cases: { |
||||
'$S2==proto2': { token: 'keyword', next: '@reserved.$S2' } |
||||
} |
||||
}, |
||||
reserved: { token: 'keyword', next: '@reserved.$S2' }, |
||||
'(?:repeated|optional)': { token: 'keyword', next: '@field.$S2' }, |
||||
required: { |
||||
cases: { |
||||
'$S2==proto2': { token: 'keyword', next: '@field.$S2' } |
||||
} |
||||
}, |
||||
'$S2==proto3': { token: '@rematch', next: '@field.$S2' } |
||||
} |
||||
} |
||||
], |
||||
[/\[/, { token: '@brackets', bracket: '@open', next: '@options.$S2' }], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
extendDecl: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'type.identifier'], |
||||
[/{/, { token: '@brackets', bracket: '@open', switchTo: '@extendBody.$S2' }] |
||||
], |
||||
extendBody: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/;/, 'delimiter'], |
||||
[/(?:repeated|optional|required)/, 'keyword', '@field.$S2'], |
||||
[/\[/, { token: '@brackets', bracket: '@open', next: '@options.$S2' }], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
options: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/;/, 'delimiter'], |
||||
[/@optionName/, 'annotation'], |
||||
[/[()]/, 'annotation.brackets'], |
||||
[/=/, 'operator'], |
||||
[/\]/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
option: [ |
||||
{ include: '@whitespace' }, |
||||
[/@optionName/, 'annotation'], |
||||
[/[()]/, 'annotation.brackets'], |
||||
[/=/, 'operator', '@pop'] |
||||
], |
||||
oneofDecl: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'identifier'], |
||||
[/{/, { token: '@brackets', bracket: '@open', switchTo: '@oneofBody.$S2' }] |
||||
], |
||||
oneofBody: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/;/, 'delimiter'], |
||||
[/(@identifier)(\s*)(=)/, ['identifier', 'white', 'delimiter']], |
||||
[ |
||||
/@fullIdentifier|\./, |
||||
{ |
||||
cases: { |
||||
'@builtinTypes': 'keyword', |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
], |
||||
[/\[/, { token: '@brackets', bracket: '@open', next: '@options.$S2' }], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
reserved: [ |
||||
{ include: '@whitespace' }, |
||||
[/,/, 'delimiter'], |
||||
[/;/, 'delimiter', '@pop'], |
||||
{ include: '@constant' }, |
||||
[/to\b|max\b/, 'keyword'] |
||||
], |
||||
map: [ |
||||
{ include: '@whitespace' }, |
||||
[ |
||||
/@fullIdentifier|\./, |
||||
{ |
||||
cases: { |
||||
'@builtinTypes': 'keyword', |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
], |
||||
[/,/, 'delimiter'], |
||||
[/>/, { token: '@brackets', bracket: '@close', switchTo: 'identifier' }] |
||||
], |
||||
field: [ |
||||
{ include: '@whitespace' }, |
||||
[ |
||||
'group', |
||||
{ |
||||
cases: { |
||||
'$S2==proto2': { token: 'keyword', switchTo: '@groupDecl.$S2' } |
||||
} |
||||
} |
||||
], |
||||
[/(@identifier)(\s*)(=)/, ['identifier', 'white', { token: 'delimiter', next: '@pop' }]], |
||||
[ |
||||
/@fullIdentifier|\./, |
||||
{ |
||||
cases: { |
||||
'@builtinTypes': 'keyword', |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
groupDecl: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'identifier'], |
||||
['=', 'operator'], |
||||
[/{/, { token: '@brackets', bracket: '@open', switchTo: '@messageBody.$S2' }], |
||||
{ include: '@constant' } |
||||
], |
||||
type: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'type.identifier', '@pop'], |
||||
[/./, 'delimiter'] |
||||
], |
||||
identifier: [{ include: '@whitespace' }, [/@identifier/, 'identifier', '@pop']], |
||||
serviceDecl: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'identifier'], |
||||
[/{/, { token: '@brackets', bracket: '@open', switchTo: '@serviceBody.$S2' }] |
||||
], |
||||
serviceBody: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/;/, 'delimiter'], |
||||
[/option\b/, 'keyword', '@option.$S2'], |
||||
[/rpc\b/, 'keyword', '@rpc.$S2'], |
||||
[/\[/, { token: '@brackets', bracket: '@open', next: '@options.$S2' }], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
rpc: [ |
||||
{ include: '@whitespace' }, |
||||
[/@identifier/, 'identifier'], |
||||
[/\(/, { token: '@brackets', bracket: '@open', switchTo: '@request.$S2' }], |
||||
[/{/, { token: '@brackets', bracket: '@open', next: '@methodOptions.$S2' }], |
||||
[/;/, 'delimiter', '@pop'] |
||||
], |
||||
request: [ |
||||
{ include: '@whitespace' }, |
||||
[ |
||||
/@messageType/, |
||||
{ |
||||
cases: { |
||||
stream: { token: 'keyword', next: '@type.$S2' }, |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
], |
||||
[/\)/, { token: '@brackets', bracket: '@close', switchTo: '@returns.$S2' }] |
||||
], |
||||
returns: [ |
||||
{ include: '@whitespace' }, |
||||
[/returns\b/, 'keyword'], |
||||
[/\(/, { token: '@brackets', bracket: '@open', switchTo: '@response.$S2' }] |
||||
], |
||||
response: [ |
||||
{ include: '@whitespace' }, |
||||
[ |
||||
/@messageType/, |
||||
{ |
||||
cases: { |
||||
stream: { token: 'keyword', next: '@type.$S2' }, |
||||
'@default': 'type.identifier' |
||||
} |
||||
} |
||||
], |
||||
[/\)/, { token: '@brackets', bracket: '@close', switchTo: '@rpc.$S2' }] |
||||
], |
||||
methodOptions: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/;/, 'delimiter'], |
||||
['option', 'keyword'], |
||||
[/@optionName/, 'annotation'], |
||||
[/[()]/, 'annotation.brackets'], |
||||
[/=/, 'operator'], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\/\*/, 'comment', '@push'], |
||||
['\\*/', 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
stringSingle: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
constant: [ |
||||
['@boolLit', 'keyword.constant'], |
||||
['@hexLit', 'number.hex'], |
||||
['@octalLit', 'number.octal'], |
||||
['@decimalLit', 'number'], |
||||
['@floatLit', 'number.float'], |
||||
[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/, 'string.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@string' }], |
||||
[/'/, { token: 'string.quote', bracket: '@open', next: '@stringSingle' }], |
||||
[/{/, { token: '@brackets', bracket: '@open', next: '@prototext' }], |
||||
[/identifier/, 'identifier'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
prototext: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@constant' }, |
||||
[/@identifier/, 'identifier'], |
||||
[/[:;]/, 'delimiter'], |
||||
[/}/, { token: '@brackets', bracket: '@close', next: '@pop' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,409 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/pug/pug',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] } |
||||
], |
||||
folding: { |
||||
offSide: true |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.pug', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.array', open: '[', close: ']' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' } |
||||
], |
||||
keywords: [ |
||||
'append', |
||||
'block', |
||||
'case', |
||||
'default', |
||||
'doctype', |
||||
'each', |
||||
'else', |
||||
'extends', |
||||
'for', |
||||
'if', |
||||
'in', |
||||
'include', |
||||
'mixin', |
||||
'typeof', |
||||
'unless', |
||||
'var', |
||||
'when' |
||||
], |
||||
tags: [ |
||||
'a', |
||||
'abbr', |
||||
'acronym', |
||||
'address', |
||||
'area', |
||||
'article', |
||||
'aside', |
||||
'audio', |
||||
'b', |
||||
'base', |
||||
'basefont', |
||||
'bdi', |
||||
'bdo', |
||||
'blockquote', |
||||
'body', |
||||
'br', |
||||
'button', |
||||
'canvas', |
||||
'caption', |
||||
'center', |
||||
'cite', |
||||
'code', |
||||
'col', |
||||
'colgroup', |
||||
'command', |
||||
'datalist', |
||||
'dd', |
||||
'del', |
||||
'details', |
||||
'dfn', |
||||
'div', |
||||
'dl', |
||||
'dt', |
||||
'em', |
||||
'embed', |
||||
'fieldset', |
||||
'figcaption', |
||||
'figure', |
||||
'font', |
||||
'footer', |
||||
'form', |
||||
'frame', |
||||
'frameset', |
||||
'h1', |
||||
'h2', |
||||
'h3', |
||||
'h4', |
||||
'h5', |
||||
'h6', |
||||
'head', |
||||
'header', |
||||
'hgroup', |
||||
'hr', |
||||
'html', |
||||
'i', |
||||
'iframe', |
||||
'img', |
||||
'input', |
||||
'ins', |
||||
'keygen', |
||||
'kbd', |
||||
'label', |
||||
'li', |
||||
'link', |
||||
'map', |
||||
'mark', |
||||
'menu', |
||||
'meta', |
||||
'meter', |
||||
'nav', |
||||
'noframes', |
||||
'noscript', |
||||
'object', |
||||
'ol', |
||||
'optgroup', |
||||
'option', |
||||
'output', |
||||
'p', |
||||
'param', |
||||
'pre', |
||||
'progress', |
||||
'q', |
||||
'rp', |
||||
'rt', |
||||
'ruby', |
||||
's', |
||||
'samp', |
||||
'script', |
||||
'section', |
||||
'select', |
||||
'small', |
||||
'source', |
||||
'span', |
||||
'strike', |
||||
'strong', |
||||
'style', |
||||
'sub', |
||||
'summary', |
||||
'sup', |
||||
'table', |
||||
'tbody', |
||||
'td', |
||||
'textarea', |
||||
'tfoot', |
||||
'th', |
||||
'thead', |
||||
'time', |
||||
'title', |
||||
'tr', |
||||
'tracks', |
||||
'tt', |
||||
'u', |
||||
'ul', |
||||
'video', |
||||
'wbr' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[\+\-\*\%\&\|\!\=\/\.\,\:]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
tokenizer: { |
||||
root: [ |
||||
// Tag or a keyword at start
|
||||
[ |
||||
/^(\s*)([a-zA-Z_-][\w-]*)/, |
||||
{ |
||||
cases: { |
||||
'$2@tags': { |
||||
cases: { |
||||
'@eos': ['', 'tag'], |
||||
'@default': ['', { token: 'tag', next: '@tag.$1' }] |
||||
} |
||||
}, |
||||
'$2@keywords': ['', { token: 'keyword.$2' }], |
||||
'@default': ['', ''] |
||||
} |
||||
} |
||||
], |
||||
// id
|
||||
[ |
||||
/^(\s*)(#[a-zA-Z_-][\w-]*)/, |
||||
{ |
||||
cases: { |
||||
'@eos': ['', 'tag.id'], |
||||
'@default': ['', { token: 'tag.id', next: '@tag.$1' }] |
||||
} |
||||
} |
||||
], |
||||
// class
|
||||
[ |
||||
/^(\s*)(\.[a-zA-Z_-][\w-]*)/, |
||||
{ |
||||
cases: { |
||||
'@eos': ['', 'tag.class'], |
||||
'@default': ['', { token: 'tag.class', next: '@tag.$1' }] |
||||
} |
||||
} |
||||
], |
||||
// plain text with pipe
|
||||
[/^(\s*)(\|.*)$/, ''], |
||||
{ include: '@whitespace' }, |
||||
// keywords
|
||||
[ |
||||
/[a-zA-Z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// numbers
|
||||
[/\d+\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/\d+/, 'number'], |
||||
// strings:
|
||||
[/"/, 'string', '@string."'], |
||||
[/'/, 'string', "@string.'"] |
||||
], |
||||
tag: [ |
||||
[/(\.)(\s*$)/, [{ token: 'delimiter', next: '@blockText.$S2.' }, '']], |
||||
[/\s+/, { token: '', next: '@simpleText' }], |
||||
// id
|
||||
[ |
||||
/#[a-zA-Z_-][\w-]*/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'tag.id', next: '@pop' }, |
||||
'@default': 'tag.id' |
||||
} |
||||
} |
||||
], |
||||
// class
|
||||
[ |
||||
/\.[a-zA-Z_-][\w-]*/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'tag.class', next: '@pop' }, |
||||
'@default': 'tag.class' |
||||
} |
||||
} |
||||
], |
||||
// attributes
|
||||
[/\(/, { token: 'delimiter.parenthesis', next: '@attributeList' }] |
||||
], |
||||
simpleText: [ |
||||
[/[^#]+$/, { token: '', next: '@popall' }], |
||||
[/[^#]+/, { token: '' }], |
||||
// interpolation
|
||||
[ |
||||
/(#{)([^}]*)(})/, |
||||
{ |
||||
cases: { |
||||
'@eos': [ |
||||
'interpolation.delimiter', |
||||
'interpolation', |
||||
{ |
||||
token: 'interpolation.delimiter', |
||||
next: '@popall' |
||||
} |
||||
], |
||||
'@default': ['interpolation.delimiter', 'interpolation', 'interpolation.delimiter'] |
||||
} |
||||
} |
||||
], |
||||
[/#$/, { token: '', next: '@popall' }], |
||||
[/#/, ''] |
||||
], |
||||
attributeList: [ |
||||
[/\s+/, ''], |
||||
[ |
||||
/(\w+)(\s*=\s*)("|')/, |
||||
['attribute.name', 'delimiter', { token: 'attribute.value', next: '@value.$3' }] |
||||
], |
||||
[/\w+/, 'attribute.name'], |
||||
[ |
||||
/,/, |
||||
{ |
||||
cases: { |
||||
'@eos': { |
||||
token: 'attribute.delimiter', |
||||
next: '@popall' |
||||
}, |
||||
'@default': 'attribute.delimiter' |
||||
} |
||||
} |
||||
], |
||||
[/\)$/, { token: 'delimiter.parenthesis', next: '@popall' }], |
||||
[/\)/, { token: 'delimiter.parenthesis', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/^(\s*)(\/\/.*)$/, { token: 'comment', next: '@blockText.$1.comment' }], |
||||
[/[ \t\r\n]+/, ''], |
||||
[/<!--/, { token: 'comment', next: '@comment' }] |
||||
], |
||||
blockText: [ |
||||
[ |
||||
/^\s+.*$/, |
||||
{ |
||||
cases: { |
||||
'($S2\\s+.*$)': { token: '$S3' }, |
||||
'@default': { token: '@rematch', next: '@popall' } |
||||
} |
||||
} |
||||
], |
||||
[/./, { token: '@rematch', next: '@popall' }] |
||||
], |
||||
comment: [ |
||||
[/[^<\-]+/, 'comment.content'], |
||||
[/-->/, { token: 'comment', next: '@pop' }], |
||||
[/<!--/, 'comment.content.invalid'], |
||||
[/[<\-]/, 'comment.content'] |
||||
], |
||||
string: [ |
||||
[ |
||||
/[^\\"'#]+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string', next: '@popall' }, |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/@escapes/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'string.escape', next: '@popall' }, |
||||
'@default': 'string.escape' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/\\./, |
||||
{ |
||||
cases: { |
||||
'@eos': { |
||||
token: 'string.escape.invalid', |
||||
next: '@popall' |
||||
}, |
||||
'@default': 'string.escape.invalid' |
||||
} |
||||
} |
||||
], |
||||
// interpolation
|
||||
[/(#{)([^}]*)(})/, ['interpolation.delimiter', 'interpolation', 'interpolation.delimiter']], |
||||
[/#/, 'string'], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'string', next: '@pop' }, |
||||
'@default': { token: 'string' } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Almost identical to above, except for escapes and the output token
|
||||
value: [ |
||||
[ |
||||
/[^\\"']+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'attribute.value', next: '@popall' }, |
||||
'@default': 'attribute.value' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/\\./, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'attribute.value', next: '@popall' }, |
||||
'@default': 'attribute.value' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/["']/, |
||||
{ |
||||
cases: { |
||||
'$#==$S2': { token: 'attribute.value', next: '@pop' }, |
||||
'@default': { token: 'attribute.value' } |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,256 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/python/python',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#', |
||||
blockComment: ["'''", "'''"] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
beforeText: new RegExp('^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$'), |
||||
action: { indentAction: monaco_editor_core_1.languages.IndentAction.Indent } |
||||
} |
||||
], |
||||
folding: { |
||||
offSide: true, |
||||
markers: { |
||||
start: new RegExp('^\\s*#region\\b'), |
||||
end: new RegExp('^\\s*#endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.python', |
||||
keywords: [ |
||||
// This section is the result of running
|
||||
// `for k in keyword.kwlist: print(' "' + k + '",')` in a Python REPL,
|
||||
// though note that the output from Python 3 is not a strict superset of the
|
||||
// output from Python 2.
|
||||
'False', |
||||
'None', |
||||
'True', |
||||
'and', |
||||
'as', |
||||
'assert', |
||||
'async', |
||||
'await', |
||||
'break', |
||||
'class', |
||||
'continue', |
||||
'def', |
||||
'del', |
||||
'elif', |
||||
'else', |
||||
'except', |
||||
'exec', |
||||
'finally', |
||||
'for', |
||||
'from', |
||||
'global', |
||||
'if', |
||||
'import', |
||||
'in', |
||||
'is', |
||||
'lambda', |
||||
'nonlocal', |
||||
'not', |
||||
'or', |
||||
'pass', |
||||
'print', |
||||
'raise', |
||||
'return', |
||||
'try', |
||||
'while', |
||||
'with', |
||||
'yield', |
||||
'int', |
||||
'float', |
||||
'long', |
||||
'complex', |
||||
'hex', |
||||
'abs', |
||||
'all', |
||||
'any', |
||||
'apply', |
||||
'basestring', |
||||
'bin', |
||||
'bool', |
||||
'buffer', |
||||
'bytearray', |
||||
'callable', |
||||
'chr', |
||||
'classmethod', |
||||
'cmp', |
||||
'coerce', |
||||
'compile', |
||||
'complex', |
||||
'delattr', |
||||
'dict', |
||||
'dir', |
||||
'divmod', |
||||
'enumerate', |
||||
'eval', |
||||
'execfile', |
||||
'file', |
||||
'filter', |
||||
'format', |
||||
'frozenset', |
||||
'getattr', |
||||
'globals', |
||||
'hasattr', |
||||
'hash', |
||||
'help', |
||||
'id', |
||||
'input', |
||||
'intern', |
||||
'isinstance', |
||||
'issubclass', |
||||
'iter', |
||||
'len', |
||||
'locals', |
||||
'list', |
||||
'map', |
||||
'max', |
||||
'memoryview', |
||||
'min', |
||||
'next', |
||||
'object', |
||||
'oct', |
||||
'open', |
||||
'ord', |
||||
'pow', |
||||
'print', |
||||
'property', |
||||
'reversed', |
||||
'range', |
||||
'raw_input', |
||||
'reduce', |
||||
'reload', |
||||
'repr', |
||||
'reversed', |
||||
'round', |
||||
'self', |
||||
'set', |
||||
'setattr', |
||||
'slice', |
||||
'sorted', |
||||
'staticmethod', |
||||
'str', |
||||
'sum', |
||||
'super', |
||||
'tuple', |
||||
'type', |
||||
'unichr', |
||||
'unicode', |
||||
'vars', |
||||
'xrange', |
||||
'zip', |
||||
'__dict__', |
||||
'__methods__', |
||||
'__members__', |
||||
'__class__', |
||||
'__bases__', |
||||
'__name__', |
||||
'__mro__', |
||||
'__subclasses__', |
||||
'__init__', |
||||
'__import__' |
||||
], |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.bracket' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
[/[,:;]/, 'delimiter'], |
||||
[/[{}\[\]()]/, '@brackets'], |
||||
[/@[a-zA-Z_]\w*/, 'tag'], |
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Deal with white space, including single and multi-line comments
|
||||
whitespace: [ |
||||
[/\s+/, 'white'], |
||||
[/(^#.*$)/, 'comment'], |
||||
[/'''/, 'string', '@endDocString'], |
||||
[/"""/, 'string', '@endDblDocString'] |
||||
], |
||||
endDocString: [ |
||||
[/[^']+/, 'string'], |
||||
[/\\'/, 'string'], |
||||
[/'''/, 'string', '@popall'], |
||||
[/'/, 'string'] |
||||
], |
||||
endDblDocString: [ |
||||
[/[^"]+/, 'string'], |
||||
[/\\"/, 'string'], |
||||
[/"""/, 'string', '@popall'], |
||||
[/"/, 'string'] |
||||
], |
||||
// Recognize hex, negatives, decimals, imaginaries, longs, and scientific notation
|
||||
numbers: [ |
||||
[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/, 'number.hex'], |
||||
[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/, 'number'] |
||||
], |
||||
// Recognize strings, including those broken across lines with \ (but not without)
|
||||
strings: [ |
||||
[/'$/, 'string.escape', '@popall'], |
||||
[/'/, 'string.escape', '@stringBody'], |
||||
[/"$/, 'string.escape', '@popall'], |
||||
[/"/, 'string.escape', '@dblStringBody'] |
||||
], |
||||
stringBody: [ |
||||
[/[^\\']+$/, 'string', '@popall'], |
||||
[/[^\\']+/, 'string'], |
||||
[/\\./, 'string'], |
||||
[/'/, 'string.escape', '@popall'], |
||||
[/\\$/, 'string'] |
||||
], |
||||
dblStringBody: [ |
||||
[/[^\\"]+$/, 'string', '@popall'], |
||||
[/[^\\"]+/, 'string'], |
||||
[/\\./, 'string'], |
||||
[/"/, 'string.escape', '@popall'], |
||||
[/\\$/, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,291 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/qsharp/qsharp',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
keywords: [ |
||||
'namespace', |
||||
'open', |
||||
'as', |
||||
'operation', |
||||
'function', |
||||
'body', |
||||
'adjoint', |
||||
'newtype', |
||||
'controlled', |
||||
'if', |
||||
'elif', |
||||
'else', |
||||
'repeat', |
||||
'until', |
||||
'fixup', |
||||
'for', |
||||
'in', |
||||
'while', |
||||
'return', |
||||
'fail', |
||||
'within', |
||||
'apply', |
||||
'Adjoint', |
||||
'Controlled', |
||||
'Adj', |
||||
'Ctl', |
||||
'is', |
||||
'self', |
||||
'auto', |
||||
'distribute', |
||||
'invert', |
||||
'intrinsic', |
||||
'let', |
||||
'set', |
||||
'w/', |
||||
'new', |
||||
'not', |
||||
'and', |
||||
'or', |
||||
'use', |
||||
'borrow', |
||||
'using', |
||||
'borrowing', |
||||
'mutable' |
||||
], |
||||
typeKeywords: [ |
||||
'Unit', |
||||
'Int', |
||||
'BigInt', |
||||
'Double', |
||||
'Bool', |
||||
'String', |
||||
'Qubit', |
||||
'Result', |
||||
'Pauli', |
||||
'Range' |
||||
], |
||||
invalidKeywords: [ |
||||
'abstract', |
||||
'base', |
||||
'bool', |
||||
'break', |
||||
'byte', |
||||
'case', |
||||
'catch', |
||||
'char', |
||||
'checked', |
||||
'class', |
||||
'const', |
||||
'continue', |
||||
'decimal', |
||||
'default', |
||||
'delegate', |
||||
'do', |
||||
'double', |
||||
'enum', |
||||
'event', |
||||
'explicit', |
||||
'extern', |
||||
'finally', |
||||
'fixed', |
||||
'float', |
||||
'foreach', |
||||
'goto', |
||||
'implicit', |
||||
'int', |
||||
'interface', |
||||
'lock', |
||||
'long', |
||||
'null', |
||||
'object', |
||||
'operator', |
||||
'out', |
||||
'override', |
||||
'params', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'readonly', |
||||
'ref', |
||||
'sbyte', |
||||
'sealed', |
||||
'short', |
||||
'sizeof', |
||||
'stackalloc', |
||||
'static', |
||||
'string', |
||||
'struct', |
||||
'switch', |
||||
'this', |
||||
'throw', |
||||
'try', |
||||
'typeof', |
||||
'unit', |
||||
'ulong', |
||||
'unchecked', |
||||
'unsafe', |
||||
'ushort', |
||||
'virtual', |
||||
'void', |
||||
'volatile' |
||||
], |
||||
constants: ['true', 'false', 'PauliI', 'PauliX', 'PauliY', 'PauliZ', 'One', 'Zero'], |
||||
builtin: [ |
||||
'X', |
||||
'Y', |
||||
'Z', |
||||
'H', |
||||
'HY', |
||||
'S', |
||||
'T', |
||||
'SWAP', |
||||
'CNOT', |
||||
'CCNOT', |
||||
'MultiX', |
||||
'R', |
||||
'RFrac', |
||||
'Rx', |
||||
'Ry', |
||||
'Rz', |
||||
'R1', |
||||
'R1Frac', |
||||
'Exp', |
||||
'ExpFrac', |
||||
'Measure', |
||||
'M', |
||||
'MultiM', |
||||
'Message', |
||||
'Length', |
||||
'Assert', |
||||
'AssertProb', |
||||
'AssertEqual' |
||||
], |
||||
operators: [ |
||||
'and=', |
||||
'<-', |
||||
'->', |
||||
'*', |
||||
'*=', |
||||
'@', |
||||
'!', |
||||
'^', |
||||
'^=', |
||||
':', |
||||
'::', |
||||
'..', |
||||
'==', |
||||
'...', |
||||
'=', |
||||
'=>', |
||||
'>', |
||||
'>=', |
||||
'<', |
||||
'<=', |
||||
'-', |
||||
'-=', |
||||
'!=', |
||||
'or=', |
||||
'%', |
||||
'%=', |
||||
'|', |
||||
'+', |
||||
'+=', |
||||
'?', |
||||
'/', |
||||
'/=', |
||||
'&&&', |
||||
'&&&=', |
||||
'^^^', |
||||
'^^^=', |
||||
'>>>', |
||||
'>>>=', |
||||
'<<<', |
||||
'<<<=', |
||||
'|||', |
||||
'|||=', |
||||
'~~~', |
||||
'_', |
||||
'w/', |
||||
'w/=' |
||||
], |
||||
namespaceFollows: ['namespace', 'open'], |
||||
symbols: /[=><!~?:&|+\-*\/\^%@._]+/, |
||||
escapes: /\\[\s\S]/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@namespaceFollows': { |
||||
token: 'keyword.$0', |
||||
next: '@namespace' |
||||
}, |
||||
'@typeKeywords': 'type', |
||||
'@keywords': 'keyword', |
||||
'@constants': 'constant', |
||||
'@builtin': 'keyword', |
||||
'@invalidKeywords': 'invalid', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, { cases: { '@operators': 'operator', '@default': '' } }], |
||||
// numbers
|
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/\d+/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
//[/"([^"\\]|\\.)*$/, 'string.invalid' ], // non-teminated string
|
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@string' }] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
namespace: [ |
||||
{ include: '@whitespace' }, |
||||
[/[A-Za-z]\w*/, 'namespace'], |
||||
[/[\.=]/, 'delimiter'], |
||||
['', '', '@pop'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/(\/\/).*/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,250 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/r/r',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.r', |
||||
roxygen: [ |
||||
'@alias', |
||||
'@aliases', |
||||
'@assignee', |
||||
'@author', |
||||
'@backref', |
||||
'@callGraph', |
||||
'@callGraphDepth', |
||||
'@callGraphPrimitives', |
||||
'@concept', |
||||
'@describeIn', |
||||
'@description', |
||||
'@details', |
||||
'@docType', |
||||
'@encoding', |
||||
'@evalNamespace', |
||||
'@evalRd', |
||||
'@example', |
||||
'@examples', |
||||
'@export', |
||||
'@exportClass', |
||||
'@exportMethod', |
||||
'@exportPattern', |
||||
'@family', |
||||
'@field', |
||||
'@formals', |
||||
'@format', |
||||
'@import', |
||||
'@importClassesFrom', |
||||
'@importFrom', |
||||
'@importMethodsFrom', |
||||
'@include', |
||||
'@inherit', |
||||
'@inheritDotParams', |
||||
'@inheritParams', |
||||
'@inheritSection', |
||||
'@keywords', |
||||
'@md', |
||||
'@method', |
||||
'@name', |
||||
'@noMd', |
||||
'@noRd', |
||||
'@note', |
||||
'@param', |
||||
'@rawNamespace', |
||||
'@rawRd', |
||||
'@rdname', |
||||
'@references', |
||||
'@return', |
||||
'@S3method', |
||||
'@section', |
||||
'@seealso', |
||||
'@setClass', |
||||
'@slot', |
||||
'@source', |
||||
'@template', |
||||
'@templateVar', |
||||
'@title', |
||||
'@TODO', |
||||
'@usage', |
||||
'@useDynLib' |
||||
], |
||||
constants: [ |
||||
'NULL', |
||||
'FALSE', |
||||
'TRUE', |
||||
'NA', |
||||
'Inf', |
||||
'NaN', |
||||
'NA_integer_', |
||||
'NA_real_', |
||||
'NA_complex_', |
||||
'NA_character_', |
||||
'T', |
||||
'F', |
||||
'LETTERS', |
||||
'letters', |
||||
'month.abb', |
||||
'month.name', |
||||
'pi', |
||||
'R.version.string' |
||||
], |
||||
keywords: [ |
||||
'break', |
||||
'next', |
||||
'return', |
||||
'if', |
||||
'else', |
||||
'for', |
||||
'in', |
||||
'repeat', |
||||
'while', |
||||
'array', |
||||
'category', |
||||
'character', |
||||
'complex', |
||||
'double', |
||||
'function', |
||||
'integer', |
||||
'list', |
||||
'logical', |
||||
'matrix', |
||||
'numeric', |
||||
'vector', |
||||
'data.frame', |
||||
'factor', |
||||
'library', |
||||
'require', |
||||
'attach', |
||||
'detach', |
||||
'source' |
||||
], |
||||
special: ['\\n', '\\r', '\\t', '\\b', '\\a', '\\f', '\\v', "\\'", '\\"', '\\\\'], |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.bracket' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
[/[{}\[\]()]/, '@brackets'], |
||||
{ include: '@operators' }, |
||||
[/#'$/, 'comment.doc'], |
||||
[/#'/, 'comment.doc', '@roxygen'], |
||||
[/(^#.*$)/, 'comment'], |
||||
[/\s+/, 'white'], |
||||
[/[,:;]/, 'delimiter'], |
||||
[/@[a-zA-Z]\w*/, 'tag'], |
||||
[ |
||||
/[a-zA-Z]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@constants': 'constant', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Recognize Roxygen comments
|
||||
roxygen: [ |
||||
[ |
||||
/@\w+/, |
||||
{ |
||||
cases: { |
||||
'@roxygen': 'tag', |
||||
'@eos': { token: 'comment.doc', next: '@pop' }, |
||||
'@default': 'comment.doc' |
||||
} |
||||
} |
||||
], |
||||
[ |
||||
/\s+/, |
||||
{ |
||||
cases: { |
||||
'@eos': { token: 'comment.doc', next: '@pop' }, |
||||
'@default': 'comment.doc' |
||||
} |
||||
} |
||||
], |
||||
[/.*/, { token: 'comment.doc', next: '@pop' }] |
||||
], |
||||
// Recognize positives, negatives, decimals, imaginaries, and scientific notation
|
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]+/, 'number.hex'], |
||||
[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/, 'number'] |
||||
], |
||||
// Recognize operators
|
||||
operators: [ |
||||
[/<{1,2}-/, 'operator'], |
||||
[/->{1,2}/, 'operator'], |
||||
[/%[^%\s]+%/, 'operator'], |
||||
[/\*\*/, 'operator'], |
||||
[/%%/, 'operator'], |
||||
[/&&/, 'operator'], |
||||
[/\|\|/, 'operator'], |
||||
[/<</, 'operator'], |
||||
[/>>/, 'operator'], |
||||
[/[-+=&|!<>^~*/:$]/, 'operator'] |
||||
], |
||||
// Recognize strings, including those broken across lines
|
||||
strings: [ |
||||
[/'/, 'string.escape', '@stringBody'], |
||||
[/"/, 'string.escape', '@dblStringBody'] |
||||
], |
||||
stringBody: [ |
||||
[ |
||||
/\\./, |
||||
{ |
||||
cases: { |
||||
'@special': 'string', |
||||
'@default': 'error-token' |
||||
} |
||||
} |
||||
], |
||||
[/'/, 'string.escape', '@popall'], |
||||
[/./, 'string'] |
||||
], |
||||
dblStringBody: [ |
||||
[ |
||||
/\\./, |
||||
{ |
||||
cases: { |
||||
'@special': 'string', |
||||
'@default': 'error-token' |
||||
} |
||||
} |
||||
], |
||||
[/"/, 'string.escape', '@popall'], |
||||
[/./, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,527 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/razor/razor',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
var EMPTY_ELEMENTS = [ |
||||
'area', |
||||
'base', |
||||
'br', |
||||
'col', |
||||
'embed', |
||||
'hr', |
||||
'img', |
||||
'input', |
||||
'keygen', |
||||
'link', |
||||
'menuitem', |
||||
'meta', |
||||
'param', |
||||
'source', |
||||
'track', |
||||
'wbr' |
||||
]; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, |
||||
comments: { |
||||
blockComment: ['<!--', '-->'] |
||||
}, |
||||
brackets: [ |
||||
['<!--', '-->'], |
||||
['<', '>'], |
||||
['{', '}'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '<', close: '>' } |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
afterText: /^<\/(\w[\w\d]*)\s*>$/i, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent |
||||
} |
||||
}, |
||||
{ |
||||
beforeText: new RegExp("<(?!(?:" + EMPTY_ELEMENTS.join('|') + "))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
action: { indentAction: monaco_editor_core_1.languages.IndentAction.Indent } |
||||
} |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '', |
||||
// ignoreCase: true,
|
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/@@@@/], |
||||
[/@[^@]/, { token: '@rematch', switchTo: '@razorInSimpleState.root' }], |
||||
[/<!DOCTYPE/, 'metatag.html', '@doctype'], |
||||
[/<!--/, 'comment.html', '@comment'], |
||||
[/(<)([\w\-]+)(\/>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
[/(<)(script)/, ['delimiter.html', { token: 'tag.html', next: '@script' }]], |
||||
[/(<)(style)/, ['delimiter.html', { token: 'tag.html', next: '@style' }]], |
||||
[/(<)([:\w\-]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/(<\/)([\w\-]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/</, 'delimiter.html'], |
||||
[/[ \t\r\n]+/], |
||||
[/[^<@]+/] // text
|
||||
], |
||||
doctype: [ |
||||
[/@[^@]/, { token: '@rematch', switchTo: '@razorInSimpleState.comment' }], |
||||
[/[^>]+/, 'metatag.content.html'], |
||||
[/>/, 'metatag.html', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/@[^@]/, { token: '@rematch', switchTo: '@razorInSimpleState.comment' }], |
||||
[/-->/, 'comment.html', '@pop'], |
||||
[/[^-]+/, 'comment.content.html'], |
||||
[/./, 'comment.content.html'] |
||||
], |
||||
otherTag: [ |
||||
[/@[^@]/, { token: '@rematch', switchTo: '@razorInSimpleState.otherTag' }], |
||||
[/\/?>/, 'delimiter.html', '@pop'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/] // whitespace
|
||||
], |
||||
// -- BEGIN <script> tags handling
|
||||
// After <script
|
||||
script: [ |
||||
[/@[^@]/, { token: '@rematch', switchTo: '@razorInSimpleState.script' }], |
||||
[/type/, 'attribute.name', '@scriptAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(script\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <script ... type
|
||||
scriptAfterType: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInSimpleState.scriptAfterType' |
||||
} |
||||
], |
||||
[/=/, 'delimiter', '@scriptAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type =
|
||||
scriptAfterTypeEquals: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInSimpleState.scriptAfterTypeEquals' |
||||
} |
||||
], |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.text/javascript', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type = $S2
|
||||
scriptWithCustomType: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInSimpleState.scriptWithCustomType.$S2' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
scriptEmbedded: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInEmbeddedState.scriptEmbedded.$S2', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
], |
||||
[/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
// -- END <script> tags handling
|
||||
// -- BEGIN <style> tags handling
|
||||
// After <style
|
||||
style: [ |
||||
[/@[^@]/, { token: '@rematch', switchTo: '@razorInSimpleState.style' }], |
||||
[/type/, 'attribute.name', '@styleAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(style\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <style ... type
|
||||
styleAfterType: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInSimpleState.styleAfterType' |
||||
} |
||||
], |
||||
[/=/, 'delimiter', '@styleAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type =
|
||||
styleAfterTypeEquals: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInSimpleState.styleAfterTypeEquals' |
||||
} |
||||
], |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.text/css', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type = $S2
|
||||
styleWithCustomType: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInSimpleState.styleWithCustomType.$S2' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value'], |
||||
[/'([^']*)'/, 'attribute.value'], |
||||
[/[\w\-]+/, 'attribute.name'], |
||||
[/=/, 'delimiter'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
styleEmbedded: [ |
||||
[ |
||||
/@[^@]/, |
||||
{ |
||||
token: '@rematch', |
||||
switchTo: '@razorInEmbeddedState.styleEmbedded.$S2', |
||||
nextEmbedded: '@pop' |
||||
} |
||||
], |
||||
[/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }] |
||||
], |
||||
// -- END <style> tags handling
|
||||
razorInSimpleState: [ |
||||
[/@\*/, 'comment.cs', '@razorBlockCommentTopLevel'], |
||||
[/@[{(]/, 'metatag.cs', '@razorRootTopLevel'], |
||||
[/(@)(\s*[\w]+)/, ['metatag.cs', { token: 'identifier.cs', switchTo: '@$S2.$S3' }]], |
||||
[/[})]/, { token: 'metatag.cs', switchTo: '@$S2.$S3' }], |
||||
[/\*@/, { token: 'comment.cs', switchTo: '@$S2.$S3' }] |
||||
], |
||||
razorInEmbeddedState: [ |
||||
[/@\*/, 'comment.cs', '@razorBlockCommentTopLevel'], |
||||
[/@[{(]/, 'metatag.cs', '@razorRootTopLevel'], |
||||
[ |
||||
/(@)(\s*[\w]+)/, |
||||
[ |
||||
'metatag.cs', |
||||
{ |
||||
token: 'identifier.cs', |
||||
switchTo: '@$S2.$S3', |
||||
nextEmbedded: '$S3' |
||||
} |
||||
] |
||||
], |
||||
[ |
||||
/[})]/, |
||||
{ |
||||
token: 'metatag.cs', |
||||
switchTo: '@$S2.$S3', |
||||
nextEmbedded: '$S3' |
||||
} |
||||
], |
||||
[ |
||||
/\*@/, |
||||
{ |
||||
token: 'comment.cs', |
||||
switchTo: '@$S2.$S3', |
||||
nextEmbedded: '$S3' |
||||
} |
||||
] |
||||
], |
||||
razorBlockCommentTopLevel: [ |
||||
[/\*@/, '@rematch', '@pop'], |
||||
[/[^*]+/, 'comment.cs'], |
||||
[/./, 'comment.cs'] |
||||
], |
||||
razorBlockComment: [ |
||||
[/\*@/, 'comment.cs', '@pop'], |
||||
[/[^*]+/, 'comment.cs'], |
||||
[/./, 'comment.cs'] |
||||
], |
||||
razorRootTopLevel: [ |
||||
[/\{/, 'delimiter.bracket.cs', '@razorRoot'], |
||||
[/\(/, 'delimiter.parenthesis.cs', '@razorRoot'], |
||||
[/[})]/, '@rematch', '@pop'], |
||||
{ include: 'razorCommon' } |
||||
], |
||||
razorRoot: [ |
||||
[/\{/, 'delimiter.bracket.cs', '@razorRoot'], |
||||
[/\(/, 'delimiter.parenthesis.cs', '@razorRoot'], |
||||
[/\}/, 'delimiter.bracket.cs', '@pop'], |
||||
[/\)/, 'delimiter.parenthesis.cs', '@pop'], |
||||
{ include: 'razorCommon' } |
||||
], |
||||
razorCommon: [ |
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@razorKeywords': { token: 'keyword.cs' }, |
||||
'@default': 'identifier.cs' |
||||
} |
||||
} |
||||
], |
||||
// brackets
|
||||
[/[\[\]]/, 'delimiter.array.cs'], |
||||
// whitespace
|
||||
[/[ \t\r\n]+/], |
||||
// comments
|
||||
[/\/\/.*$/, 'comment.cs'], |
||||
[/@\*/, 'comment.cs', '@razorBlockComment'], |
||||
// strings
|
||||
[/"([^"]*)"/, 'string.cs'], |
||||
[/'([^']*)'/, 'string.cs'], |
||||
// simple html
|
||||
[/(<)([\w\-]+)(\/>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
[/(<)([\w\-]+)(>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
[/(<\/)([\w\-]+)(>)/, ['delimiter.html', 'tag.html', 'delimiter.html']], |
||||
// delimiters
|
||||
[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/, 'delimiter.cs'], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?/, 'number.float.cs'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float.cs'], |
||||
[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, 'number.hex.cs'], |
||||
[/0[0-7']*[0-7]/, 'number.octal.cs'], |
||||
[/0[bB][0-1']*[0-1]/, 'number.binary.cs'], |
||||
[/\d[\d']*/, 'number.cs'], |
||||
[/\d/, 'number.cs'] |
||||
] |
||||
}, |
||||
razorKeywords: [ |
||||
'abstract', |
||||
'as', |
||||
'async', |
||||
'await', |
||||
'base', |
||||
'bool', |
||||
'break', |
||||
'by', |
||||
'byte', |
||||
'case', |
||||
'catch', |
||||
'char', |
||||
'checked', |
||||
'class', |
||||
'const', |
||||
'continue', |
||||
'decimal', |
||||
'default', |
||||
'delegate', |
||||
'do', |
||||
'double', |
||||
'descending', |
||||
'explicit', |
||||
'event', |
||||
'extern', |
||||
'else', |
||||
'enum', |
||||
'false', |
||||
'finally', |
||||
'fixed', |
||||
'float', |
||||
'for', |
||||
'foreach', |
||||
'from', |
||||
'goto', |
||||
'group', |
||||
'if', |
||||
'implicit', |
||||
'in', |
||||
'int', |
||||
'interface', |
||||
'internal', |
||||
'into', |
||||
'is', |
||||
'lock', |
||||
'long', |
||||
'nameof', |
||||
'new', |
||||
'null', |
||||
'namespace', |
||||
'object', |
||||
'operator', |
||||
'out', |
||||
'override', |
||||
'orderby', |
||||
'params', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'readonly', |
||||
'ref', |
||||
'return', |
||||
'switch', |
||||
'struct', |
||||
'sbyte', |
||||
'sealed', |
||||
'short', |
||||
'sizeof', |
||||
'stackalloc', |
||||
'static', |
||||
'string', |
||||
'select', |
||||
'this', |
||||
'throw', |
||||
'true', |
||||
'try', |
||||
'typeof', |
||||
'uint', |
||||
'ulong', |
||||
'unchecked', |
||||
'unsafe', |
||||
'ushort', |
||||
'using', |
||||
'var', |
||||
'virtual', |
||||
'volatile', |
||||
'void', |
||||
'when', |
||||
'while', |
||||
'where', |
||||
'yield', |
||||
'model', |
||||
'inject' // Razor specific
|
||||
], |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/ |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,309 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/redis/redis',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.redis', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
'APPEND', |
||||
'AUTH', |
||||
'BGREWRITEAOF', |
||||
'BGSAVE', |
||||
'BITCOUNT', |
||||
'BITFIELD', |
||||
'BITOP', |
||||
'BITPOS', |
||||
'BLPOP', |
||||
'BRPOP', |
||||
'BRPOPLPUSH', |
||||
'CLIENT', |
||||
'KILL', |
||||
'LIST', |
||||
'GETNAME', |
||||
'PAUSE', |
||||
'REPLY', |
||||
'SETNAME', |
||||
'CLUSTER', |
||||
'ADDSLOTS', |
||||
'COUNT-FAILURE-REPORTS', |
||||
'COUNTKEYSINSLOT', |
||||
'DELSLOTS', |
||||
'FAILOVER', |
||||
'FORGET', |
||||
'GETKEYSINSLOT', |
||||
'INFO', |
||||
'KEYSLOT', |
||||
'MEET', |
||||
'NODES', |
||||
'REPLICATE', |
||||
'RESET', |
||||
'SAVECONFIG', |
||||
'SET-CONFIG-EPOCH', |
||||
'SETSLOT', |
||||
'SLAVES', |
||||
'SLOTS', |
||||
'COMMAND', |
||||
'COUNT', |
||||
'GETKEYS', |
||||
'CONFIG', |
||||
'GET', |
||||
'REWRITE', |
||||
'SET', |
||||
'RESETSTAT', |
||||
'DBSIZE', |
||||
'DEBUG', |
||||
'OBJECT', |
||||
'SEGFAULT', |
||||
'DECR', |
||||
'DECRBY', |
||||
'DEL', |
||||
'DISCARD', |
||||
'DUMP', |
||||
'ECHO', |
||||
'EVAL', |
||||
'EVALSHA', |
||||
'EXEC', |
||||
'EXISTS', |
||||
'EXPIRE', |
||||
'EXPIREAT', |
||||
'FLUSHALL', |
||||
'FLUSHDB', |
||||
'GEOADD', |
||||
'GEOHASH', |
||||
'GEOPOS', |
||||
'GEODIST', |
||||
'GEORADIUS', |
||||
'GEORADIUSBYMEMBER', |
||||
'GETBIT', |
||||
'GETRANGE', |
||||
'GETSET', |
||||
'HDEL', |
||||
'HEXISTS', |
||||
'HGET', |
||||
'HGETALL', |
||||
'HINCRBY', |
||||
'HINCRBYFLOAT', |
||||
'HKEYS', |
||||
'HLEN', |
||||
'HMGET', |
||||
'HMSET', |
||||
'HSET', |
||||
'HSETNX', |
||||
'HSTRLEN', |
||||
'HVALS', |
||||
'INCR', |
||||
'INCRBY', |
||||
'INCRBYFLOAT', |
||||
'KEYS', |
||||
'LASTSAVE', |
||||
'LINDEX', |
||||
'LINSERT', |
||||
'LLEN', |
||||
'LPOP', |
||||
'LPUSH', |
||||
'LPUSHX', |
||||
'LRANGE', |
||||
'LREM', |
||||
'LSET', |
||||
'LTRIM', |
||||
'MGET', |
||||
'MIGRATE', |
||||
'MONITOR', |
||||
'MOVE', |
||||
'MSET', |
||||
'MSETNX', |
||||
'MULTI', |
||||
'PERSIST', |
||||
'PEXPIRE', |
||||
'PEXPIREAT', |
||||
'PFADD', |
||||
'PFCOUNT', |
||||
'PFMERGE', |
||||
'PING', |
||||
'PSETEX', |
||||
'PSUBSCRIBE', |
||||
'PUBSUB', |
||||
'PTTL', |
||||
'PUBLISH', |
||||
'PUNSUBSCRIBE', |
||||
'QUIT', |
||||
'RANDOMKEY', |
||||
'READONLY', |
||||
'READWRITE', |
||||
'RENAME', |
||||
'RENAMENX', |
||||
'RESTORE', |
||||
'ROLE', |
||||
'RPOP', |
||||
'RPOPLPUSH', |
||||
'RPUSH', |
||||
'RPUSHX', |
||||
'SADD', |
||||
'SAVE', |
||||
'SCARD', |
||||
'SCRIPT', |
||||
'FLUSH', |
||||
'LOAD', |
||||
'SDIFF', |
||||
'SDIFFSTORE', |
||||
'SELECT', |
||||
'SETBIT', |
||||
'SETEX', |
||||
'SETNX', |
||||
'SETRANGE', |
||||
'SHUTDOWN', |
||||
'SINTER', |
||||
'SINTERSTORE', |
||||
'SISMEMBER', |
||||
'SLAVEOF', |
||||
'SLOWLOG', |
||||
'SMEMBERS', |
||||
'SMOVE', |
||||
'SORT', |
||||
'SPOP', |
||||
'SRANDMEMBER', |
||||
'SREM', |
||||
'STRLEN', |
||||
'SUBSCRIBE', |
||||
'SUNION', |
||||
'SUNIONSTORE', |
||||
'SWAPDB', |
||||
'SYNC', |
||||
'TIME', |
||||
'TOUCH', |
||||
'TTL', |
||||
'TYPE', |
||||
'UNSUBSCRIBE', |
||||
'UNLINK', |
||||
'UNWATCH', |
||||
'WAIT', |
||||
'WATCH', |
||||
'ZADD', |
||||
'ZCARD', |
||||
'ZCOUNT', |
||||
'ZINCRBY', |
||||
'ZINTERSTORE', |
||||
'ZLEXCOUNT', |
||||
'ZRANGE', |
||||
'ZRANGEBYLEX', |
||||
'ZREVRANGEBYLEX', |
||||
'ZRANGEBYSCORE', |
||||
'ZRANK', |
||||
'ZREM', |
||||
'ZREMRANGEBYLEX', |
||||
'ZREMRANGEBYRANK', |
||||
'ZREMRANGEBYSCORE', |
||||
'ZREVRANGE', |
||||
'ZREVRANGEBYSCORE', |
||||
'ZREVRANK', |
||||
'ZSCORE', |
||||
'ZUNIONSTORE', |
||||
'SCAN', |
||||
'SSCAN', |
||||
'HSCAN', |
||||
'ZSCAN' |
||||
], |
||||
operators: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
builtinFunctions: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
builtinVariables: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
pseudoColumns: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@pseudoColumns' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@scopes' }, |
||||
[/[;,.]/, 'delimiter'], |
||||
[/[()]/, '@brackets'], |
||||
[ |
||||
/[\w@#$]+/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@operators': 'operator', |
||||
'@builtinVariables': 'predefined', |
||||
'@builtinFunctions': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=!%&+\-*/|~^]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
pseudoColumns: [ |
||||
[ |
||||
/[$][A-Za-z_][\w@#$]*/, |
||||
{ |
||||
cases: { |
||||
'@pseudoColumns': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*/, 'number'], |
||||
[/[$][+-]*\d*(\.\d*)?/, 'number'], |
||||
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] |
||||
], |
||||
strings: [ |
||||
[/'/, { token: 'string', next: '@string' }], |
||||
[/"/, { token: 'string.double', next: '@stringDouble' }] |
||||
], |
||||
string: [ |
||||
[/[^']+/, 'string'], |
||||
[/''/, 'string'], |
||||
[/'/, { token: 'string', next: '@pop' }] |
||||
], |
||||
stringDouble: [ |
||||
[/[^"]+/, 'string.double'], |
||||
[/""/, 'string.double'], |
||||
[/"/, { token: 'string.double', next: '@pop' }] |
||||
], |
||||
scopes: [ |
||||
// NOT SUPPORTED
|
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,815 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/redshift/redshift',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '--', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.sql', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
'AES128', |
||||
'AES256', |
||||
'ALL', |
||||
'ALLOWOVERWRITE', |
||||
'ANALYSE', |
||||
'ANALYZE', |
||||
'AND', |
||||
'ANY', |
||||
'ARRAY', |
||||
'AS', |
||||
'ASC', |
||||
'AUTHORIZATION', |
||||
'BACKUP', |
||||
'BETWEEN', |
||||
'BINARY', |
||||
'BLANKSASNULL', |
||||
'BOTH', |
||||
'BY', |
||||
'BYTEDICT', |
||||
'BZIP2', |
||||
'CASE', |
||||
'CAST', |
||||
'CHECK', |
||||
'COLLATE', |
||||
'COLUMN', |
||||
'CONSTRAINT', |
||||
'CREATE', |
||||
'CREDENTIALS', |
||||
'CROSS', |
||||
'CURRENT_DATE', |
||||
'CURRENT_TIME', |
||||
'CURRENT_TIMESTAMP', |
||||
'CURRENT_USER', |
||||
'CURRENT_USER_ID', |
||||
'DEFAULT', |
||||
'DEFERRABLE', |
||||
'DEFLATE', |
||||
'DEFRAG', |
||||
'DELTA', |
||||
'DELTA32K', |
||||
'DESC', |
||||
'DISABLE', |
||||
'DISTINCT', |
||||
'DO', |
||||
'ELSE', |
||||
'EMPTYASNULL', |
||||
'ENABLE', |
||||
'ENCODE', |
||||
'ENCRYPT', |
||||
'ENCRYPTION', |
||||
'END', |
||||
'EXCEPT', |
||||
'EXPLICIT', |
||||
'FALSE', |
||||
'FOR', |
||||
'FOREIGN', |
||||
'FREEZE', |
||||
'FROM', |
||||
'FULL', |
||||
'GLOBALDICT256', |
||||
'GLOBALDICT64K', |
||||
'GRANT', |
||||
'GROUP', |
||||
'GZIP', |
||||
'HAVING', |
||||
'IDENTITY', |
||||
'IGNORE', |
||||
'ILIKE', |
||||
'IN', |
||||
'INITIALLY', |
||||
'INNER', |
||||
'INTERSECT', |
||||
'INTO', |
||||
'IS', |
||||
'ISNULL', |
||||
'JOIN', |
||||
'LEADING', |
||||
'LEFT', |
||||
'LIKE', |
||||
'LIMIT', |
||||
'LOCALTIME', |
||||
'LOCALTIMESTAMP', |
||||
'LUN', |
||||
'LUNS', |
||||
'LZO', |
||||
'LZOP', |
||||
'MINUS', |
||||
'MOSTLY13', |
||||
'MOSTLY32', |
||||
'MOSTLY8', |
||||
'NATURAL', |
||||
'NEW', |
||||
'NOT', |
||||
'NOTNULL', |
||||
'NULL', |
||||
'NULLS', |
||||
'OFF', |
||||
'OFFLINE', |
||||
'OFFSET', |
||||
'OID', |
||||
'OLD', |
||||
'ON', |
||||
'ONLY', |
||||
'OPEN', |
||||
'OR', |
||||
'ORDER', |
||||
'OUTER', |
||||
'OVERLAPS', |
||||
'PARALLEL', |
||||
'PARTITION', |
||||
'PERCENT', |
||||
'PERMISSIONS', |
||||
'PLACING', |
||||
'PRIMARY', |
||||
'RAW', |
||||
'READRATIO', |
||||
'RECOVER', |
||||
'REFERENCES', |
||||
'RESPECT', |
||||
'REJECTLOG', |
||||
'RESORT', |
||||
'RESTORE', |
||||
'RIGHT', |
||||
'SELECT', |
||||
'SESSION_USER', |
||||
'SIMILAR', |
||||
'SNAPSHOT', |
||||
'SOME', |
||||
'SYSDATE', |
||||
'SYSTEM', |
||||
'TABLE', |
||||
'TAG', |
||||
'TDES', |
||||
'TEXT255', |
||||
'TEXT32K', |
||||
'THEN', |
||||
'TIMESTAMP', |
||||
'TO', |
||||
'TOP', |
||||
'TRAILING', |
||||
'TRUE', |
||||
'TRUNCATECOLUMNS', |
||||
'UNION', |
||||
'UNIQUE', |
||||
'USER', |
||||
'USING', |
||||
'VERBOSE', |
||||
'WALLET', |
||||
'WHEN', |
||||
'WHERE', |
||||
'WITH', |
||||
'WITHOUT' |
||||
], |
||||
operators: [ |
||||
'AND', |
||||
'BETWEEN', |
||||
'IN', |
||||
'LIKE', |
||||
'NOT', |
||||
'OR', |
||||
'IS', |
||||
'NULL', |
||||
'INTERSECT', |
||||
'UNION', |
||||
'INNER', |
||||
'JOIN', |
||||
'LEFT', |
||||
'OUTER', |
||||
'RIGHT' |
||||
], |
||||
builtinFunctions: [ |
||||
'current_schema', |
||||
'current_schemas', |
||||
'has_database_privilege', |
||||
'has_schema_privilege', |
||||
'has_table_privilege', |
||||
'age', |
||||
'current_time', |
||||
'current_timestamp', |
||||
'localtime', |
||||
'isfinite', |
||||
'now', |
||||
'ascii', |
||||
'get_bit', |
||||
'get_byte', |
||||
'set_bit', |
||||
'set_byte', |
||||
'to_ascii', |
||||
'approximate percentile_disc', |
||||
'avg', |
||||
'count', |
||||
'listagg', |
||||
'max', |
||||
'median', |
||||
'min', |
||||
'percentile_cont', |
||||
'stddev_samp', |
||||
'stddev_pop', |
||||
'sum', |
||||
'var_samp', |
||||
'var_pop', |
||||
'bit_and', |
||||
'bit_or', |
||||
'bool_and', |
||||
'bool_or', |
||||
'cume_dist', |
||||
'first_value', |
||||
'lag', |
||||
'last_value', |
||||
'lead', |
||||
'nth_value', |
||||
'ratio_to_report', |
||||
'dense_rank', |
||||
'ntile', |
||||
'percent_rank', |
||||
'rank', |
||||
'row_number', |
||||
'case', |
||||
'coalesce', |
||||
'decode', |
||||
'greatest', |
||||
'least', |
||||
'nvl', |
||||
'nvl2', |
||||
'nullif', |
||||
'add_months', |
||||
'at time zone', |
||||
'convert_timezone', |
||||
'current_date', |
||||
'date_cmp', |
||||
'date_cmp_timestamp', |
||||
'date_cmp_timestamptz', |
||||
'date_part_year', |
||||
'dateadd', |
||||
'datediff', |
||||
'date_part', |
||||
'date_trunc', |
||||
'extract', |
||||
'getdate', |
||||
'interval_cmp', |
||||
'last_day', |
||||
'months_between', |
||||
'next_day', |
||||
'sysdate', |
||||
'timeofday', |
||||
'timestamp_cmp', |
||||
'timestamp_cmp_date', |
||||
'timestamp_cmp_timestamptz', |
||||
'timestamptz_cmp', |
||||
'timestamptz_cmp_date', |
||||
'timestamptz_cmp_timestamp', |
||||
'timezone', |
||||
'to_timestamp', |
||||
'trunc', |
||||
'abs', |
||||
'acos', |
||||
'asin', |
||||
'atan', |
||||
'atan2', |
||||
'cbrt', |
||||
'ceil', |
||||
'ceiling', |
||||
'checksum', |
||||
'cos', |
||||
'cot', |
||||
'degrees', |
||||
'dexp', |
||||
'dlog1', |
||||
'dlog10', |
||||
'exp', |
||||
'floor', |
||||
'ln', |
||||
'log', |
||||
'mod', |
||||
'pi', |
||||
'power', |
||||
'radians', |
||||
'random', |
||||
'round', |
||||
'sin', |
||||
'sign', |
||||
'sqrt', |
||||
'tan', |
||||
'to_hex', |
||||
'bpcharcmp', |
||||
'btrim', |
||||
'bttext_pattern_cmp', |
||||
'char_length', |
||||
'character_length', |
||||
'charindex', |
||||
'chr', |
||||
'concat', |
||||
'crc32', |
||||
'func_sha1', |
||||
'initcap', |
||||
'left and rights', |
||||
'len', |
||||
'length', |
||||
'lower', |
||||
'lpad and rpads', |
||||
'ltrim', |
||||
'md5', |
||||
'octet_length', |
||||
'position', |
||||
'quote_ident', |
||||
'quote_literal', |
||||
'regexp_count', |
||||
'regexp_instr', |
||||
'regexp_replace', |
||||
'regexp_substr', |
||||
'repeat', |
||||
'replace', |
||||
'replicate', |
||||
'reverse', |
||||
'rtrim', |
||||
'split_part', |
||||
'strpos', |
||||
'strtol', |
||||
'substring', |
||||
'textlen', |
||||
'translate', |
||||
'trim', |
||||
'upper', |
||||
'cast', |
||||
'convert', |
||||
'to_char', |
||||
'to_date', |
||||
'to_number', |
||||
'json_array_length', |
||||
'json_extract_array_element_text', |
||||
'json_extract_path_text', |
||||
'current_setting', |
||||
'pg_cancel_backend', |
||||
'pg_terminate_backend', |
||||
'set_config', |
||||
'current_database', |
||||
'current_user', |
||||
'current_user_id', |
||||
'pg_backend_pid', |
||||
'pg_last_copy_count', |
||||
'pg_last_copy_id', |
||||
'pg_last_query_id', |
||||
'pg_last_unload_count', |
||||
'session_user', |
||||
'slice_num', |
||||
'user', |
||||
'version', |
||||
'abbrev', |
||||
'acosd', |
||||
'any', |
||||
'area', |
||||
'array_agg', |
||||
'array_append', |
||||
'array_cat', |
||||
'array_dims', |
||||
'array_fill', |
||||
'array_length', |
||||
'array_lower', |
||||
'array_ndims', |
||||
'array_position', |
||||
'array_positions', |
||||
'array_prepend', |
||||
'array_remove', |
||||
'array_replace', |
||||
'array_to_json', |
||||
'array_to_string', |
||||
'array_to_tsvector', |
||||
'array_upper', |
||||
'asind', |
||||
'atan2d', |
||||
'atand', |
||||
'bit', |
||||
'bit_length', |
||||
'bound_box', |
||||
'box', |
||||
'brin_summarize_new_values', |
||||
'broadcast', |
||||
'cardinality', |
||||
'center', |
||||
'circle', |
||||
'clock_timestamp', |
||||
'col_description', |
||||
'concat_ws', |
||||
'convert_from', |
||||
'convert_to', |
||||
'corr', |
||||
'cosd', |
||||
'cotd', |
||||
'covar_pop', |
||||
'covar_samp', |
||||
'current_catalog', |
||||
'current_query', |
||||
'current_role', |
||||
'currval', |
||||
'cursor_to_xml', |
||||
'diameter', |
||||
'div', |
||||
'encode', |
||||
'enum_first', |
||||
'enum_last', |
||||
'enum_range', |
||||
'every', |
||||
'family', |
||||
'format', |
||||
'format_type', |
||||
'generate_series', |
||||
'generate_subscripts', |
||||
'get_current_ts_config', |
||||
'gin_clean_pending_list', |
||||
'grouping', |
||||
'has_any_column_privilege', |
||||
'has_column_privilege', |
||||
'has_foreign_data_wrapper_privilege', |
||||
'has_function_privilege', |
||||
'has_language_privilege', |
||||
'has_sequence_privilege', |
||||
'has_server_privilege', |
||||
'has_tablespace_privilege', |
||||
'has_type_privilege', |
||||
'height', |
||||
'host', |
||||
'hostmask', |
||||
'inet_client_addr', |
||||
'inet_client_port', |
||||
'inet_merge', |
||||
'inet_same_family', |
||||
'inet_server_addr', |
||||
'inet_server_port', |
||||
'isclosed', |
||||
'isempty', |
||||
'isopen', |
||||
'json_agg', |
||||
'json_object', |
||||
'json_object_agg', |
||||
'json_populate_record', |
||||
'json_populate_recordset', |
||||
'json_to_record', |
||||
'json_to_recordset', |
||||
'jsonb_agg', |
||||
'jsonb_object_agg', |
||||
'justify_days', |
||||
'justify_hours', |
||||
'justify_interval', |
||||
'lastval', |
||||
'left', |
||||
'line', |
||||
'localtimestamp', |
||||
'lower_inc', |
||||
'lower_inf', |
||||
'lpad', |
||||
'lseg', |
||||
'make_date', |
||||
'make_interval', |
||||
'make_time', |
||||
'make_timestamp', |
||||
'make_timestamptz', |
||||
'masklen', |
||||
'mode', |
||||
'netmask', |
||||
'network', |
||||
'nextval', |
||||
'npoints', |
||||
'num_nonnulls', |
||||
'num_nulls', |
||||
'numnode', |
||||
'obj_description', |
||||
'overlay', |
||||
'parse_ident', |
||||
'path', |
||||
'pclose', |
||||
'percentile_disc', |
||||
'pg_advisory_lock', |
||||
'pg_advisory_lock_shared', |
||||
'pg_advisory_unlock', |
||||
'pg_advisory_unlock_all', |
||||
'pg_advisory_unlock_shared', |
||||
'pg_advisory_xact_lock', |
||||
'pg_advisory_xact_lock_shared', |
||||
'pg_backup_start_time', |
||||
'pg_blocking_pids', |
||||
'pg_client_encoding', |
||||
'pg_collation_is_visible', |
||||
'pg_column_size', |
||||
'pg_conf_load_time', |
||||
'pg_control_checkpoint', |
||||
'pg_control_init', |
||||
'pg_control_recovery', |
||||
'pg_control_system', |
||||
'pg_conversion_is_visible', |
||||
'pg_create_logical_replication_slot', |
||||
'pg_create_physical_replication_slot', |
||||
'pg_create_restore_point', |
||||
'pg_current_xlog_flush_location', |
||||
'pg_current_xlog_insert_location', |
||||
'pg_current_xlog_location', |
||||
'pg_database_size', |
||||
'pg_describe_object', |
||||
'pg_drop_replication_slot', |
||||
'pg_export_snapshot', |
||||
'pg_filenode_relation', |
||||
'pg_function_is_visible', |
||||
'pg_get_constraintdef', |
||||
'pg_get_expr', |
||||
'pg_get_function_arguments', |
||||
'pg_get_function_identity_arguments', |
||||
'pg_get_function_result', |
||||
'pg_get_functiondef', |
||||
'pg_get_indexdef', |
||||
'pg_get_keywords', |
||||
'pg_get_object_address', |
||||
'pg_get_owned_sequence', |
||||
'pg_get_ruledef', |
||||
'pg_get_serial_sequence', |
||||
'pg_get_triggerdef', |
||||
'pg_get_userbyid', |
||||
'pg_get_viewdef', |
||||
'pg_has_role', |
||||
'pg_identify_object', |
||||
'pg_identify_object_as_address', |
||||
'pg_index_column_has_property', |
||||
'pg_index_has_property', |
||||
'pg_indexam_has_property', |
||||
'pg_indexes_size', |
||||
'pg_is_in_backup', |
||||
'pg_is_in_recovery', |
||||
'pg_is_other_temp_schema', |
||||
'pg_is_xlog_replay_paused', |
||||
'pg_last_committed_xact', |
||||
'pg_last_xact_replay_timestamp', |
||||
'pg_last_xlog_receive_location', |
||||
'pg_last_xlog_replay_location', |
||||
'pg_listening_channels', |
||||
'pg_logical_emit_message', |
||||
'pg_logical_slot_get_binary_changes', |
||||
'pg_logical_slot_get_changes', |
||||
'pg_logical_slot_peek_binary_changes', |
||||
'pg_logical_slot_peek_changes', |
||||
'pg_ls_dir', |
||||
'pg_my_temp_schema', |
||||
'pg_notification_queue_usage', |
||||
'pg_opclass_is_visible', |
||||
'pg_operator_is_visible', |
||||
'pg_opfamily_is_visible', |
||||
'pg_options_to_table', |
||||
'pg_postmaster_start_time', |
||||
'pg_read_binary_file', |
||||
'pg_read_file', |
||||
'pg_relation_filenode', |
||||
'pg_relation_filepath', |
||||
'pg_relation_size', |
||||
'pg_reload_conf', |
||||
'pg_replication_origin_create', |
||||
'pg_replication_origin_drop', |
||||
'pg_replication_origin_oid', |
||||
'pg_replication_origin_progress', |
||||
'pg_replication_origin_session_is_setup', |
||||
'pg_replication_origin_session_progress', |
||||
'pg_replication_origin_session_reset', |
||||
'pg_replication_origin_session_setup', |
||||
'pg_replication_origin_xact_reset', |
||||
'pg_replication_origin_xact_setup', |
||||
'pg_rotate_logfile', |
||||
'pg_size_bytes', |
||||
'pg_size_pretty', |
||||
'pg_sleep', |
||||
'pg_sleep_for', |
||||
'pg_sleep_until', |
||||
'pg_start_backup', |
||||
'pg_stat_file', |
||||
'pg_stop_backup', |
||||
'pg_switch_xlog', |
||||
'pg_table_is_visible', |
||||
'pg_table_size', |
||||
'pg_tablespace_databases', |
||||
'pg_tablespace_location', |
||||
'pg_tablespace_size', |
||||
'pg_total_relation_size', |
||||
'pg_trigger_depth', |
||||
'pg_try_advisory_lock', |
||||
'pg_try_advisory_lock_shared', |
||||
'pg_try_advisory_xact_lock', |
||||
'pg_try_advisory_xact_lock_shared', |
||||
'pg_ts_config_is_visible', |
||||
'pg_ts_dict_is_visible', |
||||
'pg_ts_parser_is_visible', |
||||
'pg_ts_template_is_visible', |
||||
'pg_type_is_visible', |
||||
'pg_typeof', |
||||
'pg_xact_commit_timestamp', |
||||
'pg_xlog_location_diff', |
||||
'pg_xlog_replay_pause', |
||||
'pg_xlog_replay_resume', |
||||
'pg_xlogfile_name', |
||||
'pg_xlogfile_name_offset', |
||||
'phraseto_tsquery', |
||||
'plainto_tsquery', |
||||
'point', |
||||
'polygon', |
||||
'popen', |
||||
'pqserverversion', |
||||
'query_to_xml', |
||||
'querytree', |
||||
'quote_nullable', |
||||
'radius', |
||||
'range_merge', |
||||
'regexp_matches', |
||||
'regexp_split_to_array', |
||||
'regexp_split_to_table', |
||||
'regr_avgx', |
||||
'regr_avgy', |
||||
'regr_count', |
||||
'regr_intercept', |
||||
'regr_r2', |
||||
'regr_slope', |
||||
'regr_sxx', |
||||
'regr_sxy', |
||||
'regr_syy', |
||||
'right', |
||||
'row_security_active', |
||||
'row_to_json', |
||||
'rpad', |
||||
'scale', |
||||
'set_masklen', |
||||
'setseed', |
||||
'setval', |
||||
'setweight', |
||||
'shobj_description', |
||||
'sind', |
||||
'sprintf', |
||||
'statement_timestamp', |
||||
'stddev', |
||||
'string_agg', |
||||
'string_to_array', |
||||
'strip', |
||||
'substr', |
||||
'table_to_xml', |
||||
'table_to_xml_and_xmlschema', |
||||
'tand', |
||||
'text', |
||||
'to_json', |
||||
'to_regclass', |
||||
'to_regnamespace', |
||||
'to_regoper', |
||||
'to_regoperator', |
||||
'to_regproc', |
||||
'to_regprocedure', |
||||
'to_regrole', |
||||
'to_regtype', |
||||
'to_tsquery', |
||||
'to_tsvector', |
||||
'transaction_timestamp', |
||||
'ts_debug', |
||||
'ts_delete', |
||||
'ts_filter', |
||||
'ts_headline', |
||||
'ts_lexize', |
||||
'ts_parse', |
||||
'ts_rank', |
||||
'ts_rank_cd', |
||||
'ts_rewrite', |
||||
'ts_stat', |
||||
'ts_token_type', |
||||
'tsquery_phrase', |
||||
'tsvector_to_array', |
||||
'tsvector_update_trigger', |
||||
'tsvector_update_trigger_column', |
||||
'txid_current', |
||||
'txid_current_snapshot', |
||||
'txid_snapshot_xip', |
||||
'txid_snapshot_xmax', |
||||
'txid_snapshot_xmin', |
||||
'txid_visible_in_snapshot', |
||||
'unnest', |
||||
'upper_inc', |
||||
'upper_inf', |
||||
'variance', |
||||
'width', |
||||
'width_bucket', |
||||
'xml_is_well_formed', |
||||
'xml_is_well_formed_content', |
||||
'xml_is_well_formed_document', |
||||
'xmlagg', |
||||
'xmlcomment', |
||||
'xmlconcat', |
||||
'xmlelement', |
||||
'xmlexists', |
||||
'xmlforest', |
||||
'xmlparse', |
||||
'xmlpi', |
||||
'xmlroot', |
||||
'xmlserialize', |
||||
'xpath', |
||||
'xpath_exists' |
||||
], |
||||
builtinVariables: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
pseudoColumns: [ |
||||
// NOT SUPPORTED
|
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@whitespace' }, |
||||
{ include: '@pseudoColumns' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@complexIdentifiers' }, |
||||
{ include: '@scopes' }, |
||||
[/[;,.]/, 'delimiter'], |
||||
[/[()]/, '@brackets'], |
||||
[ |
||||
/[\w@#$]+/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@operators': 'operator', |
||||
'@builtinVariables': 'predefined', |
||||
'@builtinFunctions': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=!%&+\-*/|~^]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
[/--+.*/, 'comment'], |
||||
[/\/\*/, { token: 'comment.quote', next: '@comment' }] |
||||
], |
||||
comment: [ |
||||
[/[^*/]+/, 'comment'], |
||||
// Not supporting nested comments, as nested comments seem to not be standard?
|
||||
// i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
|
||||
// [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
|
||||
[/\*\//, { token: 'comment.quote', next: '@pop' }], |
||||
[/./, 'comment'] |
||||
], |
||||
pseudoColumns: [ |
||||
[ |
||||
/[$][A-Za-z_][\w@#$]*/, |
||||
{ |
||||
cases: { |
||||
'@pseudoColumns': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*/, 'number'], |
||||
[/[$][+-]*\d*(\.\d*)?/, 'number'], |
||||
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] |
||||
], |
||||
strings: [[/'/, { token: 'string', next: '@string' }]], |
||||
string: [ |
||||
[/[^']+/, 'string'], |
||||
[/''/, 'string'], |
||||
[/'/, { token: 'string', next: '@pop' }] |
||||
], |
||||
complexIdentifiers: [[/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }]], |
||||
quotedIdentifier: [ |
||||
[/[^"]+/, 'identifier'], |
||||
[/""/, 'identifier'], |
||||
[/"/, { token: 'identifier.quote', next: '@pop' }] |
||||
], |
||||
scopes: [ |
||||
// NOT SUPPORTED
|
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,181 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/restructuredtext/restructuredtext',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '<', close: '>', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '(', close: ')' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '`', close: '`' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*<!--\\s*#?region\\b.*-->'), |
||||
end: new RegExp('^\\s*<!--\\s*#?endregion\\b.*-->') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.rst', |
||||
control: /[\\`*_\[\]{}()#+\-\.!]/, |
||||
escapes: /\\(?:@control)/, |
||||
empty: [ |
||||
'area', |
||||
'base', |
||||
'basefont', |
||||
'br', |
||||
'col', |
||||
'frame', |
||||
'hr', |
||||
'img', |
||||
'input', |
||||
'isindex', |
||||
'link', |
||||
'meta', |
||||
'param' |
||||
], |
||||
alphanumerics: /[A-Za-z0-9]/, |
||||
simpleRefNameWithoutBq: /(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/, |
||||
simpleRefName: /(?:`@phrase`|@simpleRefNameWithoutBq)/, |
||||
phrase: /@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/, |
||||
citationName: /[A-Za-z][A-Za-z0-9-_.]*/, |
||||
blockLiteralStart: /(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/, |
||||
precedingChars: /(?:[ -:/'"<([{])/, |
||||
followingChars: /(?:[ -.,:;!?/'")\]}>]|$)/, |
||||
punctuation: /(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/, |
||||
tokenizer: { |
||||
root: [ |
||||
//sections
|
||||
[/^(@punctuation{3,}$){1,1}?/, 'keyword'], |
||||
//line-blocks
|
||||
//No rules on it
|
||||
//bullet-lists
|
||||
[/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/, 'keyword'], |
||||
//literal-blocks
|
||||
[/([ ]::)\s*$/, 'keyword', '@blankLineOfLiteralBlocks'], |
||||
[/(::)\s*$/, 'keyword', '@blankLineOfLiteralBlocks'], |
||||
{ include: '@tables' }, |
||||
{ include: '@explicitMarkupBlocks' }, |
||||
{ include: '@inlineMarkup' } |
||||
], |
||||
explicitMarkupBlocks: [ |
||||
//citations
|
||||
{ include: '@citations' }, |
||||
//footnotes
|
||||
{ include: '@footnotes' }, |
||||
//directives
|
||||
[ |
||||
/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/, |
||||
[{ token: '', next: 'subsequentLines' }, 'keyword', '', ''] |
||||
], |
||||
//hyperlink-targets
|
||||
[ |
||||
/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/, |
||||
[{ token: '', next: 'hyperlinks' }, '', '', 'string.link', '', '', 'string.link'] |
||||
], |
||||
//anonymous-hyperlinks
|
||||
[ |
||||
/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/, |
||||
[{ token: '', next: 'subsequentLines' }, '', '', '', 'string.link'] |
||||
], |
||||
[/^(__\s+)(.+)/, ['', 'string.link']], |
||||
//substitution-definitions
|
||||
[ |
||||
/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/, |
||||
[{ token: '', next: 'subsequentLines' }, '', 'string.link', '', 'keyword', ''], |
||||
'@rawBlocks' |
||||
], |
||||
[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/, ['', 'string.link', '']], |
||||
//comments
|
||||
[/^(\.\.)([ ].*)$/, [{ token: '', next: '@comments' }, 'comment']] |
||||
], |
||||
inlineMarkup: [ |
||||
{ include: '@citationsReference' }, |
||||
{ include: '@footnotesReference' }, |
||||
//hyperlink-references
|
||||
[/(@simpleRefName)(_{1,2})/, ['string.link', '']], |
||||
//embedded-uris-and-aliases
|
||||
[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/, ['', 'string.link', '', 'string.link', '', '', '']], |
||||
//emphasis
|
||||
[/\*\*([^\\*]|\*(?!\*))+\*\*/, 'strong'], |
||||
[/\*[^*]+\*/, 'emphasis'], |
||||
//inline-literals
|
||||
[/(``)((?:[^`]|\`(?!`))+)(``)/, ['', 'keyword', '']], |
||||
[/(__\s+)(.+)/, ['', 'keyword']], |
||||
//interpreted-text
|
||||
[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/, ['', 'keyword', '', '', '']], |
||||
[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/, ['', '', '', 'keyword', '']], |
||||
[/(`)([^`]+)(`)/, ''], |
||||
//inline-internal-targets
|
||||
[/(_`)(@phrase)(`)/, ['', 'string.link', '']] |
||||
], |
||||
citations: [ |
||||
[ |
||||
/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/, |
||||
[{ token: '', next: '@subsequentLines' }, 'string.link', '', ''] |
||||
] |
||||
], |
||||
citationsReference: [[/(\[)(@citationName)(\]_)/, ['', 'string.link', '']]], |
||||
footnotes: [ |
||||
[ |
||||
/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/, |
||||
[{ token: '', next: '@subsequentLines' }, 'string.link', ''] |
||||
], |
||||
[ |
||||
/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/, |
||||
[{ token: '', next: '@subsequentLines' }, 'string.link', '', ''] |
||||
], |
||||
[ |
||||
/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/, |
||||
[{ token: '', next: '@subsequentLines' }, 'string.link', '', ''] |
||||
] |
||||
], |
||||
footnotesReference: [ |
||||
[/(\[)([0-9]+)(\])(_)/, ['', 'string.link', '', '']], |
||||
[/(\[)(#@simpleRefName?)(\])(_)/, ['', 'string.link', '', '']], |
||||
[/(\[)(\*)(\])(_)/, ['', 'string.link', '', '']] |
||||
], |
||||
blankLineOfLiteralBlocks: [ |
||||
[/^$/, '', '@subsequentLinesOfLiteralBlocks'], |
||||
[/^.*$/, '', '@pop'] |
||||
], |
||||
subsequentLinesOfLiteralBlocks: [ |
||||
[/(@blockLiteralStart+)(.*)/, ['keyword', '']], |
||||
[/^(?!blockLiteralStart)/, '', '@popall'] |
||||
], |
||||
subsequentLines: [ |
||||
[/^[\s]+.*/, ''], |
||||
[/^(?!\s)/, '', '@pop'] |
||||
], |
||||
hyperlinks: [ |
||||
[/^[\s]+.*/, 'string.link'], |
||||
[/^(?!\s)/, '', '@pop'] |
||||
], |
||||
comments: [ |
||||
[/^[\s]+.*/, 'comment'], |
||||
[/^(?!\s)/, '', '@pop'] |
||||
], |
||||
tables: [ |
||||
[/\+-[+-]+/, 'keyword'], |
||||
[/\+=[+=]+/, 'keyword'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,544 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/ruby/ruby',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#', |
||||
blockComment: ['=begin', '=end'] |
||||
}, |
||||
brackets: [ |
||||
['(', ')'], |
||||
['{', '}'], |
||||
['[', ']'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
indentationRules: { |
||||
increaseIndentPattern: new RegExp('^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|\'|/).*\\4)*(#.*)?$'), |
||||
decreaseIndentPattern: new RegExp('^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)') |
||||
} |
||||
}; |
||||
/* |
||||
* Ruby language definition |
||||
* |
||||
* Quite a complex language due to elaborate escape sequences |
||||
* and quoting of literate strings/regular expressions, and |
||||
* an 'end' keyword that does not always apply to modifiers like until and while, |
||||
* and a 'do' keyword that sometimes starts a block, but sometimes is part of |
||||
* another statement (like 'while'). |
||||
* |
||||
* (1) end blocks: |
||||
* 'end' may end declarations like if or until, but sometimes 'if' or 'until' |
||||
* are modifiers where there is no 'end'. Also, 'do' sometimes starts a block |
||||
* that is ended by 'end', but sometimes it is part of a 'while', 'for', or 'until' |
||||
* To do proper brace matching we do some elaborate state manipulation. |
||||
* some examples: |
||||
* |
||||
* until bla do |
||||
* work until tired |
||||
* list.each do |
||||
* something if test |
||||
* end |
||||
* end |
||||
* |
||||
* or |
||||
* |
||||
* if test |
||||
* something (if test then x end) |
||||
* bar if bla |
||||
* end |
||||
* |
||||
* or, how about using class as a property.. |
||||
* |
||||
* class Test |
||||
* def endpoint |
||||
* self.class.endpoint || routes |
||||
* end |
||||
* end |
||||
* |
||||
* (2) quoting: |
||||
* there are many kinds of strings and escape sequences. But also, one can |
||||
* start many string-like things as '%qx' where q specifies the kind of string |
||||
* (like a command, escape expanded, regular expression, symbol etc.), and x is |
||||
* some character and only another 'x' ends the sequence. Except for brackets |
||||
* where the closing bracket ends the sequence.. and except for a nested bracket |
||||
* inside the string like entity. Also, such strings can contain interpolated |
||||
* ruby expressions again (and span multiple lines). Moreover, expanded |
||||
* regular expression can also contain comments. |
||||
*/ |
||||
exports.language = { |
||||
tokenPostfix: '.ruby', |
||||
keywords: [ |
||||
'__LINE__', |
||||
'__ENCODING__', |
||||
'__FILE__', |
||||
'BEGIN', |
||||
'END', |
||||
'alias', |
||||
'and', |
||||
'begin', |
||||
'break', |
||||
'case', |
||||
'class', |
||||
'def', |
||||
'defined?', |
||||
'do', |
||||
'else', |
||||
'elsif', |
||||
'end', |
||||
'ensure', |
||||
'for', |
||||
'false', |
||||
'if', |
||||
'in', |
||||
'module', |
||||
'next', |
||||
'nil', |
||||
'not', |
||||
'or', |
||||
'redo', |
||||
'rescue', |
||||
'retry', |
||||
'return', |
||||
'self', |
||||
'super', |
||||
'then', |
||||
'true', |
||||
'undef', |
||||
'unless', |
||||
'until', |
||||
'when', |
||||
'while', |
||||
'yield' |
||||
], |
||||
keywordops: ['::', '..', '...', '?', ':', '=>'], |
||||
builtins: [ |
||||
'require', |
||||
'public', |
||||
'private', |
||||
'include', |
||||
'extend', |
||||
'attr_reader', |
||||
'protected', |
||||
'private_class_method', |
||||
'protected_class_method', |
||||
'new' |
||||
], |
||||
// these are closed by 'end' (if, while and until are handled separately)
|
||||
declarations: [ |
||||
'module', |
||||
'class', |
||||
'def', |
||||
'case', |
||||
'do', |
||||
'begin', |
||||
'for', |
||||
'if', |
||||
'while', |
||||
'until', |
||||
'unless' |
||||
], |
||||
linedecls: ['def', 'case', 'do', 'begin', 'for', 'if', 'while', 'until', 'unless'], |
||||
operators: [ |
||||
'^', |
||||
'&', |
||||
'|', |
||||
'<=>', |
||||
'==', |
||||
'===', |
||||
'!~', |
||||
'=~', |
||||
'>', |
||||
'>=', |
||||
'<', |
||||
'<=', |
||||
'<<', |
||||
'>>', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'**', |
||||
'~', |
||||
'+@', |
||||
'-@', |
||||
'[]', |
||||
'[]=', |
||||
'`', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'**=', |
||||
'/=', |
||||
'^=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'&=', |
||||
'&&=', |
||||
'||=', |
||||
'|=' |
||||
], |
||||
brackets: [ |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' } |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%\.]+/, |
||||
// escape sequences
|
||||
escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/, |
||||
escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/, |
||||
decpart: /\d(_?\d)*/, |
||||
decimal: /0|@decpart/, |
||||
delim: /[^a-zA-Z0-9\s\n\r]/, |
||||
heredelim: /(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/, |
||||
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, |
||||
regexpesc: /\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
// Main entry.
|
||||
// root.<decl> where decl is the current opening declaration (like 'class')
|
||||
root: [ |
||||
// identifiers and keywords
|
||||
// most complexity here is due to matching 'end' correctly with declarations.
|
||||
// We distinguish a declaration that comes first on a line, versus declarations further on a line (which are most likey modifiers)
|
||||
[ |
||||
/^(\s*)([a-z_]\w*[!?=]?)/, |
||||
[ |
||||
'white', |
||||
{ |
||||
cases: { |
||||
'for|until|while': { |
||||
token: 'keyword.$2', |
||||
next: '@dodecl.$2' |
||||
}, |
||||
'@declarations': { |
||||
token: 'keyword.$2', |
||||
next: '@root.$2' |
||||
}, |
||||
end: { token: 'keyword.$S2', next: '@pop' }, |
||||
'@keywords': 'keyword', |
||||
'@builtins': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
[ |
||||
/[a-z_]\w*[!?=]?/, |
||||
{ |
||||
cases: { |
||||
'if|unless|while|until': { |
||||
token: 'keyword.$0x', |
||||
next: '@modifier.$0x' |
||||
}, |
||||
for: { token: 'keyword.$2', next: '@dodecl.$2' }, |
||||
'@linedecls': { token: 'keyword.$0', next: '@root.$0' }, |
||||
end: { token: 'keyword.$S2', next: '@pop' }, |
||||
'@keywords': 'keyword', |
||||
'@builtins': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[A-Z][\w]*[!?=]?/, 'constructor.identifier'], |
||||
[/\$[\w]*/, 'global.constant'], |
||||
[/@[\w]*/, 'namespace.instance.identifier'], |
||||
[/@@@[\w]*/, 'namespace.class.identifier'], |
||||
// here document
|
||||
[/<<[-~](@heredelim).*/, { token: 'string.heredoc.delimiter', next: '@heredoc.$1' }], |
||||
[/[ \t\r\n]+<<(@heredelim).*/, { token: 'string.heredoc.delimiter', next: '@heredoc.$1' }], |
||||
[/^<<(@heredelim).*/, { token: 'string.heredoc.delimiter', next: '@heredoc.$1' }], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// strings
|
||||
[/"/, { token: 'string.d.delim', next: '@dstring.d."' }], |
||||
[/'/, { token: 'string.sq.delim', next: '@sstring.sq' }], |
||||
// % literals. For efficiency, rematch in the 'pstring' state
|
||||
[/%([rsqxwW]|Q?)/, { token: '@rematch', next: 'pstring' }], |
||||
// commands and symbols
|
||||
[/`/, { token: 'string.x.delim', next: '@dstring.x.`' }], |
||||
[/:(\w|[$@])\w*[!?=]?/, 'string.s'], |
||||
[/:"/, { token: 'string.s.delim', next: '@dstring.s."' }], |
||||
[/:'/, { token: 'string.s.delim', next: '@sstring.s' }], |
||||
// regular expressions. Lookahead for a (not escaped) closing forwardslash on the same line
|
||||
[/\/(?=(\\\/|[^\/\n])+\/)/, { token: 'regexp.delim', next: '@regexp' }], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@keywordops': 'keyword', |
||||
'@operators': 'operator', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
[/[;,]/, 'delimiter'], |
||||
// numbers
|
||||
[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, 'number.hex'], |
||||
[/0[_oO][0-7](_?[0-7])*/, 'number.octal'], |
||||
[/0[bB][01](_?[01])*/, 'number.binary'], |
||||
[/0[dD]@decpart/, 'number'], |
||||
[ |
||||
/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/, |
||||
{ |
||||
cases: { |
||||
$1: 'number.float', |
||||
'@default': 'number' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// used to not treat a 'do' as a block opener if it occurs on the same
|
||||
// line as a 'do' statement: 'while|until|for'
|
||||
// dodecl.<decl> where decl is the declarations started, like 'while'
|
||||
dodecl: [ |
||||
[/^/, { token: '', switchTo: '@root.$S2' }], |
||||
[ |
||||
/[a-z_]\w*[!?=]?/, |
||||
{ |
||||
cases: { |
||||
end: { token: 'keyword.$S2', next: '@pop' }, |
||||
do: { token: 'keyword', switchTo: '@root.$S2' }, |
||||
'@linedecls': { |
||||
token: '@rematch', |
||||
switchTo: '@root.$S2' |
||||
}, |
||||
'@keywords': 'keyword', |
||||
'@builtins': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@root' } |
||||
], |
||||
// used to prevent potential modifiers ('if|until|while|unless') to match
|
||||
// with 'end' keywords.
|
||||
// modifier.<decl>x where decl is the declaration starter, like 'if'
|
||||
modifier: [ |
||||
[/^/, '', '@pop'], |
||||
[ |
||||
/[a-z_]\w*[!?=]?/, |
||||
{ |
||||
cases: { |
||||
end: { token: 'keyword.$S2', next: '@pop' }, |
||||
'then|else|elsif|do': { |
||||
token: 'keyword', |
||||
switchTo: '@root.$S2' |
||||
}, |
||||
'@linedecls': { |
||||
token: '@rematch', |
||||
switchTo: '@root.$S2' |
||||
}, |
||||
'@keywords': 'keyword', |
||||
'@builtins': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@root' } |
||||
], |
||||
// single quote strings (also used for symbols)
|
||||
// sstring.<kind> where kind is 'sq' (single quote) or 's' (symbol)
|
||||
sstring: [ |
||||
[/[^\\']+/, 'string.$S2'], |
||||
[/\\\\|\\'|\\$/, 'string.$S2.escape'], |
||||
[/\\./, 'string.$S2.invalid'], |
||||
[/'/, { token: 'string.$S2.delim', next: '@pop' }] |
||||
], |
||||
// double quoted "string".
|
||||
// dstring.<kind>.<delim> where kind is 'd' (double quoted), 'x' (command), or 's' (symbol)
|
||||
// and delim is the ending delimiter (" or `)
|
||||
dstring: [ |
||||
[/[^\\`"#]+/, 'string.$S2'], |
||||
[/#/, 'string.$S2.escape', '@interpolated'], |
||||
[/\\$/, 'string.$S2.escape'], |
||||
[/@escapes/, 'string.$S2.escape'], |
||||
[/\\./, 'string.$S2.escape.invalid'], |
||||
[ |
||||
/[`"]/, |
||||
{ |
||||
cases: { |
||||
'$#==$S3': { token: 'string.$S2.delim', next: '@pop' }, |
||||
'@default': 'string.$S2' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// literal documents
|
||||
// heredoc.<close> where close is the closing delimiter
|
||||
heredoc: [ |
||||
[ |
||||
/^(\s*)(@heredelim)$/, |
||||
{ |
||||
cases: { |
||||
'$2==$S2': ['string.heredoc', { token: 'string.heredoc.delimiter', next: '@pop' }], |
||||
'@default': ['string.heredoc', 'string.heredoc'] |
||||
} |
||||
} |
||||
], |
||||
[/.*/, 'string.heredoc'] |
||||
], |
||||
// interpolated sequence
|
||||
interpolated: [ |
||||
[/\$\w*/, 'global.constant', '@pop'], |
||||
[/@\w*/, 'namespace.class.identifier', '@pop'], |
||||
[/@@@\w*/, 'namespace.instance.identifier', '@pop'], |
||||
[ |
||||
/[{]/, |
||||
{ |
||||
token: 'string.escape.curly', |
||||
switchTo: '@interpolated_compound' |
||||
} |
||||
], |
||||
['', '', '@pop'] // just a # is interpreted as a #
|
||||
], |
||||
// any code
|
||||
interpolated_compound: [ |
||||
[/[}]/, { token: 'string.escape.curly', next: '@pop' }], |
||||
{ include: '@root' } |
||||
], |
||||
// %r quoted regexp
|
||||
// pregexp.<open>.<close> where open/close are the open/close delimiter
|
||||
pregexp: [ |
||||
{ include: '@whitespace' }, |
||||
// turns out that you can quote using regex control characters, aargh!
|
||||
// for example; %r|kgjgaj| is ok (even though | is used for alternation)
|
||||
// so, we need to match those first
|
||||
[ |
||||
/[^\(\{\[\\]/, |
||||
{ |
||||
cases: { |
||||
'$#==$S3': { token: 'regexp.delim', next: '@pop' }, |
||||
'$#==$S2': { token: 'regexp.delim', next: '@push' }, |
||||
'~[)}\\]]': '@brackets.regexp.escape.control', |
||||
'~@regexpctl': 'regexp.escape.control', |
||||
'@default': 'regexp' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@regexcontrol' } |
||||
], |
||||
// We match regular expression quite precisely
|
||||
regexp: [ |
||||
{ include: '@regexcontrol' }, |
||||
[/[^\\\/]/, 'regexp'], |
||||
['/[ixmp]*', { token: 'regexp.delim' }, '@pop'] |
||||
], |
||||
regexcontrol: [ |
||||
[ |
||||
/(\{)(\d+(?:,\d*)?)(\})/, |
||||
[ |
||||
'@brackets.regexp.escape.control', |
||||
'regexp.escape.control', |
||||
'@brackets.regexp.escape.control' |
||||
] |
||||
], |
||||
[ |
||||
/(\[)(\^?)/, |
||||
['@brackets.regexp.escape.control', { token: 'regexp.escape.control', next: '@regexrange' }] |
||||
], |
||||
[/(\()(\?[:=!])/, ['@brackets.regexp.escape.control', 'regexp.escape.control']], |
||||
[/\(\?#/, { token: 'regexp.escape.control', next: '@regexpcomment' }], |
||||
[/[()]/, '@brackets.regexp.escape.control'], |
||||
[/@regexpctl/, 'regexp.escape.control'], |
||||
[/\\$/, 'regexp.escape'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/\\\./, 'regexp.invalid'], |
||||
[/#/, 'regexp.escape', '@interpolated'] |
||||
], |
||||
regexrange: [ |
||||
[/-/, 'regexp.escape.control'], |
||||
[/\^/, 'regexp.invalid'], |
||||
[/\\$/, 'regexp.escape'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/[^\]]/, 'regexp'], |
||||
[/\]/, '@brackets.regexp.escape.control', '@pop'] |
||||
], |
||||
regexpcomment: [ |
||||
[/[^)]+/, 'comment'], |
||||
[/\)/, { token: 'regexp.escape.control', next: '@pop' }] |
||||
], |
||||
// % quoted strings
|
||||
// A bit repetitive since we need to often special case the kind of ending delimiter
|
||||
pstring: [ |
||||
[/%([qws])\(/, { token: 'string.$1.delim', switchTo: '@qstring.$1.(.)' }], |
||||
[/%([qws])\[/, { token: 'string.$1.delim', switchTo: '@qstring.$1.[.]' }], |
||||
[/%([qws])\{/, { token: 'string.$1.delim', switchTo: '@qstring.$1.{.}' }], |
||||
[/%([qws])</, { token: 'string.$1.delim', switchTo: '@qstring.$1.<.>' }], |
||||
[/%([qws])(@delim)/, { token: 'string.$1.delim', switchTo: '@qstring.$1.$2.$2' }], |
||||
[/%r\(/, { token: 'regexp.delim', switchTo: '@pregexp.(.)' }], |
||||
[/%r\[/, { token: 'regexp.delim', switchTo: '@pregexp.[.]' }], |
||||
[/%r\{/, { token: 'regexp.delim', switchTo: '@pregexp.{.}' }], |
||||
[/%r</, { token: 'regexp.delim', switchTo: '@pregexp.<.>' }], |
||||
[/%r(@delim)/, { token: 'regexp.delim', switchTo: '@pregexp.$1.$1' }], |
||||
[/%(x|W|Q?)\(/, { token: 'string.$1.delim', switchTo: '@qqstring.$1.(.)' }], |
||||
[/%(x|W|Q?)\[/, { token: 'string.$1.delim', switchTo: '@qqstring.$1.[.]' }], |
||||
[/%(x|W|Q?)\{/, { token: 'string.$1.delim', switchTo: '@qqstring.$1.{.}' }], |
||||
[/%(x|W|Q?)</, { token: 'string.$1.delim', switchTo: '@qqstring.$1.<.>' }], |
||||
[/%(x|W|Q?)(@delim)/, { token: 'string.$1.delim', switchTo: '@qqstring.$1.$2.$2' }], |
||||
[/%([rqwsxW]|Q?)./, { token: 'invalid', next: '@pop' }], |
||||
[/./, { token: 'invalid', next: '@pop' }] // recover
|
||||
], |
||||
// non-expanded quoted string.
|
||||
// qstring.<kind>.<open>.<close>
|
||||
// kind = q|w|s (single quote, array, symbol)
|
||||
// open = open delimiter
|
||||
// close = close delimiter
|
||||
qstring: [ |
||||
[/\\$/, 'string.$S2.escape'], |
||||
[/\\./, 'string.$S2.escape'], |
||||
[ |
||||
/./, |
||||
{ |
||||
cases: { |
||||
'$#==$S4': { token: 'string.$S2.delim', next: '@pop' }, |
||||
'$#==$S3': { token: 'string.$S2.delim', next: '@push' }, |
||||
'@default': 'string.$S2' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// expanded quoted string.
|
||||
// qqstring.<kind>.<open>.<close>
|
||||
// kind = Q|W|x (double quote, array, command)
|
||||
// open = open delimiter
|
||||
// close = close delimiter
|
||||
qqstring: [[/#/, 'string.$S2.escape', '@interpolated'], { include: '@qstring' }], |
||||
// whitespace & comments
|
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/^\s*=begin\b/, 'comment', '@comment'], |
||||
[/#.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^=]+/, 'comment'], |
||||
[/^\s*=begin\b/, 'comment.invalid'], |
||||
[/^\s*=end\b.*/, 'comment', '@pop'], |
||||
[/[=]/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,350 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/rust/rust',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#pragma\\s+region\\b'), |
||||
end: new RegExp('^\\s*#pragma\\s+endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
tokenPostfix: '.rust', |
||||
defaultToken: 'invalid', |
||||
keywords: [ |
||||
'as', |
||||
'async', |
||||
'await', |
||||
'box', |
||||
'break', |
||||
'const', |
||||
'continue', |
||||
'crate', |
||||
'dyn', |
||||
'else', |
||||
'enum', |
||||
'extern', |
||||
'false', |
||||
'fn', |
||||
'for', |
||||
'if', |
||||
'impl', |
||||
'in', |
||||
'let', |
||||
'loop', |
||||
'match', |
||||
'mod', |
||||
'move', |
||||
'mut', |
||||
'pub', |
||||
'ref', |
||||
'return', |
||||
'self', |
||||
'static', |
||||
'struct', |
||||
'super', |
||||
'trait', |
||||
'true', |
||||
'try', |
||||
'type', |
||||
'unsafe', |
||||
'use', |
||||
'where', |
||||
'while', |
||||
'catch', |
||||
'default', |
||||
'union', |
||||
'static', |
||||
'abstract', |
||||
'alignof', |
||||
'become', |
||||
'do', |
||||
'final', |
||||
'macro', |
||||
'offsetof', |
||||
'override', |
||||
'priv', |
||||
'proc', |
||||
'pure', |
||||
'sizeof', |
||||
'typeof', |
||||
'unsized', |
||||
'virtual', |
||||
'yield' |
||||
], |
||||
typeKeywords: [ |
||||
'Self', |
||||
'm32', |
||||
'm64', |
||||
'm128', |
||||
'f80', |
||||
'f16', |
||||
'f128', |
||||
'int', |
||||
'uint', |
||||
'float', |
||||
'char', |
||||
'bool', |
||||
'u8', |
||||
'u16', |
||||
'u32', |
||||
'u64', |
||||
'f32', |
||||
'f64', |
||||
'i8', |
||||
'i16', |
||||
'i32', |
||||
'i64', |
||||
'str', |
||||
'Option', |
||||
'Either', |
||||
'c_float', |
||||
'c_double', |
||||
'c_void', |
||||
'FILE', |
||||
'fpos_t', |
||||
'DIR', |
||||
'dirent', |
||||
'c_char', |
||||
'c_schar', |
||||
'c_uchar', |
||||
'c_short', |
||||
'c_ushort', |
||||
'c_int', |
||||
'c_uint', |
||||
'c_long', |
||||
'c_ulong', |
||||
'size_t', |
||||
'ptrdiff_t', |
||||
'clock_t', |
||||
'time_t', |
||||
'c_longlong', |
||||
'c_ulonglong', |
||||
'intptr_t', |
||||
'uintptr_t', |
||||
'off_t', |
||||
'dev_t', |
||||
'ino_t', |
||||
'pid_t', |
||||
'mode_t', |
||||
'ssize_t' |
||||
], |
||||
constants: ['true', 'false', 'Some', 'None', 'Left', 'Right', 'Ok', 'Err'], |
||||
supportConstants: [ |
||||
'EXIT_FAILURE', |
||||
'EXIT_SUCCESS', |
||||
'RAND_MAX', |
||||
'EOF', |
||||
'SEEK_SET', |
||||
'SEEK_CUR', |
||||
'SEEK_END', |
||||
'_IOFBF', |
||||
'_IONBF', |
||||
'_IOLBF', |
||||
'BUFSIZ', |
||||
'FOPEN_MAX', |
||||
'FILENAME_MAX', |
||||
'L_tmpnam', |
||||
'TMP_MAX', |
||||
'O_RDONLY', |
||||
'O_WRONLY', |
||||
'O_RDWR', |
||||
'O_APPEND', |
||||
'O_CREAT', |
||||
'O_EXCL', |
||||
'O_TRUNC', |
||||
'S_IFIFO', |
||||
'S_IFCHR', |
||||
'S_IFBLK', |
||||
'S_IFDIR', |
||||
'S_IFREG', |
||||
'S_IFMT', |
||||
'S_IEXEC', |
||||
'S_IWRITE', |
||||
'S_IREAD', |
||||
'S_IRWXU', |
||||
'S_IXUSR', |
||||
'S_IWUSR', |
||||
'S_IRUSR', |
||||
'F_OK', |
||||
'R_OK', |
||||
'W_OK', |
||||
'X_OK', |
||||
'STDIN_FILENO', |
||||
'STDOUT_FILENO', |
||||
'STDERR_FILENO' |
||||
], |
||||
supportMacros: [ |
||||
'format!', |
||||
'print!', |
||||
'println!', |
||||
'panic!', |
||||
'format_args!', |
||||
'unreachable!', |
||||
'write!', |
||||
'writeln!' |
||||
], |
||||
operators: [ |
||||
'!', |
||||
'!=', |
||||
'%', |
||||
'%=', |
||||
'&', |
||||
'&=', |
||||
'&&', |
||||
'*', |
||||
'*=', |
||||
'+', |
||||
'+=', |
||||
'-', |
||||
'-=', |
||||
'->', |
||||
'.', |
||||
'..', |
||||
'...', |
||||
'/', |
||||
'/=', |
||||
':', |
||||
';', |
||||
'<<', |
||||
'<<=', |
||||
'<', |
||||
'<=', |
||||
'=', |
||||
'==', |
||||
'=>', |
||||
'>', |
||||
'>=', |
||||
'>>', |
||||
'>>=', |
||||
'@', |
||||
'^', |
||||
'^=', |
||||
'|', |
||||
'|=', |
||||
'||', |
||||
'_', |
||||
'?', |
||||
'#' |
||||
], |
||||
escapes: /\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/, |
||||
delimiters: /[,]/, |
||||
symbols: /[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/, |
||||
intSuffixes: /[iu](8|16|32|64|128|size)/, |
||||
floatSuffixes: /f(32|64)/, |
||||
tokenizer: { |
||||
root: [ |
||||
// Raw string literals
|
||||
[/r(#*)"/, { token: 'string.quote', bracket: '@open', next: '@stringraw.$1' }], |
||||
[ |
||||
/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/, |
||||
{ |
||||
cases: { |
||||
'@typeKeywords': 'keyword.type', |
||||
'@keywords': 'keyword', |
||||
'@supportConstants': 'keyword', |
||||
'@supportMacros': 'keyword', |
||||
'@constants': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// Designator
|
||||
[/\$/, 'identifier'], |
||||
// Lifetime annotations
|
||||
[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/, 'identifier'], |
||||
// Byte literal
|
||||
[/'(\S|@escapes)'/, 'string.byteliteral'], |
||||
// Strings
|
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@string' }], |
||||
{ include: '@numbers' }, |
||||
// Whitespace + comments
|
||||
{ include: '@whitespace' }, |
||||
[ |
||||
/@delimiters/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'delimiter' |
||||
} |
||||
} |
||||
], |
||||
[/[{}()\[\]<>]/, '@brackets'], |
||||
[/@symbols/, { cases: { '@operators': 'operator', '@default': '' } }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\/\*/, 'comment', '@push'], |
||||
['\\*/', 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
stringraw: [ |
||||
[/[^"#]+/, { token: 'string' }], |
||||
[ |
||||
/"(#*)/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': { token: 'string.quote', bracket: '@close', next: '@pop' }, |
||||
'@default': { token: 'string' } |
||||
} |
||||
} |
||||
], |
||||
[/["#]/, { token: 'string' }] |
||||
], |
||||
numbers: [ |
||||
//Octal
|
||||
[/(0o[0-7_]+)(@intSuffixes)?/, { token: 'number' }], |
||||
//Binary
|
||||
[/(0b[0-1_]+)(@intSuffixes)?/, { token: 'number' }], |
||||
//Exponent
|
||||
[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/, { token: 'number' }], |
||||
//Float
|
||||
[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/, { token: 'number' }], |
||||
//Hexadecimal
|
||||
[/(0x[\da-fA-F]+)_?(@intSuffixes)?/, { token: 'number' }], |
||||
//Integer
|
||||
[/[\d][\d_]*(@intSuffixes?)?/, { token: 'number' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,121 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/sb/sb',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: "'" |
||||
}, |
||||
brackets: [ |
||||
['(', ')'], |
||||
['[', ']'], |
||||
['If', 'EndIf'], |
||||
['While', 'EndWhile'], |
||||
['For', 'EndFor'], |
||||
['Sub', 'EndSub'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.sb', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ token: 'delimiter.array', open: '[', close: ']' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
// Special bracket statement pairs
|
||||
{ token: 'keyword.tag-if', open: 'If', close: 'EndIf' }, |
||||
{ token: 'keyword.tag-while', open: 'While', close: 'EndWhile' }, |
||||
{ token: 'keyword.tag-for', open: 'For', close: 'EndFor' }, |
||||
{ token: 'keyword.tag-sub', open: 'Sub', close: 'EndSub' } |
||||
], |
||||
keywords: [ |
||||
'Else', |
||||
'ElseIf', |
||||
'EndFor', |
||||
'EndIf', |
||||
'EndSub', |
||||
'EndWhile', |
||||
'For', |
||||
'Goto', |
||||
'If', |
||||
'Step', |
||||
'Sub', |
||||
'Then', |
||||
'To', |
||||
'While' |
||||
], |
||||
tagwords: ['If', 'Sub', 'While', 'For'], |
||||
operators: ['>', '<', '<>', '<=', '>=', 'And', 'Or', '+', '-', '*', '/', '='], |
||||
// we include these common regular expressions
|
||||
identifier: /[a-zA-Z_][\w]*/, |
||||
symbols: /[=><:+\-*\/%\.,]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// classes
|
||||
[/(@identifier)(?=[.])/, 'type'], |
||||
// identifiers, tagwords, and keywords
|
||||
[ |
||||
/@identifier/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@operators': 'operator', |
||||
'@default': 'variable.name' |
||||
} |
||||
} |
||||
], |
||||
// methods, properties, and events
|
||||
[ |
||||
/([.])(@identifier)/, |
||||
{ |
||||
cases: { |
||||
$2: ['delimiter', 'type.member'], |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\.\d+/, 'number.float'], |
||||
[/\d+/, 'number'], |
||||
// delimiters and operators
|
||||
[/[()\[\]]/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator', |
||||
'@default': 'delimiter' |
||||
} |
||||
} |
||||
], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/(\').*$/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"C?/, 'string', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,376 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/scala/scala',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
/* |
||||
* `...` is allowed as an identifier. |
||||
* $ is allowed in identifiers. |
||||
* unary_<op> is allowed as an identifier. |
||||
* <name>_= is allowed as an identifier. |
||||
*/ |
||||
wordPattern: /(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))'), |
||||
end: new RegExp('^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
tokenPostfix: '.scala', |
||||
// We can't easily add everything from Dotty, but we can at least add some of its keywords
|
||||
keywords: [ |
||||
'asInstanceOf', |
||||
'catch', |
||||
'class', |
||||
'classOf', |
||||
'def', |
||||
'do', |
||||
'else', |
||||
'extends', |
||||
'finally', |
||||
'for', |
||||
'foreach', |
||||
'forSome', |
||||
'if', |
||||
'import', |
||||
'isInstanceOf', |
||||
'macro', |
||||
'match', |
||||
'new', |
||||
'object', |
||||
'package', |
||||
'return', |
||||
'throw', |
||||
'trait', |
||||
'try', |
||||
'type', |
||||
'until', |
||||
'val', |
||||
'var', |
||||
'while', |
||||
'with', |
||||
'yield', |
||||
// Dotty-specific:
|
||||
'given', |
||||
'enum', |
||||
'then' |
||||
], |
||||
// Dotty-specific:
|
||||
softKeywords: ['as', 'export', 'extension', 'end', 'derives', 'on'], |
||||
constants: ['true', 'false', 'null', 'this', 'super'], |
||||
modifiers: [ |
||||
'abstract', |
||||
'final', |
||||
'implicit', |
||||
'lazy', |
||||
'override', |
||||
'private', |
||||
'protected', |
||||
'sealed' |
||||
], |
||||
// Dotty-specific:
|
||||
softModifiers: ['inline', 'opaque', 'open', 'transparent', 'using'], |
||||
name: /(?:[a-z_$][\w$]*|`[^`]+`)/, |
||||
type: /(?:[A-Z][\w$]*)/, |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/^\\%@#]+/, |
||||
digits: /\d+(_+\d+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
// C# style strings
|
||||
escapes: /\\(?:[btnfr\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
fstring_conv: /[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// strings
|
||||
[/\braw"""/, { token: 'string.quote', bracket: '@open', next: '@rawstringt' }], |
||||
[/\braw"/, { token: 'string.quote', bracket: '@open', next: '@rawstring' }], |
||||
[/\bs"""/, { token: 'string.quote', bracket: '@open', next: '@sstringt' }], |
||||
[/\bs"/, { token: 'string.quote', bracket: '@open', next: '@sstring' }], |
||||
[/\bf""""/, { token: 'string.quote', bracket: '@open', next: '@fstringt' }], |
||||
[/\bf"/, { token: 'string.quote', bracket: '@open', next: '@fstring' }], |
||||
[/"""/, { token: 'string.quote', bracket: '@open', next: '@stringt' }], |
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@string' }], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, 'number.float', '@allowMethod'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, 'number.float', '@allowMethod'], |
||||
[/0[xX](@hexdigits)[Ll]?/, 'number.hex', '@allowMethod'], |
||||
[/(@digits)[fFdD]/, 'number.float', '@allowMethod'], |
||||
[/(@digits)[lL]?/, 'number', '@allowMethod'], |
||||
[/\b_\*/, 'key'], |
||||
[/\b(_)\b/, 'keyword', '@allowMethod'], |
||||
// identifiers and keywords
|
||||
[/\bimport\b/, 'keyword', '@import'], |
||||
[/\b(case)([ \t]+)(class)\b/, ['keyword.modifier', 'white', 'keyword']], |
||||
[/\bcase\b/, 'keyword', '@case'], |
||||
[/\bva[lr]\b/, 'keyword', '@vardef'], |
||||
[ |
||||
/\b(def)([ \t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/, |
||||
['keyword', 'white', 'identifier'] |
||||
], |
||||
[/@name(?=[ \t]*:(?!:))/, 'variable'], |
||||
[/(\.)(@name|@symbols)/, ['operator', { token: '@rematch', next: '@allowMethod' }]], |
||||
[/([{(])(\s*)(@name(?=\s*=>))/, ['@brackets', 'white', 'variable']], |
||||
[ |
||||
/@name/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@softKeywords': 'keyword', |
||||
'@modifiers': 'keyword.modifier', |
||||
'@softModifiers': 'keyword.modifier', |
||||
'@constants': { |
||||
token: 'constant', |
||||
next: '@allowMethod' |
||||
}, |
||||
'@default': { |
||||
token: 'identifier', |
||||
next: '@allowMethod' |
||||
} |
||||
} |
||||
} |
||||
], |
||||
[/@type/, 'type', '@allowMethod'], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// @ annotations.
|
||||
[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/, 'annotation'], |
||||
// delimiters and operators
|
||||
[/[{(]/, '@brackets'], |
||||
[/[})]/, '@brackets', '@allowMethod'], |
||||
[/\[/, 'operator.square'], |
||||
[/](?!\s*(?:va[rl]|def|type)\b)/, 'operator.square', '@allowMethod'], |
||||
[/]/, 'operator.square'], |
||||
[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/, 'keyword'], |
||||
[/@symbols/, 'operator'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,\.]/, 'delimiter'], |
||||
// symbols
|
||||
[/'[a-zA-Z$][\w$]*(?!')/, 'attribute.name'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string', '@allowMethod'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', { token: 'string', next: '@allowMethod' }]], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
import: [ |
||||
[/;/, 'delimiter', '@pop'], |
||||
[/^|$/, '', '@pop'], |
||||
[/[ \t]+/, 'white'], |
||||
[/[\n\r]+/, 'white', '@pop'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/@name|@type/, 'type'], |
||||
[/[(){}]/, '@brackets'], |
||||
[/[[\]]/, 'operator.square'], |
||||
[/[\.,]/, 'delimiter'] |
||||
], |
||||
allowMethod: [ |
||||
[/^|$/, '', '@pop'], |
||||
[/[ \t]+/, 'white'], |
||||
[/[\n\r]+/, 'white', '@pop'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/(?==>[\s\w([{])/, 'keyword', '@pop'], |
||||
[ |
||||
/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword', next: '@pop' }, |
||||
'->|<-|>:|<:|<%': { token: 'keyword', next: '@pop' }, |
||||
'@default': { token: '@rematch', next: '@pop' } |
||||
} |
||||
} |
||||
], |
||||
['', '', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\/\*/, 'comment', '@push'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
case: [ |
||||
[/\b_\*/, 'key'], |
||||
[/\b(_|true|false|null|this|super)\b/, 'keyword', '@allowMethod'], |
||||
[/\bif\b|=>/, 'keyword', '@pop'], |
||||
[/`[^`]+`/, 'identifier', '@allowMethod'], |
||||
[/@name/, 'variable', '@allowMethod'], |
||||
[/:::?|\||@(?![a-z_$])/, 'keyword'], |
||||
{ include: '@root' } |
||||
], |
||||
vardef: [ |
||||
[/\b_\*/, 'key'], |
||||
[/\b(_|true|false|null|this|super)\b/, 'keyword'], |
||||
[/@name/, 'variable'], |
||||
[/:::?|\||@(?![a-z_$])/, 'keyword'], |
||||
[/=|:(?!:)/, 'operator', '@pop'], |
||||
[/$/, 'white', '@pop'], |
||||
{ include: '@root' } |
||||
], |
||||
string: [ |
||||
[/[^\\"\n\r]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[ |
||||
/"/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
] |
||||
], |
||||
stringt: [ |
||||
[/[^\\"\n\r]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"(?=""")/, 'string'], |
||||
[ |
||||
/"""/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
], |
||||
[/"/, 'string'] |
||||
], |
||||
fstring: [ |
||||
[/@escapes/, 'string.escape'], |
||||
[ |
||||
/"/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
], |
||||
[/\$\$/, 'string'], |
||||
[/(\$)([a-z_]\w*)/, ['operator', 'identifier']], |
||||
[/\$\{/, 'operator', '@interp'], |
||||
[/%%/, 'string'], |
||||
[ |
||||
/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, |
||||
['metatag', 'keyword.modifier', 'number', 'metatag'] |
||||
], |
||||
[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, ['metatag', 'number', 'metatag']], |
||||
[/(%)([\-#+ 0,(])(@fstring_conv)/, ['metatag', 'keyword.modifier', 'metatag']], |
||||
[/(%)(@fstring_conv)/, ['metatag', 'metatag']], |
||||
[/./, 'string'] |
||||
], |
||||
fstringt: [ |
||||
[/@escapes/, 'string.escape'], |
||||
[/"(?=""")/, 'string'], |
||||
[ |
||||
/"""/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
], |
||||
[/\$\$/, 'string'], |
||||
[/(\$)([a-z_]\w*)/, ['operator', 'identifier']], |
||||
[/\$\{/, 'operator', '@interp'], |
||||
[/%%/, 'string'], |
||||
[ |
||||
/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, |
||||
['metatag', 'keyword.modifier', 'number', 'metatag'] |
||||
], |
||||
[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, ['metatag', 'number', 'metatag']], |
||||
[/(%)([\-#+ 0,(])(@fstring_conv)/, ['metatag', 'keyword.modifier', 'metatag']], |
||||
[/(%)(@fstring_conv)/, ['metatag', 'metatag']], |
||||
[/./, 'string'] |
||||
], |
||||
sstring: [ |
||||
[/@escapes/, 'string.escape'], |
||||
[ |
||||
/"/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
], |
||||
[/\$\$/, 'string'], |
||||
[/(\$)([a-z_]\w*)/, ['operator', 'identifier']], |
||||
[/\$\{/, 'operator', '@interp'], |
||||
[/./, 'string'] |
||||
], |
||||
sstringt: [ |
||||
[/@escapes/, 'string.escape'], |
||||
[/"(?=""")/, 'string'], |
||||
[ |
||||
/"""/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
], |
||||
[/\$\$/, 'string'], |
||||
[/(\$)([a-z_]\w*)/, ['operator', 'identifier']], |
||||
[/\$\{/, 'operator', '@interp'], |
||||
[/./, 'string'] |
||||
], |
||||
interp: [[/{/, 'operator', '@push'], [/}/, 'operator', '@pop'], { include: '@root' }], |
||||
rawstring: [ |
||||
[/[^"]/, 'string'], |
||||
[ |
||||
/"/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
] |
||||
], |
||||
rawstringt: [ |
||||
[/[^"]/, 'string'], |
||||
[/"(?=""")/, 'string'], |
||||
[ |
||||
/"""/, |
||||
{ |
||||
token: 'string.quote', |
||||
bracket: '@close', |
||||
switchTo: '@allowMethod' |
||||
} |
||||
], |
||||
[/"/, 'string'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,115 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/scheme/scheme',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: ';', |
||||
blockComment: ['#|', '|#'] |
||||
}, |
||||
brackets: [ |
||||
['(', ')'], |
||||
['{', '}'], |
||||
['[', ']'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.scheme', |
||||
brackets: [ |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' } |
||||
], |
||||
keywords: [ |
||||
'case', |
||||
'do', |
||||
'let', |
||||
'loop', |
||||
'if', |
||||
'else', |
||||
'when', |
||||
'cons', |
||||
'car', |
||||
'cdr', |
||||
'cond', |
||||
'lambda', |
||||
'lambda*', |
||||
'syntax-rules', |
||||
'format', |
||||
'set!', |
||||
'quote', |
||||
'eval', |
||||
'append', |
||||
'list', |
||||
'list?', |
||||
'member?', |
||||
'load' |
||||
], |
||||
constants: ['#t', '#f'], |
||||
operators: ['eq?', 'eqv?', 'equal?', 'and', 'or', 'not', 'null?'], |
||||
tokenizer: { |
||||
root: [ |
||||
[/#[xXoObB][0-9a-fA-F]+/, 'number.hex'], |
||||
[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, 'number.float'], |
||||
[ |
||||
/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/, |
||||
['keyword', 'white', 'variable'] |
||||
], |
||||
{ include: '@whitespace' }, |
||||
{ include: '@strings' }, |
||||
[ |
||||
/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@constants': 'constant', |
||||
'@operators': 'operators', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
comment: [ |
||||
[/[^\|#]+/, 'comment'], |
||||
[/#\|/, 'comment', '@push'], |
||||
[/\|#/, 'comment', '@pop'], |
||||
[/[\|#]/, 'comment'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/#\|/, 'comment', '@comment'], |
||||
[/;.*$/, 'comment'] |
||||
], |
||||
strings: [ |
||||
[/"$/, 'string', '@popall'], |
||||
[/"(?=.)/, 'string', '@multiLineString'] |
||||
], |
||||
multiLineString: [ |
||||
[/[^\\"]+$/, 'string', '@popall'], |
||||
[/[^\\"]+/, 'string'], |
||||
[/\\./, 'string.escape'], |
||||
[/"/, 'string', '@popall'], |
||||
[/\\$/, 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,247 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/scss/scss',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g, |
||||
comments: { |
||||
blockComment: ['/*', '*/'], |
||||
lineComment: '//' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/'), |
||||
end: new RegExp('^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.scss', |
||||
ws: '[ \t\n\r\f]*', |
||||
identifier: '-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*', |
||||
brackets: [ |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.bracket' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '<', close: '>', token: 'delimiter.angle' } |
||||
], |
||||
tokenizer: { |
||||
root: [{ include: '@selector' }], |
||||
selector: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@import' }, |
||||
{ include: '@variabledeclaration' }, |
||||
{ include: '@warndebug' }, |
||||
['[@](include)', { token: 'keyword', next: '@includedeclaration' }], |
||||
[ |
||||
'[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)', |
||||
{ token: 'keyword', next: '@keyframedeclaration' } |
||||
], |
||||
['[@](page|content|font-face|-moz-document)', { token: 'keyword' }], |
||||
['[@](charset|namespace)', { token: 'keyword', next: '@declarationbody' }], |
||||
['[@](function)', { token: 'keyword', next: '@functiondeclaration' }], |
||||
['[@](mixin)', { token: 'keyword', next: '@mixindeclaration' }], |
||||
['url(\\-prefix)?\\(', { token: 'meta', next: '@urldeclaration' }], |
||||
{ include: '@controlstatement' }, |
||||
{ include: '@selectorname' }, |
||||
['[&\\*]', 'tag'], |
||||
['[>\\+,]', 'delimiter'], |
||||
['\\[', { token: 'delimiter.bracket', next: '@selectorattribute' }], |
||||
['{', { token: 'delimiter.curly', next: '@selectorbody' }] |
||||
], |
||||
selectorbody: [ |
||||
['[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))', 'attribute.name', '@rulevalue'], |
||||
{ include: '@selector' }, |
||||
['[@](extend)', { token: 'keyword', next: '@extendbody' }], |
||||
['[@](return)', { token: 'keyword', next: '@declarationbody' }], |
||||
['}', { token: 'delimiter.curly', next: '@pop' }] |
||||
], |
||||
selectorname: [ |
||||
['#{', { token: 'meta', next: '@variableinterpolation' }], |
||||
['(\\.|#(?=[^{])|%|(@identifier)|:)+', 'tag'] // selector (.foo, div, ...)
|
||||
], |
||||
selectorattribute: [{ include: '@term' }, [']', { token: 'delimiter.bracket', next: '@pop' }]], |
||||
term: [ |
||||
{ include: '@comments' }, |
||||
['url(\\-prefix)?\\(', { token: 'meta', next: '@urldeclaration' }], |
||||
{ include: '@functioninvocation' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@variablereference' }, |
||||
['(and\\b|or\\b|not\\b)', 'operator'], |
||||
{ include: '@name' }, |
||||
['([<>=\\+\\-\\*\\/\\^\\|\\~,])', 'operator'], |
||||
[',', 'delimiter'], |
||||
['!default', 'literal'], |
||||
['\\(', { token: 'delimiter.parenthesis', next: '@parenthizedterm' }] |
||||
], |
||||
rulevalue: [ |
||||
{ include: '@term' }, |
||||
['!important', 'literal'], |
||||
[';', 'delimiter', '@pop'], |
||||
['{', { token: 'delimiter.curly', switchTo: '@nestedproperty' }], |
||||
['(?=})', { token: '', next: '@pop' }] // missing semicolon
|
||||
], |
||||
nestedproperty: [ |
||||
['[*_]?@identifier@ws:', 'attribute.name', '@rulevalue'], |
||||
{ include: '@comments' }, |
||||
['}', { token: 'delimiter.curly', next: '@pop' }] |
||||
], |
||||
warndebug: [['[@](warn|debug)', { token: 'keyword', next: '@declarationbody' }]], |
||||
import: [['[@](import)', { token: 'keyword', next: '@declarationbody' }]], |
||||
variabledeclaration: [ |
||||
// sass variables
|
||||
['\\$@identifier@ws:', 'variable.decl', '@declarationbody'] |
||||
], |
||||
urldeclaration: [ |
||||
{ include: '@strings' }, |
||||
['[^)\r\n]+', 'string'], |
||||
['\\)', { token: 'meta', next: '@pop' }] |
||||
], |
||||
parenthizedterm: [ |
||||
{ include: '@term' }, |
||||
['\\)', { token: 'delimiter.parenthesis', next: '@pop' }] |
||||
], |
||||
declarationbody: [ |
||||
{ include: '@term' }, |
||||
[';', 'delimiter', '@pop'], |
||||
['(?=})', { token: '', next: '@pop' }] // missing semicolon
|
||||
], |
||||
extendbody: [ |
||||
{ include: '@selectorname' }, |
||||
['!optional', 'literal'], |
||||
[';', 'delimiter', '@pop'], |
||||
['(?=})', { token: '', next: '@pop' }] // missing semicolon
|
||||
], |
||||
variablereference: [ |
||||
// sass variable reference
|
||||
['\\$@identifier', 'variable.ref'], |
||||
['\\.\\.\\.', 'operator'], |
||||
['#{', { token: 'meta', next: '@variableinterpolation' }] // sass var resolve
|
||||
], |
||||
variableinterpolation: [ |
||||
{ include: '@variablereference' }, |
||||
['}', { token: 'meta', next: '@pop' }] |
||||
], |
||||
comments: [ |
||||
['\\/\\*', 'comment', '@comment'], |
||||
['\\/\\/+.*', 'comment'] |
||||
], |
||||
comment: [ |
||||
['\\*\\/', 'comment', '@pop'], |
||||
['.', 'comment'] |
||||
], |
||||
name: [['@identifier', 'attribute.value']], |
||||
numbers: [ |
||||
['(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?', { token: 'number', next: '@units' }], |
||||
['#[0-9a-fA-F_]+(?!\\w)', 'number.hex'] |
||||
], |
||||
units: [ |
||||
[ |
||||
'(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?', |
||||
'number', |
||||
'@pop' |
||||
] |
||||
], |
||||
functiondeclaration: [ |
||||
['@identifier@ws\\(', { token: 'meta', next: '@parameterdeclaration' }], |
||||
['{', { token: 'delimiter.curly', switchTo: '@functionbody' }] |
||||
], |
||||
mixindeclaration: [ |
||||
// mixin with parameters
|
||||
['@identifier@ws\\(', { token: 'meta', next: '@parameterdeclaration' }], |
||||
// mixin without parameters
|
||||
['@identifier', 'meta'], |
||||
['{', { token: 'delimiter.curly', switchTo: '@selectorbody' }] |
||||
], |
||||
parameterdeclaration: [ |
||||
['\\$@identifier@ws:', 'variable.decl'], |
||||
['\\.\\.\\.', 'operator'], |
||||
[',', 'delimiter'], |
||||
{ include: '@term' }, |
||||
['\\)', { token: 'meta', next: '@pop' }] |
||||
], |
||||
includedeclaration: [ |
||||
{ include: '@functioninvocation' }, |
||||
['@identifier', 'meta'], |
||||
[';', 'delimiter', '@pop'], |
||||
['(?=})', { token: '', next: '@pop' }], |
||||
['{', { token: 'delimiter.curly', switchTo: '@selectorbody' }] |
||||
], |
||||
keyframedeclaration: [ |
||||
['@identifier', 'meta'], |
||||
['{', { token: 'delimiter.curly', switchTo: '@keyframebody' }] |
||||
], |
||||
keyframebody: [ |
||||
{ include: '@term' }, |
||||
['{', { token: 'delimiter.curly', next: '@selectorbody' }], |
||||
['}', { token: 'delimiter.curly', next: '@pop' }] |
||||
], |
||||
controlstatement: [ |
||||
[ |
||||
'[@](if|else|for|while|each|media)', |
||||
{ token: 'keyword.flow', next: '@controlstatementdeclaration' } |
||||
] |
||||
], |
||||
controlstatementdeclaration: [ |
||||
['(in|from|through|if|to)\\b', { token: 'keyword.flow' }], |
||||
{ include: '@term' }, |
||||
['{', { token: 'delimiter.curly', switchTo: '@selectorbody' }] |
||||
], |
||||
functionbody: [ |
||||
['[@](return)', { token: 'keyword' }], |
||||
{ include: '@variabledeclaration' }, |
||||
{ include: '@term' }, |
||||
{ include: '@controlstatement' }, |
||||
[';', 'delimiter'], |
||||
['}', { token: 'delimiter.curly', next: '@pop' }] |
||||
], |
||||
functioninvocation: [['@identifier\\(', { token: 'meta', next: '@functionarguments' }]], |
||||
functionarguments: [ |
||||
['\\$@identifier@ws:', 'attribute.name'], |
||||
['[,]', 'delimiter'], |
||||
{ include: '@term' }, |
||||
['\\)', { token: 'meta', next: '@pop' }] |
||||
], |
||||
strings: [ |
||||
['~?"', { token: 'string.delimiter', next: '@stringenddoublequote' }], |
||||
["~?'", { token: 'string.delimiter', next: '@stringendquote' }] |
||||
], |
||||
stringenddoublequote: [ |
||||
['\\\\.', 'string'], |
||||
['"', { token: 'string.delimiter', next: '@pop' }], |
||||
['.', 'string'] |
||||
], |
||||
stringendquote: [ |
||||
['\\\\.', 'string'], |
||||
["'", { token: 'string.delimiter', next: '@pop' }], |
||||
['.', 'string'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,225 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/shell/shell',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '`', close: '`' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '`', close: '`' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
ignoreCase: true, |
||||
tokenPostfix: '.shell', |
||||
brackets: [ |
||||
{ token: 'delimiter.bracket', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' } |
||||
], |
||||
keywords: [ |
||||
'if', |
||||
'then', |
||||
'do', |
||||
'else', |
||||
'elif', |
||||
'while', |
||||
'until', |
||||
'for', |
||||
'in', |
||||
'esac', |
||||
'fi', |
||||
'fin', |
||||
'fil', |
||||
'done', |
||||
'exit', |
||||
'set', |
||||
'unset', |
||||
'export', |
||||
'function' |
||||
], |
||||
builtins: [ |
||||
'ab', |
||||
'awk', |
||||
'bash', |
||||
'beep', |
||||
'cat', |
||||
'cc', |
||||
'cd', |
||||
'chown', |
||||
'chmod', |
||||
'chroot', |
||||
'clear', |
||||
'cp', |
||||
'curl', |
||||
'cut', |
||||
'diff', |
||||
'echo', |
||||
'find', |
||||
'gawk', |
||||
'gcc', |
||||
'get', |
||||
'git', |
||||
'grep', |
||||
'hg', |
||||
'kill', |
||||
'killall', |
||||
'ln', |
||||
'ls', |
||||
'make', |
||||
'mkdir', |
||||
'openssl', |
||||
'mv', |
||||
'nc', |
||||
'node', |
||||
'npm', |
||||
'ping', |
||||
'ps', |
||||
'restart', |
||||
'rm', |
||||
'rmdir', |
||||
'sed', |
||||
'service', |
||||
'sh', |
||||
'shopt', |
||||
'shred', |
||||
'source', |
||||
'sort', |
||||
'sleep', |
||||
'ssh', |
||||
'start', |
||||
'stop', |
||||
'su', |
||||
'sudo', |
||||
'svn', |
||||
'tee', |
||||
'telnet', |
||||
'top', |
||||
'touch', |
||||
'vi', |
||||
'vim', |
||||
'wall', |
||||
'wc', |
||||
'wget', |
||||
'who', |
||||
'write', |
||||
'yes', |
||||
'zsh' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?&|+\-*\/\^;\.,]+/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
[ |
||||
/[a-zA-Z]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@builtins': 'type.identifier', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@strings' }, |
||||
{ include: '@parameters' }, |
||||
{ include: '@heredoc' }, |
||||
[/[{}\[\]()]/, '@brackets'], |
||||
[/-+\w+/, 'attribute.name'], |
||||
[/@symbols/, 'delimiter'], |
||||
{ include: '@numbers' }, |
||||
[/[,;]/, 'delimiter'] |
||||
], |
||||
whitespace: [ |
||||
[/\s+/, 'white'], |
||||
[/(^#!.*$)/, 'metatag'], |
||||
[/(^#.*$)/, 'comment'] |
||||
], |
||||
numbers: [ |
||||
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'], |
||||
[/\d+/, 'number'] |
||||
], |
||||
// Recognize strings, including those broken across lines
|
||||
strings: [ |
||||
[/'/, 'string', '@stringBody'], |
||||
[/"/, 'string', '@dblStringBody'] |
||||
], |
||||
stringBody: [ |
||||
[/'/, 'string', '@popall'], |
||||
[/./, 'string'] |
||||
], |
||||
dblStringBody: [ |
||||
[/"/, 'string', '@popall'], |
||||
[/./, 'string'] |
||||
], |
||||
heredoc: [ |
||||
[ |
||||
/(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/, |
||||
[ |
||||
'constants', |
||||
'white', |
||||
'string.heredoc.delimiter', |
||||
'string.heredoc', |
||||
'string.heredoc.delimiter' |
||||
] |
||||
] |
||||
], |
||||
parameters: [ |
||||
[/\$\d+/, 'variable.predefined'], |
||||
[/\$\w+/, 'variable'], |
||||
[/\$[*@#?\-$!0_]/, 'variable'], |
||||
[/\$'/, 'variable', '@parameterBodyQuote'], |
||||
[/\$"/, 'variable', '@parameterBodyDoubleQuote'], |
||||
[/\$\(/, 'variable', '@parameterBodyParen'], |
||||
[/\$\{/, 'variable', '@parameterBodyCurlyBrace'] |
||||
], |
||||
parameterBodyQuote: [ |
||||
[/[^#:%*@\-!_']+/, 'variable'], |
||||
[/[#:%*@\-!_]/, 'delimiter'], |
||||
[/[']/, 'variable', '@pop'] |
||||
], |
||||
parameterBodyDoubleQuote: [ |
||||
[/[^#:%*@\-!_"]+/, 'variable'], |
||||
[/[#:%*@\-!_]/, 'delimiter'], |
||||
[/["]/, 'variable', '@pop'] |
||||
], |
||||
parameterBodyParen: [ |
||||
[/[^#:%*@\-!_)]+/, 'variable'], |
||||
[/[#:%*@\-!_]/, 'delimiter'], |
||||
[/[)]/, 'variable', '@pop'] |
||||
], |
||||
parameterBodyCurlyBrace: [ |
||||
[/[^#:%*@\-!_}]+/, 'variable'], |
||||
[/[#:%*@\-!_]/, 'delimiter'], |
||||
[/[}]/, 'variable', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,205 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/sophia/sophia',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.aes', |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' }, |
||||
{ token: 'delimiter.angle', open: '<', close: '>' } |
||||
], |
||||
keywords: [ |
||||
// Main keywords
|
||||
'contract', |
||||
'library', |
||||
'entrypoint', |
||||
'function', |
||||
'stateful', |
||||
'state', |
||||
'hash', |
||||
'signature', |
||||
'tuple', |
||||
'list', |
||||
'address', |
||||
'string', |
||||
'bool', |
||||
'int', |
||||
'record', |
||||
'datatype', |
||||
'type', |
||||
'option', |
||||
'oracle', |
||||
'oracle_query', |
||||
'Call', |
||||
'Bits', |
||||
'Bytes', |
||||
'Oracle', |
||||
'String', |
||||
'Crypto', |
||||
'Address', |
||||
'Auth', |
||||
'Chain', |
||||
'None', |
||||
'Some', |
||||
'bits', |
||||
'bytes', |
||||
'event', |
||||
'let', |
||||
'map', |
||||
'private', |
||||
'public', |
||||
'true', |
||||
'false', |
||||
'var', |
||||
'if', |
||||
'else', |
||||
'throw' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
'!', |
||||
'~', |
||||
'?', |
||||
'::', |
||||
':', |
||||
'==', |
||||
'<=', |
||||
'>=', |
||||
'!=', |
||||
'&&', |
||||
'||', |
||||
'++', |
||||
'--', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'%', |
||||
'<<', |
||||
'>>', |
||||
'>>>', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>>=' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
integersuffix: /(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/, |
||||
floatsuffix: /[fFlL]?/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// [[ attributes ]].
|
||||
[/\[\[.*\]\]/, 'annotation'], |
||||
// Preprocessor directive
|
||||
[/^\s*#\w+/, 'keyword'], |
||||
//DataTypes
|
||||
[/int\d*/, 'keyword'], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, 'number.hex'], |
||||
[/0[0-7']*[0-7](@integersuffix)/, 'number.octal'], |
||||
[/0[bB][0-1']*[0-1](@integersuffix)/, 'number.binary'], |
||||
[/\d[\d']*\d(@integersuffix)/, 'number'], |
||||
[/\d(@integersuffix)/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'], |
||||
// characters
|
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@doccomment'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
//Identical copy of comment above, except for the addition of .doc
|
||||
doccomment: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,206 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/sparql/sparql',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: "'", close: "'", notIn: ['string'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.rq', |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' }, |
||||
{ token: 'delimiter.angle', open: '<', close: '>' } |
||||
], |
||||
keywords: [ |
||||
'add', |
||||
'as', |
||||
'asc', |
||||
'ask', |
||||
'base', |
||||
'by', |
||||
'clear', |
||||
'construct', |
||||
'copy', |
||||
'create', |
||||
'data', |
||||
'delete', |
||||
'desc', |
||||
'describe', |
||||
'distinct', |
||||
'drop', |
||||
'false', |
||||
'filter', |
||||
'from', |
||||
'graph', |
||||
'group', |
||||
'having', |
||||
'in', |
||||
'insert', |
||||
'limit', |
||||
'load', |
||||
'minus', |
||||
'move', |
||||
'named', |
||||
'not', |
||||
'offset', |
||||
'optional', |
||||
'order', |
||||
'prefix', |
||||
'reduced', |
||||
'select', |
||||
'service', |
||||
'silent', |
||||
'to', |
||||
'true', |
||||
'undef', |
||||
'union', |
||||
'using', |
||||
'values', |
||||
'where', |
||||
'with' |
||||
], |
||||
builtinFunctions: [ |
||||
'a', |
||||
'abs', |
||||
'avg', |
||||
'bind', |
||||
'bnode', |
||||
'bound', |
||||
'ceil', |
||||
'coalesce', |
||||
'concat', |
||||
'contains', |
||||
'count', |
||||
'datatype', |
||||
'day', |
||||
'encode_for_uri', |
||||
'exists', |
||||
'floor', |
||||
'group_concat', |
||||
'hours', |
||||
'if', |
||||
'iri', |
||||
'isblank', |
||||
'isiri', |
||||
'isliteral', |
||||
'isnumeric', |
||||
'isuri', |
||||
'lang', |
||||
'langmatches', |
||||
'lcase', |
||||
'max', |
||||
'md5', |
||||
'min', |
||||
'minutes', |
||||
'month', |
||||
'now', |
||||
'rand', |
||||
'regex', |
||||
'replace', |
||||
'round', |
||||
'sameterm', |
||||
'sample', |
||||
'seconds', |
||||
'sha1', |
||||
'sha256', |
||||
'sha384', |
||||
'sha512', |
||||
'str', |
||||
'strafter', |
||||
'strbefore', |
||||
'strdt', |
||||
'strends', |
||||
'strlang', |
||||
'strlen', |
||||
'strstarts', |
||||
'struuid', |
||||
'substr', |
||||
'sum', |
||||
'timezone', |
||||
'tz', |
||||
'ucase', |
||||
'uri', |
||||
'uuid', |
||||
'year' |
||||
], |
||||
// describe tokens
|
||||
ignoreCase: true, |
||||
tokenizer: { |
||||
root: [ |
||||
// resource indicators
|
||||
[/<[^\s\u00a0>]*>?/, 'tag'], |
||||
// strings
|
||||
{ include: '@strings' }, |
||||
// line comment
|
||||
[/#.*/, 'comment'], |
||||
// special chars with special meaning
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[;,.]/, 'delimiter'], |
||||
// (prefixed) name
|
||||
[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/, 'tag'], |
||||
[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/, 'tag'], |
||||
// identifiers, builtinFunctions and keywords
|
||||
[ |
||||
/[$?]?[_\w\d]+/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword' }, |
||||
'@builtinFunctions': { token: 'predefined.sql' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// operators
|
||||
[/\^\^/, 'operator.sql'], |
||||
[/\^[*+\-<>=&|^\/!?]*/, 'operator.sql'], |
||||
[/[*+\-<>=&|\/!?]/, 'operator.sql'], |
||||
// symbol
|
||||
[/@[a-z\d\-]*/, 'metatag.html'], |
||||
// whitespaces
|
||||
[/\s+/, 'white'] |
||||
], |
||||
strings: [ |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/'$/, 'string.sql', '@pop'], |
||||
[/'/, 'string.sql', '@stringBody'], |
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"$/, 'string.sql', '@pop'], |
||||
[/"/, 'string.sql', '@dblStringBody'] |
||||
], |
||||
// single-quoted strings
|
||||
stringBody: [ |
||||
[/[^\\']+/, 'string.sql'], |
||||
[/\\./, 'string.escape'], |
||||
[/'/, 'string.sql', '@pop'] |
||||
], |
||||
// double-quoted strings
|
||||
dblStringBody: [ |
||||
[/[^\\"]+/, 'string.sql'], |
||||
[/\\./, 'string.escape'], |
||||
[/"/, 'string.sql', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,860 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/sql/sql',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '--', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.sql', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ open: '[', close: ']', token: 'delimiter.square' }, |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' } |
||||
], |
||||
keywords: [ |
||||
// This list is generated using `keywords.js`
|
||||
'ABORT', |
||||
'ABSOLUTE', |
||||
'ACTION', |
||||
'ADA', |
||||
'ADD', |
||||
'AFTER', |
||||
'ALL', |
||||
'ALLOCATE', |
||||
'ALTER', |
||||
'ALWAYS', |
||||
'ANALYZE', |
||||
'AND', |
||||
'ANY', |
||||
'ARE', |
||||
'AS', |
||||
'ASC', |
||||
'ASSERTION', |
||||
'AT', |
||||
'ATTACH', |
||||
'AUTHORIZATION', |
||||
'AUTOINCREMENT', |
||||
'AVG', |
||||
'BACKUP', |
||||
'BEFORE', |
||||
'BEGIN', |
||||
'BETWEEN', |
||||
'BIT', |
||||
'BIT_LENGTH', |
||||
'BOTH', |
||||
'BREAK', |
||||
'BROWSE', |
||||
'BULK', |
||||
'BY', |
||||
'CASCADE', |
||||
'CASCADED', |
||||
'CASE', |
||||
'CAST', |
||||
'CATALOG', |
||||
'CHAR', |
||||
'CHARACTER', |
||||
'CHARACTER_LENGTH', |
||||
'CHAR_LENGTH', |
||||
'CHECK', |
||||
'CHECKPOINT', |
||||
'CLOSE', |
||||
'CLUSTERED', |
||||
'COALESCE', |
||||
'COLLATE', |
||||
'COLLATION', |
||||
'COLUMN', |
||||
'COMMIT', |
||||
'COMPUTE', |
||||
'CONFLICT', |
||||
'CONNECT', |
||||
'CONNECTION', |
||||
'CONSTRAINT', |
||||
'CONSTRAINTS', |
||||
'CONTAINS', |
||||
'CONTAINSTABLE', |
||||
'CONTINUE', |
||||
'CONVERT', |
||||
'CORRESPONDING', |
||||
'COUNT', |
||||
'CREATE', |
||||
'CROSS', |
||||
'CURRENT', |
||||
'CURRENT_DATE', |
||||
'CURRENT_TIME', |
||||
'CURRENT_TIMESTAMP', |
||||
'CURRENT_USER', |
||||
'CURSOR', |
||||
'DATABASE', |
||||
'DATE', |
||||
'DAY', |
||||
'DBCC', |
||||
'DEALLOCATE', |
||||
'DEC', |
||||
'DECIMAL', |
||||
'DECLARE', |
||||
'DEFAULT', |
||||
'DEFERRABLE', |
||||
'DEFERRED', |
||||
'DELETE', |
||||
'DENY', |
||||
'DESC', |
||||
'DESCRIBE', |
||||
'DESCRIPTOR', |
||||
'DETACH', |
||||
'DIAGNOSTICS', |
||||
'DISCONNECT', |
||||
'DISK', |
||||
'DISTINCT', |
||||
'DISTRIBUTED', |
||||
'DO', |
||||
'DOMAIN', |
||||
'DOUBLE', |
||||
'DROP', |
||||
'DUMP', |
||||
'EACH', |
||||
'ELSE', |
||||
'END', |
||||
'END-EXEC', |
||||
'ERRLVL', |
||||
'ESCAPE', |
||||
'EXCEPT', |
||||
'EXCEPTION', |
||||
'EXCLUDE', |
||||
'EXCLUSIVE', |
||||
'EXEC', |
||||
'EXECUTE', |
||||
'EXISTS', |
||||
'EXIT', |
||||
'EXPLAIN', |
||||
'EXTERNAL', |
||||
'EXTRACT', |
||||
'FAIL', |
||||
'FALSE', |
||||
'FETCH', |
||||
'FILE', |
||||
'FILLFACTOR', |
||||
'FILTER', |
||||
'FIRST', |
||||
'FLOAT', |
||||
'FOLLOWING', |
||||
'FOR', |
||||
'FOREIGN', |
||||
'FORTRAN', |
||||
'FOUND', |
||||
'FREETEXT', |
||||
'FREETEXTTABLE', |
||||
'FROM', |
||||
'FULL', |
||||
'FUNCTION', |
||||
'GENERATED', |
||||
'GET', |
||||
'GLOB', |
||||
'GLOBAL', |
||||
'GO', |
||||
'GOTO', |
||||
'GRANT', |
||||
'GROUP', |
||||
'GROUPS', |
||||
'HAVING', |
||||
'HOLDLOCK', |
||||
'HOUR', |
||||
'IDENTITY', |
||||
'IDENTITYCOL', |
||||
'IDENTITY_INSERT', |
||||
'IF', |
||||
'IGNORE', |
||||
'IMMEDIATE', |
||||
'IN', |
||||
'INCLUDE', |
||||
'INDEX', |
||||
'INDEXED', |
||||
'INDICATOR', |
||||
'INITIALLY', |
||||
'INNER', |
||||
'INPUT', |
||||
'INSENSITIVE', |
||||
'INSERT', |
||||
'INSTEAD', |
||||
'INT', |
||||
'INTEGER', |
||||
'INTERSECT', |
||||
'INTERVAL', |
||||
'INTO', |
||||
'IS', |
||||
'ISNULL', |
||||
'ISOLATION', |
||||
'JOIN', |
||||
'KEY', |
||||
'KILL', |
||||
'LANGUAGE', |
||||
'LAST', |
||||
'LEADING', |
||||
'LEFT', |
||||
'LEVEL', |
||||
'LIKE', |
||||
'LIMIT', |
||||
'LINENO', |
||||
'LOAD', |
||||
'LOCAL', |
||||
'LOWER', |
||||
'MATCH', |
||||
'MATERIALIZED', |
||||
'MAX', |
||||
'MERGE', |
||||
'MIN', |
||||
'MINUTE', |
||||
'MODULE', |
||||
'MONTH', |
||||
'NAMES', |
||||
'NATIONAL', |
||||
'NATURAL', |
||||
'NCHAR', |
||||
'NEXT', |
||||
'NO', |
||||
'NOCHECK', |
||||
'NONCLUSTERED', |
||||
'NONE', |
||||
'NOT', |
||||
'NOTHING', |
||||
'NOTNULL', |
||||
'NULL', |
||||
'NULLIF', |
||||
'NULLS', |
||||
'NUMERIC', |
||||
'OCTET_LENGTH', |
||||
'OF', |
||||
'OFF', |
||||
'OFFSET', |
||||
'OFFSETS', |
||||
'ON', |
||||
'ONLY', |
||||
'OPEN', |
||||
'OPENDATASOURCE', |
||||
'OPENQUERY', |
||||
'OPENROWSET', |
||||
'OPENXML', |
||||
'OPTION', |
||||
'OR', |
||||
'ORDER', |
||||
'OTHERS', |
||||
'OUTER', |
||||
'OUTPUT', |
||||
'OVER', |
||||
'OVERLAPS', |
||||
'PAD', |
||||
'PARTIAL', |
||||
'PARTITION', |
||||
'PASCAL', |
||||
'PERCENT', |
||||
'PIVOT', |
||||
'PLAN', |
||||
'POSITION', |
||||
'PRAGMA', |
||||
'PRECEDING', |
||||
'PRECISION', |
||||
'PREPARE', |
||||
'PRESERVE', |
||||
'PRIMARY', |
||||
'PRINT', |
||||
'PRIOR', |
||||
'PRIVILEGES', |
||||
'PROC', |
||||
'PROCEDURE', |
||||
'PUBLIC', |
||||
'QUERY', |
||||
'RAISE', |
||||
'RAISERROR', |
||||
'RANGE', |
||||
'READ', |
||||
'READTEXT', |
||||
'REAL', |
||||
'RECONFIGURE', |
||||
'RECURSIVE', |
||||
'REFERENCES', |
||||
'REGEXP', |
||||
'REINDEX', |
||||
'RELATIVE', |
||||
'RELEASE', |
||||
'RENAME', |
||||
'REPLACE', |
||||
'REPLICATION', |
||||
'RESTORE', |
||||
'RESTRICT', |
||||
'RETURN', |
||||
'RETURNING', |
||||
'REVERT', |
||||
'REVOKE', |
||||
'RIGHT', |
||||
'ROLLBACK', |
||||
'ROW', |
||||
'ROWCOUNT', |
||||
'ROWGUIDCOL', |
||||
'ROWS', |
||||
'RULE', |
||||
'SAVE', |
||||
'SAVEPOINT', |
||||
'SCHEMA', |
||||
'SCROLL', |
||||
'SECOND', |
||||
'SECTION', |
||||
'SECURITYAUDIT', |
||||
'SELECT', |
||||
'SEMANTICKEYPHRASETABLE', |
||||
'SEMANTICSIMILARITYDETAILSTABLE', |
||||
'SEMANTICSIMILARITYTABLE', |
||||
'SESSION', |
||||
'SESSION_USER', |
||||
'SET', |
||||
'SETUSER', |
||||
'SHUTDOWN', |
||||
'SIZE', |
||||
'SMALLINT', |
||||
'SOME', |
||||
'SPACE', |
||||
'SQL', |
||||
'SQLCA', |
||||
'SQLCODE', |
||||
'SQLERROR', |
||||
'SQLSTATE', |
||||
'SQLWARNING', |
||||
'STATISTICS', |
||||
'SUBSTRING', |
||||
'SUM', |
||||
'SYSTEM_USER', |
||||
'TABLE', |
||||
'TABLESAMPLE', |
||||
'TEMP', |
||||
'TEMPORARY', |
||||
'TEXTSIZE', |
||||
'THEN', |
||||
'TIES', |
||||
'TIME', |
||||
'TIMESTAMP', |
||||
'TIMEZONE_HOUR', |
||||
'TIMEZONE_MINUTE', |
||||
'TO', |
||||
'TOP', |
||||
'TRAILING', |
||||
'TRAN', |
||||
'TRANSACTION', |
||||
'TRANSLATE', |
||||
'TRANSLATION', |
||||
'TRIGGER', |
||||
'TRIM', |
||||
'TRUE', |
||||
'TRUNCATE', |
||||
'TRY_CONVERT', |
||||
'TSEQUAL', |
||||
'UNBOUNDED', |
||||
'UNION', |
||||
'UNIQUE', |
||||
'UNKNOWN', |
||||
'UNPIVOT', |
||||
'UPDATE', |
||||
'UPDATETEXT', |
||||
'UPPER', |
||||
'USAGE', |
||||
'USE', |
||||
'USER', |
||||
'USING', |
||||
'VACUUM', |
||||
'VALUE', |
||||
'VALUES', |
||||
'VARCHAR', |
||||
'VARYING', |
||||
'VIEW', |
||||
'VIRTUAL', |
||||
'WAITFOR', |
||||
'WHEN', |
||||
'WHENEVER', |
||||
'WHERE', |
||||
'WHILE', |
||||
'WINDOW', |
||||
'WITH', |
||||
'WITHIN GROUP', |
||||
'WITHOUT', |
||||
'WORK', |
||||
'WRITE', |
||||
'WRITETEXT', |
||||
'YEAR', |
||||
'ZONE' |
||||
], |
||||
operators: [ |
||||
// Logical
|
||||
'ALL', |
||||
'AND', |
||||
'ANY', |
||||
'BETWEEN', |
||||
'EXISTS', |
||||
'IN', |
||||
'LIKE', |
||||
'NOT', |
||||
'OR', |
||||
'SOME', |
||||
// Set
|
||||
'EXCEPT', |
||||
'INTERSECT', |
||||
'UNION', |
||||
// Join
|
||||
'APPLY', |
||||
'CROSS', |
||||
'FULL', |
||||
'INNER', |
||||
'JOIN', |
||||
'LEFT', |
||||
'OUTER', |
||||
'RIGHT', |
||||
// Predicates
|
||||
'CONTAINS', |
||||
'FREETEXT', |
||||
'IS', |
||||
'NULL', |
||||
// Pivoting
|
||||
'PIVOT', |
||||
'UNPIVOT', |
||||
// Merging
|
||||
'MATCHED' |
||||
], |
||||
builtinFunctions: [ |
||||
// Aggregate
|
||||
'AVG', |
||||
'CHECKSUM_AGG', |
||||
'COUNT', |
||||
'COUNT_BIG', |
||||
'GROUPING', |
||||
'GROUPING_ID', |
||||
'MAX', |
||||
'MIN', |
||||
'SUM', |
||||
'STDEV', |
||||
'STDEVP', |
||||
'VAR', |
||||
'VARP', |
||||
// Analytic
|
||||
'CUME_DIST', |
||||
'FIRST_VALUE', |
||||
'LAG', |
||||
'LAST_VALUE', |
||||
'LEAD', |
||||
'PERCENTILE_CONT', |
||||
'PERCENTILE_DISC', |
||||
'PERCENT_RANK', |
||||
// Collation
|
||||
'COLLATE', |
||||
'COLLATIONPROPERTY', |
||||
'TERTIARY_WEIGHTS', |
||||
// Azure
|
||||
'FEDERATION_FILTERING_VALUE', |
||||
// Conversion
|
||||
'CAST', |
||||
'CONVERT', |
||||
'PARSE', |
||||
'TRY_CAST', |
||||
'TRY_CONVERT', |
||||
'TRY_PARSE', |
||||
// Cryptographic
|
||||
'ASYMKEY_ID', |
||||
'ASYMKEYPROPERTY', |
||||
'CERTPROPERTY', |
||||
'CERT_ID', |
||||
'CRYPT_GEN_RANDOM', |
||||
'DECRYPTBYASYMKEY', |
||||
'DECRYPTBYCERT', |
||||
'DECRYPTBYKEY', |
||||
'DECRYPTBYKEYAUTOASYMKEY', |
||||
'DECRYPTBYKEYAUTOCERT', |
||||
'DECRYPTBYPASSPHRASE', |
||||
'ENCRYPTBYASYMKEY', |
||||
'ENCRYPTBYCERT', |
||||
'ENCRYPTBYKEY', |
||||
'ENCRYPTBYPASSPHRASE', |
||||
'HASHBYTES', |
||||
'IS_OBJECTSIGNED', |
||||
'KEY_GUID', |
||||
'KEY_ID', |
||||
'KEY_NAME', |
||||
'SIGNBYASYMKEY', |
||||
'SIGNBYCERT', |
||||
'SYMKEYPROPERTY', |
||||
'VERIFYSIGNEDBYCERT', |
||||
'VERIFYSIGNEDBYASYMKEY', |
||||
// Cursor
|
||||
'CURSOR_STATUS', |
||||
// Datatype
|
||||
'DATALENGTH', |
||||
'IDENT_CURRENT', |
||||
'IDENT_INCR', |
||||
'IDENT_SEED', |
||||
'IDENTITY', |
||||
'SQL_VARIANT_PROPERTY', |
||||
// Datetime
|
||||
'CURRENT_TIMESTAMP', |
||||
'DATEADD', |
||||
'DATEDIFF', |
||||
'DATEFROMPARTS', |
||||
'DATENAME', |
||||
'DATEPART', |
||||
'DATETIME2FROMPARTS', |
||||
'DATETIMEFROMPARTS', |
||||
'DATETIMEOFFSETFROMPARTS', |
||||
'DAY', |
||||
'EOMONTH', |
||||
'GETDATE', |
||||
'GETUTCDATE', |
||||
'ISDATE', |
||||
'MONTH', |
||||
'SMALLDATETIMEFROMPARTS', |
||||
'SWITCHOFFSET', |
||||
'SYSDATETIME', |
||||
'SYSDATETIMEOFFSET', |
||||
'SYSUTCDATETIME', |
||||
'TIMEFROMPARTS', |
||||
'TODATETIMEOFFSET', |
||||
'YEAR', |
||||
// Logical
|
||||
'CHOOSE', |
||||
'COALESCE', |
||||
'IIF', |
||||
'NULLIF', |
||||
// Mathematical
|
||||
'ABS', |
||||
'ACOS', |
||||
'ASIN', |
||||
'ATAN', |
||||
'ATN2', |
||||
'CEILING', |
||||
'COS', |
||||
'COT', |
||||
'DEGREES', |
||||
'EXP', |
||||
'FLOOR', |
||||
'LOG', |
||||
'LOG10', |
||||
'PI', |
||||
'POWER', |
||||
'RADIANS', |
||||
'RAND', |
||||
'ROUND', |
||||
'SIGN', |
||||
'SIN', |
||||
'SQRT', |
||||
'SQUARE', |
||||
'TAN', |
||||
// Metadata
|
||||
'APP_NAME', |
||||
'APPLOCK_MODE', |
||||
'APPLOCK_TEST', |
||||
'ASSEMBLYPROPERTY', |
||||
'COL_LENGTH', |
||||
'COL_NAME', |
||||
'COLUMNPROPERTY', |
||||
'DATABASE_PRINCIPAL_ID', |
||||
'DATABASEPROPERTYEX', |
||||
'DB_ID', |
||||
'DB_NAME', |
||||
'FILE_ID', |
||||
'FILE_IDEX', |
||||
'FILE_NAME', |
||||
'FILEGROUP_ID', |
||||
'FILEGROUP_NAME', |
||||
'FILEGROUPPROPERTY', |
||||
'FILEPROPERTY', |
||||
'FULLTEXTCATALOGPROPERTY', |
||||
'FULLTEXTSERVICEPROPERTY', |
||||
'INDEX_COL', |
||||
'INDEXKEY_PROPERTY', |
||||
'INDEXPROPERTY', |
||||
'OBJECT_DEFINITION', |
||||
'OBJECT_ID', |
||||
'OBJECT_NAME', |
||||
'OBJECT_SCHEMA_NAME', |
||||
'OBJECTPROPERTY', |
||||
'OBJECTPROPERTYEX', |
||||
'ORIGINAL_DB_NAME', |
||||
'PARSENAME', |
||||
'SCHEMA_ID', |
||||
'SCHEMA_NAME', |
||||
'SCOPE_IDENTITY', |
||||
'SERVERPROPERTY', |
||||
'STATS_DATE', |
||||
'TYPE_ID', |
||||
'TYPE_NAME', |
||||
'TYPEPROPERTY', |
||||
// Ranking
|
||||
'DENSE_RANK', |
||||
'NTILE', |
||||
'RANK', |
||||
'ROW_NUMBER', |
||||
// Replication
|
||||
'PUBLISHINGSERVERNAME', |
||||
// Rowset
|
||||
'OPENDATASOURCE', |
||||
'OPENQUERY', |
||||
'OPENROWSET', |
||||
'OPENXML', |
||||
// Security
|
||||
'CERTENCODED', |
||||
'CERTPRIVATEKEY', |
||||
'CURRENT_USER', |
||||
'HAS_DBACCESS', |
||||
'HAS_PERMS_BY_NAME', |
||||
'IS_MEMBER', |
||||
'IS_ROLEMEMBER', |
||||
'IS_SRVROLEMEMBER', |
||||
'LOGINPROPERTY', |
||||
'ORIGINAL_LOGIN', |
||||
'PERMISSIONS', |
||||
'PWDENCRYPT', |
||||
'PWDCOMPARE', |
||||
'SESSION_USER', |
||||
'SESSIONPROPERTY', |
||||
'SUSER_ID', |
||||
'SUSER_NAME', |
||||
'SUSER_SID', |
||||
'SUSER_SNAME', |
||||
'SYSTEM_USER', |
||||
'USER', |
||||
'USER_ID', |
||||
'USER_NAME', |
||||
// String
|
||||
'ASCII', |
||||
'CHAR', |
||||
'CHARINDEX', |
||||
'CONCAT', |
||||
'DIFFERENCE', |
||||
'FORMAT', |
||||
'LEFT', |
||||
'LEN', |
||||
'LOWER', |
||||
'LTRIM', |
||||
'NCHAR', |
||||
'PATINDEX', |
||||
'QUOTENAME', |
||||
'REPLACE', |
||||
'REPLICATE', |
||||
'REVERSE', |
||||
'RIGHT', |
||||
'RTRIM', |
||||
'SOUNDEX', |
||||
'SPACE', |
||||
'STR', |
||||
'STUFF', |
||||
'SUBSTRING', |
||||
'UNICODE', |
||||
'UPPER', |
||||
// System
|
||||
'BINARY_CHECKSUM', |
||||
'CHECKSUM', |
||||
'CONNECTIONPROPERTY', |
||||
'CONTEXT_INFO', |
||||
'CURRENT_REQUEST_ID', |
||||
'ERROR_LINE', |
||||
'ERROR_NUMBER', |
||||
'ERROR_MESSAGE', |
||||
'ERROR_PROCEDURE', |
||||
'ERROR_SEVERITY', |
||||
'ERROR_STATE', |
||||
'FORMATMESSAGE', |
||||
'GETANSINULL', |
||||
'GET_FILESTREAM_TRANSACTION_CONTEXT', |
||||
'HOST_ID', |
||||
'HOST_NAME', |
||||
'ISNULL', |
||||
'ISNUMERIC', |
||||
'MIN_ACTIVE_ROWVERSION', |
||||
'NEWID', |
||||
'NEWSEQUENTIALID', |
||||
'ROWCOUNT_BIG', |
||||
'XACT_STATE', |
||||
// TextImage
|
||||
'TEXTPTR', |
||||
'TEXTVALID', |
||||
// Trigger
|
||||
'COLUMNS_UPDATED', |
||||
'EVENTDATA', |
||||
'TRIGGER_NESTLEVEL', |
||||
'UPDATE', |
||||
// ChangeTracking
|
||||
'CHANGETABLE', |
||||
'CHANGE_TRACKING_CONTEXT', |
||||
'CHANGE_TRACKING_CURRENT_VERSION', |
||||
'CHANGE_TRACKING_IS_COLUMN_IN_MASK', |
||||
'CHANGE_TRACKING_MIN_VALID_VERSION', |
||||
// FullTextSearch
|
||||
'CONTAINSTABLE', |
||||
'FREETEXTTABLE', |
||||
// SemanticTextSearch
|
||||
'SEMANTICKEYPHRASETABLE', |
||||
'SEMANTICSIMILARITYDETAILSTABLE', |
||||
'SEMANTICSIMILARITYTABLE', |
||||
// FileStream
|
||||
'FILETABLEROOTPATH', |
||||
'GETFILENAMESPACEPATH', |
||||
'GETPATHLOCATOR', |
||||
'PATHNAME', |
||||
// ServiceBroker
|
||||
'GET_TRANSMISSION_STATUS' |
||||
], |
||||
builtinVariables: [ |
||||
// Configuration
|
||||
'@@DATEFIRST', |
||||
'@@DBTS', |
||||
'@@LANGID', |
||||
'@@LANGUAGE', |
||||
'@@LOCK_TIMEOUT', |
||||
'@@MAX_CONNECTIONS', |
||||
'@@MAX_PRECISION', |
||||
'@@NESTLEVEL', |
||||
'@@OPTIONS', |
||||
'@@REMSERVER', |
||||
'@@SERVERNAME', |
||||
'@@SERVICENAME', |
||||
'@@SPID', |
||||
'@@TEXTSIZE', |
||||
'@@VERSION', |
||||
// Cursor
|
||||
'@@CURSOR_ROWS', |
||||
'@@FETCH_STATUS', |
||||
// Datetime
|
||||
'@@DATEFIRST', |
||||
// Metadata
|
||||
'@@PROCID', |
||||
// System
|
||||
'@@ERROR', |
||||
'@@IDENTITY', |
||||
'@@ROWCOUNT', |
||||
'@@TRANCOUNT', |
||||
// Stats
|
||||
'@@CONNECTIONS', |
||||
'@@CPU_BUSY', |
||||
'@@IDLE', |
||||
'@@IO_BUSY', |
||||
'@@PACKET_ERRORS', |
||||
'@@PACK_RECEIVED', |
||||
'@@PACK_SENT', |
||||
'@@TIMETICKS', |
||||
'@@TOTAL_ERRORS', |
||||
'@@TOTAL_READ', |
||||
'@@TOTAL_WRITE' |
||||
], |
||||
pseudoColumns: ['$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'], |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@comments' }, |
||||
{ include: '@whitespace' }, |
||||
{ include: '@pseudoColumns' }, |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
{ include: '@complexIdentifiers' }, |
||||
{ include: '@scopes' }, |
||||
[/[;,.]/, 'delimiter'], |
||||
[/[()]/, '@brackets'], |
||||
[ |
||||
/[\w@#$]+/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operator', |
||||
'@builtinVariables': 'predefined', |
||||
'@builtinFunctions': 'predefined', |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[<>=!%&+\-*/|~^]/, 'operator'] |
||||
], |
||||
whitespace: [[/\s+/, 'white']], |
||||
comments: [ |
||||
[/--+.*/, 'comment'], |
||||
[/\/\*/, { token: 'comment.quote', next: '@comment' }] |
||||
], |
||||
comment: [ |
||||
[/[^*/]+/, 'comment'], |
||||
// Not supporting nested comments, as nested comments seem to not be standard?
|
||||
// i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
|
||||
// [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
|
||||
[/\*\//, { token: 'comment.quote', next: '@pop' }], |
||||
[/./, 'comment'] |
||||
], |
||||
pseudoColumns: [ |
||||
[ |
||||
/[$][A-Za-z_][\w@#$]*/, |
||||
{ |
||||
cases: { |
||||
'@pseudoColumns': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
numbers: [ |
||||
[/0[xX][0-9a-fA-F]*/, 'number'], |
||||
[/[$][+-]*\d*(\.\d*)?/, 'number'], |
||||
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] |
||||
], |
||||
strings: [ |
||||
[/N'/, { token: 'string', next: '@string' }], |
||||
[/'/, { token: 'string', next: '@string' }] |
||||
], |
||||
string: [ |
||||
[/[^']+/, 'string'], |
||||
[/''/, 'string'], |
||||
[/'/, { token: 'string', next: '@pop' }] |
||||
], |
||||
complexIdentifiers: [ |
||||
[/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }], |
||||
[/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }] |
||||
], |
||||
bracketedIdentifier: [ |
||||
[/[^\]]+/, 'identifier'], |
||||
[/]]/, 'identifier'], |
||||
[/]/, { token: 'identifier.quote', next: '@pop' }] |
||||
], |
||||
quotedIdentifier: [ |
||||
[/[^"]+/, 'identifier'], |
||||
[/""/, 'identifier'], |
||||
[/"/, { token: 'identifier.quote', next: '@pop' }] |
||||
], |
||||
scopes: [ |
||||
[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'], |
||||
[/BEGIN\s+TRY\b/i, { token: 'keyword.try' }], |
||||
[/END\s+TRY\b/i, { token: 'keyword.try' }], |
||||
[/BEGIN\s+CATCH\b/i, { token: 'keyword.catch' }], |
||||
[/END\s+CATCH\b/i, { token: 'keyword.catch' }], |
||||
[/(BEGIN|CASE)\b/i, { token: 'keyword.block' }], |
||||
[/END\b/i, { token: 'keyword.block' }], |
||||
[/WHEN\b/i, { token: 'keyword.choice' }], |
||||
[/THEN\b/i, { token: 'keyword.choice' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,419 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/st/st',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['(*', '*)'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['var', 'end_var'], |
||||
['var_input', 'end_var'], |
||||
['var_output', 'end_var'], |
||||
['var_in_out', 'end_var'], |
||||
['var_temp', 'end_var'], |
||||
['var_global', 'end_var'], |
||||
['var_access', 'end_var'], |
||||
['var_external', 'end_var'], |
||||
['type', 'end_type'], |
||||
['struct', 'end_struct'], |
||||
['program', 'end_program'], |
||||
['function', 'end_function'], |
||||
['function_block', 'end_function_block'], |
||||
['action', 'end_action'], |
||||
['step', 'end_step'], |
||||
['initial_step', 'end_step'], |
||||
['transaction', 'end_transaction'], |
||||
['configuration', 'end_configuration'], |
||||
['tcp', 'end_tcp'], |
||||
['recource', 'end_recource'], |
||||
['channel', 'end_channel'], |
||||
['library', 'end_library'], |
||||
['folder', 'end_folder'], |
||||
['binaries', 'end_binaries'], |
||||
['includes', 'end_includes'], |
||||
['sources', 'end_sources'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '/*', close: '*/' }, |
||||
{ open: "'", close: "'", notIn: ['string_sq'] }, |
||||
{ open: '"', close: '"', notIn: ['string_dq'] }, |
||||
{ open: 'var_input', close: 'end_var' }, |
||||
{ open: 'var_output', close: 'end_var' }, |
||||
{ open: 'var_in_out', close: 'end_var' }, |
||||
{ open: 'var_temp', close: 'end_var' }, |
||||
{ open: 'var_global', close: 'end_var' }, |
||||
{ open: 'var_access', close: 'end_var' }, |
||||
{ open: 'var_external', close: 'end_var' }, |
||||
{ open: 'type', close: 'end_type' }, |
||||
{ open: 'struct', close: 'end_struct' }, |
||||
{ open: 'program', close: 'end_program' }, |
||||
{ open: 'function', close: 'end_function' }, |
||||
{ open: 'function_block', close: 'end_function_block' }, |
||||
{ open: 'action', close: 'end_action' }, |
||||
{ open: 'step', close: 'end_step' }, |
||||
{ open: 'initial_step', close: 'end_step' }, |
||||
{ open: 'transaction', close: 'end_transaction' }, |
||||
{ open: 'configuration', close: 'end_configuration' }, |
||||
{ open: 'tcp', close: 'end_tcp' }, |
||||
{ open: 'recource', close: 'end_recource' }, |
||||
{ open: 'channel', close: 'end_channel' }, |
||||
{ open: 'library', close: 'end_library' }, |
||||
{ open: 'folder', close: 'end_folder' }, |
||||
{ open: 'binaries', close: 'end_binaries' }, |
||||
{ open: 'includes', close: 'end_includes' }, |
||||
{ open: 'sources', close: 'end_sources' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: 'var', close: 'end_var' }, |
||||
{ open: 'var_input', close: 'end_var' }, |
||||
{ open: 'var_output', close: 'end_var' }, |
||||
{ open: 'var_in_out', close: 'end_var' }, |
||||
{ open: 'var_temp', close: 'end_var' }, |
||||
{ open: 'var_global', close: 'end_var' }, |
||||
{ open: 'var_access', close: 'end_var' }, |
||||
{ open: 'var_external', close: 'end_var' }, |
||||
{ open: 'type', close: 'end_type' }, |
||||
{ open: 'struct', close: 'end_struct' }, |
||||
{ open: 'program', close: 'end_program' }, |
||||
{ open: 'function', close: 'end_function' }, |
||||
{ open: 'function_block', close: 'end_function_block' }, |
||||
{ open: 'action', close: 'end_action' }, |
||||
{ open: 'step', close: 'end_step' }, |
||||
{ open: 'initial_step', close: 'end_step' }, |
||||
{ open: 'transaction', close: 'end_transaction' }, |
||||
{ open: 'configuration', close: 'end_configuration' }, |
||||
{ open: 'tcp', close: 'end_tcp' }, |
||||
{ open: 'recource', close: 'end_recource' }, |
||||
{ open: 'channel', close: 'end_channel' }, |
||||
{ open: 'library', close: 'end_library' }, |
||||
{ open: 'folder', close: 'end_folder' }, |
||||
{ open: 'binaries', close: 'end_binaries' }, |
||||
{ open: 'includes', close: 'end_includes' }, |
||||
{ open: 'sources', close: 'end_sources' } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#pragma\\s+region\\b'), |
||||
end: new RegExp('^\\s*#pragma\\s+endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.st', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' } |
||||
], |
||||
keywords: [ |
||||
'if', |
||||
'end_if', |
||||
'elsif', |
||||
'else', |
||||
'case', |
||||
'of', |
||||
'to', |
||||
'__try', |
||||
'__catch', |
||||
'__finally', |
||||
'do', |
||||
'with', |
||||
'by', |
||||
'while', |
||||
'repeat', |
||||
'end_while', |
||||
'end_repeat', |
||||
'end_case', |
||||
'for', |
||||
'end_for', |
||||
'task', |
||||
'retain', |
||||
'non_retain', |
||||
'constant', |
||||
'with', |
||||
'at', |
||||
'exit', |
||||
'return', |
||||
'interval', |
||||
'priority', |
||||
'address', |
||||
'port', |
||||
'on_channel', |
||||
'then', |
||||
'iec', |
||||
'file', |
||||
'uses', |
||||
'version', |
||||
'packagetype', |
||||
'displayname', |
||||
'copyright', |
||||
'summary', |
||||
'vendor', |
||||
'common_source', |
||||
'from', |
||||
'extends' |
||||
], |
||||
constant: ['false', 'true', 'null'], |
||||
defineKeywords: [ |
||||
'var', |
||||
'var_input', |
||||
'var_output', |
||||
'var_in_out', |
||||
'var_temp', |
||||
'var_global', |
||||
'var_access', |
||||
'var_external', |
||||
'end_var', |
||||
'type', |
||||
'end_type', |
||||
'struct', |
||||
'end_struct', |
||||
'program', |
||||
'end_program', |
||||
'function', |
||||
'end_function', |
||||
'function_block', |
||||
'end_function_block', |
||||
'interface', |
||||
'end_interface', |
||||
'method', |
||||
'end_method', |
||||
'property', |
||||
'end_property', |
||||
'namespace', |
||||
'end_namespace', |
||||
'configuration', |
||||
'end_configuration', |
||||
'tcp', |
||||
'end_tcp', |
||||
'resource', |
||||
'end_resource', |
||||
'channel', |
||||
'end_channel', |
||||
'library', |
||||
'end_library', |
||||
'folder', |
||||
'end_folder', |
||||
'binaries', |
||||
'end_binaries', |
||||
'includes', |
||||
'end_includes', |
||||
'sources', |
||||
'end_sources', |
||||
'action', |
||||
'end_action', |
||||
'step', |
||||
'initial_step', |
||||
'end_step', |
||||
'transaction', |
||||
'end_transaction' |
||||
], |
||||
typeKeywords: [ |
||||
'int', |
||||
'sint', |
||||
'dint', |
||||
'lint', |
||||
'usint', |
||||
'uint', |
||||
'udint', |
||||
'ulint', |
||||
'real', |
||||
'lreal', |
||||
'time', |
||||
'date', |
||||
'time_of_day', |
||||
'date_and_time', |
||||
'string', |
||||
'bool', |
||||
'byte', |
||||
'word', |
||||
'dword', |
||||
'array', |
||||
'pointer', |
||||
'lword' |
||||
], |
||||
operators: [ |
||||
'=', |
||||
'>', |
||||
'<', |
||||
':', |
||||
':=', |
||||
'<=', |
||||
'>=', |
||||
'<>', |
||||
'&', |
||||
'+', |
||||
'-', |
||||
'*', |
||||
'**', |
||||
'MOD', |
||||
'^', |
||||
'or', |
||||
'and', |
||||
'not', |
||||
'xor', |
||||
'abs', |
||||
'acos', |
||||
'asin', |
||||
'atan', |
||||
'cos', |
||||
'exp', |
||||
'expt', |
||||
'ln', |
||||
'log', |
||||
'sin', |
||||
'sqrt', |
||||
'tan', |
||||
'sel', |
||||
'max', |
||||
'min', |
||||
'limit', |
||||
'mux', |
||||
'shl', |
||||
'shr', |
||||
'rol', |
||||
'ror', |
||||
'indexof', |
||||
'sizeof', |
||||
'adr', |
||||
'adrinst', |
||||
'bitadr', |
||||
'is_valid', |
||||
'ref', |
||||
'ref_to' |
||||
], |
||||
builtinVariables: [], |
||||
builtinFunctions: [ |
||||
'sr', |
||||
'rs', |
||||
'tp', |
||||
'ton', |
||||
'tof', |
||||
'eq', |
||||
'ge', |
||||
'le', |
||||
'lt', |
||||
'ne', |
||||
'round', |
||||
'trunc', |
||||
'ctd', |
||||
'сtu', |
||||
'ctud', |
||||
'r_trig', |
||||
'f_trig', |
||||
'move', |
||||
'concat', |
||||
'delete', |
||||
'find', |
||||
'insert', |
||||
'left', |
||||
'len', |
||||
'replace', |
||||
'right', |
||||
'rtc' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
// C# style strings
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
[/(\.\.)/, 'delimiter'], |
||||
[/\b(16#[0-9A-Fa-f\_]*)+\b/, 'number.hex'], |
||||
[/\b(2#[01\_]+)+\b/, 'number.binary'], |
||||
[/\b(8#[0-9\_]*)+\b/, 'number.octal'], |
||||
[/\b\d*\.\d+([eE][\-+]?\d+)?\b/, 'number.float'], |
||||
[/\b(L?REAL)#[0-9\_\.e]+\b/, 'number.float'], |
||||
[/\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\_]+\b/, 'number'], |
||||
[/\d+/, 'number'], |
||||
[/\b(T|DT|TOD)#[0-9:-_shmyd]+\b/, 'tag'], |
||||
[/\%(I|Q|M)(X|B|W|D|L)[0-9\.]+/, 'tag'], |
||||
[/\%(I|Q|M)[0-9\.]*/, 'tag'], |
||||
[/\b[A-Za-z]{1,6}#[0-9]+\b/, 'tag'], |
||||
[/\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\b/, 'predefined'], |
||||
[/\b[A_Za-z]+(_TO_)[A_Za-z]+\b/, 'predefined'], |
||||
[/[;]/, 'delimiter'], |
||||
[/[.]/, { token: 'delimiter', next: '@params' }], |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'operators', |
||||
'@keywords': 'keyword', |
||||
'@typeKeywords': 'type', |
||||
'@defineKeywords': 'variable', |
||||
'@constant': 'constant', |
||||
'@builtinVariables': 'predefined', |
||||
'@builtinFunctions': 'predefined', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
{ include: '@whitespace' }, |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@string_dq' }], |
||||
[/'/, { token: 'string.quote', bracket: '@open', next: '@string_sq' }], |
||||
[/'[^\\']'/, 'string'], |
||||
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], |
||||
[/'/, 'string.invalid'] |
||||
], |
||||
params: [ |
||||
[/\b[A-Za-z0-9_]+\b(?=\()/, { token: 'identifier', next: '@pop' }], |
||||
[/\b[A-Za-z0-9_]+\b/, 'variable.name', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\/\*/, 'comment', '@push'], |
||||
['\\*/', 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
comment2: [ |
||||
[/[^\(*]+/, 'comment'], |
||||
[/\(\*/, 'comment', '@push'], |
||||
['\\*\\)', 'comment', '@pop'], |
||||
[/[\(*]/, 'comment'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/\/\/.*$/, 'comment'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\(\*/, 'comment', '@comment2'] |
||||
], |
||||
string_dq: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
string_sq: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,260 @@ |
||||
/*!--------------------------------------------------------------------------------------------- |
||||
* Copyright (C) David Owens II, owensd.io. All rights reserved. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/swift/swift',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '`', close: '`' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '`', close: '`' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.swift', |
||||
// TODO(owensd): Support the full range of unicode valid identifiers.
|
||||
identifier: /[a-zA-Z_][\w$]*/, |
||||
// TODO(owensd): Support the @availability macro properly.
|
||||
attributes: [ |
||||
'@autoclosure', |
||||
'@noescape', |
||||
'@noreturn', |
||||
'@NSApplicationMain', |
||||
'@NSCopying', |
||||
'@NSManaged', |
||||
'@objc', |
||||
'@UIApplicationMain', |
||||
'@noreturn', |
||||
'@availability', |
||||
'@IBAction', |
||||
'@IBDesignable', |
||||
'@IBInspectable', |
||||
'@IBOutlet' |
||||
], |
||||
accessmodifiers: ['public', 'private', 'fileprivate', 'internal'], |
||||
keywords: [ |
||||
'__COLUMN__', |
||||
'__FILE__', |
||||
'__FUNCTION__', |
||||
'__LINE__', |
||||
'as', |
||||
'as!', |
||||
'as?', |
||||
'associativity', |
||||
'break', |
||||
'case', |
||||
'catch', |
||||
'class', |
||||
'continue', |
||||
'convenience', |
||||
'default', |
||||
'deinit', |
||||
'didSet', |
||||
'do', |
||||
'dynamic', |
||||
'dynamicType', |
||||
'else', |
||||
'enum', |
||||
'extension', |
||||
'fallthrough', |
||||
'fileprivate', |
||||
'final', |
||||
'for', |
||||
'func', |
||||
'get', |
||||
'guard', |
||||
'if', |
||||
'import', |
||||
'in', |
||||
'infix', |
||||
'init', |
||||
'inout', |
||||
'internal', |
||||
'is', |
||||
'lazy', |
||||
'left', |
||||
'let', |
||||
'mutating', |
||||
'nil', |
||||
'none', |
||||
'nonmutating', |
||||
'operator', |
||||
'optional', |
||||
'override', |
||||
'postfix', |
||||
'precedence', |
||||
'prefix', |
||||
'private', |
||||
'protocol', |
||||
'Protocol', |
||||
'public', |
||||
'repeat', |
||||
'required', |
||||
'return', |
||||
'right', |
||||
'self', |
||||
'Self', |
||||
'set', |
||||
'static', |
||||
'struct', |
||||
'subscript', |
||||
'super', |
||||
'switch', |
||||
'throw', |
||||
'throws', |
||||
'try', |
||||
'try!', |
||||
'Type', |
||||
'typealias', |
||||
'unowned', |
||||
'var', |
||||
'weak', |
||||
'where', |
||||
'while', |
||||
'willSet', |
||||
'FALSE', |
||||
'TRUE' |
||||
], |
||||
symbols: /[=(){}\[\].,:;@#\_&\-<>`?!+*\\\/]/, |
||||
// Moved . to operatorstart so it can be a delimiter
|
||||
operatorstart: /[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/, |
||||
operatorend: /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/, |
||||
operators: /(@operatorstart)((@operatorstart)|(@operatorend))*/, |
||||
// TODO(owensd): These are borrowed from C#; need to validate correctness for Swift.
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comment' }, |
||||
{ include: '@attribute' }, |
||||
{ include: '@literal' }, |
||||
{ include: '@keyword' }, |
||||
{ include: '@invokedmethod' }, |
||||
{ include: '@symbol' } |
||||
], |
||||
whitespace: [ |
||||
[/\s+/, 'white'], |
||||
[/"""/, 'string.quote', '@endDblDocString'] |
||||
], |
||||
endDblDocString: [ |
||||
[/[^"]+/, 'string'], |
||||
[/\\"/, 'string'], |
||||
[/"""/, 'string.quote', '@popall'], |
||||
[/"/, 'string'] |
||||
], |
||||
symbol: [ |
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[/[.]/, 'delimiter'], |
||||
[/@operators/, 'operator'], |
||||
[/@symbols/, 'operator'] |
||||
], |
||||
comment: [ |
||||
[/\/\/\/.*$/, 'comment.doc'], |
||||
[/\/\*\*/, 'comment.doc', '@commentdocbody'], |
||||
[/\/\/.*$/, 'comment'], |
||||
[/\/\*/, 'comment', '@commentbody'] |
||||
], |
||||
commentdocbody: [ |
||||
[/\/\*/, 'comment', '@commentbody'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/\:[a-zA-Z]+\:/, 'comment.doc.param'], |
||||
[/./, 'comment.doc'] |
||||
], |
||||
commentbody: [ |
||||
[/\/\*/, 'comment', '@commentbody'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/./, 'comment'] |
||||
], |
||||
attribute: [ |
||||
[ |
||||
/@@@identifier/, |
||||
{ |
||||
cases: { |
||||
'@attributes': 'keyword.control', |
||||
'@default': '' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
literal: [ |
||||
[/"/, { token: 'string.quote', next: '@stringlit' }], |
||||
[/0[b]([01]_?)+/, 'number.binary'], |
||||
[/0[o]([0-7]_?)+/, 'number.octal'], |
||||
[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/, 'number.hex'], |
||||
[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/, 'number.float'], |
||||
[/(\d_?)+/, 'number'] |
||||
], |
||||
stringlit: [ |
||||
[/\\\(/, { token: 'operator', next: '@interpolatedexpression' }], |
||||
[/@escapes/, 'string'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, { token: 'string.quote', next: '@pop' }], |
||||
[/./, 'string'] |
||||
], |
||||
interpolatedexpression: [ |
||||
[/\(/, { token: 'operator', next: '@interpolatedexpression' }], |
||||
[/\)/, { token: 'operator', next: '@pop' }], |
||||
{ include: '@literal' }, |
||||
{ include: '@keyword' }, |
||||
{ include: '@symbol' } |
||||
], |
||||
keyword: [ |
||||
[/`/, { token: 'operator', next: '@escapedkeyword' }], |
||||
[ |
||||
/@identifier/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'[A-Z][a-zA-Z0-9$]*': 'type.identifier', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
escapedkeyword: [ |
||||
[/`/, { token: 'operator', next: '@pop' }], |
||||
[/./, 'identifier'] |
||||
], |
||||
// symbol: [
|
||||
// [ /@symbols/, 'operator' ],
|
||||
// [ /@operators/, 'operator' ]
|
||||
// ],
|
||||
invokedmethod: [ |
||||
[ |
||||
/([.])(@identifier)/, |
||||
{ |
||||
cases: { |
||||
$2: ['delimeter', 'type.identifier'], |
||||
'@default': '' |
||||
} |
||||
} |
||||
] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,578 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/systemverilog/systemverilog',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['begin', 'end'], |
||||
['case', 'endcase'], |
||||
['casex', 'endcase'], |
||||
['casez', 'endcase'], |
||||
['checker', 'endchecker'], |
||||
['class', 'endclass'], |
||||
['clocking', 'endclocking'], |
||||
['config', 'endconfig'], |
||||
['function', 'endfunction'], |
||||
['generate', 'endgenerate'], |
||||
['group', 'endgroup'], |
||||
['interface', 'endinterface'], |
||||
['module', 'endmodule'], |
||||
['package', 'endpackage'], |
||||
['primitive', 'endprimitive'], |
||||
['program', 'endprogram'], |
||||
['property', 'endproperty'], |
||||
['specify', 'endspecify'], |
||||
['sequence', 'endsequence'], |
||||
['table', 'endtable'], |
||||
['task', 'endtask'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '[', close: ']' }, |
||||
{ open: '{', close: '}' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
offSide: false, |
||||
markers: { |
||||
start: new RegExp('^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b'), |
||||
end: new RegExp('^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.sv', |
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' }, |
||||
{ token: 'delimiter.angle', open: '<', close: '>' } |
||||
], |
||||
keywords: [ |
||||
'accept_on', |
||||
'alias', |
||||
'always', |
||||
'always_comb', |
||||
'always_ff', |
||||
'always_latch', |
||||
'and', |
||||
'assert', |
||||
'assign', |
||||
'assume', |
||||
'automatic', |
||||
'before', |
||||
'begin', |
||||
'bind', |
||||
'bins', |
||||
'binsof', |
||||
'bit', |
||||
'break', |
||||
'buf', |
||||
'bufif0', |
||||
'bufif1', |
||||
'byte', |
||||
'case', |
||||
'casex', |
||||
'casez', |
||||
'cell', |
||||
'chandle', |
||||
'checker', |
||||
'class', |
||||
'clocking', |
||||
'cmos', |
||||
'config', |
||||
'const', |
||||
'constraint', |
||||
'context', |
||||
'continue', |
||||
'cover', |
||||
'covergroup', |
||||
'coverpoint', |
||||
'cross', |
||||
'deassign', |
||||
'default', |
||||
'defparam', |
||||
'design', |
||||
'disable', |
||||
'dist', |
||||
'do', |
||||
'edge', |
||||
'else', |
||||
'end', |
||||
'endcase', |
||||
'endchecker', |
||||
'endclass', |
||||
'endclocking', |
||||
'endconfig', |
||||
'endfunction', |
||||
'endgenerate', |
||||
'endgroup', |
||||
'endinterface', |
||||
'endmodule', |
||||
'endpackage', |
||||
'endprimitive', |
||||
'endprogram', |
||||
'endproperty', |
||||
'endspecify', |
||||
'endsequence', |
||||
'endtable', |
||||
'endtask', |
||||
'enum', |
||||
'event', |
||||
'eventually', |
||||
'expect', |
||||
'export', |
||||
'extends', |
||||
'extern', |
||||
'final', |
||||
'first_match', |
||||
'for', |
||||
'force', |
||||
'foreach', |
||||
'forever', |
||||
'fork', |
||||
'forkjoin', |
||||
'function', |
||||
'generate', |
||||
'genvar', |
||||
'global', |
||||
'highz0', |
||||
'highz1', |
||||
'if', |
||||
'iff', |
||||
'ifnone', |
||||
'ignore_bins', |
||||
'illegal_bins', |
||||
'implements', |
||||
'implies', |
||||
'import', |
||||
'incdir', |
||||
'include', |
||||
'initial', |
||||
'inout', |
||||
'input', |
||||
'inside', |
||||
'instance', |
||||
'int', |
||||
'integer', |
||||
'interconnect', |
||||
'interface', |
||||
'intersect', |
||||
'join', |
||||
'join_any', |
||||
'join_none', |
||||
'large', |
||||
'let', |
||||
'liblist', |
||||
'library', |
||||
'local', |
||||
'localparam', |
||||
'logic', |
||||
'longint', |
||||
'macromodule', |
||||
'matches', |
||||
'medium', |
||||
'modport', |
||||
'module', |
||||
'nand', |
||||
'negedge', |
||||
'nettype', |
||||
'new', |
||||
'nexttime', |
||||
'nmos', |
||||
'nor', |
||||
'noshowcancelled', |
||||
'not', |
||||
'notif0', |
||||
'notif1', |
||||
'null', |
||||
'or', |
||||
'output', |
||||
'package', |
||||
'packed', |
||||
'parameter', |
||||
'pmos', |
||||
'posedge', |
||||
'primitive', |
||||
'priority', |
||||
'program', |
||||
'property', |
||||
'protected', |
||||
'pull0', |
||||
'pull1', |
||||
'pulldown', |
||||
'pullup', |
||||
'pulsestyle_ondetect', |
||||
'pulsestyle_onevent', |
||||
'pure', |
||||
'rand', |
||||
'randc', |
||||
'randcase', |
||||
'randsequence', |
||||
'rcmos', |
||||
'real', |
||||
'realtime', |
||||
'ref', |
||||
'reg', |
||||
'reject_on', |
||||
'release', |
||||
'repeat', |
||||
'restrict', |
||||
'return', |
||||
'rnmos', |
||||
'rpmos', |
||||
'rtran', |
||||
'rtranif0', |
||||
'rtranif1', |
||||
's_always', |
||||
's_eventually', |
||||
's_nexttime', |
||||
's_until', |
||||
's_until_with', |
||||
'scalared', |
||||
'sequence', |
||||
'shortint', |
||||
'shortreal', |
||||
'showcancelled', |
||||
'signed', |
||||
'small', |
||||
'soft', |
||||
'solve', |
||||
'specify', |
||||
'specparam', |
||||
'static', |
||||
'string', |
||||
'strong', |
||||
'strong0', |
||||
'strong1', |
||||
'struct', |
||||
'super', |
||||
'supply0', |
||||
'supply1', |
||||
'sync_accept_on', |
||||
'sync_reject_on', |
||||
'table', |
||||
'tagged', |
||||
'task', |
||||
'this', |
||||
'throughout', |
||||
'time', |
||||
'timeprecision', |
||||
'timeunit', |
||||
'tran', |
||||
'tranif0', |
||||
'tranif1', |
||||
'tri', |
||||
'tri0', |
||||
'tri1', |
||||
'triand', |
||||
'trior', |
||||
'trireg', |
||||
'type', |
||||
'typedef', |
||||
'union', |
||||
'unique', |
||||
'unique0', |
||||
'unsigned', |
||||
'until', |
||||
'until_with', |
||||
'untyped', |
||||
'use', |
||||
'uwire', |
||||
'var', |
||||
'vectored', |
||||
'virtual', |
||||
'void', |
||||
'wait', |
||||
'wait_order', |
||||
'wand', |
||||
'weak', |
||||
'weak0', |
||||
'weak1', |
||||
'while', |
||||
'wildcard', |
||||
'wire', |
||||
'with', |
||||
'within', |
||||
'wor', |
||||
'xnor', |
||||
'xor' |
||||
], |
||||
builtin_gates: [ |
||||
'and', |
||||
'nand', |
||||
'nor', |
||||
'or', |
||||
'xor', |
||||
'xnor', |
||||
'buf', |
||||
'not', |
||||
'bufif0', |
||||
'bufif1', |
||||
'notif1', |
||||
'notif0', |
||||
'cmos', |
||||
'nmos', |
||||
'pmos', |
||||
'rcmos', |
||||
'rnmos', |
||||
'rpmos', |
||||
'tran', |
||||
'tranif1', |
||||
'tranif0', |
||||
'rtran', |
||||
'rtranif1', |
||||
'rtranif0' |
||||
], |
||||
operators: [ |
||||
// assignment operators
|
||||
'=', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'/=', |
||||
'%=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'<<=', |
||||
'>>+', |
||||
'<<<=', |
||||
'>>>=', |
||||
// conditional expression
|
||||
'?', |
||||
':', |
||||
// Unary operators
|
||||
'+', |
||||
'-', |
||||
'!', |
||||
'~', |
||||
'&', |
||||
'~&', |
||||
'|', |
||||
'~|', |
||||
'^', |
||||
'~^', |
||||
'^~', |
||||
//binary operators
|
||||
'+', |
||||
'-', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'==', |
||||
'!=', |
||||
'===', |
||||
'!==', |
||||
'==?', |
||||
'!=?', |
||||
'&&', |
||||
'||', |
||||
'**', |
||||
'<', |
||||
'<=', |
||||
'>', |
||||
'>=', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'>>', |
||||
'<<', |
||||
'>>>', |
||||
'<<<', |
||||
// increment or decrement operator
|
||||
'++', |
||||
'--', |
||||
//binary logical operator
|
||||
'->', |
||||
'<->', |
||||
// binary set membership operator
|
||||
'inside', |
||||
// binary distrubution operator
|
||||
'dist', |
||||
'::', |
||||
'+:', |
||||
'-:', |
||||
'*>', |
||||
'&&&', |
||||
'|->', |
||||
'|=>', |
||||
'#=#' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%#]+/, |
||||
escapes: /%%|\\(?:[antvf\\"']|x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/, |
||||
identifier: /(?:[a-zA-Z_][a-zA-Z0-9_$\.]*|\\\S+ )/, |
||||
systemcall: /[$][a-zA-Z0-9_]+/, |
||||
timeunits: /s|ms|us|ns|ps|fs/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// module instances
|
||||
[ |
||||
/^(\s*)(@identifier)/, |
||||
[ |
||||
'', |
||||
{ |
||||
cases: { |
||||
'@builtin_gates': { |
||||
token: 'keyword.$2', |
||||
next: '@module_instance' |
||||
}, |
||||
table: { |
||||
token: 'keyword.$2', |
||||
next: '@table' |
||||
}, |
||||
'@keywords': { token: 'keyword.$2' }, |
||||
'@default': { |
||||
token: 'identifier', |
||||
next: '@module_instance' |
||||
} |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// include statements
|
||||
[/^\s*`include/, { token: 'keyword.directive.include', next: '@include' }], |
||||
// Preprocessor directives
|
||||
[/^\s*`\s*\w+/, 'keyword'], |
||||
// identifiers and keywords
|
||||
{ include: '@identifier_or_keyword' }, |
||||
// whitespace and comments
|
||||
{ include: '@whitespace' }, |
||||
// (* attributes *).
|
||||
[/\(\*.*\*\)/, 'annotation'], |
||||
// Systemcall
|
||||
[/@systemcall/, 'variable.predefined'], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
{ include: '@numbers' }, |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
{ include: '@strings' } |
||||
], |
||||
identifier_or_keyword: [ |
||||
[ |
||||
/@identifier/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
numbers: [ |
||||
[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/, 'number.float'], |
||||
[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/, 'number.float'], |
||||
[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/, 'number'], |
||||
[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/, 'number.binary'], |
||||
[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/, 'number.octal'], |
||||
[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/, 'number.hex'], |
||||
[/1step/, 'number'], |
||||
[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/, 'number'], |
||||
[/'[01xXzZ]+/, 'number'] |
||||
], |
||||
module_instance: [ |
||||
{ include: '@whitespace' }, |
||||
[/(#?)(\()/, ['', { token: '@brackets', next: '@port_connection' }]], |
||||
[/@identifier\s*[;={}\[\],]/, { token: '@rematch', next: '@pop' }], |
||||
[/@symbols|[;={}\[\],]/, { token: '@rematch', next: '@pop' }], |
||||
[/@identifier/, 'type'], |
||||
[/;/, 'delimiter', '@pop'] |
||||
], |
||||
port_connection: [ |
||||
{ include: '@identifier_or_keyword' }, |
||||
{ include: '@whitespace' }, |
||||
[/@systemcall/, 'variable.predefined'], |
||||
{ include: '@numbers' }, |
||||
{ include: '@strings' }, |
||||
[/[,]/, 'delimiter'], |
||||
[/\(/, '@brackets', '@port_connection'], |
||||
[/\)/, '@brackets', '@pop'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
strings: [ |
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string'] |
||||
], |
||||
string: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
include: [ |
||||
[ |
||||
/(\s*)(")([\w*\/*]*)(.\w*)(")/, |
||||
[ |
||||
'', |
||||
'string.include.identifier', |
||||
'string.include.identifier', |
||||
'string.include.identifier', |
||||
{ token: 'string.include.identifier', next: '@pop' } |
||||
] |
||||
], |
||||
[ |
||||
/(\s*)(<)([\w*\/*]*)(.\w*)(>)/, |
||||
[ |
||||
'', |
||||
'string.include.identifier', |
||||
'string.include.identifier', |
||||
'string.include.identifier', |
||||
{ token: 'string.include.identifier', next: '@pop' } |
||||
] |
||||
] |
||||
], |
||||
table: [ |
||||
{ include: '@whitespace' }, |
||||
[/[()]/, '@brackets'], |
||||
[/[:;]/, 'delimiter'], |
||||
[/[01\-*?xXbBrRfFpPnN]/, 'variable.predefined'], |
||||
['endtable', 'keyword.endtable', '@pop'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,239 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/tcl/tcl',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
tokenPostfix: '.tcl', |
||||
specialFunctions: [ |
||||
'set', |
||||
'unset', |
||||
'rename', |
||||
'variable', |
||||
'proc', |
||||
'coroutine', |
||||
'foreach', |
||||
'incr', |
||||
'append', |
||||
'lappend', |
||||
'linsert', |
||||
'lreplace' |
||||
], |
||||
mainFunctions: [ |
||||
'if', |
||||
'then', |
||||
'elseif', |
||||
'else', |
||||
'case', |
||||
'switch', |
||||
'while', |
||||
'for', |
||||
'break', |
||||
'continue', |
||||
'return', |
||||
'package', |
||||
'namespace', |
||||
'catch', |
||||
'exit', |
||||
'eval', |
||||
'expr', |
||||
'uplevel', |
||||
'upvar' |
||||
], |
||||
builtinFunctions: [ |
||||
'file', |
||||
'info', |
||||
'concat', |
||||
'join', |
||||
'lindex', |
||||
'list', |
||||
'llength', |
||||
'lrange', |
||||
'lsearch', |
||||
'lsort', |
||||
'split', |
||||
'array', |
||||
'parray', |
||||
'binary', |
||||
'format', |
||||
'regexp', |
||||
'regsub', |
||||
'scan', |
||||
'string', |
||||
'subst', |
||||
'dict', |
||||
'cd', |
||||
'clock', |
||||
'exec', |
||||
'glob', |
||||
'pid', |
||||
'pwd', |
||||
'close', |
||||
'eof', |
||||
'fblocked', |
||||
'fconfigure', |
||||
'fcopy', |
||||
'fileevent', |
||||
'flush', |
||||
'gets', |
||||
'open', |
||||
'puts', |
||||
'read', |
||||
'seek', |
||||
'socket', |
||||
'tell', |
||||
'interp', |
||||
'after', |
||||
'auto_execok', |
||||
'auto_load', |
||||
'auto_mkindex', |
||||
'auto_reset', |
||||
'bgerror', |
||||
'error', |
||||
'global', |
||||
'history', |
||||
'load', |
||||
'source', |
||||
'time', |
||||
'trace', |
||||
'unknown', |
||||
'unset', |
||||
'update', |
||||
'vwait', |
||||
'winfo', |
||||
'wm', |
||||
'bind', |
||||
'event', |
||||
'pack', |
||||
'place', |
||||
'grid', |
||||
'font', |
||||
'bell', |
||||
'clipboard', |
||||
'destroy', |
||||
'focus', |
||||
'grab', |
||||
'lower', |
||||
'option', |
||||
'raise', |
||||
'selection', |
||||
'send', |
||||
'tk', |
||||
'tkwait', |
||||
'tk_bisque', |
||||
'tk_focusNext', |
||||
'tk_focusPrev', |
||||
'tk_focusFollowsMouse', |
||||
'tk_popup', |
||||
'tk_setPalette' |
||||
], |
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
brackets: [ |
||||
{ open: '(', close: ')', token: 'delimiter.parenthesis' }, |
||||
{ open: '{', close: '}', token: 'delimiter.curly' }, |
||||
{ open: '[', close: ']', token: 'delimiter.square' } |
||||
], |
||||
escapes: /\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
variables: /(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/, |
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@specialFunctions': { |
||||
token: 'keyword.flow', |
||||
next: '@specialFunc' |
||||
}, |
||||
'@mainFunctions': 'keyword', |
||||
'@builtinFunctions': 'variable', |
||||
'@default': 'operator.scss' |
||||
} |
||||
} |
||||
], |
||||
[/\s+\-+(?!\d|\.)\w*|{\*}/, 'metatag'], |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, 'operator'], |
||||
[/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }], |
||||
[/@variables/, 'type.identifier'], |
||||
[/\.(?!\d|\.)[\w\-]*/, 'operator.sql'], |
||||
// numbers
|
||||
[/\d+(\.\d+)?/, 'number'], |
||||
[/\d+/, 'number'], |
||||
// delimiter
|
||||
[/;/, 'delimiter'], |
||||
// strings
|
||||
[/"/, { token: 'string.quote', bracket: '@open', next: '@dstring' }], |
||||
[/'/, { token: 'string.quote', bracket: '@open', next: '@sstring' }] |
||||
], |
||||
dstring: [ |
||||
[/\[/, { token: '@brackets', next: '@nestedCall' }], |
||||
[/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }], |
||||
[/@variables/, 'type.identifier'], |
||||
[/[^\\$\[\]"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
sstring: [ |
||||
[/\[/, { token: '@brackets', next: '@nestedCall' }], |
||||
[/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }], |
||||
[/@variables/, 'type.identifier'], |
||||
[/[^\\$\[\]']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, 'white'], |
||||
[/#.*\\$/, { token: 'comment', next: '@newlineComment' }], |
||||
[/#.*(?!\\)$/, 'comment'] |
||||
], |
||||
newlineComment: [ |
||||
[/.*\\$/, 'comment'], |
||||
[/.*(?!\\)$/, { token: 'comment', next: '@pop' }] |
||||
], |
||||
nestedVariable: [ |
||||
[/[^\{\}\$]+/, 'type.identifier'], |
||||
[/\}/, { token: 'identifier', next: '@pop' }] |
||||
], |
||||
nestedCall: [ |
||||
[/\[/, { token: '@brackets', next: '@nestedCall' }], |
||||
[/\]/, { token: '@brackets', next: '@pop' }], |
||||
{ include: 'root' } |
||||
], |
||||
specialFunc: [ |
||||
[/"/, { token: 'string', next: '@dstring' }], |
||||
[/'/, { token: 'string', next: '@sstring' }], |
||||
[/\S+/, { token: 'type', next: '@pop' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,385 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/twig/twig',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, |
||||
comments: { |
||||
blockComment: ['{#', '#}'] |
||||
}, |
||||
brackets: [ |
||||
['{#', '#}'], |
||||
['{%', '%}'], |
||||
['{{', '}}'], |
||||
['(', ')'], |
||||
['[', ']'], |
||||
// HTML
|
||||
['<!--', '-->'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{# ', close: ' #}' }, |
||||
{ open: '{% ', close: ' %}' }, |
||||
{ open: '{{ ', close: ' }}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" }, |
||||
// HTML
|
||||
{ open: '<', close: '>' } |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '', |
||||
ignoreCase: true, |
||||
keywords: [ |
||||
// (opening) tags
|
||||
'apply', |
||||
'autoescape', |
||||
'block', |
||||
'deprecated', |
||||
'do', |
||||
'embed', |
||||
'extends', |
||||
'flush', |
||||
'for', |
||||
'from', |
||||
'if', |
||||
'import', |
||||
'include', |
||||
'macro', |
||||
'sandbox', |
||||
'set', |
||||
'use', |
||||
'verbatim', |
||||
'with', |
||||
// closing tags
|
||||
'endapply', |
||||
'endautoescape', |
||||
'endblock', |
||||
'endembed', |
||||
'endfor', |
||||
'endif', |
||||
'endmacro', |
||||
'endsandbox', |
||||
'endset', |
||||
'endwith', |
||||
// literals
|
||||
'true', |
||||
'false' |
||||
], |
||||
tokenizer: { |
||||
root: [ |
||||
// whitespace
|
||||
[/\s+/], |
||||
// Twig Tag Delimiters
|
||||
[/{#/, 'comment.twig', '@commentState'], |
||||
[/{%[-~]?/, 'delimiter.twig', '@blockState'], |
||||
[/{{[-~]?/, 'delimiter.twig', '@variableState'], |
||||
// HTML
|
||||
[/<!DOCTYPE/, 'metatag.html', '@doctype'], |
||||
[/<!--/, 'comment.html', '@comment'], |
||||
[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ['delimiter.html', 'tag.html', '', 'delimiter.html']], |
||||
[/(<)(script)/, ['delimiter.html', { token: 'tag.html', next: '@script' }]], |
||||
[/(<)(style)/, ['delimiter.html', { token: 'tag.html', next: '@style' }]], |
||||
[/(<)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]], |
||||
[/</, 'delimiter.html'], |
||||
[/[^<]+/] // text
|
||||
], |
||||
/** |
||||
* Comment Tag Handling |
||||
*/ |
||||
commentState: [ |
||||
[/#}/, 'comment.twig', '@pop'], |
||||
[/./, 'comment.twig'] |
||||
], |
||||
/** |
||||
* Block Tag Handling |
||||
*/ |
||||
blockState: [ |
||||
[/[-~]?%}/, 'delimiter.twig', '@pop'], |
||||
// whitespace
|
||||
[/\s+/], |
||||
// verbatim
|
||||
// Unlike other blocks, verbatim ehas its own state
|
||||
// transition to ensure we mark its contents as strings.
|
||||
[ |
||||
/(verbatim)(\s*)([-~]?%})/, |
||||
['keyword.twig', '', { token: 'delimiter.twig', next: '@rawDataState' }] |
||||
], |
||||
{ include: 'expression' } |
||||
], |
||||
rawDataState: [ |
||||
// endverbatim
|
||||
[ |
||||
/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/, |
||||
['delimiter.twig', '', 'keyword.twig', '', { token: 'delimiter.twig', next: '@popall' }] |
||||
], |
||||
[/./, 'string.twig'] |
||||
], |
||||
/** |
||||
* Variable Tag Handling |
||||
*/ |
||||
variableState: [[/[-~]?}}/, 'delimiter.twig', '@pop'], { include: 'expression' }], |
||||
stringState: [ |
||||
// closing double quoted string
|
||||
[/"/, 'string.twig', '@pop'], |
||||
// interpolation start
|
||||
[/#{\s*/, 'string.twig', '@interpolationState'], |
||||
// string part
|
||||
[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/, 'string.twig'] |
||||
], |
||||
interpolationState: [ |
||||
// interpolation end
|
||||
[/}/, 'string.twig', '@pop'], |
||||
{ include: 'expression' } |
||||
], |
||||
/** |
||||
* Expression Handling |
||||
*/ |
||||
expression: [ |
||||
// whitespace
|
||||
[/\s+/], |
||||
// operators - math
|
||||
[/\+|-|\/{1,2}|%|\*{1,2}/, 'operators.twig'], |
||||
// operators - logic
|
||||
[/(and|or|not|b-and|b-xor|b-or)(\s+)/, ['operators.twig', '']], |
||||
// operators - comparison (symbols)
|
||||
[/==|!=|<|>|>=|<=/, 'operators.twig'], |
||||
// operators - comparison (words)
|
||||
[/(starts with|ends with|matches)(\s+)/, ['operators.twig', '']], |
||||
// operators - containment
|
||||
[/(in)(\s+)/, ['operators.twig', '']], |
||||
// operators - test
|
||||
[/(is)(\s+)/, ['operators.twig', '']], |
||||
// operators - misc
|
||||
[/\||~|:|\.{1,2}|\?{1,2}/, 'operators.twig'], |
||||
// names
|
||||
[ |
||||
/[^\W\d][\w]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword.twig', |
||||
'@default': 'variable.twig' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/\d+(\.\d+)?/, 'number.twig'], |
||||
// punctuation
|
||||
[/\(|\)|\[|\]|{|}|,/, 'delimiter.twig'], |
||||
// strings
|
||||
[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/, 'string.twig'], |
||||
// opening double quoted string
|
||||
[/"/, 'string.twig', '@stringState'], |
||||
// misc syntactic constructs
|
||||
// These are not operators per se, but for the purposes of lexical analysis we
|
||||
// can treat them as such.
|
||||
// arrow functions
|
||||
[/=>/, 'operators.twig'], |
||||
// assignment
|
||||
[/=/, 'operators.twig'] |
||||
], |
||||
/** |
||||
* HTML |
||||
*/ |
||||
doctype: [ |
||||
[/[^>]+/, 'metatag.content.html'], |
||||
[/>/, 'metatag.html', '@pop'] |
||||
], |
||||
comment: [ |
||||
[/-->/, 'comment.html', '@pop'], |
||||
[/[^-]+/, 'comment.content.html'], |
||||
[/./, 'comment.content.html'] |
||||
], |
||||
otherTag: [ |
||||
[/\/?>/, 'delimiter.html', '@pop'], |
||||
[/"([^"]*)"/, 'attribute.value.html'], |
||||
[/'([^']*)'/, 'attribute.value.html'], |
||||
[/[\w\-]+/, 'attribute.name.html'], |
||||
[/=/, 'delimiter.html'], |
||||
[/[ \t\r\n]+/] // whitespace
|
||||
], |
||||
// -- BEGIN <script> tags handling
|
||||
// After <script
|
||||
script: [ |
||||
[/type/, 'attribute.name.html', '@scriptAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value.html'], |
||||
[/'([^']*)'/, 'attribute.value.html'], |
||||
[/[\w\-]+/, 'attribute.name.html'], |
||||
[/=/, 'delimiter.html'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(script\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <script ... type
|
||||
scriptAfterType: [ |
||||
[/=/, 'delimiter.html', '@scriptAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type =
|
||||
scriptAfterTypeEquals: [ |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value.html', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value.html', |
||||
switchTo: '@scriptWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded', |
||||
nextEmbedded: 'text/javascript' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <script ... type = $S2
|
||||
scriptWithCustomType: [ |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@scriptEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value.html'], |
||||
[/'([^']*)'/, 'attribute.value.html'], |
||||
[/[\w\-]+/, 'attribute.name.html'], |
||||
[/=/, 'delimiter.html'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/script\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
scriptEmbedded: [ |
||||
[/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/[^<]+/, ''] |
||||
], |
||||
// -- END <script> tags handling
|
||||
// -- BEGIN <style> tags handling
|
||||
// After <style
|
||||
style: [ |
||||
[/type/, 'attribute.name.html', '@styleAfterType'], |
||||
[/"([^"]*)"/, 'attribute.value.html'], |
||||
[/'([^']*)'/, 'attribute.value.html'], |
||||
[/[\w\-]+/, 'attribute.name.html'], |
||||
[/=/, 'delimiter.html'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[ |
||||
/(<\/)(style\s*)(>)/, |
||||
['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }] |
||||
] |
||||
], |
||||
// After <style ... type
|
||||
styleAfterType: [ |
||||
[/=/, 'delimiter.html', '@styleAfterTypeEquals'], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type =
|
||||
styleAfterTypeEquals: [ |
||||
[ |
||||
/"([^"]*)"/, |
||||
{ |
||||
token: 'attribute.value.html', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/'([^']*)'/, |
||||
{ |
||||
token: 'attribute.value.html', |
||||
switchTo: '@styleWithCustomType.$1' |
||||
} |
||||
], |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded', |
||||
nextEmbedded: 'text/css' |
||||
} |
||||
], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
// After <style ... type = $S2
|
||||
styleWithCustomType: [ |
||||
[ |
||||
/>/, |
||||
{ |
||||
token: 'delimiter.html', |
||||
next: '@styleEmbedded.$S2', |
||||
nextEmbedded: '$S2' |
||||
} |
||||
], |
||||
[/"([^"]*)"/, 'attribute.value.html'], |
||||
[/'([^']*)'/, 'attribute.value.html'], |
||||
[/[\w\-]+/, 'attribute.name.html'], |
||||
[/=/, 'delimiter.html'], |
||||
[/[ \t\r\n]+/], |
||||
[/<\/style\s*>/, { token: '@rematch', next: '@pop' }] |
||||
], |
||||
styleEmbedded: [ |
||||
[/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }], |
||||
[/[^<]+/, ''] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,337 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/typescript/typescript',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
// e.g. /** | */
|
||||
beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, |
||||
afterText: /^\s*\*\/$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent, |
||||
appendText: ' * ' |
||||
} |
||||
}, |
||||
{ |
||||
// e.g. /** ...|
|
||||
beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.None, |
||||
appendText: ' * ' |
||||
} |
||||
}, |
||||
{ |
||||
// e.g. * ...|
|
||||
beforeText: /^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.None, |
||||
appendText: '* ' |
||||
} |
||||
}, |
||||
{ |
||||
// e.g. */|
|
||||
beforeText: /^(\t|(\ \ ))*\ \*\/\s*$/, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.None, |
||||
removeText: 1 |
||||
} |
||||
} |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"', notIn: ['string'] }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] }, |
||||
{ open: '`', close: '`', notIn: ['string', 'comment'] }, |
||||
{ open: '/**', close: ' */', notIn: ['string'] } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*//\\s*#?region\\b'), |
||||
end: new RegExp('^\\s*//\\s*#?endregion\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
// Set defaultToken to invalid to see what you do not tokenize yet
|
||||
defaultToken: 'invalid', |
||||
tokenPostfix: '.ts', |
||||
keywords: [ |
||||
// Should match the keys of textToKeywordObj in
|
||||
// https://github.com/microsoft/TypeScript/blob/master/src/compiler/scanner.ts
|
||||
'abstract', |
||||
'any', |
||||
'as', |
||||
'asserts', |
||||
'bigint', |
||||
'boolean', |
||||
'break', |
||||
'case', |
||||
'catch', |
||||
'class', |
||||
'continue', |
||||
'const', |
||||
'constructor', |
||||
'debugger', |
||||
'declare', |
||||
'default', |
||||
'delete', |
||||
'do', |
||||
'else', |
||||
'enum', |
||||
'export', |
||||
'extends', |
||||
'false', |
||||
'finally', |
||||
'for', |
||||
'from', |
||||
'function', |
||||
'get', |
||||
'if', |
||||
'implements', |
||||
'import', |
||||
'in', |
||||
'infer', |
||||
'instanceof', |
||||
'interface', |
||||
'is', |
||||
'keyof', |
||||
'let', |
||||
'module', |
||||
'namespace', |
||||
'never', |
||||
'new', |
||||
'null', |
||||
'number', |
||||
'object', |
||||
'package', |
||||
'private', |
||||
'protected', |
||||
'public', |
||||
'override', |
||||
'readonly', |
||||
'require', |
||||
'global', |
||||
'return', |
||||
'set', |
||||
'static', |
||||
'string', |
||||
'super', |
||||
'switch', |
||||
'symbol', |
||||
'this', |
||||
'throw', |
||||
'true', |
||||
'try', |
||||
'type', |
||||
'typeof', |
||||
'undefined', |
||||
'unique', |
||||
'unknown', |
||||
'var', |
||||
'void', |
||||
'while', |
||||
'with', |
||||
'yield', |
||||
'async', |
||||
'await', |
||||
'of' |
||||
], |
||||
operators: [ |
||||
'<=', |
||||
'>=', |
||||
'==', |
||||
'!=', |
||||
'===', |
||||
'!==', |
||||
'=>', |
||||
'+', |
||||
'-', |
||||
'**', |
||||
'*', |
||||
'/', |
||||
'%', |
||||
'++', |
||||
'--', |
||||
'<<', |
||||
'</', |
||||
'>>', |
||||
'>>>', |
||||
'&', |
||||
'|', |
||||
'^', |
||||
'!', |
||||
'~', |
||||
'&&', |
||||
'||', |
||||
'??', |
||||
'?', |
||||
':', |
||||
'=', |
||||
'+=', |
||||
'-=', |
||||
'*=', |
||||
'**=', |
||||
'/=', |
||||
'%=', |
||||
'<<=', |
||||
'>>=', |
||||
'>>>=', |
||||
'&=', |
||||
'|=', |
||||
'^=', |
||||
'@' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
digits: /\d+(_+\d+)*/, |
||||
octaldigits: /[0-7]+(_+[0-7]+)*/, |
||||
binarydigits: /[0-1]+(_+[0-1]+)*/, |
||||
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, |
||||
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, |
||||
regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [[/[{}]/, 'delimiter.bracket'], { include: 'common' }], |
||||
common: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-z_$][\w$]*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
[/[A-Z][\w\$]*/, 'type.identifier'], |
||||
// [/[A-Z][\w\$]*/, 'identifier'],
|
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// regular expression: ensure it is terminated before beginning (otherwise it is an opeator)
|
||||
[ |
||||
/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/, |
||||
{ token: 'regexp', bracket: '@open', next: '@regexp' } |
||||
], |
||||
// delimiters and operators
|
||||
[/[()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[/!(?=([^=]|$))/, 'delimiter'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
// numbers
|
||||
[/(@digits)[eE]([\-+]?(@digits))?/, 'number.float'], |
||||
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, 'number.float'], |
||||
[/0[xX](@hexdigits)n?/, 'number.hex'], |
||||
[/0[oO]?(@octaldigits)n?/, 'number.octal'], |
||||
[/0[bB](@binarydigits)n?/, 'number.binary'], |
||||
[/(@digits)n?/, 'number'], |
||||
// delimiter: after number because of .\d floats
|
||||
[/[;,.]/, 'delimiter'], |
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/"/, 'string', '@string_double'], |
||||
[/'/, 'string', '@string_single'], |
||||
[/`/, 'string', '@string_backtick'] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/\/\*\*(?!\/)/, 'comment.doc', '@jsdoc'], |
||||
[/\/\*/, 'comment', '@comment'], |
||||
[/\/\/.*$/, 'comment'] |
||||
], |
||||
comment: [ |
||||
[/[^\/*]+/, 'comment'], |
||||
[/\*\//, 'comment', '@pop'], |
||||
[/[\/*]/, 'comment'] |
||||
], |
||||
jsdoc: [ |
||||
[/[^\/*]+/, 'comment.doc'], |
||||
[/\*\//, 'comment.doc', '@pop'], |
||||
[/[\/*]/, 'comment.doc'] |
||||
], |
||||
// We match regular expression quite precisely
|
||||
regexp: [ |
||||
[ |
||||
/(\{)(\d+(?:,\d*)?)(\})/, |
||||
['regexp.escape.control', 'regexp.escape.control', 'regexp.escape.control'] |
||||
], |
||||
[ |
||||
/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, |
||||
['regexp.escape.control', { token: 'regexp.escape.control', next: '@regexrange' }] |
||||
], |
||||
[/(\()(\?:|\?=|\?!)/, ['regexp.escape.control', 'regexp.escape.control']], |
||||
[/[()]/, 'regexp.escape.control'], |
||||
[/@regexpctl/, 'regexp.escape.control'], |
||||
[/[^\\\/]/, 'regexp'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/\\\./, 'regexp.invalid'], |
||||
[/(\/)([dgimsuy]*)/, [{ token: 'regexp', bracket: '@close', next: '@pop' }, 'keyword.other']] |
||||
], |
||||
regexrange: [ |
||||
[/-/, 'regexp.escape.control'], |
||||
[/\^/, 'regexp.invalid'], |
||||
[/@regexpesc/, 'regexp.escape'], |
||||
[/[^\]]/, 'regexp'], |
||||
[ |
||||
/\]/, |
||||
{ |
||||
token: 'regexp.escape.control', |
||||
next: '@pop', |
||||
bracket: '@close' |
||||
} |
||||
] |
||||
], |
||||
string_double: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
string_single: [ |
||||
[/[^\\']+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/'/, 'string', '@pop'] |
||||
], |
||||
string_backtick: [ |
||||
[/\$\{/, { token: 'delimiter.bracket', next: '@bracketCounting' }], |
||||
[/[^\\`$]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/`/, 'string', '@pop'] |
||||
], |
||||
bracketCounting: [ |
||||
[/\{/, 'delimiter.bracket', '@bracketCounting'], |
||||
[/\}/, 'delimiter.bracket', '@pop'], |
||||
{ include: 'common' } |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,379 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/vb/vb',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: "'", |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'], |
||||
['addhandler', 'end addhandler'], |
||||
['class', 'end class'], |
||||
['enum', 'end enum'], |
||||
['event', 'end event'], |
||||
['function', 'end function'], |
||||
['get', 'end get'], |
||||
['if', 'end if'], |
||||
['interface', 'end interface'], |
||||
['module', 'end module'], |
||||
['namespace', 'end namespace'], |
||||
['operator', 'end operator'], |
||||
['property', 'end property'], |
||||
['raiseevent', 'end raiseevent'], |
||||
['removehandler', 'end removehandler'], |
||||
['select', 'end select'], |
||||
['set', 'end set'], |
||||
['structure', 'end structure'], |
||||
['sub', 'end sub'], |
||||
['synclock', 'end synclock'], |
||||
['try', 'end try'], |
||||
['while', 'end while'], |
||||
['with', 'end with'], |
||||
['using', 'end using'], |
||||
['do', 'loop'], |
||||
['for', 'next'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: '<', close: '>', notIn: ['string', 'comment'] } |
||||
], |
||||
folding: { |
||||
markers: { |
||||
start: new RegExp('^\\s*#Region\\b'), |
||||
end: new RegExp('^\\s*#End Region\\b') |
||||
} |
||||
} |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.vb', |
||||
ignoreCase: true, |
||||
brackets: [ |
||||
{ token: 'delimiter.bracket', open: '{', close: '}' }, |
||||
{ token: 'delimiter.array', open: '[', close: ']' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.angle', open: '<', close: '>' }, |
||||
// Special bracket statement pairs
|
||||
// according to https://msdn.microsoft.com/en-us/library/tsw2a11z.aspx
|
||||
{ |
||||
token: 'keyword.tag-addhandler', |
||||
open: 'addhandler', |
||||
close: 'end addhandler' |
||||
}, |
||||
{ token: 'keyword.tag-class', open: 'class', close: 'end class' }, |
||||
{ token: 'keyword.tag-enum', open: 'enum', close: 'end enum' }, |
||||
{ token: 'keyword.tag-event', open: 'event', close: 'end event' }, |
||||
{ |
||||
token: 'keyword.tag-function', |
||||
open: 'function', |
||||
close: 'end function' |
||||
}, |
||||
{ token: 'keyword.tag-get', open: 'get', close: 'end get' }, |
||||
{ token: 'keyword.tag-if', open: 'if', close: 'end if' }, |
||||
{ |
||||
token: 'keyword.tag-interface', |
||||
open: 'interface', |
||||
close: 'end interface' |
||||
}, |
||||
{ token: 'keyword.tag-module', open: 'module', close: 'end module' }, |
||||
{ |
||||
token: 'keyword.tag-namespace', |
||||
open: 'namespace', |
||||
close: 'end namespace' |
||||
}, |
||||
{ |
||||
token: 'keyword.tag-operator', |
||||
open: 'operator', |
||||
close: 'end operator' |
||||
}, |
||||
{ |
||||
token: 'keyword.tag-property', |
||||
open: 'property', |
||||
close: 'end property' |
||||
}, |
||||
{ |
||||
token: 'keyword.tag-raiseevent', |
||||
open: 'raiseevent', |
||||
close: 'end raiseevent' |
||||
}, |
||||
{ |
||||
token: 'keyword.tag-removehandler', |
||||
open: 'removehandler', |
||||
close: 'end removehandler' |
||||
}, |
||||
{ token: 'keyword.tag-select', open: 'select', close: 'end select' }, |
||||
{ token: 'keyword.tag-set', open: 'set', close: 'end set' }, |
||||
{ |
||||
token: 'keyword.tag-structure', |
||||
open: 'structure', |
||||
close: 'end structure' |
||||
}, |
||||
{ token: 'keyword.tag-sub', open: 'sub', close: 'end sub' }, |
||||
{ |
||||
token: 'keyword.tag-synclock', |
||||
open: 'synclock', |
||||
close: 'end synclock' |
||||
}, |
||||
{ token: 'keyword.tag-try', open: 'try', close: 'end try' }, |
||||
{ token: 'keyword.tag-while', open: 'while', close: 'end while' }, |
||||
{ token: 'keyword.tag-with', open: 'with', close: 'end with' }, |
||||
// Other pairs
|
||||
{ token: 'keyword.tag-using', open: 'using', close: 'end using' }, |
||||
{ token: 'keyword.tag-do', open: 'do', close: 'loop' }, |
||||
{ token: 'keyword.tag-for', open: 'for', close: 'next' } |
||||
], |
||||
keywords: [ |
||||
'AddHandler', |
||||
'AddressOf', |
||||
'Alias', |
||||
'And', |
||||
'AndAlso', |
||||
'As', |
||||
'Async', |
||||
'Boolean', |
||||
'ByRef', |
||||
'Byte', |
||||
'ByVal', |
||||
'Call', |
||||
'Case', |
||||
'Catch', |
||||
'CBool', |
||||
'CByte', |
||||
'CChar', |
||||
'CDate', |
||||
'CDbl', |
||||
'CDec', |
||||
'Char', |
||||
'CInt', |
||||
'Class', |
||||
'CLng', |
||||
'CObj', |
||||
'Const', |
||||
'Continue', |
||||
'CSByte', |
||||
'CShort', |
||||
'CSng', |
||||
'CStr', |
||||
'CType', |
||||
'CUInt', |
||||
'CULng', |
||||
'CUShort', |
||||
'Date', |
||||
'Decimal', |
||||
'Declare', |
||||
'Default', |
||||
'Delegate', |
||||
'Dim', |
||||
'DirectCast', |
||||
'Do', |
||||
'Double', |
||||
'Each', |
||||
'Else', |
||||
'ElseIf', |
||||
'End', |
||||
'EndIf', |
||||
'Enum', |
||||
'Erase', |
||||
'Error', |
||||
'Event', |
||||
'Exit', |
||||
'False', |
||||
'Finally', |
||||
'For', |
||||
'Friend', |
||||
'Function', |
||||
'Get', |
||||
'GetType', |
||||
'GetXMLNamespace', |
||||
'Global', |
||||
'GoSub', |
||||
'GoTo', |
||||
'Handles', |
||||
'If', |
||||
'Implements', |
||||
'Imports', |
||||
'In', |
||||
'Inherits', |
||||
'Integer', |
||||
'Interface', |
||||
'Is', |
||||
'IsNot', |
||||
'Let', |
||||
'Lib', |
||||
'Like', |
||||
'Long', |
||||
'Loop', |
||||
'Me', |
||||
'Mod', |
||||
'Module', |
||||
'MustInherit', |
||||
'MustOverride', |
||||
'MyBase', |
||||
'MyClass', |
||||
'NameOf', |
||||
'Namespace', |
||||
'Narrowing', |
||||
'New', |
||||
'Next', |
||||
'Not', |
||||
'Nothing', |
||||
'NotInheritable', |
||||
'NotOverridable', |
||||
'Object', |
||||
'Of', |
||||
'On', |
||||
'Operator', |
||||
'Option', |
||||
'Optional', |
||||
'Or', |
||||
'OrElse', |
||||
'Out', |
||||
'Overloads', |
||||
'Overridable', |
||||
'Overrides', |
||||
'ParamArray', |
||||
'Partial', |
||||
'Private', |
||||
'Property', |
||||
'Protected', |
||||
'Public', |
||||
'RaiseEvent', |
||||
'ReadOnly', |
||||
'ReDim', |
||||
'RemoveHandler', |
||||
'Resume', |
||||
'Return', |
||||
'SByte', |
||||
'Select', |
||||
'Set', |
||||
'Shadows', |
||||
'Shared', |
||||
'Short', |
||||
'Single', |
||||
'Static', |
||||
'Step', |
||||
'Stop', |
||||
'String', |
||||
'Structure', |
||||
'Sub', |
||||
'SyncLock', |
||||
'Then', |
||||
'Throw', |
||||
'To', |
||||
'True', |
||||
'Try', |
||||
'TryCast', |
||||
'TypeOf', |
||||
'UInteger', |
||||
'ULong', |
||||
'UShort', |
||||
'Using', |
||||
'Variant', |
||||
'Wend', |
||||
'When', |
||||
'While', |
||||
'Widening', |
||||
'With', |
||||
'WithEvents', |
||||
'WriteOnly', |
||||
'Xor' |
||||
], |
||||
tagwords: [ |
||||
'If', |
||||
'Sub', |
||||
'Select', |
||||
'Try', |
||||
'Class', |
||||
'Enum', |
||||
'Function', |
||||
'Get', |
||||
'Interface', |
||||
'Module', |
||||
'Namespace', |
||||
'Operator', |
||||
'Set', |
||||
'Structure', |
||||
'Using', |
||||
'While', |
||||
'With', |
||||
'Do', |
||||
'Loop', |
||||
'For', |
||||
'Next', |
||||
'Property', |
||||
'Continue', |
||||
'AddHandler', |
||||
'RemoveHandler', |
||||
'Event', |
||||
'RaiseEvent', |
||||
'SyncLock' |
||||
], |
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?;\.,:&|+\-*\/\^%]+/, |
||||
integersuffix: /U?[DI%L&S@]?/, |
||||
floatsuffix: /[R#F!]?/, |
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
// special ending tag-words
|
||||
[/next(?!\w)/, { token: 'keyword.tag-for' }], |
||||
[/loop(?!\w)/, { token: 'keyword.tag-do' }], |
||||
// usual ending tags
|
||||
[ |
||||
/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/, |
||||
{ token: 'keyword.tag-$1' } |
||||
], |
||||
// identifiers, tagwords, and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@tagwords': { token: 'keyword.tag-$0' }, |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
// Preprocessor directive
|
||||
[/^\s*#\w+/, 'keyword'], |
||||
// numbers
|
||||
[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/, 'number.float'], |
||||
[/&H[0-9a-f]+(@integersuffix)/, 'number.hex'], |
||||
[/&0[0-7]+(@integersuffix)/, 'number.octal'], |
||||
[/\d+(@integersuffix)/, 'number'], |
||||
// date literal
|
||||
[/#.*#/, 'number'], |
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/@symbols/, 'delimiter'], |
||||
// strings
|
||||
[/["\u201c\u201d]/, { token: 'string.quote', next: '@string' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/(\'|REM(?!\w)).*$/, 'comment'] |
||||
], |
||||
string: [ |
||||
[/[^"\u201c\u201d]+/, 'string'], |
||||
[/["\u201c\u201d]{2}/, 'string.escape'], |
||||
[/["\u201c\u201d]C?/, { token: 'string.quote', next: '@pop' }] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,94 @@ |
||||
/*--------------------------------------------------------------------------------------------- |
||||
* Copyright (c) Microsoft Corporation. All rights reserved. |
||||
* Licensed under the MIT License. See License.txt in the project root for license information. |
||||
*--------------------------------------------------------------------------------------------*/ |
||||
define('vs/basic-languages/xml/xml',["require", "exports", "../fillers/monaco-editor-core"], function (require, exports, monaco_editor_core_1) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
blockComment: ['<!--', '-->'] |
||||
}, |
||||
brackets: [['<', '>']], |
||||
autoClosingPairs: [ |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '<', close: '>' }, |
||||
{ open: "'", close: "'" }, |
||||
{ open: '"', close: '"' } |
||||
], |
||||
onEnterRules: [ |
||||
{ |
||||
beforeText: new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i, |
||||
action: { |
||||
indentAction: monaco_editor_core_1.languages.IndentAction.IndentOutdent |
||||
} |
||||
}, |
||||
{ |
||||
beforeText: new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$", 'i'), |
||||
action: { indentAction: monaco_editor_core_1.languages.IndentAction.Indent } |
||||
} |
||||
] |
||||
}; |
||||
exports.language = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.xml', |
||||
ignoreCase: true, |
||||
// Useful regular expressions
|
||||
qualifiedName: /(?:[\w\.\-]+:)?[\w\.\-]+/, |
||||
tokenizer: { |
||||
root: [ |
||||
[/[^<&]+/, ''], |
||||
{ include: '@whitespace' }, |
||||
// Standard opening tag
|
||||
[/(<)(@qualifiedName)/, [{ token: 'delimiter' }, { token: 'tag', next: '@tag' }]], |
||||
// Standard closing tag
|
||||
[ |
||||
/(<\/)(@qualifiedName)(\s*)(>)/, |
||||
[{ token: 'delimiter' }, { token: 'tag' }, '', { token: 'delimiter' }] |
||||
], |
||||
// Meta tags - instruction
|
||||
[/(<\?)(@qualifiedName)/, [{ token: 'delimiter' }, { token: 'metatag', next: '@tag' }]], |
||||
// Meta tags - declaration
|
||||
[/(<\!)(@qualifiedName)/, [{ token: 'delimiter' }, { token: 'metatag', next: '@tag' }]], |
||||
// CDATA
|
||||
[/<\!\[CDATA\[/, { token: 'delimiter.cdata', next: '@cdata' }], |
||||
[/&\w+;/, 'string.escape'] |
||||
], |
||||
cdata: [ |
||||
[/[^\]]+/, ''], |
||||
[/\]\]>/, { token: 'delimiter.cdata', next: '@pop' }], |
||||
[/\]/, ''] |
||||
], |
||||
tag: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/, ['attribute.name', '', 'attribute.value']], |
||||
[ |
||||
/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/, |
||||
['attribute.name', '', 'attribute.value'] |
||||
], |
||||
[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/, ['attribute.name', '', 'attribute.value']], |
||||
[/@qualifiedName/, 'attribute.name'], |
||||
[/\?>/, { token: 'delimiter', next: '@pop' }], |
||||
[/(\/)(>)/, [{ token: 'tag' }, { token: 'delimiter', next: '@pop' }]], |
||||
[/>/, { token: 'delimiter', next: '@pop' }] |
||||
], |
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, ''], |
||||
[/<!--/, { token: 'comment', next: '@comment' }] |
||||
], |
||||
comment: [ |
||||
[/[^<\-]+/, 'comment.content'], |
||||
[/-->/, { token: 'comment', next: '@pop' }], |
||||
[/<!--/, 'comment.content.invalid'], |
||||
[/[<\-]/, 'comment.content'] |
||||
] |
||||
} |
||||
}; |
||||
}); |
||||
|
@ -0,0 +1,193 @@ |
||||
define('vs/basic-languages/yaml/yaml',["require", "exports"], function (require, exports) { |
||||
"use strict"; |
||||
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
exports.language = exports.conf = void 0; |
||||
exports.conf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '"', close: '"' }, |
||||
{ open: "'", close: "'" } |
||||
], |
||||
folding: { |
||||
offSide: true |
||||
} |
||||
}; |
||||
exports.language = { |
||||
tokenPostfix: '.yaml', |
||||
brackets: [ |
||||
{ token: 'delimiter.bracket', open: '{', close: '}' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' } |
||||
], |
||||
keywords: ['true', 'True', 'TRUE', 'false', 'False', 'FALSE', 'null', 'Null', 'Null', '~'], |
||||
numberInteger: /(?:0|[+-]?[0-9]+)/, |
||||
numberFloat: /(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/, |
||||
numberOctal: /0o[0-7]+/, |
||||
numberHex: /0x[0-9a-fA-F]+/, |
||||
numberInfinity: /[+-]?\.(?:inf|Inf|INF)/, |
||||
numberNaN: /\.(?:nan|Nan|NAN)/, |
||||
numberDate: /\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/, |
||||
escapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/, |
||||
tokenizer: { |
||||
root: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comment' }, |
||||
// Directive
|
||||
[/%[^ ]+.*$/, 'meta.directive'], |
||||
// Document Markers
|
||||
[/---/, 'operators.directivesEnd'], |
||||
[/\.{3}/, 'operators.documentEnd'], |
||||
// Block Structure Indicators
|
||||
[/[-?:](?= )/, 'operators'], |
||||
{ include: '@anchor' }, |
||||
{ include: '@tagHandle' }, |
||||
{ include: '@flowCollections' }, |
||||
{ include: '@blockStyle' }, |
||||
// Numbers
|
||||
[/@numberInteger(?![ \t]*\S+)/, 'number'], |
||||
[/@numberFloat(?![ \t]*\S+)/, 'number.float'], |
||||
[/@numberOctal(?![ \t]*\S+)/, 'number.octal'], |
||||
[/@numberHex(?![ \t]*\S+)/, 'number.hex'], |
||||
[/@numberInfinity(?![ \t]*\S+)/, 'number.infinity'], |
||||
[/@numberNaN(?![ \t]*\S+)/, 'number.nan'], |
||||
[/@numberDate(?![ \t]*\S+)/, 'number.date'], |
||||
// Key:Value pair
|
||||
[/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/, ['type', 'white', 'operators', 'white']], |
||||
{ include: '@flowScalars' }, |
||||
// String nodes
|
||||
[ |
||||
/[^#]+/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Flow Collection: Flow Mapping
|
||||
object: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comment' }, |
||||
// Flow Mapping termination
|
||||
[/\}/, '@brackets', '@pop'], |
||||
// Flow Mapping delimiter
|
||||
[/,/, 'delimiter.comma'], |
||||
// Flow Mapping Key:Value delimiter
|
||||
[/:(?= )/, 'operators'], |
||||
// Flow Mapping Key:Value key
|
||||
[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, 'type'], |
||||
// Start Flow Style
|
||||
{ include: '@flowCollections' }, |
||||
{ include: '@flowScalars' }, |
||||
// Scalar Data types
|
||||
{ include: '@tagHandle' }, |
||||
{ include: '@anchor' }, |
||||
{ include: '@flowNumber' }, |
||||
// Other value (keyword or string)
|
||||
[ |
||||
/[^\},]+/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// Flow Collection: Flow Sequence
|
||||
array: [ |
||||
{ include: '@whitespace' }, |
||||
{ include: '@comment' }, |
||||
// Flow Sequence termination
|
||||
[/\]/, '@brackets', '@pop'], |
||||
// Flow Sequence delimiter
|
||||
[/,/, 'delimiter.comma'], |
||||
// Start Flow Style
|
||||
{ include: '@flowCollections' }, |
||||
{ include: '@flowScalars' }, |
||||
// Scalar Data types
|
||||
{ include: '@tagHandle' }, |
||||
{ include: '@anchor' }, |
||||
{ include: '@flowNumber' }, |
||||
// Other value (keyword or string)
|
||||
[ |
||||
/[^\],]+/, |
||||
{ |
||||
cases: { |
||||
'@keywords': 'keyword', |
||||
'@default': 'string' |
||||
} |
||||
} |
||||
] |
||||
], |
||||
// First line of a Block Style
|
||||
multiString: [[/^( +).+$/, 'string', '@multiStringContinued.$1']], |
||||
// Further lines of a Block Style
|
||||
// Workaround for indentation detection
|
||||
multiStringContinued: [ |
||||
[ |
||||
/^( *).+$/, |
||||
{ |
||||
cases: { |
||||
'$1==$S2': 'string', |
||||
'@default': { token: '@rematch', next: '@popall' } |
||||
} |
||||
} |
||||
] |
||||
], |
||||
whitespace: [[/[ \t\r\n]+/, 'white']], |
||||
// Only line comments
|
||||
comment: [[/#.*$/, 'comment']], |
||||
// Start Flow Collections
|
||||
flowCollections: [ |
||||
[/\[/, '@brackets', '@array'], |
||||
[/\{/, '@brackets', '@object'] |
||||
], |
||||
// Start Flow Scalars (quoted strings)
|
||||
flowScalars: [ |
||||
[/"([^"\\]|\\.)*$/, 'string.invalid'], |
||||
[/'([^'\\]|\\.)*$/, 'string.invalid'], |
||||
[/'[^']*'/, 'string'], |
||||
[/"/, 'string', '@doubleQuotedString'] |
||||
], |
||||
doubleQuotedString: [ |
||||
[/[^\\"]+/, 'string'], |
||||
[/@escapes/, 'string.escape'], |
||||
[/\\./, 'string.escape.invalid'], |
||||
[/"/, 'string', '@pop'] |
||||
], |
||||
// Start Block Scalar
|
||||
blockStyle: [[/[>|][0-9]*[+-]?$/, 'operators', '@multiString']], |
||||
// Numbers in Flow Collections (terminate with ,]})
|
||||
flowNumber: [ |
||||
[/@numberInteger(?=[ \t]*[,\]\}])/, 'number'], |
||||
[/@numberFloat(?=[ \t]*[,\]\}])/, 'number.float'], |
||||
[/@numberOctal(?=[ \t]*[,\]\}])/, 'number.octal'], |
||||
[/@numberHex(?=[ \t]*[,\]\}])/, 'number.hex'], |
||||
[/@numberInfinity(?=[ \t]*[,\]\}])/, 'number.infinity'], |
||||
[/@numberNaN(?=[ \t]*[,\]\}])/, 'number.nan'], |
||||
[/@numberDate(?=[ \t]*[,\]\}])/, 'number.date'] |
||||
], |
||||
tagHandle: [[/\![^ ]*/, 'tag']], |
||||
anchor: [[/[&*][^ ]+/, 'namespace']] |
||||
} |
||||
}; |
||||
}); |
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue