mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 23:13:02 +01:00
Merge branch 'master' into on-demand-schema-loading
This commit is contained in:
commit
661fd04454
6 changed files with 124 additions and 65 deletions
102
package-lock.json
generated
102
package-lock.json
generated
|
|
@ -1,25 +1,31 @@
|
||||||
{
|
{
|
||||||
"name": "monaco-json",
|
"name": "monaco-json",
|
||||||
"version": "2.1.1",
|
"version": "2.2.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"commander": {
|
||||||
|
"version": "2.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
|
||||||
|
"integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"jsonc-parser": {
|
"jsonc-parser": {
|
||||||
"version": "2.0.0-next.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.0.0-next.1.tgz",
|
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.0.1.tgz",
|
||||||
"integrity": "sha512-7BRgtZ0wPCWOUz8oD1m0qo9KKWq8LF1R6Ko38ofbTG3PLa84ucKLIkC/8PLvjFBInfqRo+ah5aazBLscsLTd2Q==",
|
"integrity": "sha512-9w/QyN9qF1dTlffzkmyITa6qAYt6sDArlVZqaP+CXnRh66V73wImQGG8GIBkuas0XLAxddWEWYQ8PPFoK5KNQA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"monaco-editor-core": {
|
"monaco-editor-core": {
|
||||||
"version": "0.12.0",
|
"version": "0.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.14.1.tgz",
|
||||||
"integrity": "sha512-wOoEVAoZtrarDRcQC32Fp0ocacpQd6/Nb0FmUZOHeD3swZuPZhDLOxTyoNLjKq3d+h/6g+IARBLnDaLT5OQD4g==",
|
"integrity": "sha512-bWJuPbDEftxaN2bG+JZ29+aJhg0rmq+y6VmCUqPZpmw8bSevoYjuTcdLkt9BbNaGnwosAVy+vSktXgs/JW7OvQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"monaco-languages": {
|
"monaco-languages": {
|
||||||
"version": "1.0.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.4.0.tgz",
|
||||||
"integrity": "sha512-OKwVZJejt07Wpyy60vptcPueIZRBFOiJT8gfp60O861Pu0HHxhLfNBqeJ5zJ9x4PIbhd5Fq7+tSU+NbnOAfEcA==",
|
"integrity": "sha512-39MZMAEKToktfSpOS0Soj05IvkT5vbebL9AIBGPn8fGi8WgJOcfS3YLiMu07gZKViR7CFZ4RyQJKJHglx0fPdA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"monaco-plugin-helpers": {
|
"monaco-plugin-helpers": {
|
||||||
|
|
@ -28,7 +34,15 @@
|
||||||
"integrity": "sha512-7kUx8dtd5qVNVgUARBRhnM8oftPglYwlINfigC4yGUiuzqtIN22u1tly8umiOCIPR0eFiBLjt6aN23oZh2QJgg==",
|
"integrity": "sha512-7kUx8dtd5qVNVgUARBRhnM8oftPglYwlINfigC4yGUiuzqtIN22u1tly8umiOCIPR0eFiBLjt6aN23oZh2QJgg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"typescript": "2.7.2"
|
"typescript": "2.9.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"typescript": {
|
||||||
|
"version": "2.9.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
|
||||||
|
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"requirejs": {
|
"requirejs": {
|
||||||
|
|
@ -37,64 +51,56 @@
|
||||||
"integrity": "sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw==",
|
"integrity": "sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"source-map": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "2.7.2",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz",
|
||||||
"integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==",
|
"integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
"version": "3.3.14",
|
"version": "3.4.7",
|
||||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.14.tgz",
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.7.tgz",
|
||||||
"integrity": "sha512-OY8VPQU25q09gQRbC+Ekk3xgEVBmYFEfVcgS47ksjTiNht2LmLlUkWutyi38ZsDSToJHwbe76kDGwmD226Z2Fg==",
|
"integrity": "sha512-J0M2i1mQA+ze3EdN9SBi751DNdAXmeFLfJrd/MDIkRc3G3Gbb9OPVSx7GIQvVwfWxQARcYV2DTxIkMyDAk3o9Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"commander": "2.14.1",
|
"commander": "2.16.0",
|
||||||
"source-map": "0.6.1"
|
"source-map": "0.6.1"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"commander": {
|
|
||||||
"version": "2.14.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
|
|
||||||
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"source-map": {
|
|
||||||
"version": "0.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
||||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vscode-json-languageservice": {
|
"vscode-json-languageservice": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.1.4.tgz",
|
||||||
"integrity": "sha512-ybmyI9sn3nGJS8LgLR+YPk6M0LH8A7hp14ZGYDeNgrNVqkbZRN6K+JthHkhCR0MmA0RluwDtOJlAeqRFUEiK2A==",
|
"integrity": "sha512-RiLEhif0MzwIscoxKZ0lL1fvKUbB1DLJcPXGCm/K9WouLbEQu1OuIBsMPp3NnK+ZOW7uMXZgGfpMtWow7YgOiQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsonc-parser": "2.0.0-next.1",
|
"jsonc-parser": "2.0.1",
|
||||||
"vscode-languageserver-types": "3.6.1",
|
"vscode-languageserver-types": "3.10.0",
|
||||||
"vscode-nls": "3.2.2",
|
"vscode-nls": "3.2.4",
|
||||||
"vscode-uri": "1.0.3"
|
"vscode-uri": "1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vscode-languageserver-types": {
|
"vscode-languageserver-types": {
|
||||||
"version": "3.6.1",
|
"version": "3.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz",
|
||||||
"integrity": "sha512-Npi3i8gUWcx5h8z5idNqPKBLJmZothXK2FSG4csEmxAR7avb8W6l9Ny+VW9yCUB3bOdD7iXfah8IO0AS1jwQmQ==",
|
"integrity": "sha512-vxmCsVZGwq8X40SuLP8Ix7V0rq5V/7iQUjRVe2Oxm+TbmjxtjK4dpHHXQCUawjA4fhPA9FwjSRbDhbvQmYCfMw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"vscode-nls": {
|
"vscode-nls": {
|
||||||
"version": "3.2.2",
|
"version": "3.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-3.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-3.2.4.tgz",
|
||||||
"integrity": "sha512-/Ur1+tgazwd51+ncRyoy0UIu4dvMdVXS9XMUULQlZIBoNGEwOhwEx9x+hHWoUjldMrOQ32t2CGKo0u6D4R6/hg==",
|
"integrity": "sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"vscode-uri": {
|
"vscode-uri": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.5.tgz",
|
||||||
"integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=",
|
"integrity": "sha1-O4majvccN/MFTXm9vdoxx7828g0=",
|
||||||
"dev": true
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
16
package.json
16
package.json
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "monaco-json",
|
"name": "monaco-json",
|
||||||
"version": "2.1.2",
|
"version": "2.2.0",
|
||||||
"description": "JSON plugin for the Monaco Editor",
|
"description": "JSON plugin for the Monaco Editor",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"compile": "mrmdir ./out && tsc -p ./src/tsconfig.json && tsc -p ./src/tsconfig.esm.json",
|
"compile": "mrmdir ./out && tsc -p ./src/tsconfig.json && tsc -p ./src/tsconfig.esm.json",
|
||||||
|
|
@ -19,14 +19,14 @@
|
||||||
"url": "https://github.com/Microsoft/monaco-json/issues"
|
"url": "https://github.com/Microsoft/monaco-json/issues"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"jsonc-parser": "2.0.0-next.1",
|
"jsonc-parser": "^2.0.1",
|
||||||
"monaco-editor-core": "0.12.0",
|
"monaco-editor-core": "0.14.1",
|
||||||
"monaco-languages": "1.0.0",
|
"monaco-languages": "1.4.0",
|
||||||
"monaco-plugin-helpers": "^1.0.2",
|
"monaco-plugin-helpers": "^1.0.2",
|
||||||
"requirejs": "^2.3.5",
|
"requirejs": "^2.3.5",
|
||||||
"typescript": "2.7.2",
|
"typescript": "3.0.1",
|
||||||
"uglify-js": "^3.3.14",
|
"uglify-js": "^3.4.7",
|
||||||
"vscode-json-languageservice": "3.1.0",
|
"vscode-json-languageservice": "3.1.4",
|
||||||
"vscode-languageserver-types": "3.6.1"
|
"vscode-languageserver-types": "3.10.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
|
||||||
disposables.push(monaco.languages.setTokensProvider(languageId, createTokenizationSupport(true)));
|
disposables.push(monaco.languages.setTokensProvider(languageId, createTokenizationSupport(true)));
|
||||||
disposables.push(monaco.languages.setLanguageConfiguration(languageId, richEditConfiguration));
|
disposables.push(monaco.languages.setLanguageConfiguration(languageId, richEditConfiguration));
|
||||||
disposables.push(monaco.languages.registerColorProvider(languageId, new languageFeatures.DocumentColorAdapter(worker)));
|
disposables.push(monaco.languages.registerColorProvider(languageId, new languageFeatures.DocumentColorAdapter(worker)));
|
||||||
|
disposables.push(monaco.languages.registerFoldingRangeProvider(languageId, new languageFeatures.FoldingRangeAdapter(worker)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,18 +96,23 @@ export class JSONWorker {
|
||||||
let symbols = this._languageService.findDocumentSymbols(document, jsonDocument);
|
let symbols = this._languageService.findDocumentSymbols(document, jsonDocument);
|
||||||
return Promise.as(symbols);
|
return Promise.as(symbols);
|
||||||
}
|
}
|
||||||
findDocumentColors(uri: string): Thenable<jsonService.ColorInformation[]> {
|
findDocumentColors(uri: string): Thenable<ls.ColorInformation[]> {
|
||||||
let document = this._getTextDocument(uri);
|
let document = this._getTextDocument(uri);
|
||||||
let stylesheet = this._languageService.parseJSONDocument(document);
|
let stylesheet = this._languageService.parseJSONDocument(document);
|
||||||
let colorSymbols = this._languageService.findDocumentColors(document, stylesheet);
|
let colorSymbols = this._languageService.findDocumentColors(document, stylesheet);
|
||||||
return Promise.as(colorSymbols);
|
return Promise.as(colorSymbols);
|
||||||
}
|
}
|
||||||
getColorPresentations(uri: string, color: jsonService.Color, range: ls.Range): Thenable<jsonService.ColorPresentation[]> {
|
getColorPresentations(uri: string, color: ls.Color, range: ls.Range): Thenable<ls.ColorPresentation[]> {
|
||||||
let document = this._getTextDocument(uri);
|
let document = this._getTextDocument(uri);
|
||||||
let stylesheet = this._languageService.parseJSONDocument(document);
|
let stylesheet = this._languageService.parseJSONDocument(document);
|
||||||
let colorPresentations = this._languageService.getColorPresentations(document, stylesheet, color, range);
|
let colorPresentations = this._languageService.getColorPresentations(document, stylesheet, color, range);
|
||||||
return Promise.as(colorPresentations);
|
return Promise.as(colorPresentations);
|
||||||
}
|
}
|
||||||
|
provideFoldingRanges(uri: string, context?: { rangeLimit?: number; }): Thenable<ls.FoldingRange[]> {
|
||||||
|
let document = this._getTextDocument(uri);
|
||||||
|
let ranges = this._languageService.getFoldingRanges(document, context);
|
||||||
|
return Promise.as(ranges);
|
||||||
|
}
|
||||||
private _getTextDocument(uri: string): ls.TextDocument {
|
private _getTextDocument(uri: string): ls.TextDocument {
|
||||||
let models = this._ctx.getMirrorModels();
|
let models = this._ctx.getMirrorModels();
|
||||||
for (let model of models) {
|
for (let model of models) {
|
||||||
|
|
|
||||||
|
|
@ -423,7 +423,7 @@ export class DocumentSymbolAdapter implements monaco.languages.DocumentSymbolPro
|
||||||
constructor(private _worker: WorkerAccessor) {
|
constructor(private _worker: WorkerAccessor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public provideDocumentSymbols(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Thenable<monaco.languages.SymbolInformation[]> {
|
public provideDocumentSymbols(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Thenable<monaco.languages.DocumentSymbol[]> {
|
||||||
const resource = model.uri;
|
const resource = model.uri;
|
||||||
|
|
||||||
return wireCancellationToken(token, this._worker(resource).then(worker => worker.findDocumentSymbols(resource.toString())).then(items => {
|
return wireCancellationToken(token, this._worker(resource).then(worker => worker.findDocumentSymbols(resource.toString())).then(items => {
|
||||||
|
|
@ -432,9 +432,11 @@ export class DocumentSymbolAdapter implements monaco.languages.DocumentSymbolPro
|
||||||
}
|
}
|
||||||
return items.map(item => ({
|
return items.map(item => ({
|
||||||
name: item.name,
|
name: item.name,
|
||||||
|
detail: '',
|
||||||
containerName: item.containerName,
|
containerName: item.containerName,
|
||||||
kind: toSymbolKind(item.kind),
|
kind: toSymbolKind(item.kind),
|
||||||
location: toLocation(item.location)
|
range: toRange(item.location.range),
|
||||||
|
selectionRange: toRange(item.location.range)
|
||||||
}));
|
}));
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
@ -528,6 +530,42 @@ export class DocumentColorAdapter implements monaco.languages.DocumentColorProvi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class FoldingRangeAdapter implements monaco.languages.FoldingRangeProvider {
|
||||||
|
|
||||||
|
constructor(private _worker: WorkerAccessor) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public provideFoldingRanges(model: monaco.editor.IReadOnlyModel, context: monaco.languages.FoldingContext, token: CancellationToken): Thenable<monaco.languages.FoldingRange[]> {
|
||||||
|
const resource = model.uri;
|
||||||
|
|
||||||
|
return wireCancellationToken(token, this._worker(resource).then(worker => worker.provideFoldingRanges(resource.toString(), context)).then(ranges => {
|
||||||
|
if (!ranges) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return ranges.map(range => {
|
||||||
|
let result: monaco.languages.FoldingRange = {
|
||||||
|
start: range.startLine + 1,
|
||||||
|
end: range.endLine + 1
|
||||||
|
};
|
||||||
|
if (typeof range.kind !== 'undefined') {
|
||||||
|
result.kind = toFoldingRangeKind(<ls.FoldingRangeKind>range.kind);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function toFoldingRangeKind(kind: ls.FoldingRangeKind): monaco.languages.FoldingRangeKind {
|
||||||
|
switch (kind) {
|
||||||
|
case ls.FoldingRangeKind.Comment: return monaco.languages.FoldingRangeKind.Comment;
|
||||||
|
case ls.FoldingRangeKind.Imports: return monaco.languages.FoldingRangeKind.Imports;
|
||||||
|
case ls.FoldingRangeKind.Region: return monaco.languages.FoldingRangeKind.Region;
|
||||||
|
}
|
||||||
|
return void 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hook a cancellation token to a WinJS Promise
|
* Hook a cancellation token to a WinJS Promise
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,21 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Loading basic-languages to get the json language definition
|
// Loading basic-languages to get the json language definition
|
||||||
var require = {
|
var paths = {
|
||||||
paths: {
|
'vs/basic-languages': '../node_modules/monaco-languages/release/dev',
|
||||||
'vs/basic-languages': '../node_modules/monaco-languages/release/dev',
|
'vs/language/json': '../release/dev',
|
||||||
'vs/language/json': '../release/dev',
|
'vs': '../node_modules/monaco-editor-core/dev/vs'
|
||||||
'vs': '../node_modules/monaco-editor-core/dev/vs'
|
};
|
||||||
|
if (document.location.protocol === 'http:') {
|
||||||
|
// Add support for running local http server
|
||||||
|
let testIndex = document.location.pathname.indexOf('/test/');
|
||||||
|
if (testIndex !== -1) {
|
||||||
|
let prefix = document.location.pathname.substr(0, testIndex);
|
||||||
|
paths['vs/language/json'] = prefix + '/release/dev';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
var require = {
|
||||||
|
paths: paths
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<script src="../node_modules/monaco-editor-core/dev/vs/loader.js"></script>
|
<script src="../node_modules/monaco-editor-core/dev/vs/loader.js"></script>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue