This commit is contained in:
2025-11-02 19:17:20 +08:00
parent ebf784146e
commit e71b69db5f
2575 changed files with 1242294 additions and 95 deletions

File diff suppressed because it is too large Load Diff

21
_internal/editor/LICENSE Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 - present Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

114
_internal/editor/README.md Normal file
View File

@@ -0,0 +1,114 @@
# Monaco Editor
[![Versions](https://img.shields.io/npm/v/monaco-editor)](https://www.npmjs.com/package/monaco-editor)
[![Versions](https://img.shields.io/npm/v/monaco-editor/next)](https://www.npmjs.com/package/monaco-editor)
[![Feature Requests](https://img.shields.io/github/issues/microsoft/monaco-editor/feature-request.svg)](https://github.com/microsoft/monaco-editor/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc)
[![Bugs](https://img.shields.io/github/issues/microsoft/monaco-editor/bug.svg)](https://github.com/microsoft/monaco-editor/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug)
The Monaco Editor is the fully featured code editor from [VS Code](https://github.com/microsoft/vscode). Check out the [VS Code docs](https://code.visualstudio.com/docs/editor/editingevolved) to see some of the supported features.
![image](https://user-images.githubusercontent.com/5047891/94183711-290c0780-fea3-11ea-90e3-c88ff9d21bd6.png)
## Try it out
Try out the editor and see various examples [in our interactive playground](https://microsoft.github.io/monaco-editor/playground.html).
The playground is the best way to learn about how to use the editor, which features is supports, to try out different versions and to create minimal reproducible examples for bug reports.
## Installing
```
> npm install monaco-editor
```
You will get:
- inside `/esm`: ESM version of the editor (compatible with e.g. webpack)
- `monaco.d.ts`: this specifies the API of the editor (this is what is actually versioned, everything else is considered private and might break with any release).
:warning: The monaco editor also ships an `AMD` build for backwards-compatibility reasons, but the `AMD` support is deprecated and will be removed in future versions.
## Concepts
Monaco editor is best known for being the text editor that powers VS Code. However, it's a bit more nuanced. Some basic understanding about the underlying concepts is needed to use Monaco editor effectively.
### Models
Models are at the heart of Monaco editor. It's what you interact with when managing content. A model represents a file that has been opened. This could represent a file that exists on a file system, but it doesn't have to. For example, the model holds the text content, determines the language of the content, and tracks the edit history of the content.
### URIs
Each model is identified by a URI. This is why it's not possible for two models to have the same URI. Ideally when you represent content in Monaco editor, you should think of a virtual file system that matches the files your users are editing. For example, you could use `file:///` as a base path. If a model is created without a URI, its URI will be `inmemory://model/1`. The number increases as more models are created.
### Editors
An editor is a user facing view of the model. This is what gets attached to the DOM and what your users see visually. Typical editor operations are displaying a model, managing the view state, or executing actions or commands.
### Providers
Providers provide smart editor features. For example, this includes completion and hover information. It is not the same as, but often maps to [language server protocol](https://microsoft.github.io/language-server-protocol) features.
Providers work on models. Some smart features depends on the file URI. For example, for TypeScript to resolve imports, or for JSON IntelliSense to determine which JSON schema to apply to which model. So it's important to choose proper model URIs.
### Disposables
Many Monaco related objects often implement the `.dispose()` method. This method is intended to perform cleanups when a resource is no longer needed. For example, calling `model.dispose()` will unregister it, freeing up the URI for a new model. Editors should be disposed to free up resources and remove their model listeners.
## Documentation
- Learn how to integrate the editor with these [complete samples](./samples/).
- [Integrate the ESM version](./docs/integrate-esm.md)
- Learn how to use the editor API and try out your own customizations in the [playground](https://microsoft.github.io/monaco-editor/playground.html).
- Explore the [API docs](https://microsoft.github.io/monaco-editor/docs.html) or read them straight from [`monaco.d.ts`](https://github.com/microsoft/monaco-editor/blob/gh-pages/node_modules/monaco-editor/monaco.d.ts).
- Read [this guide](https://github.com/microsoft/monaco-editor/wiki/Accessibility-Guide-for-Integrators) to ensure the editor is accessible to all your users!
- Create a Monarch tokenizer for a new programming language [in the Monarch playground](https://microsoft.github.io/monaco-editor/monarch.html).
- Ask questions on [StackOverflow](https://stackoverflow.com/questions/tagged/monaco-editor)! Search open and closed issues, there are a lot of tips in there!
## Issues
Create [issues](https://github.com/microsoft/monaco-editor/issues) in this repository for anything related to the Monaco Editor. Please search for existing issues to avoid duplicates.
## FAQ
**What is the relationship between VS Code and the Monaco Editor?**
The Monaco Editor is generated straight from VS Code's sources with some shims around services the code needs to make it run in a web browser outside of its home.
**What is the relationship between VS Code's version and the Monaco Editor's version?**
None. The Monaco Editor is a library and it reflects directly the source code.
**I've written an extension for VS Code, will it work on the Monaco Editor in a browser?**
No.
> Note: If the extension is fully based on the [LSP](https://microsoft.github.io/language-server-protocol/) and if the language server is authored in JavaScript, then it would be possible.
**Why all these web workers and why should I care?**
Language services create web workers to compute heavy stuff outside of the UI thread. They cost hardly anything in terms of resource overhead and you shouldn't worry too much about them, as long as you get them to work (see above the cross-domain case).
**I see the warning "Could not create web worker". What should I do?**
HTML5 does not allow pages loaded on `file://` to create web workers. Please load the editor with a web server on `http://` or `https://` schemes.
**Is the editor supported in mobile browsers or mobile web app frameworks?**
No.
**Why doesn't the editor support TextMate grammars?**
- Please see https://github.com/bolinfest/monaco-tm which puts together `monaco-editor`, `vscode-oniguruma` and `vscode-textmate` to get TM grammar support in the editor.
## Contributing / Local Development
We are welcoming contributions from the community!
Please see [CONTRIBUTING](./CONTRIBUTING.md) for details how you can contribute effectively, how you can run the editor from sources and how you can debug and fix issues.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## License
Licensed under the [MIT](https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt) License.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
define("vs/_commonjsHelpers-98qg88fe", ["exports"], (function(exports) {
"use strict";
function getDefaultExportFromCjs(x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
}
exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
}));

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,333 @@
define("vs/apex-Jqcmv7eP", ["exports"], (function(exports) {
"use strict";
const 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>))")
}
}
};
const 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"
];
const uppercaseFirstLetter = (lowercase) => lowercase.charAt(0).toUpperCase() + lowercase.substr(1);
let keywordsWithCaseVariations = [];
keywords.forEach((lowercase) => {
keywordsWithCaseVariations.push(lowercase);
keywordsWithCaseVariations.push(lowercase.toUpperCase());
keywordsWithCaseVariations.push(uppercaseFirstLetter(lowercase));
});
const 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"],
// non-teminated string
[/'([^'\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, "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"
}
}
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

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 one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,71 @@
define("vs/azcli-DlDxj3-g", ["exports"], (function(exports) {
"use strict";
const conf = {
comments: {
lineComment: "#"
}
};
const 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" }
}
}
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,978 @@
define("vs/basic-languages/monaco.contribution", ["require", "../editor.api-BhD7pWdi"], (function(require, editor_api) {
"use strict";
const languageDefinitions = {};
const lazyLanguageLoaders = {};
class LazyLanguageLoader {
static getOrCreate(languageId) {
if (!lazyLanguageLoaders[languageId]) {
lazyLanguageLoaders[languageId] = new LazyLanguageLoader(languageId);
}
return lazyLanguageLoaders[languageId];
}
constructor(languageId) {
this._languageId = languageId;
this._loadingTriggered = false;
this._lazyLoadPromise = new Promise((resolve, reject) => {
this._lazyLoadPromiseResolve = resolve;
this._lazyLoadPromiseReject = reject;
});
}
load() {
if (!this._loadingTriggered) {
this._loadingTriggered = true;
languageDefinitions[this._languageId].loader().then(
(mod) => this._lazyLoadPromiseResolve(mod),
(err) => this._lazyLoadPromiseReject(err)
);
}
return this._lazyLoadPromise;
}
}
function registerLanguage(def) {
const languageId = def.id;
languageDefinitions[languageId] = def;
editor_api.languages.register(def);
const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);
editor_api.languages.registerTokensProviderFactory(languageId, {
create: async () => {
const mod = await lazyLanguageLoader.load();
return mod.language;
}
});
editor_api.languages.onLanguageEncountered(languageId, async () => {
const mod = await lazyLanguageLoader.load();
editor_api.languages.setLanguageConfiguration(languageId, mod.conf);
});
}
registerLanguage({
id: "abap",
extensions: [".abap"],
aliases: ["abap", "ABAP"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../abap-BxE6jMvt"], resolve, reject));
}
}
});
registerLanguage({
id: "apex",
extensions: [".cls"],
aliases: ["Apex", "apex"],
mimetypes: ["text/x-apex-source", "text/x-apex"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../apex-Jqcmv7eP"], resolve, reject));
}
}
});
registerLanguage({
id: "azcli",
extensions: [".azcli"],
aliases: ["Azure CLI", "azcli"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../azcli-DlDxj3-g"], resolve, reject));
}
}
});
registerLanguage({
id: "bat",
extensions: [".bat", ".cmd"],
aliases: ["Batch", "bat"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../bat-gO9qKzUo"], resolve, reject));
}
}
});
registerLanguage({
id: "bicep",
extensions: [".bicep"],
aliases: ["Bicep"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../bicep-XOQLqtWX"], resolve, reject));
}
}
});
registerLanguage({
id: "cameligo",
extensions: [".mligo"],
aliases: ["Cameligo"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../cameligo-DCtn5844"], resolve, reject));
}
}
});
registerLanguage({
id: "clojure",
extensions: [".clj", ".cljs", ".cljc", ".edn"],
aliases: ["clojure", "Clojure"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../clojure-DyYtgmYv"], resolve, reject));
}
}
});
registerLanguage({
id: "coffeescript",
extensions: [".coffee"],
aliases: ["CoffeeScript", "coffeescript", "coffee"],
mimetypes: ["text/x-coffeescript", "text/coffeescript"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../coffee-C8bOs6Uz"], resolve, reject));
}
}
});
registerLanguage({
id: "c",
extensions: [".c", ".h"],
aliases: ["C", "c"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../cpp-9dJI961u"], resolve, reject));
}
}
});
registerLanguage({
id: "cpp",
extensions: [".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx"],
aliases: ["C++", "Cpp", "cpp"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../cpp-9dJI961u"], resolve, reject));
}
}
});
registerLanguage({
id: "csharp",
extensions: [".cs", ".csx", ".cake"],
aliases: ["C#", "csharp"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../csharp-NZNtYXm3"], resolve, reject));
}
}
});
registerLanguage({
id: "csp",
extensions: [".csp"],
aliases: ["CSP", "csp"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../csp-CtMdzNMY"], resolve, reject));
}
}
});
registerLanguage({
id: "css",
extensions: [".css"],
aliases: ["CSS", "css"],
mimetypes: ["text/css"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../css-t68wsr0f"], resolve, reject));
}
}
});
registerLanguage({
id: "cypher",
extensions: [".cypher", ".cyp"],
aliases: ["Cypher", "OpenCypher"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../cypher-DyfRGA23"], resolve, reject));
}
}
});
registerLanguage({
id: "dart",
extensions: [".dart"],
aliases: ["Dart", "dart"],
mimetypes: ["text/x-dart-source", "text/x-dart"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../dart-eN3E5CF0"], resolve, reject));
}
}
});
registerLanguage({
id: "dockerfile",
extensions: [".dockerfile"],
filenames: ["Dockerfile"],
aliases: ["Dockerfile"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../dockerfile-A7JJbAuF"], resolve, reject));
}
}
});
registerLanguage({
id: "ecl",
extensions: [".ecl"],
aliases: ["ECL", "Ecl", "ecl"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../ecl-BJgqfLSq"], resolve, reject));
}
}
});
registerLanguage({
id: "elixir",
extensions: [".ex", ".exs"],
aliases: ["Elixir", "elixir", "ex"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../elixir-BxvNo5o6"], resolve, reject));
}
}
});
registerLanguage({
id: "flow9",
extensions: [".flow"],
aliases: ["Flow9", "Flow", "flow9", "flow"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../flow9-BNnUn-_8"], resolve, reject));
}
}
});
registerLanguage({
id: "fsharp",
extensions: [".fs", ".fsi", ".ml", ".mli", ".fsx", ".fsscript"],
aliases: ["F#", "FSharp", "fsharp"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../fsharp-DHdXPb1O"], resolve, reject));
}
}
});
registerLanguage({
id: "freemarker2",
extensions: [".ftl", ".ftlh", ".ftlx"],
aliases: ["FreeMarker2", "Apache FreeMarker2"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagAutoInterpolationDollar);
}
}
});
registerLanguage({
id: "freemarker2.tag-angle.interpolation-dollar",
aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagAngleInterpolationDollar);
}
}
});
registerLanguage({
id: "freemarker2.tag-bracket.interpolation-dollar",
aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagBracketInterpolationDollar);
}
}
});
registerLanguage({
id: "freemarker2.tag-angle.interpolation-bracket",
aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagAngleInterpolationBracket);
}
}
});
registerLanguage({
id: "freemarker2.tag-bracket.interpolation-bracket",
aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagBracketInterpolationBracket);
}
}
});
registerLanguage({
id: "freemarker2.tag-auto.interpolation-dollar",
aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagAutoInterpolationDollar);
}
}
});
registerLanguage({
id: "freemarker2.tag-auto.interpolation-bracket",
aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../freemarker2-Ci5s7p-k"], resolve, reject)).then((m) => m.TagAutoInterpolationBracket);
}
}
});
registerLanguage({
id: "go",
extensions: [".go"],
aliases: ["Go"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../go-DcS9_gMe"], resolve, reject));
}
}
});
registerLanguage({
id: "graphql",
extensions: [".graphql", ".gql"],
aliases: ["GraphQL", "graphql", "gql"],
mimetypes: ["application/graphql"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../graphql-CHzgmf8E"], resolve, reject));
}
}
});
registerLanguage({
id: "handlebars",
extensions: [".handlebars", ".hbs"],
aliases: ["Handlebars", "handlebars", "hbs"],
mimetypes: ["text/x-handlebars-template"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../handlebars-Cpd6mzVL"], resolve, reject));
}
}
});
registerLanguage({
id: "hcl",
extensions: [".tf", ".tfvars", ".hcl"],
aliases: ["Terraform", "tf", "HCL", "hcl"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../hcl-ChD4paVH"], resolve, reject));
}
}
});
registerLanguage({
id: "html",
extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
aliases: ["HTML", "htm", "html", "xhtml"],
mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../html-L3fuhF-c"], resolve, reject));
}
}
});
registerLanguage({
id: "ini",
extensions: [".ini", ".properties", ".gitconfig"],
filenames: ["config", ".gitattributes", ".gitconfig", ".editorconfig"],
aliases: ["Ini", "ini"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../ini-CdZgSnLI"], resolve, reject));
}
}
});
registerLanguage({
id: "java",
extensions: [".java", ".jav"],
aliases: ["Java", "java"],
mimetypes: ["text/x-java-source", "text/x-java"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../java-vwwkdu2k"], resolve, reject));
}
}
});
registerLanguage({
id: "javascript",
extensions: [".js", ".es6", ".jsx", ".mjs", ".cjs"],
firstLine: "^#!.*\\bnode",
filenames: ["jakefile"],
aliases: ["JavaScript", "javascript", "js"],
mimetypes: ["text/javascript"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../javascript-DtYAOqDf"], resolve, reject));
}
}
});
registerLanguage({
id: "julia",
extensions: [".jl"],
aliases: ["julia", "Julia"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../julia-DrYN6c6i"], resolve, reject));
}
}
});
registerLanguage({
id: "kotlin",
extensions: [".kt", ".kts"],
aliases: ["Kotlin", "kotlin"],
mimetypes: ["text/x-kotlin-source", "text/x-kotlin"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../kotlin-BlB-2Ilc"], resolve, reject));
}
}
});
registerLanguage({
id: "less",
extensions: [".less"],
aliases: ["Less", "less"],
mimetypes: ["text/x-less", "text/less"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../less-B7KFvseP"], resolve, reject));
}
}
});
registerLanguage({
id: "lexon",
extensions: [".lex"],
aliases: ["Lexon"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../lexon-BmRNXYWC"], resolve, reject));
}
}
});
registerLanguage({
id: "lua",
extensions: [".lua"],
aliases: ["Lua", "lua"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../lua-BYAO5Img"], resolve, reject));
}
}
});
registerLanguage({
id: "liquid",
extensions: [".liquid", ".html.liquid"],
aliases: ["Liquid", "liquid"],
mimetypes: ["application/liquid"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../liquid-CDz0dGHZ"], resolve, reject));
}
}
});
registerLanguage({
id: "m3",
extensions: [".m3", ".i3", ".mg", ".ig"],
aliases: ["Modula-3", "Modula3", "modula3", "m3"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../m3-B1KqSpyY"], resolve, reject));
}
}
});
registerLanguage({
id: "markdown",
extensions: [".md", ".markdown", ".mdown", ".mkdn", ".mkd", ".mdwn", ".mdtxt", ".mdtext"],
aliases: ["Markdown", "markdown"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../markdown-BXo7NBdp"], resolve, reject));
}
}
});
registerLanguage({
id: "mdx",
extensions: [".mdx"],
aliases: ["MDX", "mdx"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../mdx-CRukMuk2"], resolve, reject));
}
}
});
registerLanguage({
id: "mips",
extensions: [".s"],
aliases: ["MIPS", "MIPS-V"],
mimetypes: ["text/x-mips", "text/mips", "text/plaintext"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../mips-zX62smW0"], resolve, reject));
}
}
});
registerLanguage({
id: "msdax",
extensions: [".dax", ".msdax"],
aliases: ["DAX", "MSDAX"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../msdax-MzEb-8sD"], resolve, reject));
}
}
});
registerLanguage({
id: "mysql",
extensions: [],
aliases: ["MySQL", "mysql"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../mysql-Drs0JCLT"], resolve, reject));
}
}
});
registerLanguage({
id: "objective-c",
extensions: [".m"],
aliases: ["Objective-C"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../objective-c-DZzj24DI"], resolve, reject));
}
}
});
registerLanguage({
id: "pascal",
extensions: [".pas", ".p", ".pp"],
aliases: ["Pascal", "pas"],
mimetypes: ["text/x-pascal-source", "text/x-pascal"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../pascal-Ek4lERtt"], resolve, reject));
}
}
});
registerLanguage({
id: "pascaligo",
extensions: [".ligo"],
aliases: ["Pascaligo", "ligo"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../pascaligo-BhBiNdI2"], resolve, reject));
}
}
});
registerLanguage({
id: "perl",
extensions: [".pl", ".pm"],
aliases: ["Perl", "pl"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../perl-BZM3Cl3T"], resolve, reject));
}
}
});
registerLanguage({
id: "pgsql",
extensions: [],
aliases: ["PostgreSQL", "postgres", "pg", "postgre"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../pgsql-BAYS0xjf"], resolve, reject));
}
}
});
registerLanguage({
id: "php",
extensions: [".php", ".php4", ".php5", ".phtml", ".ctp"],
aliases: ["PHP", "php"],
mimetypes: ["application/x-php"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../php-DK3ktPH8"], resolve, reject));
}
}
});
registerLanguage({
id: "pla",
extensions: [".pla"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../pla-DbBZgOrT"], resolve, reject));
}
}
});
registerLanguage({
id: "postiats",
extensions: [".dats", ".sats", ".hats"],
aliases: ["ATS", "ATS/Postiats"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../postiats-OtZm4COL"], resolve, reject));
}
}
});
registerLanguage({
id: "powerquery",
extensions: [".pq", ".pqm"],
aliases: ["PQ", "M", "Power Query", "Power Query M"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../powerquery-Du80-tps"], resolve, reject));
}
}
});
registerLanguage({
id: "powershell",
extensions: [".ps1", ".psm1", ".psd1"],
aliases: ["PowerShell", "powershell", "ps", "ps1"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../powershell-mk7ECzLJ"], resolve, reject));
}
}
});
registerLanguage({
id: "proto",
extensions: [".proto"],
aliases: ["protobuf", "Protocol Buffers"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../protobuf-Bn1ftnRe"], resolve, reject));
}
}
});
registerLanguage({
id: "pug",
extensions: [".jade", ".pug"],
aliases: ["Pug", "Jade", "jade"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../pug-BIApPNjT"], resolve, reject));
}
}
});
registerLanguage({
id: "python",
extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
aliases: ["Python", "py"],
firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
loader: () => {
{
return new Promise((resolve, reject) => require(["../python-CSlobbnO"], resolve, reject));
}
}
});
registerLanguage({
id: "qsharp",
extensions: [".qs"],
aliases: ["Q#", "qsharp"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../qsharp-BzyhV8V4"], resolve, reject));
}
}
});
registerLanguage({
id: "r",
extensions: [".r", ".rhistory", ".rmd", ".rprofile", ".rt"],
aliases: ["R", "r"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../r-BZ_VXAR1"], resolve, reject));
}
}
});
registerLanguage({
id: "razor",
extensions: [".cshtml"],
aliases: ["Razor", "razor"],
mimetypes: ["text/x-cshtml"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../razor-CcKFJPeA"], resolve, reject));
}
}
});
registerLanguage({
id: "redis",
extensions: [".redis"],
aliases: ["redis"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../redis-BVpHZsxd"], resolve, reject));
}
}
});
registerLanguage({
id: "redshift",
extensions: [],
aliases: ["Redshift", "redshift"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../redshift-DMeYiY_v"], resolve, reject));
}
}
});
registerLanguage({
id: "restructuredtext",
extensions: [".rst"],
aliases: ["reStructuredText", "restructuredtext"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../restructuredtext-CmsqpaZy"], resolve, reject));
}
}
});
registerLanguage({
id: "ruby",
extensions: [".rb", ".rbx", ".rjs", ".gemspec", ".pp"],
filenames: ["rakefile", "Gemfile"],
aliases: ["Ruby", "rb"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../ruby-qQzGPz_6"], resolve, reject));
}
}
});
registerLanguage({
id: "rust",
extensions: [".rs", ".rlib"],
aliases: ["Rust", "rust"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../rust-DIvkf86i"], resolve, reject));
}
}
});
registerLanguage({
id: "sb",
extensions: [".sb"],
aliases: ["Small Basic", "sb"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../sb-DUCWDbCb"], resolve, reject));
}
}
});
registerLanguage({
id: "scala",
extensions: [".scala", ".sc", ".sbt"],
aliases: ["Scala", "scala", "SBT", "Sbt", "sbt", "Dotty", "dotty"],
mimetypes: ["text/x-scala-source", "text/x-scala", "text/x-sbt", "text/x-dotty"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../scala-Cs4aXuOD"], resolve, reject));
}
}
});
registerLanguage({
id: "scheme",
extensions: [".scm", ".ss", ".sch", ".rkt"],
aliases: ["scheme", "Scheme"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../scheme-DM9P8uKD"], resolve, reject));
}
}
});
registerLanguage({
id: "scss",
extensions: [".scss"],
aliases: ["Sass", "sass", "scss"],
mimetypes: ["text/x-scss", "text/scss"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../scss-DijLV5ju"], resolve, reject));
}
}
});
registerLanguage({
id: "shell",
extensions: [".sh", ".bash"],
aliases: ["Shell", "sh"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../shell-BmIjpZz5"], resolve, reject));
}
}
});
registerLanguage({
id: "sol",
extensions: [".sol"],
aliases: ["sol", "solidity", "Solidity"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../solidity-ClNCm0U5"], resolve, reject));
}
}
});
registerLanguage({
id: "aes",
extensions: [".aes"],
aliases: ["aes", "sophia", "Sophia"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../sophia-DRm4eves"], resolve, reject));
}
}
});
registerLanguage({
id: "sparql",
extensions: [".rq"],
aliases: ["sparql", "SPARQL"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../sparql-O5ONewYs"], resolve, reject));
}
}
});
registerLanguage({
id: "sql",
extensions: [".sql"],
aliases: ["SQL"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../sql-RAEyXdQG"], resolve, reject));
}
}
});
registerLanguage({
id: "st",
extensions: [".st", ".iecst", ".iecplc", ".lc3lib", ".TcPOU", ".TcDUT", ".TcGVL", ".TcIO"],
aliases: ["StructuredText", "scl", "stl"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../st-UObc-eRR"], resolve, reject));
}
}
});
registerLanguage({
id: "swift",
aliases: ["Swift", "swift"],
extensions: [".swift"],
mimetypes: ["text/swift"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../swift-CXsb7aR5"], resolve, reject));
}
}
});
registerLanguage({
id: "systemverilog",
extensions: [".sv", ".svh"],
aliases: ["SV", "sv", "SystemVerilog", "systemverilog"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../systemverilog-D8uKG36_"], resolve, reject));
}
}
});
registerLanguage({
id: "verilog",
extensions: [".v", ".vh"],
aliases: ["V", "v", "Verilog", "verilog"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../systemverilog-D8uKG36_"], resolve, reject));
}
}
});
registerLanguage({
id: "tcl",
extensions: [".tcl"],
aliases: ["tcl", "Tcl", "tcltk", "TclTk", "tcl/tk", "Tcl/Tk"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../tcl-BiHOeboY"], resolve, reject));
}
}
});
registerLanguage({
id: "twig",
extensions: [".twig"],
aliases: ["Twig", "twig"],
mimetypes: ["text/x-twig"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../twig-DDbyWOW2"], resolve, reject));
}
}
});
registerLanguage({
id: "typescript",
extensions: [".ts", ".tsx", ".cts", ".mts"],
aliases: ["TypeScript", "ts", "typescript"],
mimetypes: ["text/typescript"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../typescript-qRP7tyf4"], resolve, reject));
}
}
});
registerLanguage({
id: "typespec",
extensions: [".tsp"],
aliases: ["TypeSpec"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../typespec-BoPQuPjQ"], resolve, reject));
}
}
});
registerLanguage({
id: "vb",
extensions: [".vb"],
aliases: ["Visual Basic", "vb"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../vb-Dj0rva7R"], resolve, reject));
}
}
});
registerLanguage({
id: "wgsl",
extensions: [".wgsl"],
aliases: ["WebGPU Shading Language", "WGSL", "wgsl"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../wgsl-C6G-1Rhr"], resolve, reject));
}
}
});
registerLanguage({
id: "xml",
extensions: [
".xml",
".xsd",
".dtd",
".ascx",
".csproj",
".config",
".props",
".targets",
".wxi",
".wxl",
".wxs",
".xaml",
".svg",
".svgz",
".opf",
".xslt",
".xsl"
],
firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
aliases: ["XML", "xml"],
mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../xml-CSLddLaW"], resolve, reject));
}
}
});
registerLanguage({
id: "yaml",
extensions: [".yaml", ".yml"],
aliases: ["YAML", "yaml", "YML", "yml"],
mimetypes: ["application/x-yaml", "text/x-yaml"],
loader: () => {
{
return new Promise((resolve, reject) => require(["../yaml-TB97xlnI"], resolve, reject));
}
}
});
}));

View File

@@ -0,0 +1,103 @@
define("vs/bat-gO9qKzUo", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,112 @@
define("vs/bicep-XOQLqtWX", ["exports"], (function(exports) {
"use strict";
const bounded = (text) => `\\b${text}\\b`;
const identifierStart = "[_a-zA-Z]";
const identifierContinue = "[_a-zA-Z0-9]";
const identifier = bounded(`${identifierStart}${identifierContinue}*`);
const keywords = [
"targetScope",
"resource",
"module",
"param",
"var",
"output",
"for",
"in",
"if",
"existing"
];
const namedLiterals = ["true", "false", "null"];
const nonCommentWs = `[ \\t\\r\\n]`;
const numericLiteral = `[0-9]+`;
const 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 ",
indentationRules: {
increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),
decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")
}
};
const language = {
defaultToken: "",
tokenPostfix: ".bicep",
brackets: [
{ open: "{", close: "}", token: "delimiter.curly" },
{ open: "[", close: "]", token: "delimiter.square" },
{ open: "(", close: ")", token: "delimiter.parenthesis" }
],
symbols: /[=><!~?:&|+\-*/^%]+/,
keywords,
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" }
}
}
}
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,177 @@
define("vs/cameligo-DCtn5844", ["exports"], (function(exports) {
"use strict";
const 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: "*)" }
]
};
const 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"],
// non-teminated string
[/'/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,764 @@
define("vs/clojure-DyYtgmYv", ["exports"], (function(exports) {
"use strict";
const conf = {
comments: {
lineComment: ";;"
},
brackets: [
["[", "]"],
["(", ")"],
["{", "}"]
],
autoClosingPairs: [
{ open: "[", close: "]" },
{ open: '"', close: '"' },
{ open: "(", close: ")" },
{ open: "{", close: "}" }
],
surroundingPairs: [
{ open: "[", close: "]" },
{ open: '"', close: '"' },
{ open: "(", close: ")" },
{ open: "{", close: "}" }
]
};
const 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",
// Clojure keywords (e.g., `:foo/bar`)
"@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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,235 @@
define("vs/coffee-C8bOs6Uz", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,392 @@
define("vs/cpp-9dJI961u", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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",
// reserved word with one underscores
"_based",
"_cdecl",
"_declspec",
"_fastcall",
"_if_exists",
"_if_not_exists",
"_inline",
"_multiple_inheritance",
"_pascal",
"_single_inheritance",
"_stdcall",
"_virtual_inheritance",
"_w64",
"__abstract",
// reserved word with two underscores
"__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",
"__m512",
"__m512d",
"__m512i",
"__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: /\\(?:[0abfnrtv\\"']|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/,
{
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"],
// non-teminated string
[/"/, "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: [
[/[^)]+/, "string.raw"],
[/\)$S2\"/, { token: "string.raw.end", next: "@pop" }],
[/\)/, "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" }
]
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,329 @@
define("vs/csharp-NZNtYXm3", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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"],
// binary: use same theme style as hex
[/[0-9_]+/, "number"],
// delimiter: after number because of .\d floats
[/[;,.]/, "delimiter"],
// strings
[/"([^"\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, { 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,56 @@
define("vs/csp-CtMdzNMY", ["exports"], (function(exports) {
"use strict";
const conf = {
brackets: [],
autoClosingPairs: [],
surroundingPairs: []
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,188 @@
define("vs/css-t68wsr0f", ["exports"], (function(exports) {
"use strict";
const 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.*\\*\\/")
}
}
};
const language = {
defaultToken: "",
tokenPostfix: ".css",
ws: "[ \n\r\f]*",
// whitespaces (referenced in several rules)
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"],
// selector symbols
["[>\\+,]", "delimiter"],
// selector operators
["\\[", { token: "delimiter.bracket", next: "@selectorattribute" }],
["{", { token: "delimiter.bracket", next: "@selectorbody" }]
],
selectorbody: [
{ include: "@comments" },
["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))", "attribute.name", "@rulevalue"],
// rule definition: to distinguish from a nested selector check for whitespace, number or a semicolon
["}", { 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|fr|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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,202 @@
define("vs/cssMode-YNsTpAl9", ["exports", "./workers-CJWv4CcA", "./lspLanguageFeatures-C8J-56s2", "./editor.api-BhD7pWdi"], (function(exports, workers, lspLanguageFeatures, editor_api) {
"use strict";
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
class WorkerManager {
constructor(defaults) {
this._defaults = defaults;
this._worker = null;
this._client = null;
this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);
this._lastUsedTime = 0;
this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());
}
_stopWorker() {
if (this._worker) {
this._worker.dispose();
this._worker = null;
}
this._client = null;
}
dispose() {
clearInterval(this._idleCheckInterval);
this._configChangeListener.dispose();
this._stopWorker();
}
_checkIfIdle() {
if (!this._worker) {
return;
}
let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;
if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {
this._stopWorker();
}
}
_getClient() {
this._lastUsedTime = Date.now();
if (!this._client) {
this._worker = workers.createWebWorker({
// module that exports the create() method and returns a `CSSWorker` instance
moduleId: "vs/language/css/cssWorker",
label: this._defaults.languageId,
// passed in to the create() method
createData: {
options: this._defaults.options,
languageId: this._defaults.languageId
}
});
this._client = this._worker.getProxy();
}
return this._client;
}
getLanguageServiceWorker(...resources) {
let _client;
return this._getClient().then((client) => {
_client = client;
}).then((_) => {
if (this._worker) {
return this._worker.withSyncedResources(resources);
}
}).then((_) => _client);
}
}
function setupMode(defaults) {
const disposables = [];
const providers = [];
const client = new WorkerManager(defaults);
disposables.push(client);
const worker = (...uris) => {
return client.getLanguageServiceWorker(...uris);
};
function registerProviders() {
const { languageId, modeConfiguration } = defaults;
disposeAll(providers);
if (modeConfiguration.completionItems) {
providers.push(
editor_api.languages.registerCompletionItemProvider(
languageId,
new lspLanguageFeatures.CompletionAdapter(worker, ["/", "-", ":"])
)
);
}
if (modeConfiguration.hovers) {
providers.push(
editor_api.languages.registerHoverProvider(languageId, new lspLanguageFeatures.HoverAdapter(worker))
);
}
if (modeConfiguration.documentHighlights) {
providers.push(
editor_api.languages.registerDocumentHighlightProvider(
languageId,
new lspLanguageFeatures.DocumentHighlightAdapter(worker)
)
);
}
if (modeConfiguration.definitions) {
providers.push(
editor_api.languages.registerDefinitionProvider(
languageId,
new lspLanguageFeatures.DefinitionAdapter(worker)
)
);
}
if (modeConfiguration.references) {
providers.push(
editor_api.languages.registerReferenceProvider(
languageId,
new lspLanguageFeatures.ReferenceAdapter(worker)
)
);
}
if (modeConfiguration.documentSymbols) {
providers.push(
editor_api.languages.registerDocumentSymbolProvider(
languageId,
new lspLanguageFeatures.DocumentSymbolAdapter(worker)
)
);
}
if (modeConfiguration.rename) {
providers.push(
editor_api.languages.registerRenameProvider(languageId, new lspLanguageFeatures.RenameAdapter(worker))
);
}
if (modeConfiguration.colors) {
providers.push(
editor_api.languages.registerColorProvider(
languageId,
new lspLanguageFeatures.DocumentColorAdapter(worker)
)
);
}
if (modeConfiguration.foldingRanges) {
providers.push(
editor_api.languages.registerFoldingRangeProvider(
languageId,
new lspLanguageFeatures.FoldingRangeAdapter(worker)
)
);
}
if (modeConfiguration.diagnostics) {
providers.push(
new lspLanguageFeatures.DiagnosticsAdapter(languageId, worker, defaults.onDidChange)
);
}
if (modeConfiguration.selectionRanges) {
providers.push(
editor_api.languages.registerSelectionRangeProvider(
languageId,
new lspLanguageFeatures.SelectionRangeAdapter(worker)
)
);
}
if (modeConfiguration.documentFormattingEdits) {
providers.push(
editor_api.languages.registerDocumentFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentFormattingEditProvider(worker)
)
);
}
if (modeConfiguration.documentRangeFormattingEdits) {
providers.push(
editor_api.languages.registerDocumentRangeFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentRangeFormattingEditProvider(worker)
)
);
}
}
registerProviders();
disposables.push(asDisposable(providers));
return asDisposable(disposables);
}
function asDisposable(disposables) {
return { dispose: () => disposeAll(disposables) };
}
function disposeAll(disposables) {
while (disposables.length) {
disposables.pop().dispose();
}
}
exports.CompletionAdapter = lspLanguageFeatures.CompletionAdapter;
exports.DefinitionAdapter = lspLanguageFeatures.DefinitionAdapter;
exports.DiagnosticsAdapter = lspLanguageFeatures.DiagnosticsAdapter;
exports.DocumentColorAdapter = lspLanguageFeatures.DocumentColorAdapter;
exports.DocumentFormattingEditProvider = lspLanguageFeatures.DocumentFormattingEditProvider;
exports.DocumentHighlightAdapter = lspLanguageFeatures.DocumentHighlightAdapter;
exports.DocumentLinkAdapter = lspLanguageFeatures.DocumentLinkAdapter;
exports.DocumentRangeFormattingEditProvider = lspLanguageFeatures.DocumentRangeFormattingEditProvider;
exports.DocumentSymbolAdapter = lspLanguageFeatures.DocumentSymbolAdapter;
exports.FoldingRangeAdapter = lspLanguageFeatures.FoldingRangeAdapter;
exports.HoverAdapter = lspLanguageFeatures.HoverAdapter;
exports.ReferenceAdapter = lspLanguageFeatures.ReferenceAdapter;
exports.RenameAdapter = lspLanguageFeatures.RenameAdapter;
exports.SelectionRangeAdapter = lspLanguageFeatures.SelectionRangeAdapter;
exports.fromPosition = lspLanguageFeatures.fromPosition;
exports.fromRange = lspLanguageFeatures.fromRange;
exports.toRange = lspLanguageFeatures.toRange;
exports.toTextEdit = lspLanguageFeatures.toTextEdit;
exports.WorkerManager = WorkerManager;
exports.setupMode = setupMode;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,266 @@
define("vs/cypher-DyfRGA23", ["exports"], (function(exports) {
"use strict";
const 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: "`" }
]
};
const language = {
defaultToken: "",
tokenPostfix: `.cypher`,
ignoreCase: true,
brackets: [
{ open: "{", close: "}", token: "delimiter.curly" },
{ open: "[", close: "]", token: "delimiter.bracket" },
{ open: "(", close: ")", token: "delimiter.parenthesis" }
],
keywords: [
"ALL",
"AND",
"AS",
"ASC",
"ASCENDING",
"BY",
"CALL",
"CASE",
"CONTAINS",
"CREATE",
"DELETE",
"DESC",
"DESCENDING",
"DETACH",
"DISTINCT",
"ELSE",
"END",
"ENDS",
"EXISTS",
"IN",
"IS",
"LIMIT",
"MANDATORY",
"MATCH",
"MERGE",
"NOT",
"ON",
"ON",
"OPTIONAL",
"OR",
"ORDER",
"REMOVE",
"RETURN",
"SET",
"SKIP",
"STARTS",
"THEN",
"UNION",
"UNWIND",
"WHEN",
"WHERE",
"WITH",
"XOR",
"YIELD"
],
builtinLiterals: ["true", "TRUE", "false", "FALSE", "null", "NULL"],
builtinFunctions: [
"abs",
"acos",
"asin",
"atan",
"atan2",
"avg",
"ceil",
"coalesce",
"collect",
"cos",
"cot",
"count",
"degrees",
"e",
"endNode",
"exists",
"exp",
"floor",
"head",
"id",
"keys",
"labels",
"last",
"left",
"length",
"log",
"log10",
"lTrim",
"max",
"min",
"nodes",
"percentileCont",
"percentileDisc",
"pi",
"properties",
"radians",
"rand",
"range",
"relationships",
"replace",
"reverse",
"right",
"round",
"rTrim",
"sign",
"sin",
"size",
"split",
"sqrt",
"startNode",
"stDev",
"stDevP",
"substring",
"sum",
"tail",
"tan",
"timestamp",
"toBoolean",
"toFloat",
"toInteger",
"toLower",
"toString",
"toUpper",
"trim",
"type"
],
operators: [
// Math operators
"+",
"-",
"*",
"/",
"%",
"^",
// Comparison operators
"=",
"<>",
"<",
">",
"<=",
">=",
// Pattern operators
"->",
"<-",
"-->",
"<--"
],
escapes: /\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
digits: /\d+/,
octaldigits: /[0-7]+/,
hexdigits: /[0-9a-fA-F]+/,
tokenizer: {
root: [[/[{}[\]()]/, "@brackets"], { include: "common" }],
common: [
{ include: "@whitespace" },
{ include: "@numbers" },
{ include: "@strings" },
// Cypher labels on nodes/relationships, e.g. (n:NodeLabel)-[e:RelationshipLabel]
[/:[a-zA-Z_][\w]*/, "type.identifier"],
[
/[a-zA-Z_][\w]*(?=\()/,
{
cases: {
"@builtinFunctions": "predefined.function"
}
}
],
[
/[a-zA-Z_$][\w$]*/,
{
cases: {
"@keywords": "keyword",
"@builtinLiterals": "predefined.literal",
"@default": "identifier"
}
}
],
[/`/, "identifier.escape", "@identifierBacktick"],
// delimiter and operator after number because of `.\d` floats and `:` in labels
[/[;,.:|]/, "delimiter"],
[
/[<>=%+\-*/^]+/,
{
cases: {
"@operators": "delimiter",
"@default": ""
}
}
]
],
numbers: [
[/-?(@digits)[eE](-?(@digits))?/, "number.float"],
[/-?(@digits)?\.(@digits)([eE]-?(@digits))?/, "number.float"],
[/-?0x(@hexdigits)/, "number.hex"],
[/-?0(@octaldigits)/, "number.octal"],
[/-?(@digits)/, "number"]
],
strings: [
[/"([^"\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/'([^'\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, "string", "@stringDouble"],
[/'/, "string", "@stringSingle"]
],
whitespace: [
[/[ \t\r\n]+/, "white"],
[/\/\*/, "comment", "@comment"],
[/\/\/.*$/, "comment"]
],
comment: [
[/\/\/.*/, "comment"],
[/[^/*]+/, "comment"],
[/\*\//, "comment", "@pop"],
[/[/*]/, "comment"]
],
stringDouble: [
[/[^\\"]+/, "string"],
[/@escapes/, "string"],
[/\\./, "string.invalid"],
[/"/, "string", "@pop"]
],
stringSingle: [
[/[^\\']+/, "string"],
[/@escapes/, "string"],
[/\\./, "string.invalid"],
[/'/, "string", "@pop"]
],
identifierBacktick: [
[/[^\\`]+/, "identifier.escape"],
[/@escapes/, "identifier.escape"],
[/\\./, "identifier.escape.invalid"],
[/`/, "identifier.escape", "@pop"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,284 @@
define("vs/dart-eN3E5CF0", ["exports"], (function(exports) {
"use strict";
const 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/
}
}
};
const 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"],
// show class names
// [/[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"],
// non-teminated string
[/'([^'\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,133 @@
define("vs/dockerfile-A7JJbAuF", ["exports"], (function(exports) {
"use strict";
const conf = {
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
]
};
const 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"],
// \' leaves @arguments at eol
[/\\'/, ""],
// \' is not a string
[/'$/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,459 @@
define("vs/ecl-BJgqfLSq", ["exports"], (function(exports) {
"use strict";
const 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: '"' }
]
};
const 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"],
// binary: use same theme style as 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,100 @@
define("vs/editor/editor.main", ["exports", "require", "vs/nls.messages-loader!", "../basic-languages/monaco.contribution", "../language/css/monaco.contribution", "../language/html/monaco.contribution", "../language/json/monaco.contribution", "../language/typescript/monaco.contribution", "../editor.api-BhD7pWdi"], (function(exports, require, nls_messagesLoader_, basicLanguages_monaco_contribution, language_css_monaco_contribution, language_html_monaco_contribution, language_json_monaco_contribution, language_typescript_monaco_contribution, editor_api) {
"use strict";
function _interopNamespaceDefault(e) {
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
if (e) {
for (const k in e) {
if (k !== "default") {
const d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: () => e[k]
});
}
}
}
n.default = e;
return Object.freeze(n);
}
const require__namespace = /* @__PURE__ */ _interopNamespaceDefault(require);
const __worker_url_0__ = "" + new URL(require.toUrl("../assets/json.worker-DL8PoUrj.js"), document.baseURI).href;
const __worker_url_1__ = "" + new URL(require.toUrl("../assets/css.worker-UBouhlx6.js"), document.baseURI).href;
const __worker_url_2__ = "" + new URL(require.toUrl("../assets/html.worker-z9P_0-Yg.js"), document.baseURI).href;
const __worker_url_3__ = "" + new URL(require.toUrl("../assets/ts.worker-CcnreaRY.js"), document.baseURI).href;
const __worker_url_4__ = "" + new URL(require.toUrl("../assets/editor.worker-Dt-rrJKL.js"), document.baseURI).href;
const editor_main = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
CancellationTokenSource: editor_api.CancellationTokenSource,
Emitter: editor_api.Emitter,
KeyCode: editor_api.KeyCode,
KeyMod: editor_api.KeyMod,
MarkerSeverity: editor_api.MarkerSeverity,
MarkerTag: editor_api.MarkerTag,
Position: editor_api.Position,
Range: editor_api.Range,
Selection: editor_api.Selection,
SelectionDirection: editor_api.SelectionDirection,
Token: editor_api.Token,
Uri: editor_api.Uri,
editor: editor_api.editor,
languages: editor_api.languages
}, Symbol.toStringTag, { value: "Module" }));
self.MonacoEnvironment = {
getWorker: function(_moduleId, label) {
if (label === "json") {
return new Worker(
getWorkerBootstrapUrl(
__worker_url_0__
)
);
}
if (label === "css" || label === "scss" || label === "less") {
return new Worker(
getWorkerBootstrapUrl(
__worker_url_1__
)
);
}
if (label === "html" || label === "handlebars" || label === "razor") {
return new Worker(
getWorkerBootstrapUrl(
__worker_url_2__
)
);
}
if (label === "typescript" || label === "javascript") {
return new Worker(
getWorkerBootstrapUrl(
__worker_url_3__
)
);
}
return new Worker(
getWorkerBootstrapUrl(__worker_url_4__)
);
}
};
function getWorkerBootstrapUrl(workerScriptUrl) {
const blob = new Blob(
[
[
`const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });`,
`globalThis.workerttPolicy = ttPolicy;`,
`importScripts(ttPolicy?.createScriptURL(${JSON.stringify(
workerScriptUrl
)}) ?? ${JSON.stringify(workerScriptUrl)});`,
`globalThis.postMessage({ type: 'vscode-worker-ready' });`
].join("")
],
{ type: "application/javascript" }
);
return URL.createObjectURL(blob);
}
const styleSheetUrl = require__namespace.toUrl("vs/editor/editor.main.css");
const link = document.createElement("link");
link.rel = "stylesheet";
link.href = styleSheetUrl;
document.head.appendChild(link);
exports.m = editor_main;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,572 @@
define("vs/elixir-BxvNo5o6", ["exports"], (function(exports) {
"use strict";
const 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)/
}
};
const 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,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|>|\}|\]|\)/,
sigilModifiers: /[a-zA-Z0-9]*/,
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)(:)(\s+)/, ["constant", "constant.punctuation", "white"]],
// 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 or
// multi-letter uppercase starting at Elixir v1.15.0, 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-z]|[A-Z]+)\{/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.{.}" }],
[/~([a-z]|[A-Z]+)\[/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.[.]" }],
[/~([a-z]|[A-Z]+)\(/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.(.)" }],
[/~([a-z]|[A-Z]+)\</, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.<.>" }],
[
/~([a-z]|[A-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)@sigilModifiers/,
{
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)@sigilModifiers/,
{
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)@sigilModifiers/,
{
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)@sigilModifiers/,
{
cases: {
"$1==$S5": { token: "regexp.delimiter", next: "@pop" },
"@default": "regexp"
}
}
],
{ include: "@regexpContent" }
],
// Fallback to the generic sigil by default
"sigilStart.interpol": [
[
/~([a-z]|[A-Z]+)@sigilStartDelimiter/,
{
token: "sigil.delimiter",
switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
}
]
],
"sigilContinue.interpol": [
[
/(@sigilEndDelimiter)@sigilModifiers/,
{
cases: {
"$1==$S5": { token: "sigil.delimiter", next: "@pop" },
"@default": "sigil"
}
}
],
{ include: "@sigilContentInterpol" }
],
"sigilStart.noInterpol": [
[
/~([a-z]|[A-Z]+)@sigilStartDelimiter/,
{
token: "sigil.delimiter",
switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
}
]
],
"sigilContinue.noInterpol": [
// Ignore escaped sigil end
[/(^|[^\\])\\@sigilEndDelimiter/, "sigil"],
[
/(@sigilEndDelimiter)@sigilModifiers/,
{
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: "@singleQuotedHeredocDocstring"
}
],
[
/\@(module|type)?doc (~[sS])?"/,
{
token: "comment.block.documentation",
next: "@doubleQuotedStringDocstring"
}
],
[
/\@(module|type)?doc (~[sS])?'/,
{
token: "comment.block.documentation",
next: "@singleQuotedStringDocstring"
}
],
[/\@(module|type)?doc false/, "comment.block.documentation"],
// Module attributes
[/\@(@variableName)/, "variable"]
],
doubleQuotedHeredocDocstring: [
[/"""/, { token: "comment.block.documentation", next: "@pop" }],
{ include: "@docstringContent" }
],
singleQuotedHeredocDocstring: [
[/'''/, { token: "comment.block.documentation", next: "@pop" }],
{ include: "@docstringContent" }
],
doubleQuotedStringDocstring: [
[/"/, { token: "comment.block.documentation", next: "@pop" }],
{ include: "@docstringContent" }
],
singleQuotedStringDocstring: [
[/'/, { 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" }
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,145 @@
define("vs/flow9-BNnUn-_8", ["exports"], (function(exports) {
"use strict";
const 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: ">" }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,996 @@
define("vs/freemarker2-Ci5s7p-k", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const EMPTY_ELEMENTS = [
"assign",
"flush",
"ftl",
"return",
"global",
"import",
"include",
"break",
"continue",
"local",
"nested",
"nt",
"setting",
"stop",
"t",
"lt",
"rt",
"fallback"
];
const BLOCK_ELEMENTS = [
"attempt",
"autoesc",
"autoEsc",
"compress",
"comment",
"escape",
"noescape",
"function",
"if",
"list",
"items",
"sep",
"macro",
"noparse",
"noParse",
"noautoesc",
"noAutoEsc",
"outputformat",
"switch",
"visit",
"recurse"
];
const TagSyntaxAngle = {
close: ">",
id: "angle",
open: "<"
};
const TagSyntaxBracket = {
close: "\\]",
id: "bracket",
open: "\\["
};
const TagSyntaxAuto = {
close: "[>\\]]",
id: "auto",
open: "[<\\[]"
};
const InterpolationSyntaxDollar = {
close: "\\}",
id: "dollar",
open1: "\\$",
open2: "\\{"
};
const InterpolationSyntaxBracket = {
close: "\\]",
id: "bracket",
open1: "\\[",
open2: "="
};
function createLangConfiguration(ts) {
return {
brackets: [
["<", ">"],
["[", "]"],
["(", ")"],
["{", "}"]
],
comments: {
blockComment: [`${ts.open}--`, `--${ts.close}`]
},
autoCloseBefore: "\n\r }]),.:;=",
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"', notIn: ["string"] },
{ open: "'", close: "'", notIn: ["string"] }
],
surroundingPairs: [
{ open: '"', close: '"' },
{ open: "'", close: "'" },
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: "<", close: ">" }
],
folding: {
markers: {
start: new RegExp(
`${ts.open}#(?:${BLOCK_ELEMENTS.join("|")})([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`
),
end: new RegExp(`${ts.open}/#(?:${BLOCK_ELEMENTS.join("|")})[\\r\\n\\t ]*>`)
}
},
onEnterRules: [
{
beforeText: new RegExp(
`${ts.open}#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`
),
afterText: new RegExp(`^${ts.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${ts.close}$`),
action: {
indentAction: editor_api.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(
`${ts.open}#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
]
};
}
function createLangConfigurationAuto() {
return {
// Cannot set block comment delimiter in auto mode...
// It depends on the content and the cursor position of the file...
brackets: [
["<", ">"],
["[", "]"],
["(", ")"],
["{", "}"]
],
autoCloseBefore: "\n\r }]),.:;=",
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"', notIn: ["string"] },
{ open: "'", close: "'", notIn: ["string"] }
],
surroundingPairs: [
{ open: '"', close: '"' },
{ open: "'", close: "'" },
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: "<", close: ">" }
],
folding: {
markers: {
start: new RegExp(`[<\\[]#(?:${BLOCK_ELEMENTS.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),
end: new RegExp(`[<\\[]/#(?:${BLOCK_ELEMENTS.join("|")})[\\r\\n\\t ]*>`)
}
},
onEnterRules: [
{
beforeText: new RegExp(
`[<\\[]#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`
),
afterText: new RegExp(`^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$`),
action: {
indentAction: editor_api.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(
`[<\\[]#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
]
};
}
function createMonarchLanguage(ts, is) {
const id = `_${ts.id}_${is.id}`;
const s = (name) => name.replace(/__id__/g, id);
const r = (regexp) => {
const source = regexp.source.replace(/__id__/g, id);
return new RegExp(source, regexp.flags);
};
return {
// Settings
unicode: true,
includeLF: false,
start: s("default__id__"),
ignoreCase: false,
defaultToken: "invalid",
tokenPostfix: `.freemarker2`,
brackets: [
{ open: "{", close: "}", token: "delimiter.curly" },
{ open: "[", close: "]", token: "delimiter.square" },
{ open: "(", close: ")", token: "delimiter.parenthesis" },
{ open: "<", close: ">", token: "delimiter.angle" }
],
// Dynamic RegExp
[s("open__id__")]: new RegExp(ts.open),
[s("close__id__")]: new RegExp(ts.close),
[s("iOpen1__id__")]: new RegExp(is.open1),
[s("iOpen2__id__")]: new RegExp(is.open2),
[s("iClose__id__")]: new RegExp(is.close),
// <#START_TAG : "<" | "<#" | "[#">
// <#END_TAG : "</" | "</#" | "[/#">
[s("startTag__id__")]: r(/(@open__id__)(#)/),
[s("endTag__id__")]: r(/(@open__id__)(\/#)/),
[s("startOrEndTag__id__")]: r(/(@open__id__)(\/?#)/),
// <#CLOSE_TAG1 : (<BLANK>)* (">" | "]")>
[s("closeTag1__id__")]: r(/((?:@blank)*)(@close__id__)/),
// <#CLOSE_TAG2 : (<BLANK>)* ("/")? (">" | "]")>
[s("closeTag2__id__")]: r(/((?:@blank)*\/?)(@close__id__)/),
// Static RegExp
// <#BLANK : " " | "\t" | "\n" | "\r">
blank: /[ \t\n\r]/,
// <FALSE : "false">
// <TRUE : "true">
// <IN : "in">
// <AS : "as">
// <USING : "using">
keywords: ["false", "true", "in", "as", "using"],
// Directive names that cannot have an expression parameters and cannot be self-closing
// E.g. <#if id==2> ... </#if>
directiveStartCloseTag1: /attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,
// Directive names that cannot have an expression parameter and can be self-closing
// E.g. <#if> ... <#else> ... </#if>
// E.g. <#if> ... <#else /></#if>
directiveStartCloseTag2: /else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,
// Directive names that can have an expression parameter and cannot be self-closing
// E.g. <#if id==2> ... </#if>
directiveStartBlank: /if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,
// Directive names that can have an end tag
// E.g. </#if>
directiveEndCloseTag1: /if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,
// <#ESCAPED_CHAR :
// "\\"
// (
// ("n" | "t" | "r" | "f" | "b" | "g" | "l" | "a" | "\\" | "'" | "\"" | "{" | "=")
// |
// ("x" ["0"-"9", "A"-"F", "a"-"f"])
// )
// >
// Note: While the JavaCC tokenizer rule only specifies one hex digit,
// FreeMarker actually interprets up to 4 hex digits.
escapedChar: /\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,
// <#ASCII_DIGIT: ["0" - "9"]>
asciiDigit: /[0-9]/,
// <INTEGER : (["0"-"9"])+>
integer: /[0-9]+/,
// <#NON_ESCAPED_ID_START_CHAR:
// [
// // This was generated on JDK 1.8.0_20 Win64 with src/main/misc/identifierChars/IdentifierCharGenerator.java
// ...
// ]
nonEscapedIdStartChar: /[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
// <#ESCAPED_ID_CHAR: "\\" ("-" | "." | ":" | "#")>
escapedIdChar: /\\[\-\.:#]/,
// <#ID_START_CHAR: <NON_ESCAPED_ID_START_CHAR>|<ESCAPED_ID_CHAR>>
idStartChar: /(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,
// <ID: <ID_START_CHAR> (<ID_START_CHAR>|<ASCII_DIGIT>)*>
id: /(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,
// Certain keywords / operators are allowed to index hashes
//
// Expression DotVariable(Expression exp) :
// {
// Token t;
// }
// {
// <DOT>
// (
// t = <ID> | t = <TIMES> | t = <DOUBLE_STAR>
// |
// (
// t = <LESS_THAN>
// |
// t = <LESS_THAN_EQUALS>
// |
// t = <ESCAPED_GT>
// |
// t = <ESCAPED_GTE>
// |
// t = <FALSE>
// |
// t = <TRUE>
// |
// t = <IN>
// |
// t = <AS>
// |
// t = <USING>
// )
// {
// if (!Character.isLetter(t.image.charAt(0))) {
// throw new ParseException(t.image + " is not a valid identifier.", template, t);
// }
// }
// )
// {
// notListLiteral(exp, "hash");
// notStringLiteral(exp, "hash");
// notBooleanLiteral(exp, "hash");
// Dot dot = new Dot(exp, t.image);
// dot.setLocation(template, exp, t);
// return dot;
// }
// }
specialHashKeys: /\*\*|\*|false|true|in|as|using/,
// <DOUBLE_EQUALS : "==">
// <EQUALS : "=">
// <NOT_EQUALS : "!=">
// <PLUS_EQUALS : "+=">
// <MINUS_EQUALS : "-=">
// <TIMES_EQUALS : "*=">
// <DIV_EQUALS : "/=">
// <MOD_EQUALS : "%=">
// <PLUS_PLUS : "++">
// <MINUS_MINUS : "--">
// <LESS_THAN_EQUALS : "lte" | "\\lte" | "<=" | "&lt;=">
// <LESS_THAN : "lt" | "\\lt" | "<" | "&lt;">
// <ESCAPED_GTE : "gte" | "\\gte" | "&gt;=">
// <ESCAPED_GT: "gt" | "\\gt" | "&gt;">
// <DOUBLE_STAR : "**">
// <PLUS : "+">
// <MINUS : "-">
// <TIMES : "*">
// <PERCENT : "%">
// <AND : "&" | "&&" | "&amp;&amp;" | "\\and" >
// <OR : "|" | "||">
// <EXCLAM : "!">
// <COMMA : ",">
// <SEMICOLON : ";">
// <COLON : ":">
// <ELLIPSIS : "...">
// <DOT_DOT_ASTERISK : "..*" >
// <DOT_DOT_LESS : "..<" | "..!" >
// <DOT_DOT : "..">
// <EXISTS : "??">
// <BUILT_IN : "?">
// <LAMBDA_ARROW : "->" | "-&gt;">
namedSymbols: /&lt;=|&gt;=|\\lte|\\lt|&lt;|\\gte|\\gt|&gt;|&amp;&amp;|\\and|-&gt;|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,
arrows: ["->", "-&gt;"],
delimiters: [";", ":", ",", "."],
stringOperators: ["lte", "lt", "gte", "gt"],
noParseTags: ["noparse", "noParse", "comment"],
tokenizer: {
// Parser states
// Plain text
[s("default__id__")]: [
{ include: s("@directive_token__id__") },
{ include: s("@interpolation_and_text_token__id__") }
],
// A FreeMarker expression inside a directive, e.g. <#if 2<3>
[s("fmExpression__id__.directive")]: [
{ include: s("@blank_and_expression_comment_token__id__") },
{ include: s("@directive_end_token__id__") },
{ include: s("@expression_token__id__") }
],
// A FreeMarker expression inside an interpolation, e.g. ${2+3}
[s("fmExpression__id__.interpolation")]: [
{ include: s("@blank_and_expression_comment_token__id__") },
{ include: s("@expression_token__id__") },
{ include: s("@greater_operators_token__id__") }
],
// In an expression and inside a not-yet closed parenthesis / bracket
[s("inParen__id__.plain")]: [
{ include: s("@blank_and_expression_comment_token__id__") },
{ include: s("@directive_end_token__id__") },
{ include: s("@expression_token__id__") }
],
[s("inParen__id__.gt")]: [
{ include: s("@blank_and_expression_comment_token__id__") },
{ include: s("@expression_token__id__") },
{ include: s("@greater_operators_token__id__") }
],
// Expression for the unified call, e.g. <@createMacro() ... >
[s("noSpaceExpression__id__")]: [
{ include: s("@no_space_expression_end_token__id__") },
{ include: s("@directive_end_token__id__") },
{ include: s("@expression_token__id__") }
],
// For the function of a unified call. Special case for when the
// expression is a simple identifier.
// <@join [1,2] ",">
// <@null!join [1,2] ",">
[s("unifiedCall__id__")]: [{ include: s("@unified_call_token__id__") }],
// For singly and doubly quoted string (that may contain interpolations)
[s("singleString__id__")]: [{ include: s("@string_single_token__id__") }],
[s("doubleString__id__")]: [{ include: s("@string_double_token__id__") }],
// For singly and doubly quoted string (that may not contain interpolations)
[s("rawSingleString__id__")]: [{ include: s("@string_single_raw_token__id__") }],
[s("rawDoubleString__id__")]: [{ include: s("@string_double_raw_token__id__") }],
// For a comment in an expression
// ${ 1 + <#-- comment --> 2}
[s("expressionComment__id__")]: [{ include: s("@expression_comment_token__id__") }],
// For <#noparse> ... </#noparse>
// For <#noParse> ... </#noParse>
// For <#comment> ... </#comment>
[s("noParse__id__")]: [{ include: s("@no_parse_token__id__") }],
// For <#-- ... -->
[s("terseComment__id__")]: [{ include: s("@terse_comment_token__id__") }],
// Common rules
[s("directive_token__id__")]: [
// <ATTEMPT : <START_TAG> "attempt" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <RECOVER : <START_TAG> "recover" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <SEP : <START_TAG> "sep" <CLOSE_TAG1>>
// <AUTOESC : <START_TAG> "auto" ("e"|"E") "sc" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 4), DEFAULT);
// }
// <NOAUTOESC : <START_TAG> "no" ("autoe"|"AutoE") "sc" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);
// }
// <COMPRESS : <START_TAG> "compress" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <DEFAUL : <START_TAG> "default" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <NOESCAPE : <START_TAG> "no" ("e" | "E") "scape" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);
// }
//
// <COMMENT : <START_TAG> "comment" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, NO_PARSE); noparseTag = "comment";
// }
// <NOPARSE: <START_TAG> "no" ("p" | "P") "arse" <CLOSE_TAG1>> {
// int tagNamingConvention = getTagNamingConvention(matchedToken, 2);
// handleTagSyntaxAndSwitch(matchedToken, tagNamingConvention, NO_PARSE);
// noparseTag = tagNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION ? "noParse" : "noparse";
// }
[
r(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : [
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{
cases: {
"@noParseTags": { token: "tag", next: s("@noParse__id__.$3") },
"@default": { token: "tag" }
}
},
{ token: "delimiter.directive" },
{ token: "@brackets.directive" }
]
],
// <ELSE : <START_TAG> "else" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <BREAK : <START_TAG> "break" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <CONTINUE : <START_TAG> "continue" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <SIMPLE_RETURN : <START_TAG> "return" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <HALT : <START_TAG> "stop" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <FLUSH : <START_TAG> "flush" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <TRIM : <START_TAG> "t" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <LTRIM : <START_TAG> "lt" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <RTRIM : <START_TAG> "rt" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <NOTRIM : <START_TAG> "nt" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <SIMPLE_NESTED : <START_TAG> "nested" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <SIMPLE_RECURSE : <START_TAG> "recurse" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <FALLBACK : <START_TAG> "fallback" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <TRIVIAL_FTL_HEADER : ("<#ftl" | "[#ftl") ("/")? (">" | "]")> { ftlHeader(matchedToken); }
[
r(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : [
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{ token: "tag" },
{ token: "delimiter.directive" },
{ token: "@brackets.directive" }
]
],
// <IF : <START_TAG> "if" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <ELSE_IF : <START_TAG> "else" ("i" | "I") "f" <BLANK>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 4), FM_EXPRESSION);
// }
// <LIST : <START_TAG> "list" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <FOREACH : <START_TAG> "for" ("e" | "E") "ach" <BLANK>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 3), FM_EXPRESSION);
// }
// <SWITCH : <START_TAG> "switch" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <CASE : <START_TAG> "case" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <ASSIGN : <START_TAG> "assign" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <GLOBALASSIGN : <START_TAG> "global" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <LOCALASSIGN : <START_TAG> "local" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <_INCLUDE : <START_TAG> "include" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <IMPORT : <START_TAG> "import" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <FUNCTION : <START_TAG> "function" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <MACRO : <START_TAG> "macro" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <TRANSFORM : <START_TAG> "transform" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <VISIT : <START_TAG> "visit" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <STOP : <START_TAG> "stop" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <RETURN : <START_TAG> "return" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <CALL : <START_TAG> "call" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <SETTING : <START_TAG> "setting" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <OUTPUTFORMAT : <START_TAG> "output" ("f"|"F") "ormat" <BLANK>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 6), FM_EXPRESSION);
// }
// <NESTED : <START_TAG> "nested" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <RECURSE : <START_TAG> "recurse" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
// <ESCAPE : <START_TAG> "escape" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
//
// Note: FreeMarker grammar appears to treat the FTL header as a special case,
// in order to remove new lines after the header (?), but since we only need
// to tokenize for highlighting, we can include this directive here.
// <FTL_HEADER : ("<#ftl" | "[#ftl") <BLANK>> { ftlHeader(matchedToken); }
//
// Note: FreeMarker grammar appears to treat the items directive as a special case for
// the AST parsing process, but since we only need to tokenize, we can include this
// directive here.
// <ITEMS : <START_TAG> "items" (<BLANK>)+ <AS> <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }
[
r(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : [
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{ token: "tag" },
{ token: "", next: s("@fmExpression__id__.directive") }
]
],
// <END_IF : <END_TAG> "if" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_LIST : <END_TAG> "list" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_SEP : <END_TAG> "sep" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_RECOVER : <END_TAG> "recover" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_ATTEMPT : <END_TAG> "attempt" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_FOREACH : <END_TAG> "for" ("e" | "E") "ach" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 3), DEFAULT);
// }
// <END_LOCAL : <END_TAG> "local" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_GLOBAL : <END_TAG> "global" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_ASSIGN : <END_TAG> "assign" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_FUNCTION : <END_TAG> "function" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_MACRO : <END_TAG> "macro" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_OUTPUTFORMAT : <END_TAG> "output" ("f" | "F") "ormat" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 6), DEFAULT);
// }
// <END_AUTOESC : <END_TAG> "auto" ("e" | "E") "sc" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 4), DEFAULT);
// }
// <END_NOAUTOESC : <END_TAG> "no" ("autoe"|"AutoE") "sc" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);
// }
// <END_COMPRESS : <END_TAG> "compress" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_TRANSFORM : <END_TAG> "transform" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_SWITCH : <END_TAG> "switch" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_ESCAPE : <END_TAG> "escape" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }
// <END_NOESCAPE : <END_TAG> "no" ("e" | "E") "scape" <CLOSE_TAG1>> {
// handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);
// }
[
r(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : [
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{ token: "tag" },
{ token: "delimiter.directive" },
{ token: "@brackets.directive" }
]
],
// <UNIFIED_CALL : "<@" | "[@" > { unifiedCall(matchedToken); }
[
r(/(@open__id__)(@)/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : [
{ token: "@brackets.directive" },
{ token: "delimiter.directive", next: s("@unifiedCall__id__") }
]
],
// <UNIFIED_CALL_END : ("<" | "[") "/@" ((<ID>) ("."<ID>)*)? <CLOSE_TAG1>> { unifiedCallEnd(matchedToken); }
[
r(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),
[
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{ token: "tag" },
{ token: "delimiter.directive" },
{ token: "@brackets.directive" }
]
],
// <TERSE_COMMENT : ("<" | "[") "#--" > { noparseTag = "-->"; handleTagSyntaxAndSwitch(matchedToken, NO_PARSE); }
[
r(/(@open__id__)#--/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : { token: "comment", next: s("@terseComment__id__") }
],
// <UNKNOWN_DIRECTIVE : ("[#" | "[/#" | "<#" | "</#") (["a"-"z", "A"-"Z", "_"])+>
[
r(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),
ts.id === "auto" ? {
cases: {
"$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` },
"$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` }
}
} : [
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{ token: "tag.invalid", next: s("@fmExpression__id__.directive") }
]
]
],
// <DEFAULT, NO_DIRECTIVE> TOKEN :
[s("interpolation_and_text_token__id__")]: [
// <DOLLAR_INTERPOLATION_OPENING : "${"> { startInterpolation(matchedToken); }
// <SQUARE_BRACKET_INTERPOLATION_OPENING : "[="> { startInterpolation(matchedToken); }
[
r(/(@iOpen1__id__)(@iOpen2__id__)/),
[
{ token: is.id === "bracket" ? "@brackets.interpolation" : "delimiter.interpolation" },
{
token: is.id === "bracket" ? "delimiter.interpolation" : "@brackets.interpolation",
next: s("@fmExpression__id__.interpolation")
}
]
],
// <STATIC_TEXT_FALSE_ALARM : "$" | "#" | "<" | "[" | "{"> // to handle a lone dollar sign or "<" or "# or <@ with whitespace after"
// <STATIC_TEXT_WS : ("\n" | "\r" | "\t" | " ")+>
// <STATIC_TEXT_NON_WS : (~["$", "<", "#", "[", "{", "\n", "\r", "\t", " "])+>
[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/, { token: "source" }]
],
// <STRING_LITERAL :
// (
// "\""
// ((~["\"", "\\"]) | <ESCAPED_CHAR>)*
// "\""
// )
// |
// (
// "'"
// ((~["'", "\\"]) | <ESCAPED_CHAR>)*
// "'"
// )
// >
[s("string_single_token__id__")]: [
[/[^'\\]/, { token: "string" }],
[/@escapedChar/, { token: "string.escape" }],
[/'/, { token: "string", next: "@pop" }]
],
[s("string_double_token__id__")]: [
[/[^"\\]/, { token: "string" }],
[/@escapedChar/, { token: "string.escape" }],
[/"/, { token: "string", next: "@pop" }]
],
// <RAW_STRING : "r" (("\"" (~["\""])* "\"") | ("'" (~["'"])* "'"))>
[s("string_single_raw_token__id__")]: [
[/[^']+/, { token: "string.raw" }],
[/'/, { token: "string.raw", next: "@pop" }]
],
[s("string_double_raw_token__id__")]: [
[/[^"]+/, { token: "string.raw" }],
[/"/, { token: "string.raw", next: "@pop" }]
],
// <FM_EXPRESSION, IN_PAREN, NO_SPACE_EXPRESSION, NAMED_PARAMETER_EXPRESSION> TOKEN :
[s("expression_token__id__")]: [
// Strings
[
/(r?)(['"])/,
{
cases: {
"r'": [
{ token: "keyword" },
{ token: "string.raw", next: s("@rawSingleString__id__") }
],
'r"': [
{ token: "keyword" },
{ token: "string.raw", next: s("@rawDoubleString__id__") }
],
"'": [{ token: "source" }, { token: "string", next: s("@singleString__id__") }],
'"': [{ token: "source" }, { token: "string", next: s("@doubleString__id__") }]
}
}
],
// Numbers
// <INTEGER : (["0"-"9"])+>
// <DECIMAL : <INTEGER> "." <INTEGER>>
[
/(?:@integer)(?:\.(?:@integer))?/,
{
cases: {
"(?:@integer)": { token: "number" },
"@default": { token: "number.float" }
}
}
],
// Special hash keys that must not be treated as identifiers
// after a period, e.g. a.** is accessing the key "**" of a
[
/(\.)(@blank*)(@specialHashKeys)/,
[{ token: "delimiter" }, { token: "" }, { token: "identifier" }]
],
// Symbols / operators
[
/(?:@namedSymbols)/,
{
cases: {
"@arrows": { token: "meta.arrow" },
"@delimiters": { token: "delimiter" },
"@default": { token: "operators" }
}
}
],
// Identifiers
[
/@id/,
{
cases: {
"@keywords": { token: "keyword.$0" },
"@stringOperators": { token: "operators" },
"@default": { token: "identifier" }
}
}
],
// <OPEN_BRACKET : "[">
// <CLOSE_BRACKET : "]">
// <OPEN_PAREN : "(">
// <CLOSE_PAREN : ")">
// <OPENING_CURLY_BRACKET : "{">
// <CLOSING_CURLY_BRACKET : "}">
[
/[\[\]\(\)\{\}]/,
{
cases: {
"\\[": {
cases: {
"$S2==gt": { token: "@brackets", next: s("@inParen__id__.gt") },
"@default": { token: "@brackets", next: s("@inParen__id__.plain") }
}
},
"\\]": {
cases: {
...is.id === "bracket" ? {
"$S2==interpolation": { token: "@brackets.interpolation", next: "@popall" }
} : {},
// This cannot happen while in auto mode, since this applies only to an
// fmExpression inside a directive. But once we encounter the start of a
// directive, we can establish the tag syntax mode.
...ts.id === "bracket" ? {
"$S2==directive": { token: "@brackets.directive", next: "@popall" }
} : {},
// Ignore mismatched paren
[s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" },
"@default": { token: "@brackets" }
}
},
"\\(": { token: "@brackets", next: s("@inParen__id__.gt") },
"\\)": {
cases: {
[s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" },
"@default": { token: "@brackets" }
}
},
"\\{": {
cases: {
"$S2==gt": { token: "@brackets", next: s("@inParen__id__.gt") },
"@default": { token: "@brackets", next: s("@inParen__id__.plain") }
}
},
"\\}": {
cases: {
...is.id === "bracket" ? {} : {
"$S2==interpolation": { token: "@brackets.interpolation", next: "@popall" }
},
// Ignore mismatched paren
[s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" },
"@default": { token: "@brackets" }
}
}
}
}
],
// <OPEN_MISPLACED_INTERPOLATION : "${" | "#{" | "[=">
[/\$\{/, { token: "delimiter.invalid" }]
],
// <FM_EXPRESSION, IN_PAREN, NAMED_PARAMETER_EXPRESSION> SKIP :
[s("blank_and_expression_comment_token__id__")]: [
// < ( " " | "\t" | "\n" | "\r" )+ >
[/(?:@blank)+/, { token: "" }],
// < ("<" | "[") ("#" | "!") "--"> : EXPRESSION_COMMENT
[/[<\[][#!]--/, { token: "comment", next: s("@expressionComment__id__") }]
],
// <FM_EXPRESSION, NO_SPACE_EXPRESSION, NAMED_PARAMETER_EXPRESSION> TOKEN :
[s("directive_end_token__id__")]: [
// <DIRECTIVE_END : ">">
// {
// if (inFTLHeader) {
// eatNewline();
// inFTLHeader = false;
// }
// if (squBracTagSyntax || postInterpolationLexState != -1 /* We are in an interpolation */) {
// matchedToken.kind = NATURAL_GT;
// } else {
// SwitchTo(DEFAULT);
// }
// }
// This cannot happen while in auto mode, since this applies only to an
// fmExpression inside a directive. But once we encounter the start of a
// directive, we can establish the tag syntax mode.
[
/>/,
ts.id === "bracket" ? { token: "operators" } : { token: "@brackets.directive", next: "@popall" }
],
// <EMPTY_DIRECTIVE_END : "/>" | "/]">
// It is a syntax error to end a tag with the wrong close token
// Let's indicate that to the user by not closing the tag
[
r(/(\/)(@close__id__)/),
[{ token: "delimiter.directive" }, { token: "@brackets.directive", next: "@popall" }]
]
],
// <IN_PAREN> TOKEN :
[s("greater_operators_token__id__")]: [
// <NATURAL_GT : ">">
[/>/, { token: "operators" }],
// <NATURAL_GTE : ">=">
[/>=/, { token: "operators" }]
],
// <NO_SPACE_EXPRESSION> TOKEN :
[s("no_space_expression_end_token__id__")]: [
// <TERMINATING_WHITESPACE : (["\n", "\r", "\t", " "])+> : FM_EXPRESSION
[/(?:@blank)+/, { token: "", switchTo: s("@fmExpression__id__.directive") }]
],
[s("unified_call_token__id__")]: [
// Special case for a call where the expression is just an ID
// <UNIFIED_CALL> <ID> <BLANK>+
[
/(@id)((?:@blank)+)/,
[{ token: "tag" }, { token: "", next: s("@fmExpression__id__.directive") }]
],
[
r(/(@id)(\/?)(@close__id__)/),
[
{ token: "tag" },
{ token: "delimiter.directive" },
{ token: "@brackets.directive", next: "@popall" }
]
],
[/./, { token: "@rematch", next: s("@noSpaceExpression__id__") }]
],
// <NO_PARSE> TOKEN :
[s("no_parse_token__id__")]: [
// <MAYBE_END :
// ("<" | "[")
// "/"
// ("#")?
// (["a"-"z", "A"-"Z"])+
// ( " " | "\t" | "\n" | "\r" )*
// (">" | "]")
// >
[
r(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),
{
cases: {
"$S2==$3": [
{ token: "@brackets.directive" },
{ token: "delimiter.directive" },
{ token: "tag" },
{ token: "" },
{ token: "@brackets.directive", next: "@popall" }
],
"$S2==comment": [
{ token: "comment" },
{ token: "comment" },
{ token: "comment" },
{ token: "comment" },
{ token: "comment" }
],
"@default": [
{ token: "source" },
{ token: "source" },
{ token: "source" },
{ token: "source" },
{ token: "source" }
]
}
}
],
// <KEEP_GOING : (~["<", "[", "-"])+>
// <LONE_LESS_THAN_OR_DASH : ["<", "[", "-"]>
[
/[^<\[\-]+|[<\[\-]/,
{
cases: {
"$S2==comment": { token: "comment" },
"@default": { token: "source" }
}
}
]
],
// <EXPRESSION_COMMENT> SKIP:
[s("expression_comment_token__id__")]: [
// < "-->" | "--]">
[
/--[>\]]/,
{
token: "comment",
next: "@pop"
}
],
// < (~["-", ">", "]"])+ >
// < ">">
// < "]">
// < "-">
[/[^\->\]]+|[>\]\-]/, { token: "comment" }]
],
[s("terse_comment_token__id__")]: [
// <TERSE_COMMENT_END : "-->" | "--]">
[r(/--(?:@close__id__)/), { token: "comment", next: "@popall" }],
// <KEEP_GOING : (~["<", "[", "-"])+>
// <LONE_LESS_THAN_OR_DASH : ["<", "[", "-"]>
[/[^<\[\-]+|[<\[\-]/, { token: "comment" }]
]
}
};
}
function createMonarchLanguageAuto(is) {
const angle = createMonarchLanguage(TagSyntaxAngle, is);
const bracket = createMonarchLanguage(TagSyntaxBracket, is);
const auto = createMonarchLanguage(TagSyntaxAuto, is);
return {
// Angle and bracket syntax mode
// We switch to one of these once we have determined the mode
...angle,
...bracket,
...auto,
// Settings
unicode: true,
includeLF: false,
start: `default_auto_${is.id}`,
ignoreCase: false,
defaultToken: "invalid",
tokenPostfix: `.freemarker2`,
brackets: [
{ open: "{", close: "}", token: "delimiter.curly" },
{ open: "[", close: "]", token: "delimiter.square" },
{ open: "(", close: ")", token: "delimiter.parenthesis" },
{ open: "<", close: ">", token: "delimiter.angle" }
],
tokenizer: {
...angle.tokenizer,
...bracket.tokenizer,
...auto.tokenizer
}
};
}
const TagAngleInterpolationDollar = {
conf: createLangConfiguration(TagSyntaxAngle),
language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxDollar)
};
const TagBracketInterpolationDollar = {
conf: createLangConfiguration(TagSyntaxBracket),
language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxDollar)
};
const TagAngleInterpolationBracket = {
conf: createLangConfiguration(TagSyntaxAngle),
language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxBracket)
};
const TagBracketInterpolationBracket = {
conf: createLangConfiguration(TagSyntaxBracket),
language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxBracket)
};
const TagAutoInterpolationDollar = {
conf: createLangConfigurationAuto(),
language: createMonarchLanguageAuto(InterpolationSyntaxDollar)
};
const TagAutoInterpolationBracket = {
conf: createLangConfigurationAuto(),
language: createMonarchLanguageAuto(InterpolationSyntaxBracket)
};
exports.TagAngleInterpolationBracket = TagAngleInterpolationBracket;
exports.TagAngleInterpolationDollar = TagAngleInterpolationDollar;
exports.TagAutoInterpolationBracket = TagAutoInterpolationBracket;
exports.TagAutoInterpolationDollar = TagAutoInterpolationDollar;
exports.TagBracketInterpolationBracket = TagBracketInterpolationBracket;
exports.TagBracketInterpolationDollar = TagBracketInterpolationDollar;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,220 @@
define("vs/fsharp-DHdXPb1O", ["exports"], (function(exports) {
"use strict";
const 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*\\*\\)")
}
}
};
const 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"],
// non-teminated string
[/"""/, "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" }]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,221 @@
define("vs/go-DcS9_gMe", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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"],
// non-teminated string
[/"/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,154 @@
define("vs/graphql-CHzgmf8E", ["exports"], (function(exports) {
"use strict";
const 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
}
};
const 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"],
// non-teminated string
[/"/, { 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,415 @@
define("vs/handlebars-Cpd6mzVL", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const EMPTY_ELEMENTS = [
"area",
"base",
"br",
"col",
"embed",
"hr",
"img",
"input",
"keygen",
"link",
"menuitem",
"meta",
"param",
"source",
"track",
"wbr"
];
const 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: editor_api.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(
`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
"i"
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
]
};
const 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]+/],
// whitespace
[
/(<\/)(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"
}
],
// cover invalid e.g. <script type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <script type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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]+/],
// whitespace
[
/(<\/)(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"
}
],
// cover invalid e.g. <style type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <style type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,186 @@
define("vs/hcl-ChD4paVH", ["exports"], (function(exports) {
"use strict";
const 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: '"' }
]
};
const 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*-*/,
// must work with variables such as foo-bar and also with negative numbers
{
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"],
// delimiter: after number because of .\d floats
// strings
[/"/, "string", "@string"],
// this will include expressions
[/'/, "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" }
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,304 @@
define("vs/html-L3fuhF-c", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const EMPTY_ELEMENTS = [
"area",
"base",
"br",
"col",
"embed",
"hr",
"img",
"input",
"keygen",
"link",
"menuitem",
"meta",
"param",
"source",
"track",
"wbr"
];
const 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: editor_api.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(
`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
"i"
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
],
folding: {
markers: {
start: new RegExp("^\\s*<!--\\s*#region\\b.*-->"),
end: new RegExp("^\\s*<!--\\s*#endregion\\b.*-->")
}
}
};
const 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]+/],
// whitespace
[/(<\/)(script\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]]
],
// After <script ... type
scriptAfterType: [
[/=/, "delimiter", "@scriptAfterTypeEquals"],
[
/>/,
{
token: "delimiter",
next: "@scriptEmbedded",
nextEmbedded: "text/javascript"
}
],
// cover invalid e.g. <script type>
[/[ \t\r\n]+/],
// whitespace
[/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
],
// After <script ... type =
scriptAfterTypeEquals: [
[
/"module"/,
{
token: "attribute.value",
switchTo: "@scriptWithCustomType.text/javascript"
}
],
[
/'module'/,
{
token: "attribute.value",
switchTo: "@scriptWithCustomType.text/javascript"
}
],
[
/"([^"]*)"/,
{
token: "attribute.value",
switchTo: "@scriptWithCustomType.$1"
}
],
[
/'([^']*)'/,
{
token: "attribute.value",
switchTo: "@scriptWithCustomType.$1"
}
],
[
/>/,
{
token: "delimiter",
next: "@scriptEmbedded",
nextEmbedded: "text/javascript"
}
],
// cover invalid e.g. <script type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/(<\/)(style\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]]
],
// After <style ... type
styleAfterType: [
[/=/, "delimiter", "@styleAfterTypeEquals"],
[
/>/,
{
token: "delimiter",
next: "@styleEmbedded",
nextEmbedded: "text/css"
}
],
// cover invalid e.g. <style type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <style type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
],
styleEmbedded: [
[/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
[/[^<]+/, ""]
]
// -- END <style> tags handling
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,218 @@
define("vs/htmlMode-BL74tky3", ["exports", "./workers-CJWv4CcA", "./lspLanguageFeatures-C8J-56s2", "./editor.api-BhD7pWdi"], (function(exports, workers, lspLanguageFeatures, editor_api) {
"use strict";
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
class WorkerManager {
constructor(defaults) {
this._defaults = defaults;
this._worker = null;
this._client = null;
this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);
this._lastUsedTime = 0;
this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());
}
_stopWorker() {
if (this._worker) {
this._worker.dispose();
this._worker = null;
}
this._client = null;
}
dispose() {
clearInterval(this._idleCheckInterval);
this._configChangeListener.dispose();
this._stopWorker();
}
_checkIfIdle() {
if (!this._worker) {
return;
}
let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;
if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {
this._stopWorker();
}
}
_getClient() {
this._lastUsedTime = Date.now();
if (!this._client) {
this._worker = workers.createWebWorker({
// module that exports the create() method and returns a `HTMLWorker` instance
moduleId: "vs/language/html/htmlWorker",
// passed in to the create() method
createData: {
languageSettings: this._defaults.options,
languageId: this._defaults.languageId
},
label: this._defaults.languageId
});
this._client = this._worker.getProxy();
}
return this._client;
}
getLanguageServiceWorker(...resources) {
let _client;
return this._getClient().then((client) => {
_client = client;
}).then((_) => {
if (this._worker) {
return this._worker.withSyncedResources(resources);
}
}).then((_) => _client);
}
}
class HTMLCompletionAdapter extends lspLanguageFeatures.CompletionAdapter {
constructor(worker) {
super(worker, [".", ":", "<", '"', "=", "/"]);
}
}
function setupMode1(defaults) {
const client = new WorkerManager(defaults);
const worker = (...uris) => {
return client.getLanguageServiceWorker(...uris);
};
let languageId = defaults.languageId;
editor_api.languages.registerCompletionItemProvider(languageId, new HTMLCompletionAdapter(worker));
editor_api.languages.registerHoverProvider(languageId, new lspLanguageFeatures.HoverAdapter(worker));
editor_api.languages.registerDocumentHighlightProvider(
languageId,
new lspLanguageFeatures.DocumentHighlightAdapter(worker)
);
editor_api.languages.registerLinkProvider(languageId, new lspLanguageFeatures.DocumentLinkAdapter(worker));
editor_api.languages.registerFoldingRangeProvider(
languageId,
new lspLanguageFeatures.FoldingRangeAdapter(worker)
);
editor_api.languages.registerDocumentSymbolProvider(
languageId,
new lspLanguageFeatures.DocumentSymbolAdapter(worker)
);
editor_api.languages.registerSelectionRangeProvider(
languageId,
new lspLanguageFeatures.SelectionRangeAdapter(worker)
);
editor_api.languages.registerRenameProvider(languageId, new lspLanguageFeatures.RenameAdapter(worker));
if (languageId === "html") {
editor_api.languages.registerDocumentFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentFormattingEditProvider(worker)
);
editor_api.languages.registerDocumentRangeFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentRangeFormattingEditProvider(worker)
);
}
}
function setupMode(defaults) {
const disposables = [];
const providers = [];
const client = new WorkerManager(defaults);
disposables.push(client);
const worker = (...uris) => {
return client.getLanguageServiceWorker(...uris);
};
function registerProviders() {
const { languageId, modeConfiguration } = defaults;
disposeAll(providers);
if (modeConfiguration.completionItems) {
providers.push(
editor_api.languages.registerCompletionItemProvider(languageId, new HTMLCompletionAdapter(worker))
);
}
if (modeConfiguration.hovers) {
providers.push(
editor_api.languages.registerHoverProvider(languageId, new lspLanguageFeatures.HoverAdapter(worker))
);
}
if (modeConfiguration.documentHighlights) {
providers.push(
editor_api.languages.registerDocumentHighlightProvider(
languageId,
new lspLanguageFeatures.DocumentHighlightAdapter(worker)
)
);
}
if (modeConfiguration.links) {
providers.push(
editor_api.languages.registerLinkProvider(languageId, new lspLanguageFeatures.DocumentLinkAdapter(worker))
);
}
if (modeConfiguration.documentSymbols) {
providers.push(
editor_api.languages.registerDocumentSymbolProvider(
languageId,
new lspLanguageFeatures.DocumentSymbolAdapter(worker)
)
);
}
if (modeConfiguration.rename) {
providers.push(
editor_api.languages.registerRenameProvider(languageId, new lspLanguageFeatures.RenameAdapter(worker))
);
}
if (modeConfiguration.foldingRanges) {
providers.push(
editor_api.languages.registerFoldingRangeProvider(
languageId,
new lspLanguageFeatures.FoldingRangeAdapter(worker)
)
);
}
if (modeConfiguration.selectionRanges) {
providers.push(
editor_api.languages.registerSelectionRangeProvider(
languageId,
new lspLanguageFeatures.SelectionRangeAdapter(worker)
)
);
}
if (modeConfiguration.documentFormattingEdits) {
providers.push(
editor_api.languages.registerDocumentFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentFormattingEditProvider(worker)
)
);
}
if (modeConfiguration.documentRangeFormattingEdits) {
providers.push(
editor_api.languages.registerDocumentRangeFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentRangeFormattingEditProvider(worker)
)
);
}
}
registerProviders();
disposables.push(asDisposable(providers));
return asDisposable(disposables);
}
function asDisposable(disposables) {
return { dispose: () => disposeAll(disposables) };
}
function disposeAll(disposables) {
while (disposables.length) {
disposables.pop().dispose();
}
}
exports.CompletionAdapter = lspLanguageFeatures.CompletionAdapter;
exports.DefinitionAdapter = lspLanguageFeatures.DefinitionAdapter;
exports.DiagnosticsAdapter = lspLanguageFeatures.DiagnosticsAdapter;
exports.DocumentColorAdapter = lspLanguageFeatures.DocumentColorAdapter;
exports.DocumentFormattingEditProvider = lspLanguageFeatures.DocumentFormattingEditProvider;
exports.DocumentHighlightAdapter = lspLanguageFeatures.DocumentHighlightAdapter;
exports.DocumentLinkAdapter = lspLanguageFeatures.DocumentLinkAdapter;
exports.DocumentRangeFormattingEditProvider = lspLanguageFeatures.DocumentRangeFormattingEditProvider;
exports.DocumentSymbolAdapter = lspLanguageFeatures.DocumentSymbolAdapter;
exports.FoldingRangeAdapter = lspLanguageFeatures.FoldingRangeAdapter;
exports.HoverAdapter = lspLanguageFeatures.HoverAdapter;
exports.ReferenceAdapter = lspLanguageFeatures.ReferenceAdapter;
exports.RenameAdapter = lspLanguageFeatures.RenameAdapter;
exports.SelectionRangeAdapter = lspLanguageFeatures.SelectionRangeAdapter;
exports.fromPosition = lspLanguageFeatures.fromPosition;
exports.fromRange = lspLanguageFeatures.fromRange;
exports.toRange = lspLanguageFeatures.toRange;
exports.toTextEdit = lspLanguageFeatures.toTextEdit;
exports.WorkerManager = WorkerManager;
exports.setupMode = setupMode;
exports.setupMode1 = setupMode1;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,74 @@
define("vs/ini-CdZgSnLI", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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"],
// non-teminated string
[/'([^'\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, "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"
}
}
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,235 @@
define("vs/java-vwwkdu2k", ["exports"], (function(exports) {
"use strict";
const 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>))")
}
}
};
const 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"],
// non-teminated string
[/"""/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,72 @@
define("vs/javascript-DtYAOqDf", ["exports", "./typescript-qRP7tyf4"], (function(exports, typescript) {
"use strict";
const conf = typescript.conf;
const 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",
"static",
"super",
"switch",
"symbol",
"this",
"throw",
"true",
"try",
"typeof",
"undefined",
"var",
"void",
"while",
"with",
"yield",
"async",
"await",
"of"
],
typeKeywords: [],
operators: typescript.language.operators,
symbols: typescript.language.symbols,
escapes: typescript.language.escapes,
digits: typescript.language.digits,
octaldigits: typescript.language.octaldigits,
binarydigits: typescript.language.binarydigits,
hexdigits: typescript.language.hexdigits,
regexpctl: typescript.language.regexpctl,
regexpesc: typescript.language.regexpesc,
tokenizer: typescript.language.tokenizer
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,925 @@
define("vs/jsonMode-KHMzkiG2", ["exports", "./workers-CJWv4CcA", "./lspLanguageFeatures-C8J-56s2", "./editor.api-BhD7pWdi"], (function(exports, workers, lspLanguageFeatures, editor_api) {
"use strict";
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
class WorkerManager {
constructor(defaults) {
this._defaults = defaults;
this._worker = null;
this._client = null;
this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);
this._lastUsedTime = 0;
this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());
}
_stopWorker() {
if (this._worker) {
this._worker.dispose();
this._worker = null;
}
this._client = null;
}
dispose() {
clearInterval(this._idleCheckInterval);
this._configChangeListener.dispose();
this._stopWorker();
}
_checkIfIdle() {
if (!this._worker) {
return;
}
let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;
if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {
this._stopWorker();
}
}
_getClient() {
this._lastUsedTime = Date.now();
if (!this._client) {
this._worker = workers.createWebWorker({
// module that exports the create() method and returns a `JSONWorker` instance
moduleId: "vs/language/json/jsonWorker",
label: this._defaults.languageId,
// passed in to the create() method
createData: {
languageSettings: this._defaults.diagnosticsOptions,
languageId: this._defaults.languageId,
enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest
}
});
this._client = this._worker.getProxy();
}
return this._client;
}
getLanguageServiceWorker(...resources) {
let _client;
return this._getClient().then((client) => {
_client = client;
}).then((_) => {
if (this._worker) {
return this._worker.withSyncedResources(resources);
}
}).then((_) => _client);
}
}
function createScanner$1(text, ignoreTrivia = false) {
const len = text.length;
let pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0;
function scanHexDigits(count, exact) {
let digits = 0;
let value2 = 0;
while (digits < count || false) {
let ch = text.charCodeAt(pos);
if (ch >= 48 && ch <= 57) {
value2 = value2 * 16 + ch - 48;
} else if (ch >= 65 && ch <= 70) {
value2 = value2 * 16 + ch - 65 + 10;
} else if (ch >= 97 && ch <= 102) {
value2 = value2 * 16 + ch - 97 + 10;
} else {
break;
}
pos++;
digits++;
}
if (digits < count) {
value2 = -1;
}
return value2;
}
function setPosition(newPosition) {
pos = newPosition;
value = "";
tokenOffset = 0;
token = 16;
scanError = 0;
}
function scanNumber() {
let start = pos;
if (text.charCodeAt(pos) === 48) {
pos++;
} else {
pos++;
while (pos < text.length && isDigit(text.charCodeAt(pos))) {
pos++;
}
}
if (pos < text.length && text.charCodeAt(pos) === 46) {
pos++;
if (pos < text.length && isDigit(text.charCodeAt(pos))) {
pos++;
while (pos < text.length && isDigit(text.charCodeAt(pos))) {
pos++;
}
} else {
scanError = 3;
return text.substring(start, pos);
}
}
let end = pos;
if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
pos++;
if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) {
pos++;
}
if (pos < text.length && isDigit(text.charCodeAt(pos))) {
pos++;
while (pos < text.length && isDigit(text.charCodeAt(pos))) {
pos++;
}
end = pos;
} else {
scanError = 3;
}
}
return text.substring(start, end);
}
function scanString() {
let result = "", start = pos;
while (true) {
if (pos >= len) {
result += text.substring(start, pos);
scanError = 2;
break;
}
const ch = text.charCodeAt(pos);
if (ch === 34) {
result += text.substring(start, pos);
pos++;
break;
}
if (ch === 92) {
result += text.substring(start, pos);
pos++;
if (pos >= len) {
scanError = 2;
break;
}
const ch2 = text.charCodeAt(pos++);
switch (ch2) {
case 34:
result += '"';
break;
case 92:
result += "\\";
break;
case 47:
result += "/";
break;
case 98:
result += "\b";
break;
case 102:
result += "\f";
break;
case 110:
result += "\n";
break;
case 114:
result += "\r";
break;
case 116:
result += " ";
break;
case 117:
const ch3 = scanHexDigits(4);
if (ch3 >= 0) {
result += String.fromCharCode(ch3);
} else {
scanError = 4;
}
break;
default:
scanError = 5;
}
start = pos;
continue;
}
if (ch >= 0 && ch <= 31) {
if (isLineBreak(ch)) {
result += text.substring(start, pos);
scanError = 2;
break;
} else {
scanError = 6;
}
}
pos++;
}
return result;
}
function scanNext() {
value = "";
scanError = 0;
tokenOffset = pos;
lineStartOffset = lineNumber;
prevTokenLineStartOffset = tokenLineStartOffset;
if (pos >= len) {
tokenOffset = len;
return token = 17;
}
let code = text.charCodeAt(pos);
if (isWhiteSpace(code)) {
do {
pos++;
value += String.fromCharCode(code);
code = text.charCodeAt(pos);
} while (isWhiteSpace(code));
return token = 15;
}
if (isLineBreak(code)) {
pos++;
value += String.fromCharCode(code);
if (code === 13 && text.charCodeAt(pos) === 10) {
pos++;
value += "\n";
}
lineNumber++;
tokenLineStartOffset = pos;
return token = 14;
}
switch (code) {
// tokens: []{}:,
case 123:
pos++;
return token = 1;
case 125:
pos++;
return token = 2;
case 91:
pos++;
return token = 3;
case 93:
pos++;
return token = 4;
case 58:
pos++;
return token = 6;
case 44:
pos++;
return token = 5;
// strings
case 34:
pos++;
value = scanString();
return token = 10;
// comments
case 47:
const start = pos - 1;
if (text.charCodeAt(pos + 1) === 47) {
pos += 2;
while (pos < len) {
if (isLineBreak(text.charCodeAt(pos))) {
break;
}
pos++;
}
value = text.substring(start, pos);
return token = 12;
}
if (text.charCodeAt(pos + 1) === 42) {
pos += 2;
const safeLength = len - 1;
let commentClosed = false;
while (pos < safeLength) {
const ch = text.charCodeAt(pos);
if (ch === 42 && text.charCodeAt(pos + 1) === 47) {
pos += 2;
commentClosed = true;
break;
}
pos++;
if (isLineBreak(ch)) {
if (ch === 13 && text.charCodeAt(pos) === 10) {
pos++;
}
lineNumber++;
tokenLineStartOffset = pos;
}
}
if (!commentClosed) {
pos++;
scanError = 1;
}
value = text.substring(start, pos);
return token = 13;
}
value += String.fromCharCode(code);
pos++;
return token = 16;
// numbers
case 45:
value += String.fromCharCode(code);
pos++;
if (pos === len || !isDigit(text.charCodeAt(pos))) {
return token = 16;
}
// found a minus, followed by a number so
// we fall through to proceed with scanning
// numbers
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
value += scanNumber();
return token = 11;
// literals and unknown symbols
default:
while (pos < len && isUnknownContentCharacter(code)) {
pos++;
code = text.charCodeAt(pos);
}
if (tokenOffset !== pos) {
value = text.substring(tokenOffset, pos);
switch (value) {
case "true":
return token = 8;
case "false":
return token = 9;
case "null":
return token = 7;
}
return token = 16;
}
value += String.fromCharCode(code);
pos++;
return token = 16;
}
}
function isUnknownContentCharacter(code) {
if (isWhiteSpace(code) || isLineBreak(code)) {
return false;
}
switch (code) {
case 125:
case 93:
case 123:
case 91:
case 34:
case 58:
case 44:
case 47:
return false;
}
return true;
}
function scanNextNonTrivia() {
let result;
do {
result = scanNext();
} while (result >= 12 && result <= 15);
return result;
}
return {
setPosition,
getPosition: () => pos,
scan: ignoreTrivia ? scanNextNonTrivia : scanNext,
getToken: () => token,
getTokenValue: () => value,
getTokenOffset: () => tokenOffset,
getTokenLength: () => pos - tokenOffset,
getTokenStartLine: () => lineStartOffset,
getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,
getTokenError: () => scanError
};
}
function isWhiteSpace(ch) {
return ch === 32 || ch === 9;
}
function isLineBreak(ch) {
return ch === 10 || ch === 13;
}
function isDigit(ch) {
return ch >= 48 && ch <= 57;
}
var CharacterCodes;
(function(CharacterCodes2) {
CharacterCodes2[CharacterCodes2["lineFeed"] = 10] = "lineFeed";
CharacterCodes2[CharacterCodes2["carriageReturn"] = 13] = "carriageReturn";
CharacterCodes2[CharacterCodes2["space"] = 32] = "space";
CharacterCodes2[CharacterCodes2["_0"] = 48] = "_0";
CharacterCodes2[CharacterCodes2["_1"] = 49] = "_1";
CharacterCodes2[CharacterCodes2["_2"] = 50] = "_2";
CharacterCodes2[CharacterCodes2["_3"] = 51] = "_3";
CharacterCodes2[CharacterCodes2["_4"] = 52] = "_4";
CharacterCodes2[CharacterCodes2["_5"] = 53] = "_5";
CharacterCodes2[CharacterCodes2["_6"] = 54] = "_6";
CharacterCodes2[CharacterCodes2["_7"] = 55] = "_7";
CharacterCodes2[CharacterCodes2["_8"] = 56] = "_8";
CharacterCodes2[CharacterCodes2["_9"] = 57] = "_9";
CharacterCodes2[CharacterCodes2["a"] = 97] = "a";
CharacterCodes2[CharacterCodes2["b"] = 98] = "b";
CharacterCodes2[CharacterCodes2["c"] = 99] = "c";
CharacterCodes2[CharacterCodes2["d"] = 100] = "d";
CharacterCodes2[CharacterCodes2["e"] = 101] = "e";
CharacterCodes2[CharacterCodes2["f"] = 102] = "f";
CharacterCodes2[CharacterCodes2["g"] = 103] = "g";
CharacterCodes2[CharacterCodes2["h"] = 104] = "h";
CharacterCodes2[CharacterCodes2["i"] = 105] = "i";
CharacterCodes2[CharacterCodes2["j"] = 106] = "j";
CharacterCodes2[CharacterCodes2["k"] = 107] = "k";
CharacterCodes2[CharacterCodes2["l"] = 108] = "l";
CharacterCodes2[CharacterCodes2["m"] = 109] = "m";
CharacterCodes2[CharacterCodes2["n"] = 110] = "n";
CharacterCodes2[CharacterCodes2["o"] = 111] = "o";
CharacterCodes2[CharacterCodes2["p"] = 112] = "p";
CharacterCodes2[CharacterCodes2["q"] = 113] = "q";
CharacterCodes2[CharacterCodes2["r"] = 114] = "r";
CharacterCodes2[CharacterCodes2["s"] = 115] = "s";
CharacterCodes2[CharacterCodes2["t"] = 116] = "t";
CharacterCodes2[CharacterCodes2["u"] = 117] = "u";
CharacterCodes2[CharacterCodes2["v"] = 118] = "v";
CharacterCodes2[CharacterCodes2["w"] = 119] = "w";
CharacterCodes2[CharacterCodes2["x"] = 120] = "x";
CharacterCodes2[CharacterCodes2["y"] = 121] = "y";
CharacterCodes2[CharacterCodes2["z"] = 122] = "z";
CharacterCodes2[CharacterCodes2["A"] = 65] = "A";
CharacterCodes2[CharacterCodes2["B"] = 66] = "B";
CharacterCodes2[CharacterCodes2["C"] = 67] = "C";
CharacterCodes2[CharacterCodes2["D"] = 68] = "D";
CharacterCodes2[CharacterCodes2["E"] = 69] = "E";
CharacterCodes2[CharacterCodes2["F"] = 70] = "F";
CharacterCodes2[CharacterCodes2["G"] = 71] = "G";
CharacterCodes2[CharacterCodes2["H"] = 72] = "H";
CharacterCodes2[CharacterCodes2["I"] = 73] = "I";
CharacterCodes2[CharacterCodes2["J"] = 74] = "J";
CharacterCodes2[CharacterCodes2["K"] = 75] = "K";
CharacterCodes2[CharacterCodes2["L"] = 76] = "L";
CharacterCodes2[CharacterCodes2["M"] = 77] = "M";
CharacterCodes2[CharacterCodes2["N"] = 78] = "N";
CharacterCodes2[CharacterCodes2["O"] = 79] = "O";
CharacterCodes2[CharacterCodes2["P"] = 80] = "P";
CharacterCodes2[CharacterCodes2["Q"] = 81] = "Q";
CharacterCodes2[CharacterCodes2["R"] = 82] = "R";
CharacterCodes2[CharacterCodes2["S"] = 83] = "S";
CharacterCodes2[CharacterCodes2["T"] = 84] = "T";
CharacterCodes2[CharacterCodes2["U"] = 85] = "U";
CharacterCodes2[CharacterCodes2["V"] = 86] = "V";
CharacterCodes2[CharacterCodes2["W"] = 87] = "W";
CharacterCodes2[CharacterCodes2["X"] = 88] = "X";
CharacterCodes2[CharacterCodes2["Y"] = 89] = "Y";
CharacterCodes2[CharacterCodes2["Z"] = 90] = "Z";
CharacterCodes2[CharacterCodes2["asterisk"] = 42] = "asterisk";
CharacterCodes2[CharacterCodes2["backslash"] = 92] = "backslash";
CharacterCodes2[CharacterCodes2["closeBrace"] = 125] = "closeBrace";
CharacterCodes2[CharacterCodes2["closeBracket"] = 93] = "closeBracket";
CharacterCodes2[CharacterCodes2["colon"] = 58] = "colon";
CharacterCodes2[CharacterCodes2["comma"] = 44] = "comma";
CharacterCodes2[CharacterCodes2["dot"] = 46] = "dot";
CharacterCodes2[CharacterCodes2["doubleQuote"] = 34] = "doubleQuote";
CharacterCodes2[CharacterCodes2["minus"] = 45] = "minus";
CharacterCodes2[CharacterCodes2["openBrace"] = 123] = "openBrace";
CharacterCodes2[CharacterCodes2["openBracket"] = 91] = "openBracket";
CharacterCodes2[CharacterCodes2["plus"] = 43] = "plus";
CharacterCodes2[CharacterCodes2["slash"] = 47] = "slash";
CharacterCodes2[CharacterCodes2["formFeed"] = 12] = "formFeed";
CharacterCodes2[CharacterCodes2["tab"] = 9] = "tab";
})(CharacterCodes || (CharacterCodes = {}));
new Array(20).fill(0).map((_, index) => {
return " ".repeat(index);
});
const maxCachedValues = 200;
({
" ": {
"\n": new Array(maxCachedValues).fill(0).map((_, index) => {
return "\n" + " ".repeat(index);
}),
"\r": new Array(maxCachedValues).fill(0).map((_, index) => {
return "\r" + " ".repeat(index);
}),
"\r\n": new Array(maxCachedValues).fill(0).map((_, index) => {
return "\r\n" + " ".repeat(index);
})
},
" ": {
"\n": new Array(maxCachedValues).fill(0).map((_, index) => {
return "\n" + " ".repeat(index);
}),
"\r": new Array(maxCachedValues).fill(0).map((_, index) => {
return "\r" + " ".repeat(index);
}),
"\r\n": new Array(maxCachedValues).fill(0).map((_, index) => {
return "\r\n" + " ".repeat(index);
})
}
});
var ParseOptions;
(function(ParseOptions2) {
ParseOptions2.DEFAULT = {
allowTrailingComma: false
};
})(ParseOptions || (ParseOptions = {}));
const createScanner = createScanner$1;
var ScanError;
(function(ScanError2) {
ScanError2[ScanError2["None"] = 0] = "None";
ScanError2[ScanError2["UnexpectedEndOfComment"] = 1] = "UnexpectedEndOfComment";
ScanError2[ScanError2["UnexpectedEndOfString"] = 2] = "UnexpectedEndOfString";
ScanError2[ScanError2["UnexpectedEndOfNumber"] = 3] = "UnexpectedEndOfNumber";
ScanError2[ScanError2["InvalidUnicode"] = 4] = "InvalidUnicode";
ScanError2[ScanError2["InvalidEscapeCharacter"] = 5] = "InvalidEscapeCharacter";
ScanError2[ScanError2["InvalidCharacter"] = 6] = "InvalidCharacter";
})(ScanError || (ScanError = {}));
var SyntaxKind;
(function(SyntaxKind2) {
SyntaxKind2[SyntaxKind2["OpenBraceToken"] = 1] = "OpenBraceToken";
SyntaxKind2[SyntaxKind2["CloseBraceToken"] = 2] = "CloseBraceToken";
SyntaxKind2[SyntaxKind2["OpenBracketToken"] = 3] = "OpenBracketToken";
SyntaxKind2[SyntaxKind2["CloseBracketToken"] = 4] = "CloseBracketToken";
SyntaxKind2[SyntaxKind2["CommaToken"] = 5] = "CommaToken";
SyntaxKind2[SyntaxKind2["ColonToken"] = 6] = "ColonToken";
SyntaxKind2[SyntaxKind2["NullKeyword"] = 7] = "NullKeyword";
SyntaxKind2[SyntaxKind2["TrueKeyword"] = 8] = "TrueKeyword";
SyntaxKind2[SyntaxKind2["FalseKeyword"] = 9] = "FalseKeyword";
SyntaxKind2[SyntaxKind2["StringLiteral"] = 10] = "StringLiteral";
SyntaxKind2[SyntaxKind2["NumericLiteral"] = 11] = "NumericLiteral";
SyntaxKind2[SyntaxKind2["LineCommentTrivia"] = 12] = "LineCommentTrivia";
SyntaxKind2[SyntaxKind2["BlockCommentTrivia"] = 13] = "BlockCommentTrivia";
SyntaxKind2[SyntaxKind2["LineBreakTrivia"] = 14] = "LineBreakTrivia";
SyntaxKind2[SyntaxKind2["Trivia"] = 15] = "Trivia";
SyntaxKind2[SyntaxKind2["Unknown"] = 16] = "Unknown";
SyntaxKind2[SyntaxKind2["EOF"] = 17] = "EOF";
})(SyntaxKind || (SyntaxKind = {}));
var ParseErrorCode;
(function(ParseErrorCode2) {
ParseErrorCode2[ParseErrorCode2["InvalidSymbol"] = 1] = "InvalidSymbol";
ParseErrorCode2[ParseErrorCode2["InvalidNumberFormat"] = 2] = "InvalidNumberFormat";
ParseErrorCode2[ParseErrorCode2["PropertyNameExpected"] = 3] = "PropertyNameExpected";
ParseErrorCode2[ParseErrorCode2["ValueExpected"] = 4] = "ValueExpected";
ParseErrorCode2[ParseErrorCode2["ColonExpected"] = 5] = "ColonExpected";
ParseErrorCode2[ParseErrorCode2["CommaExpected"] = 6] = "CommaExpected";
ParseErrorCode2[ParseErrorCode2["CloseBraceExpected"] = 7] = "CloseBraceExpected";
ParseErrorCode2[ParseErrorCode2["CloseBracketExpected"] = 8] = "CloseBracketExpected";
ParseErrorCode2[ParseErrorCode2["EndOfFileExpected"] = 9] = "EndOfFileExpected";
ParseErrorCode2[ParseErrorCode2["InvalidCommentToken"] = 10] = "InvalidCommentToken";
ParseErrorCode2[ParseErrorCode2["UnexpectedEndOfComment"] = 11] = "UnexpectedEndOfComment";
ParseErrorCode2[ParseErrorCode2["UnexpectedEndOfString"] = 12] = "UnexpectedEndOfString";
ParseErrorCode2[ParseErrorCode2["UnexpectedEndOfNumber"] = 13] = "UnexpectedEndOfNumber";
ParseErrorCode2[ParseErrorCode2["InvalidUnicode"] = 14] = "InvalidUnicode";
ParseErrorCode2[ParseErrorCode2["InvalidEscapeCharacter"] = 15] = "InvalidEscapeCharacter";
ParseErrorCode2[ParseErrorCode2["InvalidCharacter"] = 16] = "InvalidCharacter";
})(ParseErrorCode || (ParseErrorCode = {}));
function createTokenizationSupport(supportComments) {
return {
getInitialState: () => new JSONState(null, null, false, null),
tokenize: (line, state) => tokenize(supportComments, line, state)
};
}
const TOKEN_DELIM_OBJECT = "delimiter.bracket.json";
const TOKEN_DELIM_ARRAY = "delimiter.array.json";
const TOKEN_DELIM_COLON = "delimiter.colon.json";
const TOKEN_DELIM_COMMA = "delimiter.comma.json";
const TOKEN_VALUE_BOOLEAN = "keyword.json";
const TOKEN_VALUE_NULL = "keyword.json";
const TOKEN_VALUE_STRING = "string.value.json";
const TOKEN_VALUE_NUMBER = "number.json";
const TOKEN_PROPERTY_NAME = "string.key.json";
const TOKEN_COMMENT_BLOCK = "comment.block.json";
const TOKEN_COMMENT_LINE = "comment.line.json";
class ParentsStack {
constructor(parent, type) {
this.parent = parent;
this.type = type;
}
static pop(parents) {
if (parents) {
return parents.parent;
}
return null;
}
static push(parents, type) {
return new ParentsStack(parents, type);
}
static equals(a, b) {
if (!a && !b) {
return true;
}
if (!a || !b) {
return false;
}
while (a && b) {
if (a === b) {
return true;
}
if (a.type !== b.type) {
return false;
}
a = a.parent;
b = b.parent;
}
return true;
}
}
class JSONState {
constructor(state, scanError, lastWasColon, parents) {
this._state = state;
this.scanError = scanError;
this.lastWasColon = lastWasColon;
this.parents = parents;
}
clone() {
return new JSONState(this._state, this.scanError, this.lastWasColon, this.parents);
}
equals(other) {
if (other === this) {
return true;
}
if (!other || !(other instanceof JSONState)) {
return false;
}
return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);
}
getStateData() {
return this._state;
}
setStateData(state) {
this._state = state;
}
}
function tokenize(comments, line, state, offsetDelta = 0) {
let numberOfInsertedCharacters = 0;
let adjustOffset = false;
switch (state.scanError) {
case 2:
line = '"' + line;
numberOfInsertedCharacters = 1;
break;
case 1:
line = "/*" + line;
numberOfInsertedCharacters = 2;
break;
}
const scanner = createScanner(line);
let lastWasColon = state.lastWasColon;
let parents = state.parents;
const ret = {
tokens: [],
endState: state.clone()
};
while (true) {
let offset = offsetDelta + scanner.getPosition();
let type = "";
const kind = scanner.scan();
if (kind === 17) {
break;
}
if (offset === offsetDelta + scanner.getPosition()) {
throw new Error(
"Scanner did not advance, next 3 characters are: " + line.substr(scanner.getPosition(), 3)
);
}
if (adjustOffset) {
offset -= numberOfInsertedCharacters;
}
adjustOffset = numberOfInsertedCharacters > 0;
switch (kind) {
case 1:
parents = ParentsStack.push(
parents,
0
/* Object */
);
type = TOKEN_DELIM_OBJECT;
lastWasColon = false;
break;
case 2:
parents = ParentsStack.pop(parents);
type = TOKEN_DELIM_OBJECT;
lastWasColon = false;
break;
case 3:
parents = ParentsStack.push(
parents,
1
/* Array */
);
type = TOKEN_DELIM_ARRAY;
lastWasColon = false;
break;
case 4:
parents = ParentsStack.pop(parents);
type = TOKEN_DELIM_ARRAY;
lastWasColon = false;
break;
case 6:
type = TOKEN_DELIM_COLON;
lastWasColon = true;
break;
case 5:
type = TOKEN_DELIM_COMMA;
lastWasColon = false;
break;
case 8:
case 9:
type = TOKEN_VALUE_BOOLEAN;
lastWasColon = false;
break;
case 7:
type = TOKEN_VALUE_NULL;
lastWasColon = false;
break;
case 10:
const currentParent = parents ? parents.type : 0;
const inArray = currentParent === 1;
type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;
lastWasColon = false;
break;
case 11:
type = TOKEN_VALUE_NUMBER;
lastWasColon = false;
break;
}
{
switch (kind) {
case 12:
type = TOKEN_COMMENT_LINE;
break;
case 13:
type = TOKEN_COMMENT_BLOCK;
break;
}
}
ret.endState = new JSONState(
state.getStateData(),
scanner.getTokenError(),
lastWasColon,
parents
);
ret.tokens.push({
startIndex: offset,
scopes: type
});
}
return ret;
}
let worker;
function getWorker() {
return new Promise((resolve, reject) => {
if (!worker) {
return reject("JSON not registered!");
}
resolve(worker);
});
}
class JSONDiagnosticsAdapter extends lspLanguageFeatures.DiagnosticsAdapter {
constructor(languageId, worker2, defaults) {
super(languageId, worker2, defaults.onDidChange);
this._disposables.push(
editor_api.editor.onWillDisposeModel((model) => {
this._resetSchema(model.uri);
})
);
this._disposables.push(
editor_api.editor.onDidChangeModelLanguage((event) => {
this._resetSchema(event.model.uri);
})
);
}
_resetSchema(resource) {
this._worker().then((worker2) => {
worker2.resetSchema(resource.toString());
});
}
}
function setupMode(defaults) {
const disposables = [];
const providers = [];
const client = new WorkerManager(defaults);
disposables.push(client);
worker = (...uris) => {
return client.getLanguageServiceWorker(...uris);
};
function registerProviders() {
const { languageId, modeConfiguration: modeConfiguration2 } = defaults;
disposeAll(providers);
if (modeConfiguration2.documentFormattingEdits) {
providers.push(
editor_api.languages.registerDocumentFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentFormattingEditProvider(worker)
)
);
}
if (modeConfiguration2.documentRangeFormattingEdits) {
providers.push(
editor_api.languages.registerDocumentRangeFormattingEditProvider(
languageId,
new lspLanguageFeatures.DocumentRangeFormattingEditProvider(worker)
)
);
}
if (modeConfiguration2.completionItems) {
providers.push(
editor_api.languages.registerCompletionItemProvider(
languageId,
new lspLanguageFeatures.CompletionAdapter(worker, [" ", ":", '"'])
)
);
}
if (modeConfiguration2.hovers) {
providers.push(
editor_api.languages.registerHoverProvider(languageId, new lspLanguageFeatures.HoverAdapter(worker))
);
}
if (modeConfiguration2.documentSymbols) {
providers.push(
editor_api.languages.registerDocumentSymbolProvider(
languageId,
new lspLanguageFeatures.DocumentSymbolAdapter(worker)
)
);
}
if (modeConfiguration2.tokens) {
providers.push(editor_api.languages.setTokensProvider(languageId, createTokenizationSupport(true)));
}
if (modeConfiguration2.colors) {
providers.push(
editor_api.languages.registerColorProvider(
languageId,
new lspLanguageFeatures.DocumentColorAdapter(worker)
)
);
}
if (modeConfiguration2.foldingRanges) {
providers.push(
editor_api.languages.registerFoldingRangeProvider(
languageId,
new lspLanguageFeatures.FoldingRangeAdapter(worker)
)
);
}
if (modeConfiguration2.diagnostics) {
providers.push(new JSONDiagnosticsAdapter(languageId, worker, defaults));
}
if (modeConfiguration2.selectionRanges) {
providers.push(
editor_api.languages.registerSelectionRangeProvider(
languageId,
new lspLanguageFeatures.SelectionRangeAdapter(worker)
)
);
}
}
registerProviders();
disposables.push(editor_api.languages.setLanguageConfiguration(defaults.languageId, richEditConfiguration));
let modeConfiguration = defaults.modeConfiguration;
defaults.onDidChange((newDefaults) => {
if (newDefaults.modeConfiguration !== modeConfiguration) {
modeConfiguration = newDefaults.modeConfiguration;
registerProviders();
}
});
disposables.push(asDisposable(providers));
return asDisposable(disposables);
}
function asDisposable(disposables) {
return { dispose: () => disposeAll(disposables) };
}
function disposeAll(disposables) {
while (disposables.length) {
disposables.pop().dispose();
}
}
const richEditConfiguration = {
wordPattern: /(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,
comments: {
lineComment: "//",
blockComment: ["/*", "*/"]
},
brackets: [
["{", "}"],
["[", "]"]
],
autoClosingPairs: [
{ open: "{", close: "}", notIn: ["string"] },
{ open: "[", close: "]", notIn: ["string"] },
{ open: '"', close: '"', notIn: ["string"] }
]
};
exports.CompletionAdapter = lspLanguageFeatures.CompletionAdapter;
exports.DefinitionAdapter = lspLanguageFeatures.DefinitionAdapter;
exports.DiagnosticsAdapter = lspLanguageFeatures.DiagnosticsAdapter;
exports.DocumentColorAdapter = lspLanguageFeatures.DocumentColorAdapter;
exports.DocumentFormattingEditProvider = lspLanguageFeatures.DocumentFormattingEditProvider;
exports.DocumentHighlightAdapter = lspLanguageFeatures.DocumentHighlightAdapter;
exports.DocumentLinkAdapter = lspLanguageFeatures.DocumentLinkAdapter;
exports.DocumentRangeFormattingEditProvider = lspLanguageFeatures.DocumentRangeFormattingEditProvider;
exports.DocumentSymbolAdapter = lspLanguageFeatures.DocumentSymbolAdapter;
exports.FoldingRangeAdapter = lspLanguageFeatures.FoldingRangeAdapter;
exports.HoverAdapter = lspLanguageFeatures.HoverAdapter;
exports.ReferenceAdapter = lspLanguageFeatures.ReferenceAdapter;
exports.RenameAdapter = lspLanguageFeatures.RenameAdapter;
exports.SelectionRangeAdapter = lspLanguageFeatures.SelectionRangeAdapter;
exports.fromPosition = lspLanguageFeatures.fromPosition;
exports.fromRange = lspLanguageFeatures.fromRange;
exports.toRange = lspLanguageFeatures.toRange;
exports.toTextEdit = lspLanguageFeatures.toTextEdit;
exports.WorkerManager = WorkerManager;
exports.getWorker = getWorker;
exports.setupMode = setupMode;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,514 @@
define("vs/julia-DrYN6c6i", ["exports"], (function(exports) {
"use strict";
const conf = {
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,256 @@
define("vs/kotlin-BlB-2Ilc", ["exports"], (function(exports) {
"use strict";
const 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>))")
}
}
};
const 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"],
// non-teminated string
[/"""/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,118 @@
define("vs/language/css/monaco.contribution", ["require", "exports", "../../editor.api-BhD7pWdi"], (function(require, exports, editor_api) {
"use strict";
class LanguageServiceDefaultsImpl {
constructor(languageId, options, modeConfiguration) {
this._onDidChange = new editor_api.Emitter();
this._languageId = languageId;
this.setOptions(options);
this.setModeConfiguration(modeConfiguration);
}
get onDidChange() {
return this._onDidChange.event;
}
get languageId() {
return this._languageId;
}
get modeConfiguration() {
return this._modeConfiguration;
}
get diagnosticsOptions() {
return this.options;
}
get options() {
return this._options;
}
setOptions(options) {
this._options = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(this);
}
setDiagnosticsOptions(options) {
this.setOptions(options);
}
setModeConfiguration(modeConfiguration) {
this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(this);
}
}
const optionsDefault = {
validate: true,
lint: {
compatibleVendorPrefixes: "ignore",
vendorPrefix: "warning",
duplicateProperties: "warning",
emptyRules: "warning",
importStatement: "ignore",
boxModel: "ignore",
universalSelector: "ignore",
zeroUnits: "ignore",
fontFaceProperties: "warning",
hexColorLength: "error",
argumentsInColorFunction: "error",
unknownProperties: "warning",
ieHack: "ignore",
unknownVendorSpecificProperties: "ignore",
propertyIgnoredDueToDisplay: "warning",
important: "ignore",
float: "ignore",
idSelector: "ignore"
},
data: { useDefaultDataProvider: true },
format: {
newlineBetweenSelectors: true,
newlineBetweenRules: true,
spaceAroundSelectorSeparator: false,
braceStyle: "collapse",
maxPreserveNewLines: void 0,
preserveNewLines: true
}
};
const modeConfigurationDefault = {
completionItems: true,
hovers: true,
documentSymbols: true,
definitions: true,
references: true,
documentHighlights: true,
rename: true,
colors: true,
foldingRanges: true,
diagnostics: true,
selectionRanges: true,
documentFormattingEdits: true,
documentRangeFormattingEdits: true
};
const cssDefaults = new LanguageServiceDefaultsImpl(
"css",
optionsDefault,
modeConfigurationDefault
);
const scssDefaults = new LanguageServiceDefaultsImpl(
"scss",
optionsDefault,
modeConfigurationDefault
);
const lessDefaults = new LanguageServiceDefaultsImpl(
"less",
optionsDefault,
modeConfigurationDefault
);
editor_api.languages.css = { cssDefaults, lessDefaults, scssDefaults };
function getMode() {
{
return new Promise((resolve, reject) => require(["../../cssMode-YNsTpAl9"], resolve, reject));
}
}
editor_api.languages.onLanguage("less", () => {
getMode().then((mode2) => mode2.setupMode(lessDefaults));
});
editor_api.languages.onLanguage("scss", () => {
getMode().then((mode2) => mode2.setupMode(scssDefaults));
});
editor_api.languages.onLanguage("css", () => {
getMode().then((mode2) => mode2.setupMode(cssDefaults));
});
exports.cssDefaults = cssDefaults;
exports.lessDefaults = lessDefaults;
exports.scssDefaults = scssDefaults;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,127 @@
define("vs/language/html/monaco.contribution", ["require", "exports", "../../editor.api-BhD7pWdi"], (function(require, exports, editor_api) {
"use strict";
class LanguageServiceDefaultsImpl {
constructor(languageId, options, modeConfiguration) {
this._onDidChange = new editor_api.Emitter();
this._languageId = languageId;
this.setOptions(options);
this.setModeConfiguration(modeConfiguration);
}
get onDidChange() {
return this._onDidChange.event;
}
get languageId() {
return this._languageId;
}
get options() {
return this._options;
}
get modeConfiguration() {
return this._modeConfiguration;
}
setOptions(options) {
this._options = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(this);
}
setModeConfiguration(modeConfiguration) {
this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(this);
}
}
const formatDefaults = {
tabSize: 4,
insertSpaces: false,
wrapLineLength: 120,
unformatted: 'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',
contentUnformatted: "pre",
indentInnerHtml: false,
preserveNewLines: true,
maxPreserveNewLines: void 0,
indentHandlebars: false,
endWithNewline: false,
extraLiners: "head, body, /html",
wrapAttributes: "auto"
};
const optionsDefault = {
format: formatDefaults,
suggest: {},
data: { useDefaultDataProvider: true }
};
function getConfigurationDefault(languageId) {
return {
completionItems: true,
hovers: true,
documentSymbols: true,
links: true,
documentHighlights: true,
rename: true,
colors: true,
foldingRanges: true,
selectionRanges: true,
diagnostics: languageId === htmlLanguageId,
// turned off for Razor and Handlebar
documentFormattingEdits: languageId === htmlLanguageId,
// turned off for Razor and Handlebar
documentRangeFormattingEdits: languageId === htmlLanguageId
// turned off for Razor and Handlebar
};
}
const htmlLanguageId = "html";
const handlebarsLanguageId = "handlebars";
const razorLanguageId = "razor";
const htmlLanguageService = registerHTMLLanguageService(
htmlLanguageId,
optionsDefault,
getConfigurationDefault(htmlLanguageId)
);
const htmlDefaults = htmlLanguageService.defaults;
const handlebarLanguageService = registerHTMLLanguageService(
handlebarsLanguageId,
optionsDefault,
getConfigurationDefault(handlebarsLanguageId)
);
const handlebarDefaults = handlebarLanguageService.defaults;
const razorLanguageService = registerHTMLLanguageService(
razorLanguageId,
optionsDefault,
getConfigurationDefault(razorLanguageId)
);
const razorDefaults = razorLanguageService.defaults;
editor_api.languages.html = {
htmlDefaults,
razorDefaults,
handlebarDefaults,
htmlLanguageService,
handlebarLanguageService,
razorLanguageService,
registerHTMLLanguageService
};
function getMode() {
{
return new Promise((resolve, reject) => require(["../../htmlMode-BL74tky3"], resolve, reject));
}
}
function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
const defaults = new LanguageServiceDefaultsImpl(languageId, options, modeConfiguration);
let mode2;
const onLanguageListener = editor_api.languages.onLanguage(languageId, async () => {
mode2 = (await getMode()).setupMode(defaults);
});
return {
defaults,
dispose() {
onLanguageListener.dispose();
mode2?.dispose();
mode2 = void 0;
}
};
}
exports.handlebarDefaults = handlebarDefaults;
exports.handlebarLanguageService = handlebarLanguageService;
exports.htmlDefaults = htmlDefaults;
exports.htmlLanguageService = htmlLanguageService;
exports.razorDefaults = razorDefaults;
exports.razorLanguageService = razorLanguageService;
exports.registerHTMLLanguageService = registerHTMLLanguageService;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,77 @@
define("vs/language/json/monaco.contribution", ["require", "exports", "../../editor.api-BhD7pWdi"], (function(require, exports, editor_api) {
"use strict";
class LanguageServiceDefaultsImpl {
constructor(languageId, diagnosticsOptions, modeConfiguration) {
this._onDidChange = new editor_api.Emitter();
this._languageId = languageId;
this.setDiagnosticsOptions(diagnosticsOptions);
this.setModeConfiguration(modeConfiguration);
}
get onDidChange() {
return this._onDidChange.event;
}
get languageId() {
return this._languageId;
}
get modeConfiguration() {
return this._modeConfiguration;
}
get diagnosticsOptions() {
return this._diagnosticsOptions;
}
setDiagnosticsOptions(options) {
this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(this);
}
setModeConfiguration(modeConfiguration) {
this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(this);
}
}
const diagnosticDefault = {
validate: true,
allowComments: true,
schemas: [],
enableSchemaRequest: false,
schemaRequest: "warning",
schemaValidation: "warning",
comments: "error",
trailingCommas: "error"
};
const modeConfigurationDefault = {
documentFormattingEdits: true,
documentRangeFormattingEdits: true,
completionItems: true,
hovers: true,
documentSymbols: true,
tokens: true,
colors: true,
foldingRanges: true,
diagnostics: true,
selectionRanges: true
};
const jsonDefaults = new LanguageServiceDefaultsImpl(
"json",
diagnosticDefault,
modeConfigurationDefault
);
const getWorker = () => getMode().then((mode2) => mode2.getWorker());
editor_api.languages.json = { jsonDefaults, getWorker };
function getMode() {
{
return new Promise((resolve, reject) => require(["../../jsonMode-KHMzkiG2"], resolve, reject));
}
}
editor_api.languages.register({
id: "json",
extensions: [".json", ".bowerrc", ".jshintrc", ".jscsrc", ".eslintrc", ".babelrc", ".har"],
aliases: ["JSON", "json"],
mimetypes: ["application/json"]
});
editor_api.languages.onLanguage("json", () => {
getMode().then((mode2) => mode2.setupMode(jsonDefaults));
});
exports.getWorker = getWorker;
exports.jsonDefaults = jsonDefaults;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,266 @@
define("vs/language/typescript/monaco.contribution", ["require", "exports", "../../editor.api-BhD7pWdi"], (function(require, exports, editor_api) {
"use strict";
const typescriptVersion$1 = "5.4.5";
var ModuleKind = /* @__PURE__ */ ((ModuleKind2) => {
ModuleKind2[ModuleKind2["None"] = 0] = "None";
ModuleKind2[ModuleKind2["CommonJS"] = 1] = "CommonJS";
ModuleKind2[ModuleKind2["AMD"] = 2] = "AMD";
ModuleKind2[ModuleKind2["UMD"] = 3] = "UMD";
ModuleKind2[ModuleKind2["System"] = 4] = "System";
ModuleKind2[ModuleKind2["ES2015"] = 5] = "ES2015";
ModuleKind2[ModuleKind2["ESNext"] = 99] = "ESNext";
return ModuleKind2;
})(ModuleKind || {});
var JsxEmit = /* @__PURE__ */ ((JsxEmit2) => {
JsxEmit2[JsxEmit2["None"] = 0] = "None";
JsxEmit2[JsxEmit2["Preserve"] = 1] = "Preserve";
JsxEmit2[JsxEmit2["React"] = 2] = "React";
JsxEmit2[JsxEmit2["ReactNative"] = 3] = "ReactNative";
JsxEmit2[JsxEmit2["ReactJSX"] = 4] = "ReactJSX";
JsxEmit2[JsxEmit2["ReactJSXDev"] = 5] = "ReactJSXDev";
return JsxEmit2;
})(JsxEmit || {});
var NewLineKind = /* @__PURE__ */ ((NewLineKind2) => {
NewLineKind2[NewLineKind2["CarriageReturnLineFeed"] = 0] = "CarriageReturnLineFeed";
NewLineKind2[NewLineKind2["LineFeed"] = 1] = "LineFeed";
return NewLineKind2;
})(NewLineKind || {});
var ScriptTarget = /* @__PURE__ */ ((ScriptTarget2) => {
ScriptTarget2[ScriptTarget2["ES3"] = 0] = "ES3";
ScriptTarget2[ScriptTarget2["ES5"] = 1] = "ES5";
ScriptTarget2[ScriptTarget2["ES2015"] = 2] = "ES2015";
ScriptTarget2[ScriptTarget2["ES2016"] = 3] = "ES2016";
ScriptTarget2[ScriptTarget2["ES2017"] = 4] = "ES2017";
ScriptTarget2[ScriptTarget2["ES2018"] = 5] = "ES2018";
ScriptTarget2[ScriptTarget2["ES2019"] = 6] = "ES2019";
ScriptTarget2[ScriptTarget2["ES2020"] = 7] = "ES2020";
ScriptTarget2[ScriptTarget2["ESNext"] = 99] = "ESNext";
ScriptTarget2[ScriptTarget2["JSON"] = 100] = "JSON";
ScriptTarget2[
ScriptTarget2["Latest"] = 99
/* ESNext */
] = "Latest";
return ScriptTarget2;
})(ScriptTarget || {});
var ModuleResolutionKind = /* @__PURE__ */ ((ModuleResolutionKind2) => {
ModuleResolutionKind2[ModuleResolutionKind2["Classic"] = 1] = "Classic";
ModuleResolutionKind2[ModuleResolutionKind2["NodeJs"] = 2] = "NodeJs";
return ModuleResolutionKind2;
})(ModuleResolutionKind || {});
class LanguageServiceDefaultsImpl {
constructor(compilerOptions, diagnosticsOptions, workerOptions, inlayHintsOptions, modeConfiguration) {
this._onDidChange = new editor_api.Emitter();
this._onDidExtraLibsChange = new editor_api.Emitter();
this._extraLibs = /* @__PURE__ */ Object.create(null);
this._removedExtraLibs = /* @__PURE__ */ Object.create(null);
this._eagerModelSync = false;
this.setCompilerOptions(compilerOptions);
this.setDiagnosticsOptions(diagnosticsOptions);
this.setWorkerOptions(workerOptions);
this.setInlayHintsOptions(inlayHintsOptions);
this.setModeConfiguration(modeConfiguration);
this._onDidExtraLibsChangeTimeout = -1;
}
get onDidChange() {
return this._onDidChange.event;
}
get onDidExtraLibsChange() {
return this._onDidExtraLibsChange.event;
}
get modeConfiguration() {
return this._modeConfiguration;
}
get workerOptions() {
return this._workerOptions;
}
get inlayHintsOptions() {
return this._inlayHintsOptions;
}
getExtraLibs() {
return this._extraLibs;
}
addExtraLib(content, _filePath) {
let filePath;
if (typeof _filePath === "undefined") {
filePath = `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;
} else {
filePath = _filePath;
}
if (this._extraLibs[filePath] && this._extraLibs[filePath].content === content) {
return {
dispose: () => {
}
};
}
let myVersion = 1;
if (this._removedExtraLibs[filePath]) {
myVersion = this._removedExtraLibs[filePath] + 1;
}
if (this._extraLibs[filePath]) {
myVersion = this._extraLibs[filePath].version + 1;
}
this._extraLibs[filePath] = {
content,
version: myVersion
};
this._fireOnDidExtraLibsChangeSoon();
return {
dispose: () => {
let extraLib = this._extraLibs[filePath];
if (!extraLib) {
return;
}
if (extraLib.version !== myVersion) {
return;
}
delete this._extraLibs[filePath];
this._removedExtraLibs[filePath] = myVersion;
this._fireOnDidExtraLibsChangeSoon();
}
};
}
setExtraLibs(libs) {
for (const filePath in this._extraLibs) {
this._removedExtraLibs[filePath] = this._extraLibs[filePath].version;
}
this._extraLibs = /* @__PURE__ */ Object.create(null);
if (libs && libs.length > 0) {
for (const lib of libs) {
const filePath = lib.filePath || `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;
const content = lib.content;
let myVersion = 1;
if (this._removedExtraLibs[filePath]) {
myVersion = this._removedExtraLibs[filePath] + 1;
}
this._extraLibs[filePath] = {
content,
version: myVersion
};
}
}
this._fireOnDidExtraLibsChangeSoon();
}
_fireOnDidExtraLibsChangeSoon() {
if (this._onDidExtraLibsChangeTimeout !== -1) {
return;
}
this._onDidExtraLibsChangeTimeout = window.setTimeout(() => {
this._onDidExtraLibsChangeTimeout = -1;
this._onDidExtraLibsChange.fire(void 0);
}, 0);
}
getCompilerOptions() {
return this._compilerOptions;
}
setCompilerOptions(options) {
this._compilerOptions = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(void 0);
}
getDiagnosticsOptions() {
return this._diagnosticsOptions;
}
setDiagnosticsOptions(options) {
this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(void 0);
}
setWorkerOptions(options) {
this._workerOptions = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(void 0);
}
setInlayHintsOptions(options) {
this._inlayHintsOptions = options || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(void 0);
}
setMaximumWorkerIdleTime(value) {
}
setEagerModelSync(value) {
this._eagerModelSync = value;
}
getEagerModelSync() {
return this._eagerModelSync;
}
setModeConfiguration(modeConfiguration) {
this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);
this._onDidChange.fire(void 0);
}
}
const typescriptVersion = typescriptVersion$1;
const modeConfigurationDefault = {
completionItems: true,
hovers: true,
documentSymbols: true,
definitions: true,
references: true,
documentHighlights: true,
rename: true,
diagnostics: true,
documentRangeFormattingEdits: true,
signatureHelp: true,
onTypeFormattingEdits: true,
codeActions: true,
inlayHints: true
};
const typescriptDefaults = new LanguageServiceDefaultsImpl(
{
allowNonTsExtensions: true,
target: 99
/* Latest */
},
{ noSemanticValidation: false, noSyntaxValidation: false, onlyVisible: false },
{},
{},
modeConfigurationDefault
);
const javascriptDefaults = new LanguageServiceDefaultsImpl(
{
allowNonTsExtensions: true,
allowJs: true,
target: 99
/* Latest */
},
{ noSemanticValidation: true, noSyntaxValidation: false, onlyVisible: false },
{},
{},
modeConfigurationDefault
);
const getTypeScriptWorker = () => {
return getMode().then((mode) => mode.getTypeScriptWorker());
};
const getJavaScriptWorker = () => {
return getMode().then((mode) => mode.getJavaScriptWorker());
};
editor_api.languages.typescript = {
ModuleKind,
JsxEmit,
NewLineKind,
ScriptTarget,
ModuleResolutionKind,
typescriptVersion,
typescriptDefaults,
javascriptDefaults,
getTypeScriptWorker,
getJavaScriptWorker
};
function getMode() {
{
return new Promise((resolve, reject) => require(["../../tsMode-DOj38qML"], resolve, reject));
}
}
editor_api.languages.onLanguage("typescript", () => {
return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
});
editor_api.languages.onLanguage("javascript", () => {
return getMode().then((mode) => mode.setupJavaScript(javascriptDefaults));
});
exports.JsxEmit = JsxEmit;
exports.ModuleKind = ModuleKind;
exports.ModuleResolutionKind = ModuleResolutionKind;
exports.NewLineKind = NewLineKind;
exports.ScriptTarget = ScriptTarget;
exports.getJavaScriptWorker = getJavaScriptWorker;
exports.getTypeScriptWorker = getTypeScriptWorker;
exports.javascriptDefaults = javascriptDefaults;
exports.typescriptDefaults = typescriptDefaults;
exports.typescriptVersion = typescriptVersion;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,164 @@
define("vs/less-B7KFvseP", ["exports"], (function(exports) {
"use strict";
const 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.*\\*\\/")
}
}
};
const 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|fr|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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,160 @@
define("vs/lexon-BmRNXYWC", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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"]]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,236 @@
define("vs/liquid-CDz0dGHZ", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const EMPTY_ELEMENTS = [
"area",
"base",
"br",
"col",
"embed",
"hr",
"img",
"input",
"keygen",
"link",
"menuitem",
"meta",
"param",
"source",
"track",
"wbr"
];
const 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: editor_api.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(
`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
"i"
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,165 @@
define("vs/lua-BYAO5Img", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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"],
// non-teminated string
[/'([^'\\]|\\.)*$/, "string.invalid"],
// non-teminated string
[/"/, "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"
}
}
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,213 @@
define("vs/m3-B1KqSpyY", ["exports"], (function(exports) {
"use strict";
const 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"] }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,232 @@
define("vs/markdown-BXo7NBdp", ["exports"], (function(exports) {
"use strict";
const 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.*-->")
}
}
};
const 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" }],
// header-divider
[/^\s*\|/, "keyword.table.left"],
// opening |
[/^\s*[^\|]/, "@rematch", "@pop"],
// exiting
[/^\s*$/, "@rematch", "@pop"],
// exiting
[
/\|/,
{
cases: {
"@eos": "keyword.table.right",
// closing |
"@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+)(\-|\w)*/,
{
cases: {
"@empty": { token: "tag", next: "@tag.$1" },
"@default": { token: "tag", next: "@tag.$1" }
}
}
],
[/<\/(\w+)(\-|\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" }],
[/</, ""]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,160 @@
define("vs/mdx-CRukMuk2", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const conf = {
comments: {
blockComment: ["{/*", "*/}"]
},
brackets: [["{", "}"]],
autoClosingPairs: [
{ open: '"', close: '"' },
{ open: "'", close: "'" },
{ open: "“", close: "”" },
{ open: "", close: "" },
{ open: "`", close: "`" },
{ open: "{", close: "}" },
{ open: "(", close: ")" },
{ open: "_", close: "_" },
{ open: "**", close: "**" },
{ open: "<", close: ">" }
],
onEnterRules: [
{
beforeText: /^\s*- .+/,
action: { indentAction: editor_api.languages.IndentAction.None, appendText: "- " }
},
{
beforeText: /^\s*\+ .+/,
action: { indentAction: editor_api.languages.IndentAction.None, appendText: "+ " }
},
{
beforeText: /^\s*\* .+/,
action: { indentAction: editor_api.languages.IndentAction.None, appendText: "* " }
},
{
beforeText: /^> /,
action: { indentAction: editor_api.languages.IndentAction.None, appendText: "> " }
},
{
beforeText: /<\w+/,
action: { indentAction: editor_api.languages.IndentAction.Indent }
},
{
beforeText: /\s+>\s*$/,
action: { indentAction: editor_api.languages.IndentAction.Indent }
},
{
beforeText: /<\/\w+>/,
action: { indentAction: editor_api.languages.IndentAction.Outdent }
},
...Array.from({ length: 100 }, (_, index) => ({
beforeText: new RegExp(`^${index}\\. .+`),
action: { indentAction: editor_api.languages.IndentAction.None, appendText: `${index + 1}. ` }
}))
]
};
const language = {
defaultToken: "",
tokenPostfix: ".mdx",
control: /[!#()*+.[\\\]_`{}\-]/,
escapes: /\\@control/,
tokenizer: {
root: [
[/^---$/, { token: "meta.content", next: "@frontmatter", nextEmbedded: "yaml" }],
[/^\s*import/, { token: "keyword", next: "@import", nextEmbedded: "js" }],
[/^\s*export/, { token: "keyword", next: "@export", nextEmbedded: "js" }],
[/<\w+/, { token: "type.identifier", next: "@jsx" }],
[/<\/?\w+>/, "type.identifier"],
[
/^(\s*)(>*\s*)(#{1,6}\s)/,
[{ token: "white" }, { token: "comment" }, { token: "keyword", next: "@header" }]
],
[/^(\s*)(>*\s*)([*+-])(\s+)/, ["white", "comment", "keyword", "white"]],
[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/, ["white", "comment", "number", "white"]],
[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/, ["white", "comment", "number", "white"]],
[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/, ["white", "comment", "keyword"]],
[/`{3,}(\s.*)?$/, { token: "string", next: "@codeblock_backtick" }],
[/~{3,}(\s.*)?$/, { token: "string", next: "@codeblock_tilde" }],
[
/`{3,}(\S+).*$/,
{ token: "string", next: "@codeblock_highlight_backtick", nextEmbedded: "$1" }
],
[
/~{3,}(\S+).*$/,
{ token: "string", next: "@codeblock_highlight_tilde", nextEmbedded: "$1" }
],
[/^(\s*)(-{4,})$/, ["white", "comment"]],
[/^(\s*)(>+)/, ["white", "comment"]],
{ include: "content" }
],
content: [
[
/(\[)(.+)(]\()(.+)(\s+".*")(\))/,
["", "string.link", "", "type.identifier", "string.link", ""]
],
[/(\[)(.+)(]\()(.+)(\))/, ["", "type.identifier", "", "string.link", ""]],
[/(\[)(.+)(]\[)(.+)(])/, ["", "type.identifier", "", "type.identifier", ""]],
[/(\[)(.+)(]:\s+)(\S*)/, ["", "type.identifier", "", "string.link"]],
[/(\[)(.+)(])/, ["", "type.identifier", ""]],
[/`.*`/, "variable.source"],
[/_/, { token: "emphasis", next: "@emphasis_underscore" }],
[/\*(?!\*)/, { token: "emphasis", next: "@emphasis_asterisk" }],
[/\*\*/, { token: "strong", next: "@strong" }],
[/{/, { token: "delimiter.bracket", next: "@expression", nextEmbedded: "js" }]
],
import: [[/'\s*(;|$)/, { token: "string", next: "@pop", nextEmbedded: "@pop" }]],
expression: [
[/{/, { token: "delimiter.bracket", next: "@expression" }],
[/}/, { token: "delimiter.bracket", next: "@pop", nextEmbedded: "@pop" }]
],
export: [[/^\s*$/, { token: "delimiter.bracket", next: "@pop", nextEmbedded: "@pop" }]],
jsx: [
[/\s+/, ""],
[/(\w+)(=)("(?:[^"\\]|\\.)*")/, ["attribute.name", "operator", "string"]],
[/(\w+)(=)('(?:[^'\\]|\\.)*')/, ["attribute.name", "operator", "string"]],
[/(\w+(?=\s|>|={|$))/, ["attribute.name"]],
[/={/, { token: "delimiter.bracket", next: "@expression", nextEmbedded: "js" }],
[/>/, { token: "type.identifier", next: "@pop" }]
],
header: [
[/.$/, { token: "keyword", next: "@pop" }],
{ include: "content" },
[/./, { token: "keyword" }]
],
strong: [
[/\*\*/, { token: "strong", next: "@pop" }],
{ include: "content" },
[/./, { token: "strong" }]
],
emphasis_underscore: [
[/_/, { token: "emphasis", next: "@pop" }],
{ include: "content" },
[/./, { token: "emphasis" }]
],
emphasis_asterisk: [
[/\*(?!\*)/, { token: "emphasis", next: "@pop" }],
{ include: "content" },
[/./, { token: "emphasis" }]
],
frontmatter: [[/^---$/, { token: "meta.content", nextEmbedded: "@pop", next: "@pop" }]],
codeblock_highlight_backtick: [
[/\s*`{3,}\s*$/, { token: "string", next: "@pop", nextEmbedded: "@pop" }],
[/.*$/, "variable.source"]
],
codeblock_highlight_tilde: [
[/\s*~{3,}\s*$/, { token: "string", next: "@pop", nextEmbedded: "@pop" }],
[/.*$/, "variable.source"]
],
codeblock_backtick: [
[/\s*`{3,}\s*$/, { token: "string", next: "@pop" }],
[/.*$/, "variable.source"]
],
codeblock_tilde: [
[/\s*~{3,}\s*$/, { token: "string", next: "@pop" }],
[/.*$/, "variable.source"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,201 @@
define("vs/mips-zX62smW0", ["exports"], (function(exports) {
"use strict";
const conf = {
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
comments: {
blockComment: ["###", "###"],
lineComment: "#"
},
folding: {
markers: {
start: new RegExp("^\\s*#region\\b"),
end: new RegExp("^\\s*#endregion\\b")
}
}
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,378 @@
define("vs/msdax-MzEb-8sD", ["exports"], (function(exports) {
"use strict";
const 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"] }
]
};
const 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" }]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,881 @@
define("vs/mysql-Drs0JCLT", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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",
"CUME_DIST",
"CURDATE",
"CURRENT_DATE",
"CURRENT_ROLE",
"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",
"DENSE_RANK",
"Dimension",
"Disjoint",
"Distance",
"ELT",
"ENCODE",
"ENCRYPT",
"EndPoint",
"Envelope",
"Equals",
"EXP",
"EXPORT_SET",
"ExteriorRing",
"EXTRACT",
"ExtractValue",
"FIELD",
"FIND_IN_SET",
"FIRST_VALUE",
"FLOOR",
"FORMAT",
"FORMAT_BYTES",
"FORMAT_PICO_TIME",
"FOUND_ROWS",
"FROM_BASE64",
"FROM_DAYS",
"FROM_UNIXTIME",
"GEN_RANGE",
"GEN_RND_EMAIL",
"GEN_RND_PAN",
"GEN_RND_SSN",
"GEN_RND_US_PHONE",
"GeomCollection",
"GeomCollFromText",
"GeometryCollectionFromText",
"GeomCollFromWKB",
"GeometryCollectionFromWKB",
"GeometryCollection",
"GeometryN",
"GeometryType",
"GeomFromText",
"GeometryFromText",
"GeomFromWKB",
"GeometryFromWKB",
"GET_FORMAT",
"GET_LOCK",
"GLength",
"GREATEST",
"GROUP_CONCAT",
"GROUPING",
"GTID_SUBSET",
"GTID_SUBTRACT",
"HEX",
"HOUR",
"ICU_VERSION",
"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",
"IS_UUID",
"IsClosed",
"IsEmpty",
"ISNULL",
"IsSimple",
"JSON_APPEND",
"JSON_ARRAY",
"JSON_ARRAY_APPEND",
"JSON_ARRAY_INSERT",
"JSON_ARRAYAGG",
"JSON_CONTAINS",
"JSON_CONTAINS_PATH",
"JSON_DEPTH",
"JSON_EXTRACT",
"JSON_INSERT",
"JSON_KEYS",
"JSON_LENGTH",
"JSON_MERGE",
"JSON_MERGE_PATCH",
"JSON_MERGE_PRESERVE",
"JSON_OBJECT",
"JSON_OBJECTAGG",
"JSON_OVERLAPS",
"JSON_PRETTY",
"JSON_QUOTE",
"JSON_REMOVE",
"JSON_REPLACE",
"JSON_SCHEMA_VALID",
"JSON_SCHEMA_VALIDATION_REPORT",
"JSON_SEARCH",
"JSON_SET",
"JSON_STORAGE_FREE",
"JSON_STORAGE_SIZE",
"JSON_TABLE",
"JSON_TYPE",
"JSON_UNQUOTE",
"JSON_VALID",
"LAG",
"LAST_DAY",
"LAST_INSERT_ID",
"LAST_VALUE",
"LCASE",
"LEAD",
"LEAST",
"LEFT",
"LENGTH",
"LineFromText",
"LineStringFromText",
"LineFromWKB",
"LineStringFromWKB",
"LineString",
"LN",
"LOAD_FILE",
"LOCALTIME",
"LOCALTIMESTAMP",
"LOCATE",
"LOG",
"LOG10",
"LOG2",
"LOWER",
"LPAD",
"LTRIM",
"MAKE_SET",
"MAKEDATE",
"MAKETIME",
"MASK_INNER",
"MASK_OUTER",
"MASK_PAN",
"MASK_PAN_RELAXED",
"MASK_SSN",
"MASTER_POS_WAIT",
"MAX",
"MBRContains",
"MBRCoveredBy",
"MBRCovers",
"MBRDisjoint",
"MBREqual",
"MBREquals",
"MBRIntersects",
"MBROverlaps",
"MBRTouches",
"MBRWithin",
"MD5",
"MEMBER OF",
"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",
"NTH_VALUE",
"NTILE",
"NULLIF",
"NumGeometries",
"NumInteriorRings",
"NumPoints",
"OCT",
"OCTET_LENGTH",
"OLD_PASSWORD",
"ORD",
"Overlaps",
"PASSWORD",
"PERCENT_RANK",
"PERIOD_ADD",
"PERIOD_DIFF",
"PI",
"Point",
"PointFromText",
"PointFromWKB",
"PointN",
"PolyFromText",
"PolygonFromText",
"PolyFromWKB",
"PolygonFromWKB",
"Polygon",
"POSITION",
"POW",
"POWER",
"PS_CURRENT_THREAD_ID",
"PS_THREAD_ID",
"PROCEDURE ANALYSE",
"QUARTER",
"QUOTE",
"RADIANS",
"RAND",
"RANDOM_BYTES",
"RANK",
"REGEXP_INSTR",
"REGEXP_LIKE",
"REGEXP_REPLACE",
"REGEXP_REPLACE",
"RELEASE_ALL_LOCKS",
"RELEASE_LOCK",
"REPEAT",
"REPLACE",
"REVERSE",
"RIGHT",
"ROLES_GRAPHML",
"ROUND",
"ROW_COUNT",
"ROW_NUMBER",
"RPAD",
"RTRIM",
"SCHEMA",
"SEC_TO_TIME",
"SECOND",
"SESSION_USER",
"SHA1",
"SHA",
"SHA2",
"SIGN",
"SIN",
"SLEEP",
"SOUNDEX",
"SOURCE_POS_WAIT",
"SPACE",
"SQRT",
"SRID",
"ST_Area",
"ST_AsBinary",
"ST_AsWKB",
"ST_AsGeoJSON",
"ST_AsText",
"ST_AsWKT",
"ST_Buffer",
"ST_Buffer_Strategy",
"ST_Centroid",
"ST_Collect",
"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_FrechetDistance",
"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_HausdorffDistance",
"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_LineInterpolatePoint",
"ST_LineInterpolatePoints",
"ST_LongFromGeoHash",
"ST_Longitude",
"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_PointAtDistance",
"ST_PointFromGeoHash",
"ST_PointFromText",
"ST_PointFromWKB",
"ST_PointN",
"ST_PolyFromText",
"ST_PolygonFromText",
"ST_PolyFromWKB",
"ST_PolygonFromWKB",
"ST_Simplify",
"ST_SRID",
"ST_StartPoint",
"ST_SwapXY",
"ST_SymDifference",
"ST_Touches",
"ST_Transform",
"ST_Union",
"ST_Validate",
"ST_Within",
"ST_X",
"ST_Y",
"StartPoint",
"STATEMENT_DIGEST",
"STATEMENT_DIGEST_TEXT",
"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",
"UUID_TO_BIN",
"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"],
[/''/, "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
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,15 @@
define("vs/nls.messages-loader", ["exports"], (function(exports) {
"use strict";
function load(name, req, load2, config) {
const requestedLanguage = config["vs/nls"]?.availableLanguages?.["*"];
if (!requestedLanguage || requestedLanguage === "en") {
load2({});
} else {
req([`vs/nls.messages.${requestedLanguage}`], () => {
load2({});
});
}
}
exports.load = load;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

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 one or more lines are too long

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 one or more lines are too long

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 one or more lines are too long

View File

@@ -0,0 +1,186 @@
define("vs/objective-c-DZzj24DI", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,254 @@
define("vs/pascal-Ek4lERtt", ["exports"], (function(exports) {
"use strict";
const 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\\}")
}
}
};
const 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"],
// non-teminated string
[/'/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,167 @@
define("vs/pascaligo-BhBiNdI2", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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"],
// non-teminated string
[/'/, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,629 @@
define("vs/perl-BZM3Cl3T", ["exports"], (function(exports) {
"use strict";
const 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: "`" }
]
};
const 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" },
// nested delimiters
"@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" },
// nested delimiters
"@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"],
// scalar
[/@\w+/, "variable"],
// array
[/%\w+/, "variable"]
// key/value
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,854 @@
define("vs/pgsql-BAYS0xjf", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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_count",
"regexp_instr",
"regexp_like",
"regexp_match",
"regexp_matches",
"regexp_replace",
"regexp_split_to_array",
"regexp_split_to_table",
"regexp_substr",
"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
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,503 @@
define("vs/php-DK3ktPH8", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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]+/],
// whitespace
[
/(<\/)(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"
}
],
// cover invalid e.g. <script type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <script type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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]+/],
// whitespace
[
/(<\/)(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"
}
],
// cover invalid e.g. <style type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <style type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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})/
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,140 @@
define("vs/pla-DbBZgOrT", ["exports"], (function(exports) {
"use strict";
const conf = {
comments: {
lineComment: "#"
},
brackets: [
["[", "]"],
["<", ">"],
["(", ")"]
],
autoClosingPairs: [
{ open: "[", close: "]" },
{ open: "<", close: ">" },
{ open: "(", close: ")" }
],
surroundingPairs: [
{ open: "[", close: "]" },
{ open: "<", close: ">" },
{ open: "(", close: ")" }
]
};
const 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"
}
}
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,910 @@
define("vs/postiats-OtZm4COL", ["exports"], (function(exports) {
"use strict";
const 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"] }
]
};
const 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",
// ABSTYPE
"abst0ype",
// ABST0YPE
"absprop",
// ABSPROP
"absview",
// ABSVIEW
"absvtype",
// ABSVIEWTYPE
"absviewtype",
// ABSVIEWTYPE
"absvt0ype",
// ABSVIEWT0YPE
"absviewt0ype",
// ABSVIEWT0YPE
//
"as",
// T_AS
//
"and",
// T_AND
//
"assume",
// T_ASSUME
//
"begin",
// T_BEGIN
//
/*
"case", // CASE
*/
//
"classdec",
// T_CLASSDEC
//
"datasort",
// T_DATASORT
//
"datatype",
// DATATYPE
"dataprop",
// DATAPROP
"dataview",
// DATAVIEW
"datavtype",
// DATAVIEWTYPE
"dataviewtype",
// DATAVIEWTYPE
//
"do",
// T_DO
//
"end",
// T_END
//
"extern",
// T_EXTERN
"extype",
// T_EXTYPE
"extvar",
// T_EXTVAR
//
"exception",
// T_EXCEPTION
//
"fn",
// FN // non-recursive
"fnx",
// FNX // mutual tail-rec.
"fun",
// FUN // general-recursive
//
"prfn",
// PRFN
"prfun",
// PRFUN
//
"praxi",
// PRAXI
"castfn",
// CASTFN
//
"if",
// T_IF
"then",
// T_THEN
"else",
// T_ELSE
//
"ifcase",
// T_IFCASE
//
"in",
// T_IN
//
"infix",
// INFIX
"infixl",
// INFIXL
"infixr",
// INFIXR
"prefix",
// PREFIX
"postfix",
// POSTFIX
//
"implmnt",
// IMPLMNT // 0
"implement",
// IMPLEMENT // 1
//
"primplmnt",
// PRIMPLMNT // ~1
"primplement",
// PRIMPLMNT // ~1
//
"import",
// T_IMPORT // for importing packages
//
/*
"lam", // LAM
"llam", // LLAM
"fix", // FIX
*/
//
"let",
// T_LET
//
"local",
// T_LOCAL
//
"macdef",
// MACDEF
"macrodef",
// MACRODEF
//
"nonfix",
// T_NONFIX
//
"symelim",
// T_SYMELIM
"symintr",
// T_SYMINTR
"overload",
// T_OVERLOAD
//
"of",
// T_OF
"op",
// T_OP
//
"rec",
// T_REC
//
"sif",
// T_SIF
"scase",
// T_SCASE
//
"sortdef",
// T_SORTDEF
/*
// HX: [sta] is now deprecated
*/
"sta",
// T_STACST
"stacst",
// T_STACST
"stadef",
// T_STADEF
"static",
// T_STATIC
/*
"stavar", // T_STAVAR
*/
//
"staload",
// T_STALOAD
"dynload",
// T_DYNLOAD
//
"try",
// T_TRY
//
"tkindef",
// T_TKINDEF // HX-2012-05-23
//
/*
"type", // TYPE
*/
"typedef",
// TYPEDEF
"propdef",
// PROPDEF
"viewdef",
// VIEWDEF
"vtypedef",
// VIEWTYPEDEF
"viewtypedef",
// VIEWTYPEDEF
//
/*
"val", // VAL
*/
"prval",
// PRVAL
//
"var",
// VAR
"prvar",
// PRVAR
//
"when",
// T_WHEN
"where",
// T_WHERE
//
/*
"for", // T_FOR
"while", // T_WHILE
*/
//
"with",
// T_WITH
//
"withtype",
// WITHTYPE
"withprop",
// WITHPROP
"withview",
// WITHVIEW
"withvtype",
// WITHVIEWTYPE
"withviewtype"
// WITHVIEWTYPE
//
],
keywords_dlr: [
"$delay",
// DLRDELAY
"$ldelay",
// DLRLDELAY
//
"$arrpsz",
// T_DLRARRPSZ
"$arrptrsize",
// T_DLRARRPSZ
//
"$d2ctype",
// T_DLRD2CTYPE
//
"$effmask",
// DLREFFMASK
"$effmask_ntm",
// DLREFFMASK_NTM
"$effmask_exn",
// DLREFFMASK_EXN
"$effmask_ref",
// DLREFFMASK_REF
"$effmask_wrt",
// DLREFFMASK_WRT
"$effmask_all",
// DLREFFMASK_ALL
//
"$extern",
// T_DLREXTERN
"$extkind",
// T_DLREXTKIND
"$extype",
// T_DLREXTYPE
"$extype_struct",
// T_DLREXTYPE_STRUCT
//
"$extval",
// T_DLREXTVAL
"$extfcall",
// T_DLREXTFCALL
"$extmcall",
// T_DLREXTMCALL
//
"$literal",
// T_DLRLITERAL
//
"$myfilename",
// T_DLRMYFILENAME
"$mylocation",
// T_DLRMYLOCATION
"$myfunction",
// T_DLRMYFUNCTION
//
"$lst",
// DLRLST
"$lst_t",
// DLRLST_T
"$lst_vt",
// DLRLST_VT
"$list",
// DLRLST
"$list_t",
// DLRLST_T
"$list_vt",
// DLRLST_VT
//
"$rec",
// DLRREC
"$rec_t",
// DLRREC_T
"$rec_vt",
// DLRREC_VT
"$record",
// DLRREC
"$record_t",
// DLRREC_T
"$record_vt",
// DLRREC_VT
//
"$tup",
// DLRTUP
"$tup_t",
// DLRTUP_T
"$tup_vt",
// DLRTUP_VT
"$tuple",
// DLRTUP
"$tuple_t",
// DLRTUP_T
"$tuple_vt",
// DLRTUP_VT
//
"$break",
// T_DLRBREAK
"$continue",
// T_DLRCONTINUE
//
"$raise",
// T_DLRRAISE
//
"$showtype",
// T_DLRSHOWTYPE
//
"$vcopyenv_v",
// DLRVCOPYENV_V
"$vcopyenv_vt",
// DLRVCOPYENV_VT
//
"$tempenver",
// T_DLRTEMPENVER
//
"$solver_assert",
// T_DLRSOLASSERT
"$solver_verify"
// T_DLRSOLVERIFY
],
keywords_srp: [
//
"#if",
// T_SRPIF
"#ifdef",
// T_SRPIFDEF
"#ifndef",
// T_SRPIFNDEF
//
"#then",
// T_SRPTHEN
//
"#elif",
// T_SRPELIF
"#elifdef",
// T_SRPELIFDEF
"#elifndef",
// T_SRPELIFNDEF
//
"#else",
// T_SRPELSE
"#endif",
// T_SRPENDIF
//
"#error",
// T_SRPERROR
//
"#prerr",
// T_SRPPRERR // outpui to stderr
"#print",
// T_SRPPRINT // output to stdout
//
"#assert",
// T_SRPASSERT
//
"#undef",
// T_SRPUNDEF
"#define",
// T_SRPDEFINE
//
"#include",
// T_SRPINCLUDE
"#require",
// T_SRPREQUIRE
//
"#pragma",
// T_SRPPRAGMA // HX: general pragma
"#codegen2",
// T_SRPCODEGEN2 // for level-2 codegen
"#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",
// no effects
"fun",
"clo",
"prf",
"funclo",
"cloptr",
"cloref",
"ref",
"ntm",
"1"
// all effects
],
operators: [
"@",
// T_AT
"!",
// T_BANG
"|",
// T_BAR
"`",
// T_BQUOTE
":",
// T_COLON
"$",
// T_DOLLAR
".",
// T_DOT
"=",
// T_EQ
"#",
// T_HASH
"~",
// T_TILDE
//
"..",
// T_DOTDOT
"...",
// T_DOTDOTDOT
//
"=>",
// T_EQGT
// "=<", // T_EQLT
"=<>",
// T_EQLTGT
"=/=>",
// T_EQSLASHEQGT
"=>>",
// T_EQGTGT
"=/=>>",
// T_EQSLASHEQGTGT
//
"<",
// T_LT // opening a tmparg
">",
// T_GT // closing a tmparg
//
"><",
// T_GTLT
//
".<",
// T_DOTLT
">.",
// T_GTDOT
//
".<>.",
// T_DOTLTGTDOT
//
"->",
// T_MINUSGT
//"-<", // T_MINUSLT
"-<>"
// T_MINUSLTGT
//
/*
":<", // T_COLONLT
*/
],
brackets: [
{ open: ",(", close: ")", token: "delimiter.parenthesis" },
// meta-programming syntax
{ 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' }*/
},
// meta-programming syntax
{ 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" }
},
// T_COLONLT
/*
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" } },
// T_DOTINT
// 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" } },
// just T_BACKSLASH
// 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" }
},
// lexing_INT_oct
//{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"],
// FIXME: does it match? docs say 'no'
[/.*/, "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" } }
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,893 @@
define("vs/powerquery-Du80-tps", ["exports"], (function(exports) {
"use strict";
const 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"] }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,242 @@
define("vs/powershell-mk7ECzLJ", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,423 @@
define("vs/protobuf-Bn1ftnRe", ["exports"], (function(exports) {
"use strict";
const namedLiterals = ["true", "false"];
const 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 ",
indentationRules: {
increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),
decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")
}
};
const 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,
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" }]
],
[
// If no `syntax` provided, regarded as proto2
/.*?/,
{ token: "", 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"],
// nested comment
["\\*/", "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"],
// non-terminated string
[/"/, { 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" }]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,405 @@
define("vs/pug-BIApPNjT", ["exports"], (function(exports) {
"use strict";
const 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
}
};
const 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" }
}
}
]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,296 @@
define("vs/python-CSlobbnO", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const 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|match|case).*?:\\s*$"
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
],
folding: {
offSide: true,
markers: {
start: new RegExp("^\\s*#region\\b"),
end: new RegExp("^\\s*#endregion\\b")
}
}
};
const language = {
defaultToken: "",
tokenPostfix: ".python",
keywords: [
// This section is the result of running
// `import keyword; for k in sorted(keyword.kwlist + keyword.softkwlist): 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",
// promoted to keyword.kwlist in Python 3
"None",
// promoted to keyword.kwlist in Python 3
"True",
// promoted to keyword.kwlist in Python 3
"_",
// new in Python 3.10
"and",
"as",
"assert",
"async",
// new in Python 3
"await",
// new in Python 3
"break",
"case",
// new in Python 3.10
"class",
"continue",
"def",
"del",
"elif",
"else",
"except",
"exec",
// Python 2, but not 3.
"finally",
"for",
"from",
"global",
"if",
"import",
"in",
"is",
"lambda",
"match",
// new in Python 3.10
"nonlocal",
// new in Python 3
"not",
"or",
"pass",
"print",
// Python 2, but not 3.
"raise",
"return",
"try",
"type",
// new in Python 3.12
"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"],
[/f'{1,3}/, "string.escape", "@fStringBody"],
[/'/, "string.escape", "@stringBody"],
[/"$/, "string.escape", "@popall"],
[/f"{1,3}/, "string.escape", "@fDblStringBody"],
[/"/, "string.escape", "@dblStringBody"]
],
fStringBody: [
[/[^\\'\{\}]+$/, "string", "@popall"],
[/[^\\'\{\}]+/, "string"],
[/\{[^\}':!=]+/, "identifier", "@fStringDetail"],
[/\\./, "string"],
[/'/, "string.escape", "@popall"],
[/\\$/, "string"]
],
stringBody: [
[/[^\\']+$/, "string", "@popall"],
[/[^\\']+/, "string"],
[/\\./, "string"],
[/'/, "string.escape", "@popall"],
[/\\$/, "string"]
],
fDblStringBody: [
[/[^\\"\{\}]+$/, "string", "@popall"],
[/[^\\"\{\}]+/, "string"],
[/\{[^\}':!=]+/, "identifier", "@fStringDetail"],
[/\\./, "string"],
[/"/, "string.escape", "@popall"],
[/\\$/, "string"]
],
dblStringBody: [
[/[^\\"]+$/, "string", "@popall"],
[/[^\\"]+/, "string"],
[/\\./, "string"],
[/"/, "string.escape", "@popall"],
[/\\$/, "string"]
],
fStringDetail: [
[/[:][^}]+/, "string"],
[/[!][ars]/, "string"],
// only !a, !r, !s are supported by f-strings: https://docs.python.org/3/tutorial/inputoutput.html#formatted-string-literals
[/=/, "string"],
[/\}/, "identifier", "@pop"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,304 @@
define("vs/qsharp-BzyhV8V4", ["exports"], (function(exports) {
"use strict";
const 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: '"' }
]
};
const language = {
// Set defaultToken to invalid to see what you do not tokenize yet
keywords: [
"namespace",
"open",
"import",
"export",
"as",
"operation",
"function",
"body",
"adjoint",
"newtype",
"struct",
"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",
"internal"
],
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",
"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"],
importsFollows: ["import"],
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"
},
"@importsFollows": {
token: "keyword.$0",
next: "@imports"
},
"@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-terminated 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"]
],
imports: [
{ include: "@whitespace" },
[/[A-Za-z]\w*(?=\.)/, "namespace"],
[/[A-Za-z]\w*/, "identifier"],
[/\*/, "wildcard"],
[/[\.,]/, "delimiter"],
["", "", "@pop"]
],
whitespace: [
[/[ \t\r\n]+/, "white"],
[/(\/\/).*/, "comment"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,246 @@
define("vs/r-BZ_VXAR1", ["exports"], (function(exports) {
"use strict";
const conf = {
comments: {
lineComment: "#"
},
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,546 @@
define("vs/razor-CcKFJPeA", ["exports", "./editor.api-BhD7pWdi"], (function(exports, editor_api) {
"use strict";
const EMPTY_ELEMENTS = [
"area",
"base",
"br",
"col",
"embed",
"hr",
"img",
"input",
"keygen",
"link",
"menuitem",
"meta",
"param",
"source",
"track",
"wbr"
];
const 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: editor_api.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(
`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
"i"
),
action: { indentAction: editor_api.languages.IndentAction.Indent }
}
]
};
const language = {
defaultToken: "",
tokenPostfix: "",
// ignoreCase: true,
// The main tokenizer for our languages
tokenizer: {
root: [
[/@@@@/],
// text
[/@[^@]/, { 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]+/],
// whitespace
[/[^<@]+/]
// 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]+/],
// whitespace
[
/(<\/)(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"
}
],
// cover invalid e.g. <script type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <script type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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]+/],
// whitespace
[
/(<\/)(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"
}
],
// cover invalid e.g. <style type>
[/[ \t\r\n]+/],
// whitespace
[/<\/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"
}
],
// cover invalid e.g. <style type=>
[/[ \t\r\n]+/],
// whitespace
[/<\/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]+/],
// whitespace
[/<\/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})/
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,305 @@
define("vs/redis-BVpHZsxd", ["exports"], (function(exports) {
"use strict";
const conf = {
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' },
{ open: "'", close: "'" }
]
};
const 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
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,812 @@
define("vs/redshift-DMeYiY_v", ["exports"], (function(exports) {
"use strict";
const 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: "'" }
]
};
const 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",
"AZ64",
"BACKUP",
"BETWEEN",
"BINARY",
"BLANKSASNULL",
"BOTH",
"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",
"LANGUAGE",
"LEADING",
"LEFT",
"LIKE",
"LIMIT",
"LOCALTIME",
"LOCALTIMESTAMP",
"LUN",
"LUNS",
"LZO",
"LZOP",
"MINUS",
"MOSTLY16",
"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
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,177 @@
define("vs/restructuredtext-CmsqpaZy", ["exports"], (function(exports) {
"use strict";
const 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.*-->")
}
}
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,514 @@
define("vs/ruby-qQzGPz_6", ["exports"], (function(exports) {
"use strict";
const 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)"
)
}
};
const 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"],
// constant
[/\$[\w]*/, "global.constant"],
// global
[/@[\w]*/, "namespace.instance.identifier"],
// instance
[/@@@[\w]*/, "namespace.class.identifier"],
// class
// 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" }],
// get out of do-skipping mode on a new line
[
/[a-z_]\w*[!?=]?/,
{
cases: {
end: { token: "keyword.$S2", next: "@pop" },
// end on same line
do: { token: "keyword", switchTo: "@root.$S2" },
// do on same line: not an open bracket here
"@linedecls": {
token: "@rematch",
switchTo: "@root.$S2"
},
// other declaration on same line: rematch
"@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"],
// it was a modifier: get out of modifier mode on a new line
[
/[a-z_]\w*[!?=]?/,
{
cases: {
end: { token: "keyword.$S2", next: "@pop" },
// end on same line
"then|else|elsif|do": {
token: "keyword",
switchTo: "@root.$S2"
},
// real declaration and not a modifier
"@linedecls": {
token: "@rematch",
switchTo: "@root.$S2"
},
// other declaration => not a modifier
"@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" },
// nested delimiters are allowed..
"~[)}\\]]": "@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" }],
// recover
[/./, { 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" },
// nested delimiters are allowed..
"@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"],
// nested comment
[/^\s*=end\b.*/, "comment", "@pop"],
[/[=]/, "comment"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,346 @@
define("vs/rust-DIvkf86i", ["exports"], (function(exports) {
"use strict";
const 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")
}
}
};
const 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" }]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,118 @@
define("vs/sb-DUCWDbCb", ["exports"], (function(exports) {
"use strict";
const 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"] }
]
};
const 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"],
// non-teminated string
[/"/, "string", "@string"]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[/(\').*$/, "comment"]
],
string: [
[/[^\\"]+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[/"C?/, "string", "@pop"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,373 @@
define("vs/scala-Cs4aXuOD", ["exports"], (function(exports) {
"use strict";
const 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>))")
}
}
};
const 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"],
// nested comment
[/\*\//, "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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,111 @@
define("vs/scheme-DM9P8uKD", ["exports"], (function(exports) {
"use strict";
const conf = {
comments: {
lineComment: ";",
blockComment: ["#|", "|#"]
},
brackets: [
["(", ")"],
["{", "}"],
["[", "]"]
],
autoClosingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' }
],
surroundingPairs: [
{ open: "{", close: "}" },
{ open: "[", close: "]" },
{ open: "(", close: ")" },
{ open: '"', close: '"' }
]
};
const 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,263 @@
define("vs/scss-DijLV5ju", ["exports"], (function(exports) {
"use strict";
const 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.*\\*\\/")
}
}
};
const language = {
defaultToken: "",
tokenPostfix: ".scss",
ws: "[ \n\r\f]*",
// whitespaces (referenced in several rules)
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" },
// sass: log statements
["[@](include)", { token: "keyword", next: "@includedeclaration" }],
// sass: include statement
[
"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",
{ token: "keyword", next: "@keyframedeclaration" }
],
["[@](page|content|font-face|-moz-document)", { token: "keyword" }],
// sass: placeholder for includes
["[@](charset|namespace)", { token: "keyword", next: "@declarationbody" }],
["[@](function)", { token: "keyword", next: "@functiondeclaration" }],
["[@](mixin)", { token: "keyword", next: "@mixindeclaration" }],
["url(\\-prefix)?\\(", { token: "meta", next: "@urldeclaration" }],
{ include: "@controlstatement" },
// sass control statements
{ include: "@selectorname" },
["[&\\*]", "tag"],
// selector symbols
["[>\\+,]", "delimiter"],
// selector operators
["\\[", { token: "delimiter.bracket", next: "@selectorattribute" }],
["{", { token: "delimiter.curly", next: "@selectorbody" }]
],
selectorbody: [
["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))", "attribute.name", "@rulevalue"],
// rule definition: to distinguish from a nested selector check for whitespace, number or a semicolon
{ include: "@selector" },
// sass: nested selectors
["[@](extend)", { token: "keyword", next: "@extendbody" }],
// sass: extend other selectors
["[@](return)", { token: "keyword", next: "@declarationbody" }],
["}", { token: "delimiter.curly", next: "@pop" }]
],
selectorname: [
["#{", { token: "meta", next: "@variableinterpolation" }],
// sass: interpolation
["(\\.|#(?=[^{])|%|(@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" }],
// sass: nested properties
["(?=})", { 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"],
// var args in reference
["#{", { 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|fr|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"],
// var args in declaration
[",", "delimiter"],
{ include: "@term" },
["\\)", { token: "meta", next: "@pop" }]
],
includedeclaration: [
{ include: "@functioninvocation" },
["@identifier", "meta"],
[";", "delimiter", "@pop"],
["(?=})", { token: "", next: "@pop" }],
// missing semicolon
["{", { 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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

View File

@@ -0,0 +1,224 @@
define("vs/shell-BmIjpZz5", ["exports"], (function(exports) {
"use strict";
const 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: "`" }
]
};
const 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"
],
startingWithDash: /\-+\w+/,
identifiersWithDashes: /[a-zA-Z]\w+(?:@startingWithDash)+/,
// we include these common regular expressions
symbols: /[=><!~?&|+\-*\/\^;\.,]+/,
// The main tokenizer for our languages
tokenizer: {
root: [
[/@identifiersWithDashes/, ""],
[/(\s)((?:@startingWithDash)+)/, ["white", "attribute.name"]],
[
/[a-zA-Z]\w*/,
{
cases: {
"@keywords": "keyword",
"@builtins": "type.identifier",
"@default": ""
}
}
],
{ include: "@whitespace" },
{ include: "@strings" },
{ include: "@parameters" },
{ include: "@heredoc" },
[/[{}\[\]()]/, "@brackets"],
[/@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"]
]
}
};
exports.conf = conf;
exports.language = language;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}));

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More