mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 07:00:11 +01:00
Ship a metadata in the esm folder which can help the webpack plugin
This commit is contained in:
parent
e77825074d
commit
0abbb2be7d
10 changed files with 302 additions and 818 deletions
|
|
@ -19,6 +19,7 @@ const { REPO_ROOT, removeDir, readFiles, writeFiles } = require('../build/utils'
|
||||||
const ts = require('typescript');
|
const ts = require('typescript');
|
||||||
/**@type { IMetadata } */
|
/**@type { IMetadata } */
|
||||||
const metadata = require('../metadata.js');
|
const metadata = require('../metadata.js');
|
||||||
|
const { generateMetadata } = require('./releaseMetadata');
|
||||||
|
|
||||||
removeDir(`release`);
|
removeDir(`release`);
|
||||||
|
|
||||||
|
|
@ -37,6 +38,9 @@ releaseDTS();
|
||||||
// ThirdPartyNotices.txt
|
// ThirdPartyNotices.txt
|
||||||
releaseThirdPartyNotices();
|
releaseThirdPartyNotices();
|
||||||
|
|
||||||
|
// esm/metadata.d.ts, esm/metadata.js
|
||||||
|
generateMetadata();
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
(() => {
|
(() => {
|
||||||
const packageJSON = readFiles('package.json', { base: '' })[0];
|
const packageJSON = readFiles('package.json', { base: '' })[0];
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { REPO_ROOT, prettier } = require('./utils');
|
const { REPO_ROOT, prettier, ensureDir } = require('./utils');
|
||||||
|
|
||||||
const customFeatureLabels = {
|
const customFeatureLabels = {
|
||||||
'vs/editor/browser/controller/coreCommands': 'coreCommands',
|
'vs/editor/browser/controller/coreCommands': 'coreCommands',
|
||||||
|
|
@ -24,9 +24,6 @@ const customFeatureLabels = {
|
||||||
'vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess': 'quickHelp'
|
'vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess': 'quickHelp'
|
||||||
};
|
};
|
||||||
|
|
||||||
generateLanguages();
|
|
||||||
generateFeatures();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns { Promise<{ label: string; entry: string; }[]> }
|
* @returns { Promise<{ label: string; entry: string; }[]> }
|
||||||
*/
|
*/
|
||||||
|
|
@ -114,7 +111,7 @@ function getAdvancedLanguages() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateLanguages() {
|
function generateMetadata() {
|
||||||
return Promise.all([getBasicLanguages(), getAdvancedLanguages()]).then(
|
return Promise.all([getBasicLanguages(), getAdvancedLanguages()]).then(
|
||||||
([basicLanguages, advancedLanguages]) => {
|
([basicLanguages, advancedLanguages]) => {
|
||||||
basicLanguages.sort(strcmp);
|
basicLanguages.sort(strcmp);
|
||||||
|
|
@ -124,14 +121,14 @@ function generateLanguages() {
|
||||||
len = basicLanguages.length;
|
len = basicLanguages.length;
|
||||||
let j = 0,
|
let j = 0,
|
||||||
lenJ = advancedLanguages.length;
|
lenJ = advancedLanguages.length;
|
||||||
let result = [];
|
let languages = [];
|
||||||
while (i < len || j < lenJ) {
|
while (i < len || j < lenJ) {
|
||||||
if (i < len && j < lenJ) {
|
if (i < len && j < lenJ) {
|
||||||
if (basicLanguages[i].label === advancedLanguages[j].label) {
|
if (basicLanguages[i].label === advancedLanguages[j].label) {
|
||||||
let entry = [];
|
let entry = [];
|
||||||
entry.push(basicLanguages[i].entry);
|
entry.push(basicLanguages[i].entry);
|
||||||
entry.push(advancedLanguages[j].entry);
|
entry.push(advancedLanguages[j].entry);
|
||||||
result.push({
|
languages.push({
|
||||||
label: basicLanguages[i].label,
|
label: basicLanguages[i].label,
|
||||||
entry: entry,
|
entry: entry,
|
||||||
worker: advancedLanguages[j].worker
|
worker: advancedLanguages[j].worker
|
||||||
|
|
@ -139,56 +136,67 @@ function generateLanguages() {
|
||||||
i++;
|
i++;
|
||||||
j++;
|
j++;
|
||||||
} else if (basicLanguages[i].label < advancedLanguages[j].label) {
|
} else if (basicLanguages[i].label < advancedLanguages[j].label) {
|
||||||
result.push(basicLanguages[i]);
|
languages.push(basicLanguages[i]);
|
||||||
i++;
|
i++;
|
||||||
} else {
|
} else {
|
||||||
result.push(advancedLanguages[j]);
|
languages.push(advancedLanguages[j]);
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
} else if (i < len) {
|
} else if (i < len) {
|
||||||
result.push(basicLanguages[i]);
|
languages.push(basicLanguages[i]);
|
||||||
i++;
|
i++;
|
||||||
} else {
|
} else {
|
||||||
result.push(advancedLanguages[j]);
|
languages.push(advancedLanguages[j]);
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const code = `//
|
const features = getFeatures();
|
||||||
// THIS IS A GENERATED FILE. PLEASE DO NOT EDIT DIRECTLY.
|
|
||||||
// GENERATED USING node scripts/import-editor.js
|
|
||||||
//
|
|
||||||
import { IFeatureDefinition } from "./types";
|
|
||||||
|
|
||||||
export const languagesArr: IFeatureDefinition[] = ${JSON.stringify(result, null, ' ')
|
const dtsContents = `
|
||||||
.replace(/"label":/g, 'label:')
|
/*!----------------------------------------------------------------
|
||||||
.replace(/"entry":/g, 'entry:')
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
.replace(/"worker":/g, 'worker:')
|
* Released under the MIT license
|
||||||
.replace(/"id":/g, 'id:')
|
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||||
.replace(/"/g, "'")};
|
*----------------------------------------------------------------*/
|
||||||
|
|
||||||
export type EditorLanguage = ${result.map((el) => `'${el.label}'`).join(' | ')};
|
export interface IWorkerDefinition {
|
||||||
|
id: string;
|
||||||
|
entry: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IFeatureDefinition {
|
||||||
|
label: string;
|
||||||
|
entry: string | string[] | undefined;
|
||||||
|
worker?: IWorkerDefinition;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const features: IFeatureDefinition[];
|
||||||
|
|
||||||
|
export const languages: IFeatureDefinition[];
|
||||||
|
|
||||||
|
export type EditorLanguage = ${languages.map((el) => `'${el.label}'`).join(' | ')};
|
||||||
|
|
||||||
|
export type EditorFeature = ${features.map((el) => `'${el.label}'`).join(' | ')};
|
||||||
|
|
||||||
|
export type NegatedEditorFeature = ${features.map((el) => `'!${el.label}'`).join(' | ')};
|
||||||
|
|
||||||
`;
|
`;
|
||||||
fs.writeFileSync(
|
const dtsDestination = path.join(REPO_ROOT, 'release/esm/metadata.d.ts');
|
||||||
path.join(REPO_ROOT, 'webpack-plugin/src/languages.ts'),
|
ensureDir(path.dirname(dtsDestination));
|
||||||
code.replace(/\r\n/g, '\n')
|
fs.writeFileSync(dtsDestination, dtsContents.replace(/\r\n/g, '\n'));
|
||||||
);
|
|
||||||
|
|
||||||
prettier('webpack-plugin/src/languages.ts');
|
const jsContents = `
|
||||||
|
exports.features = ${JSON.stringify(features, null, ' ')};
|
||||||
const readmeLanguages = JSON.stringify(result.map((r) => r.label))
|
exports.languages = ${JSON.stringify(languages, null, ' ')};
|
||||||
.replace(/"/g, "'")
|
`;
|
||||||
.replace(/','/g, "', '");
|
const jsDestination = path.join(REPO_ROOT, 'release/esm/metadata.js');
|
||||||
let readme = fs.readFileSync(path.join(REPO_ROOT, 'webpack-plugin/README.md')).toString();
|
ensureDir(path.dirname(jsDestination));
|
||||||
readme = readme.replace(
|
fs.writeFileSync(jsDestination, jsContents.replace(/\r\n/g, '\n'));
|
||||||
/<!-- LANGUAGES_BEGIN -->([^<]+)<!-- LANGUAGES_END -->/,
|
|
||||||
`<!-- LANGUAGES_BEGIN -->\`${readmeLanguages}\`<!-- LANGUAGES_END -->`
|
|
||||||
);
|
|
||||||
fs.writeFileSync(path.join(REPO_ROOT, 'webpack-plugin/README.md'), readme);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
exports.generateMetadata = generateMetadata;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @tyoe {string} a
|
* @tyoe {string} a
|
||||||
|
|
@ -204,7 +212,10 @@ function strcmp(a, b) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateFeatures() {
|
/**
|
||||||
|
* @returns {{label:string;entry:string|string[];}[]}
|
||||||
|
*/
|
||||||
|
function getFeatures() {
|
||||||
const skipImports = [
|
const skipImports = [
|
||||||
'vs/editor/browser/widget/codeEditorWidget',
|
'vs/editor/browser/widget/codeEditorWidget',
|
||||||
'vs/editor/browser/widget/diffEditorWidget',
|
'vs/editor/browser/widget/diffEditorWidget',
|
||||||
|
|
@ -257,35 +268,5 @@ function generateFeatures() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const code = `//
|
return result;
|
||||||
// THIS IS A GENERATED FILE. PLEASE DO NOT EDIT DIRECTLY.
|
|
||||||
// GENERATED USING node scripts/import-editor.js
|
|
||||||
//
|
|
||||||
import { IFeatureDefinition } from "./types";
|
|
||||||
|
|
||||||
export const featuresArr: IFeatureDefinition[] = ${JSON.stringify(result, null, ' ')
|
|
||||||
.replace(/"label":/g, 'label:')
|
|
||||||
.replace(/"entry":/g, 'entry:')
|
|
||||||
.replace(/"/g, "'")};
|
|
||||||
|
|
||||||
export type EditorFeature = ${result.map((el) => `'${el.label}'`).join(' | ')};
|
|
||||||
|
|
||||||
export type NegatedEditorFeature = ${result.map((el) => `'!${el.label}'`).join(' | ')};
|
|
||||||
`;
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.join(REPO_ROOT, 'webpack-plugin/src/features.ts'),
|
|
||||||
code.replace(/\r\n/g, '\n')
|
|
||||||
);
|
|
||||||
|
|
||||||
prettier('webpack-plugin/src/features.ts');
|
|
||||||
|
|
||||||
const readmeFeatures = JSON.stringify(result.map((r) => r.label))
|
|
||||||
.replace(/"/g, "'")
|
|
||||||
.replace(/','/g, "', '");
|
|
||||||
let readme = fs.readFileSync(path.join(REPO_ROOT, 'webpack-plugin/README.md')).toString();
|
|
||||||
readme = readme.replace(
|
|
||||||
/<!-- FEATURES_BEGIN -->([^<]+)<!-- FEATURES_END -->/,
|
|
||||||
`<!-- FEATURES_BEGIN -->\`${readmeFeatures}\`<!-- FEATURES_END -->`
|
|
||||||
);
|
|
||||||
fs.writeFileSync(path.join(REPO_ROOT, 'webpack-plugin/README.md'), readme);
|
|
||||||
}
|
}
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
"prettier-check": "prettier --check .",
|
"prettier-check": "prettier --check .",
|
||||||
"prettier": "prettier --write .",
|
"prettier": "prettier --write .",
|
||||||
"pretty-quick": "pretty-quick --staged",
|
"pretty-quick": "pretty-quick --staged",
|
||||||
"release": "node ./build/build.js && node ./build/release.js && node ./build/importEditorWebpackPlugin.js",
|
"release": "node ./build/build.js && node ./build/release.js",
|
||||||
"simpleserver": "node ./build/simpleserver",
|
"simpleserver": "node ./build/simpleserver",
|
||||||
"smoketest-debug": "node ./test/smoke/runner.js --debug-tests",
|
"smoketest-debug": "node ./test/smoke/runner.js --debug-tests",
|
||||||
"smoketest": "node ./test/smoke/runner.js",
|
"smoketest": "node ./test/smoke/runner.js",
|
||||||
|
|
|
||||||
|
|
@ -59,9 +59,7 @@ Options can be passed in to `MonacoWebpackPlugin`. They can be used to generate
|
||||||
- default value: `'[name].worker.js'`.
|
- default value: `'[name].worker.js'`.
|
||||||
- `publicPath` (`string`) - custom public path for worker scripts, overrides the public path from which files generated by this plugin will be served. This wins out over Webpack's dynamic runtime path and can be useful to avoid attempting to load workers cross-origin when using a CDN for other static resources. Use e.g. '/' if you want to load your resources from the current origin..
|
- `publicPath` (`string`) - custom public path for worker scripts, overrides the public path from which files generated by this plugin will be served. This wins out over Webpack's dynamic runtime path and can be useful to avoid attempting to load workers cross-origin when using a CDN for other static resources. Use e.g. '/' if you want to load your resources from the current origin..
|
||||||
- default value: `''`.
|
- default value: `''`.
|
||||||
- `languages` (`string[]`) - include only a subset of the languages supported.
|
- `languages` (`string[]`) - include only a subset of the languages supported. By default, all languages shipped with the `monaco-editor` will be included.
|
||||||
|
|
||||||
- default value: <!-- LANGUAGES_BEGIN -->`['abap', 'apex', 'azcli', 'bat', 'bicep', 'cameligo', 'clojure', 'coffee', 'cpp', 'csharp', 'csp', 'css', 'dart', 'dockerfile', 'ecl', 'elixir', 'flow9', 'fsharp', 'go', 'graphql', 'handlebars', 'hcl', 'html', 'ini', 'java', 'javascript', 'json', 'julia', 'kotlin', 'less', 'lexon', 'liquid', 'lua', 'm3', 'markdown', 'mips', 'msdax', 'mysql', 'objective-c', 'pascal', 'pascaligo', 'perl', 'pgsql', 'php', 'pla', 'postiats', 'powerquery', 'powershell', 'protobuf', 'pug', 'python', 'qsharp', 'r', 'razor', 'redis', 'redshift', 'restructuredtext', 'ruby', 'rust', 'sb', 'scala', 'scheme', 'scss', 'shell', 'solidity', 'sophia', 'sparql', 'sql', 'st', 'swift', 'systemverilog', 'tcl', 'twig', 'typescript', 'vb', 'xml', 'yaml']`<!-- LANGUAGES_END -->.
|
|
||||||
|
|
||||||
Some languages share the same web worker. If one of the following languages is included, you must also include the language responsible for instantiating their shared worker:
|
Some languages share the same web worker. If one of the following languages is included, you must also include the language responsible for instantiating their shared worker:
|
||||||
|
|
||||||
|
|
@ -71,10 +69,7 @@ Options can be passed in to `MonacoWebpackPlugin`. They can be used to generate
|
||||||
| handlebars | html |
|
| handlebars | html |
|
||||||
| scss, less | css |
|
| scss, less | css |
|
||||||
|
|
||||||
- `features` (`string[]`) - include only a subset of the editor features.
|
- `features` (`string[]`) - include only a subset of the editor features. By default, all features shipped with the `monaco-editor` will be included. Instead of enumerating included features, it is also possible to exclude certain default features prefixing them with an exclamation mark '!'.
|
||||||
|
|
||||||
- default value: <!-- FEATURES_BEGIN -->`['accessibilityHelp', 'anchorSelect', 'bracketMatching', 'caretOperations', 'clipboard', 'codeAction', 'codelens', 'colorPicker', 'comment', 'contextmenu', 'coreCommands', 'cursorUndo', 'dnd', 'documentSymbols', 'find', 'folding', 'fontZoom', 'format', 'gotoError', 'gotoLine', 'gotoSymbol', 'hover', 'iPadShowKeyboard', 'inPlaceReplace', 'indentation', 'inlayHints', 'inlineCompletions', 'inspectTokens', 'linesOperations', 'linkedEditing', 'links', 'multicursor', 'parameterHints', 'quickCommand', 'quickHelp', 'quickOutline', 'referenceSearch', 'rename', 'smartSelect', 'snippets', 'suggest', 'toggleHighContrast', 'toggleTabFocusMode', 'transpose', 'unusualLineTerminators', 'viewportSemanticTokens', 'wordHighlighter', 'wordOperations', 'wordPartOperations']`<!-- FEATURES_END -->.
|
|
||||||
- excluded features: It is also possible to exclude certain default features prefixing them with an exclamation mark '!'.
|
|
||||||
|
|
||||||
- `globalAPI` (`boolean`) - specify whether the editor API should be exposed through a global `monaco` object or not. This option is applicable to `0.22.0` and newer version of `monaco-editor`. Since `0.22.0`, the ESM version of the monaco editor does no longer define a global `monaco` object unless `global.MonacoEnvironment = { globalAPI: true }` is set ([change log](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md#0220-29012021)).
|
- `globalAPI` (`boolean`) - specify whether the editor API should be exposed through a global `monaco` object or not. This option is applicable to `0.22.0` and newer version of `monaco-editor`. Since `0.22.0`, the ESM version of the monaco editor does no longer define a global `monaco` object unless `global.MonacoEnvironment = { globalAPI: true }` is set ([change log](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md#0220-29012021)).
|
||||||
- default value: `false`.
|
- default value: `false`.
|
||||||
|
|
|
||||||
6
webpack-plugin/package-lock.json
generated
6
webpack-plugin/package-lock.json
generated
|
|
@ -767,6 +767,12 @@
|
||||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"monaco-editor": {
|
||||||
|
"version": "0.30.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.30.1.tgz",
|
||||||
|
"integrity": "sha512-B/y4+b2O5G2gjuxIFtCE2EkM17R2NM7/3F8x0qcPsqy4V83bitJTIO4TIeZpYlzu/xy6INiY/+84BEm6+7Cmzg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"nanoid": {
|
"nanoid": {
|
||||||
"version": "3.1.30",
|
"version": "3.1.30",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
"css-loader": "^6.5.1",
|
"css-loader": "^6.5.1",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"glob": "^7.2.0",
|
"glob": "^7.2.0",
|
||||||
|
"monaco-editor": "^0.30.1",
|
||||||
"style-loader": "^3.3.1",
|
"style-loader": "^3.3.1",
|
||||||
"typescript": "^4.4.4",
|
"typescript": "^4.4.4",
|
||||||
"webpack": "^5.64.1",
|
"webpack": "^5.64.1",
|
||||||
|
|
|
||||||
|
|
@ -1,309 +0,0 @@
|
||||||
//
|
|
||||||
// THIS IS A GENERATED FILE. PLEASE DO NOT EDIT DIRECTLY.
|
|
||||||
// GENERATED USING node scripts/import-editor.js
|
|
||||||
//
|
|
||||||
import { IFeatureDefinition } from './types';
|
|
||||||
|
|
||||||
export const featuresArr: IFeatureDefinition[] = [
|
|
||||||
{
|
|
||||||
label: 'accessibilityHelp',
|
|
||||||
entry: 'vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'anchorSelect',
|
|
||||||
entry: 'vs/editor/contrib/anchorSelect/anchorSelect'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'bracketMatching',
|
|
||||||
entry: 'vs/editor/contrib/bracketMatching/bracketMatching'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'caretOperations',
|
|
||||||
entry: 'vs/editor/contrib/caretOperations/caretOperations'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'clipboard',
|
|
||||||
entry: 'vs/editor/contrib/clipboard/clipboard'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'codeAction',
|
|
||||||
entry: 'vs/editor/contrib/codeAction/codeActionContributions'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'codelens',
|
|
||||||
entry: 'vs/editor/contrib/codelens/codelensController'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'colorPicker',
|
|
||||||
entry: 'vs/editor/contrib/colorPicker/colorContributions'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'comment',
|
|
||||||
entry: 'vs/editor/contrib/comment/comment'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'contextmenu',
|
|
||||||
entry: 'vs/editor/contrib/contextmenu/contextmenu'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'coreCommands',
|
|
||||||
entry: 'vs/editor/browser/controller/coreCommands'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'cursorUndo',
|
|
||||||
entry: 'vs/editor/contrib/cursorUndo/cursorUndo'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'dnd',
|
|
||||||
entry: 'vs/editor/contrib/dnd/dnd'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'documentSymbols',
|
|
||||||
entry: 'vs/editor/contrib/documentSymbols/documentSymbols'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'find',
|
|
||||||
entry: 'vs/editor/contrib/find/findController'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'folding',
|
|
||||||
entry: 'vs/editor/contrib/folding/folding'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'fontZoom',
|
|
||||||
entry: 'vs/editor/contrib/fontZoom/fontZoom'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'format',
|
|
||||||
entry: 'vs/editor/contrib/format/formatActions'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'gotoError',
|
|
||||||
entry: 'vs/editor/contrib/gotoError/gotoError'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'gotoLine',
|
|
||||||
entry: 'vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'gotoSymbol',
|
|
||||||
entry: [
|
|
||||||
'vs/editor/contrib/gotoSymbol/goToCommands',
|
|
||||||
'vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'hover',
|
|
||||||
entry: 'vs/editor/contrib/hover/hover'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'iPadShowKeyboard',
|
|
||||||
entry: 'vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'inPlaceReplace',
|
|
||||||
entry: 'vs/editor/contrib/inPlaceReplace/inPlaceReplace'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'indentation',
|
|
||||||
entry: 'vs/editor/contrib/indentation/indentation'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'inlayHints',
|
|
||||||
entry: 'vs/editor/contrib/inlayHints/inlayHintsController'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'inlineCompletions',
|
|
||||||
entry: 'vs/editor/contrib/inlineCompletions/ghostTextController'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'inspectTokens',
|
|
||||||
entry: 'vs/editor/standalone/browser/inspectTokens/inspectTokens'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'linesOperations',
|
|
||||||
entry: 'vs/editor/contrib/linesOperations/linesOperations'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'linkedEditing',
|
|
||||||
entry: 'vs/editor/contrib/linkedEditing/linkedEditing'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'links',
|
|
||||||
entry: 'vs/editor/contrib/links/links'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'multicursor',
|
|
||||||
entry: 'vs/editor/contrib/multicursor/multicursor'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'parameterHints',
|
|
||||||
entry: 'vs/editor/contrib/parameterHints/parameterHints'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'quickCommand',
|
|
||||||
entry: 'vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'quickHelp',
|
|
||||||
entry: 'vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'quickOutline',
|
|
||||||
entry: 'vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'referenceSearch',
|
|
||||||
entry: 'vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'rename',
|
|
||||||
entry: 'vs/editor/contrib/rename/rename'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'smartSelect',
|
|
||||||
entry: 'vs/editor/contrib/smartSelect/smartSelect'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'snippets',
|
|
||||||
entry: 'vs/editor/contrib/snippet/snippetController2'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'suggest',
|
|
||||||
entry: 'vs/editor/contrib/suggest/suggestController'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'toggleHighContrast',
|
|
||||||
entry: 'vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'toggleTabFocusMode',
|
|
||||||
entry: 'vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'transpose',
|
|
||||||
entry: 'vs/editor/contrib/caretOperations/transpose'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'unusualLineTerminators',
|
|
||||||
entry: 'vs/editor/contrib/unusualLineTerminators/unusualLineTerminators'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'viewportSemanticTokens',
|
|
||||||
entry: 'vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'wordHighlighter',
|
|
||||||
entry: 'vs/editor/contrib/wordHighlighter/wordHighlighter'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'wordOperations',
|
|
||||||
entry: 'vs/editor/contrib/wordOperations/wordOperations'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'wordPartOperations',
|
|
||||||
entry: 'vs/editor/contrib/wordPartOperations/wordPartOperations'
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
export type EditorFeature =
|
|
||||||
| 'accessibilityHelp'
|
|
||||||
| 'anchorSelect'
|
|
||||||
| 'bracketMatching'
|
|
||||||
| 'caretOperations'
|
|
||||||
| 'clipboard'
|
|
||||||
| 'codeAction'
|
|
||||||
| 'codelens'
|
|
||||||
| 'colorPicker'
|
|
||||||
| 'comment'
|
|
||||||
| 'contextmenu'
|
|
||||||
| 'coreCommands'
|
|
||||||
| 'cursorUndo'
|
|
||||||
| 'dnd'
|
|
||||||
| 'documentSymbols'
|
|
||||||
| 'find'
|
|
||||||
| 'folding'
|
|
||||||
| 'fontZoom'
|
|
||||||
| 'format'
|
|
||||||
| 'gotoError'
|
|
||||||
| 'gotoLine'
|
|
||||||
| 'gotoSymbol'
|
|
||||||
| 'hover'
|
|
||||||
| 'iPadShowKeyboard'
|
|
||||||
| 'inPlaceReplace'
|
|
||||||
| 'indentation'
|
|
||||||
| 'inlayHints'
|
|
||||||
| 'inlineCompletions'
|
|
||||||
| 'inspectTokens'
|
|
||||||
| 'linesOperations'
|
|
||||||
| 'linkedEditing'
|
|
||||||
| 'links'
|
|
||||||
| 'multicursor'
|
|
||||||
| 'parameterHints'
|
|
||||||
| 'quickCommand'
|
|
||||||
| 'quickHelp'
|
|
||||||
| 'quickOutline'
|
|
||||||
| 'referenceSearch'
|
|
||||||
| 'rename'
|
|
||||||
| 'smartSelect'
|
|
||||||
| 'snippets'
|
|
||||||
| 'suggest'
|
|
||||||
| 'toggleHighContrast'
|
|
||||||
| 'toggleTabFocusMode'
|
|
||||||
| 'transpose'
|
|
||||||
| 'unusualLineTerminators'
|
|
||||||
| 'viewportSemanticTokens'
|
|
||||||
| 'wordHighlighter'
|
|
||||||
| 'wordOperations'
|
|
||||||
| 'wordPartOperations';
|
|
||||||
|
|
||||||
export type NegatedEditorFeature =
|
|
||||||
| '!accessibilityHelp'
|
|
||||||
| '!anchorSelect'
|
|
||||||
| '!bracketMatching'
|
|
||||||
| '!caretOperations'
|
|
||||||
| '!clipboard'
|
|
||||||
| '!codeAction'
|
|
||||||
| '!codelens'
|
|
||||||
| '!colorPicker'
|
|
||||||
| '!comment'
|
|
||||||
| '!contextmenu'
|
|
||||||
| '!coreCommands'
|
|
||||||
| '!cursorUndo'
|
|
||||||
| '!dnd'
|
|
||||||
| '!documentSymbols'
|
|
||||||
| '!find'
|
|
||||||
| '!folding'
|
|
||||||
| '!fontZoom'
|
|
||||||
| '!format'
|
|
||||||
| '!gotoError'
|
|
||||||
| '!gotoLine'
|
|
||||||
| '!gotoSymbol'
|
|
||||||
| '!hover'
|
|
||||||
| '!iPadShowKeyboard'
|
|
||||||
| '!inPlaceReplace'
|
|
||||||
| '!indentation'
|
|
||||||
| '!inlayHints'
|
|
||||||
| '!inlineCompletions'
|
|
||||||
| '!inspectTokens'
|
|
||||||
| '!linesOperations'
|
|
||||||
| '!linkedEditing'
|
|
||||||
| '!links'
|
|
||||||
| '!multicursor'
|
|
||||||
| '!parameterHints'
|
|
||||||
| '!quickCommand'
|
|
||||||
| '!quickHelp'
|
|
||||||
| '!quickOutline'
|
|
||||||
| '!referenceSearch'
|
|
||||||
| '!rename'
|
|
||||||
| '!smartSelect'
|
|
||||||
| '!snippets'
|
|
||||||
| '!suggest'
|
|
||||||
| '!toggleHighContrast'
|
|
||||||
| '!toggleTabFocusMode'
|
|
||||||
| '!transpose'
|
|
||||||
| '!unusualLineTerminators'
|
|
||||||
| '!viewportSemanticTokens'
|
|
||||||
| '!wordHighlighter'
|
|
||||||
| '!wordOperations'
|
|
||||||
| '!wordPartOperations';
|
|
||||||
|
|
@ -3,11 +3,13 @@ import * as path from 'path';
|
||||||
import * as loaderUtils from 'loader-utils';
|
import * as loaderUtils from 'loader-utils';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import { AddWorkerEntryPointPlugin } from './plugins/AddWorkerEntryPointPlugin';
|
import { AddWorkerEntryPointPlugin } from './plugins/AddWorkerEntryPointPlugin';
|
||||||
import { languagesArr, EditorLanguage } from './languages';
|
|
||||||
import { featuresArr, EditorFeature, NegatedEditorFeature } from './features';
|
|
||||||
import { IFeatureDefinition } from './types';
|
import { IFeatureDefinition } from './types';
|
||||||
import { ILoaderOptions } from './loaders/include';
|
import { ILoaderOptions } from './loaders/include';
|
||||||
|
|
||||||
|
// TODO: replace once a new monaco-editor version is published
|
||||||
|
// import { EditorLanguage, EditorFeature, NegatedEditorFeature } from 'monaco-editor/esm/metadata';
|
||||||
|
import { EditorLanguage, EditorFeature, NegatedEditorFeature } from './metadata';
|
||||||
|
|
||||||
const INCLUDE_LOADER_PATH = require.resolve('./loaders/include');
|
const INCLUDE_LOADER_PATH = require.resolve('./loaders/include');
|
||||||
|
|
||||||
const EDITOR_MODULE: IFeatureDefinition = {
|
const EDITOR_MODULE: IFeatureDefinition = {
|
||||||
|
|
@ -19,12 +21,6 @@ const EDITOR_MODULE: IFeatureDefinition = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const languagesById: { [language: string]: IFeatureDefinition } = {};
|
|
||||||
languagesArr.forEach((language) => (languagesById[language.label] = language));
|
|
||||||
|
|
||||||
const featuresById: { [feature: string]: IFeatureDefinition } = {};
|
|
||||||
featuresArr.forEach((feature) => (featuresById[feature.label] = feature));
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a resolved path for a given Monaco file.
|
* Return a resolved path for a given Monaco file.
|
||||||
*/
|
*/
|
||||||
|
|
@ -57,14 +53,30 @@ function getWorkerFilename(
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFeaturesIds(userFeatures: string[]): string[] {
|
interface EditorMetadata {
|
||||||
|
features: IFeatureDefinition[];
|
||||||
|
languages: IFeatureDefinition[];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEditorMetadata(monacoEditorPath: string | undefined): EditorMetadata {
|
||||||
|
const metadataPath = resolveMonacoPath('metadata.js', monacoEditorPath);
|
||||||
|
return require(metadataPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveDesiredFeatures(
|
||||||
|
metadata: EditorMetadata,
|
||||||
|
userFeatures: (EditorFeature | NegatedEditorFeature)[] | undefined
|
||||||
|
): IFeatureDefinition[] {
|
||||||
|
const featuresById: { [feature: string]: IFeatureDefinition } = {};
|
||||||
|
metadata.features.forEach((feature) => (featuresById[feature.label] = feature));
|
||||||
|
|
||||||
function notContainedIn(arr: string[]) {
|
function notContainedIn(arr: string[]) {
|
||||||
return (element: string) => arr.indexOf(element) === -1;
|
return (element: string) => arr.indexOf(element) === -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
let featuresIds: string[];
|
let featuresIds: string[];
|
||||||
|
|
||||||
if (userFeatures.length) {
|
if (userFeatures && userFeatures.length) {
|
||||||
const excludedFeatures = userFeatures.filter((f) => f[0] === '!').map((f) => f.slice(1));
|
const excludedFeatures = userFeatures.filter((f) => f[0] === '!').map((f) => f.slice(1));
|
||||||
if (excludedFeatures.length) {
|
if (excludedFeatures.length) {
|
||||||
featuresIds = Object.keys(featuresById).filter(notContainedIn(excludedFeatures));
|
featuresIds = Object.keys(featuresById).filter(notContainedIn(excludedFeatures));
|
||||||
|
|
@ -75,7 +87,19 @@ function getFeaturesIds(userFeatures: string[]): string[] {
|
||||||
featuresIds = Object.keys(featuresById);
|
featuresIds = Object.keys(featuresById);
|
||||||
}
|
}
|
||||||
|
|
||||||
return featuresIds;
|
return coalesce(featuresIds.map((id) => featuresById[id]));
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveDesiredLanguages(
|
||||||
|
metadata: EditorMetadata,
|
||||||
|
userLanguages: EditorLanguage[] | undefined,
|
||||||
|
userCustomLanguages: IFeatureDefinition[] | undefined
|
||||||
|
): IFeatureDefinition[] {
|
||||||
|
const languagesById: { [language: string]: IFeatureDefinition } = {};
|
||||||
|
metadata.languages.forEach((language) => (languagesById[language.label] = language));
|
||||||
|
|
||||||
|
const languages = userLanguages || Object.keys(languagesById);
|
||||||
|
return coalesce(languages.map((id) => languagesById[id])).concat(userCustomLanguages || []);
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IMonacoEditorWebpackPluginOpts {
|
interface IMonacoEditorWebpackPluginOpts {
|
||||||
|
|
@ -138,14 +162,15 @@ class MonacoEditorWebpackPlugin implements webpack.WebpackPluginInstance {
|
||||||
private readonly options: IInternalMonacoEditorWebpackPluginOpts;
|
private readonly options: IInternalMonacoEditorWebpackPluginOpts;
|
||||||
|
|
||||||
constructor(options: IMonacoEditorWebpackPluginOpts = {}) {
|
constructor(options: IMonacoEditorWebpackPluginOpts = {}) {
|
||||||
const languages = options.languages || Object.keys(languagesById);
|
const monacoEditorPath = options.monacoEditorPath;
|
||||||
const customLanguages = options.customLanguages || [];
|
const metadata = getEditorMetadata(monacoEditorPath);
|
||||||
const features = getFeaturesIds(options.features || []);
|
const languages = resolveDesiredLanguages(metadata, options.languages, options.customLanguages);
|
||||||
|
const features = resolveDesiredFeatures(metadata, options.features);
|
||||||
this.options = {
|
this.options = {
|
||||||
languages: coalesce(languages.map((id) => languagesById[id])).concat(customLanguages),
|
languages,
|
||||||
features: coalesce(features.map((id) => featuresById[id])),
|
features,
|
||||||
filename: options.filename || '[name].worker.js',
|
filename: options.filename || '[name].worker.js',
|
||||||
monacoEditorPath: options.monacoEditorPath,
|
monacoEditorPath,
|
||||||
publicPath: options.publicPath || '',
|
publicPath: options.publicPath || '',
|
||||||
globalAPI: options.globalAPI || false
|
globalAPI: options.globalAPI || false
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,414 +0,0 @@
|
||||||
//
|
|
||||||
// THIS IS A GENERATED FILE. PLEASE DO NOT EDIT DIRECTLY.
|
|
||||||
// GENERATED USING node scripts/import-editor.js
|
|
||||||
//
|
|
||||||
import { IFeatureDefinition } from './types';
|
|
||||||
|
|
||||||
export const languagesArr: IFeatureDefinition[] = [
|
|
||||||
{
|
|
||||||
label: 'abap',
|
|
||||||
entry: 'vs/basic-languages/abap/abap.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'apex',
|
|
||||||
entry: 'vs/basic-languages/apex/apex.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'azcli',
|
|
||||||
entry: 'vs/basic-languages/azcli/azcli.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'bat',
|
|
||||||
entry: 'vs/basic-languages/bat/bat.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'bicep',
|
|
||||||
entry: 'vs/basic-languages/bicep/bicep.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'cameligo',
|
|
||||||
entry: 'vs/basic-languages/cameligo/cameligo.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'clojure',
|
|
||||||
entry: 'vs/basic-languages/clojure/clojure.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'coffee',
|
|
||||||
entry: 'vs/basic-languages/coffee/coffee.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'cpp',
|
|
||||||
entry: 'vs/basic-languages/cpp/cpp.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'csharp',
|
|
||||||
entry: 'vs/basic-languages/csharp/csharp.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'csp',
|
|
||||||
entry: 'vs/basic-languages/csp/csp.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'css',
|
|
||||||
entry: ['vs/basic-languages/css/css.contribution', 'vs/language/css/monaco.contribution'],
|
|
||||||
worker: {
|
|
||||||
id: 'vs/language/css/cssWorker',
|
|
||||||
entry: 'vs/language/css/css.worker'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'dart',
|
|
||||||
entry: 'vs/basic-languages/dart/dart.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'dockerfile',
|
|
||||||
entry: 'vs/basic-languages/dockerfile/dockerfile.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'ecl',
|
|
||||||
entry: 'vs/basic-languages/ecl/ecl.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'elixir',
|
|
||||||
entry: 'vs/basic-languages/elixir/elixir.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'flow9',
|
|
||||||
entry: 'vs/basic-languages/flow9/flow9.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'fsharp',
|
|
||||||
entry: 'vs/basic-languages/fsharp/fsharp.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'go',
|
|
||||||
entry: 'vs/basic-languages/go/go.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'graphql',
|
|
||||||
entry: 'vs/basic-languages/graphql/graphql.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'handlebars',
|
|
||||||
entry: 'vs/basic-languages/handlebars/handlebars.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'hcl',
|
|
||||||
entry: 'vs/basic-languages/hcl/hcl.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'html',
|
|
||||||
entry: ['vs/basic-languages/html/html.contribution', 'vs/language/html/monaco.contribution'],
|
|
||||||
worker: {
|
|
||||||
id: 'vs/language/html/htmlWorker',
|
|
||||||
entry: 'vs/language/html/html.worker'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'ini',
|
|
||||||
entry: 'vs/basic-languages/ini/ini.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'java',
|
|
||||||
entry: 'vs/basic-languages/java/java.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'javascript',
|
|
||||||
entry: 'vs/basic-languages/javascript/javascript.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'json',
|
|
||||||
entry: 'vs/language/json/monaco.contribution',
|
|
||||||
worker: {
|
|
||||||
id: 'vs/language/json/jsonWorker',
|
|
||||||
entry: 'vs/language/json/json.worker'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'julia',
|
|
||||||
entry: 'vs/basic-languages/julia/julia.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'kotlin',
|
|
||||||
entry: 'vs/basic-languages/kotlin/kotlin.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'less',
|
|
||||||
entry: 'vs/basic-languages/less/less.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'lexon',
|
|
||||||
entry: 'vs/basic-languages/lexon/lexon.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'liquid',
|
|
||||||
entry: 'vs/basic-languages/liquid/liquid.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'lua',
|
|
||||||
entry: 'vs/basic-languages/lua/lua.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'm3',
|
|
||||||
entry: 'vs/basic-languages/m3/m3.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'markdown',
|
|
||||||
entry: 'vs/basic-languages/markdown/markdown.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'mips',
|
|
||||||
entry: 'vs/basic-languages/mips/mips.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'msdax',
|
|
||||||
entry: 'vs/basic-languages/msdax/msdax.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'mysql',
|
|
||||||
entry: 'vs/basic-languages/mysql/mysql.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'objective-c',
|
|
||||||
entry: 'vs/basic-languages/objective-c/objective-c.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'pascal',
|
|
||||||
entry: 'vs/basic-languages/pascal/pascal.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'pascaligo',
|
|
||||||
entry: 'vs/basic-languages/pascaligo/pascaligo.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'perl',
|
|
||||||
entry: 'vs/basic-languages/perl/perl.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'pgsql',
|
|
||||||
entry: 'vs/basic-languages/pgsql/pgsql.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'php',
|
|
||||||
entry: 'vs/basic-languages/php/php.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'pla',
|
|
||||||
entry: 'vs/basic-languages/pla/pla.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'postiats',
|
|
||||||
entry: 'vs/basic-languages/postiats/postiats.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'powerquery',
|
|
||||||
entry: 'vs/basic-languages/powerquery/powerquery.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'powershell',
|
|
||||||
entry: 'vs/basic-languages/powershell/powershell.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'protobuf',
|
|
||||||
entry: 'vs/basic-languages/protobuf/protobuf.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'pug',
|
|
||||||
entry: 'vs/basic-languages/pug/pug.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'python',
|
|
||||||
entry: 'vs/basic-languages/python/python.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'qsharp',
|
|
||||||
entry: 'vs/basic-languages/qsharp/qsharp.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'r',
|
|
||||||
entry: 'vs/basic-languages/r/r.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'razor',
|
|
||||||
entry: 'vs/basic-languages/razor/razor.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'redis',
|
|
||||||
entry: 'vs/basic-languages/redis/redis.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'redshift',
|
|
||||||
entry: 'vs/basic-languages/redshift/redshift.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'restructuredtext',
|
|
||||||
entry: 'vs/basic-languages/restructuredtext/restructuredtext.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'ruby',
|
|
||||||
entry: 'vs/basic-languages/ruby/ruby.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'rust',
|
|
||||||
entry: 'vs/basic-languages/rust/rust.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'sb',
|
|
||||||
entry: 'vs/basic-languages/sb/sb.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'scala',
|
|
||||||
entry: 'vs/basic-languages/scala/scala.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'scheme',
|
|
||||||
entry: 'vs/basic-languages/scheme/scheme.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'scss',
|
|
||||||
entry: 'vs/basic-languages/scss/scss.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'shell',
|
|
||||||
entry: 'vs/basic-languages/shell/shell.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'solidity',
|
|
||||||
entry: 'vs/basic-languages/solidity/solidity.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'sophia',
|
|
||||||
entry: 'vs/basic-languages/sophia/sophia.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'sparql',
|
|
||||||
entry: 'vs/basic-languages/sparql/sparql.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'sql',
|
|
||||||
entry: 'vs/basic-languages/sql/sql.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'st',
|
|
||||||
entry: 'vs/basic-languages/st/st.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'swift',
|
|
||||||
entry: 'vs/basic-languages/swift/swift.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'systemverilog',
|
|
||||||
entry: 'vs/basic-languages/systemverilog/systemverilog.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'tcl',
|
|
||||||
entry: 'vs/basic-languages/tcl/tcl.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'twig',
|
|
||||||
entry: 'vs/basic-languages/twig/twig.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'typescript',
|
|
||||||
entry: [
|
|
||||||
'vs/basic-languages/typescript/typescript.contribution',
|
|
||||||
'vs/language/typescript/monaco.contribution'
|
|
||||||
],
|
|
||||||
worker: {
|
|
||||||
id: 'vs/language/typescript/tsWorker',
|
|
||||||
entry: 'vs/language/typescript/ts.worker'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'vb',
|
|
||||||
entry: 'vs/basic-languages/vb/vb.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'xml',
|
|
||||||
entry: 'vs/basic-languages/xml/xml.contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'yaml',
|
|
||||||
entry: 'vs/basic-languages/yaml/yaml.contribution'
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
export type EditorLanguage =
|
|
||||||
| 'abap'
|
|
||||||
| 'apex'
|
|
||||||
| 'azcli'
|
|
||||||
| 'bat'
|
|
||||||
| 'bicep'
|
|
||||||
| 'cameligo'
|
|
||||||
| 'clojure'
|
|
||||||
| 'coffee'
|
|
||||||
| 'cpp'
|
|
||||||
| 'csharp'
|
|
||||||
| 'csp'
|
|
||||||
| 'css'
|
|
||||||
| 'dart'
|
|
||||||
| 'dockerfile'
|
|
||||||
| 'ecl'
|
|
||||||
| 'elixir'
|
|
||||||
| 'flow9'
|
|
||||||
| 'fsharp'
|
|
||||||
| 'go'
|
|
||||||
| 'graphql'
|
|
||||||
| 'handlebars'
|
|
||||||
| 'hcl'
|
|
||||||
| 'html'
|
|
||||||
| 'ini'
|
|
||||||
| 'java'
|
|
||||||
| 'javascript'
|
|
||||||
| 'json'
|
|
||||||
| 'julia'
|
|
||||||
| 'kotlin'
|
|
||||||
| 'less'
|
|
||||||
| 'lexon'
|
|
||||||
| 'liquid'
|
|
||||||
| 'lua'
|
|
||||||
| 'm3'
|
|
||||||
| 'markdown'
|
|
||||||
| 'mips'
|
|
||||||
| 'msdax'
|
|
||||||
| 'mysql'
|
|
||||||
| 'objective-c'
|
|
||||||
| 'pascal'
|
|
||||||
| 'pascaligo'
|
|
||||||
| 'perl'
|
|
||||||
| 'pgsql'
|
|
||||||
| 'php'
|
|
||||||
| 'pla'
|
|
||||||
| 'postiats'
|
|
||||||
| 'powerquery'
|
|
||||||
| 'powershell'
|
|
||||||
| 'protobuf'
|
|
||||||
| 'pug'
|
|
||||||
| 'python'
|
|
||||||
| 'qsharp'
|
|
||||||
| 'r'
|
|
||||||
| 'razor'
|
|
||||||
| 'redis'
|
|
||||||
| 'redshift'
|
|
||||||
| 'restructuredtext'
|
|
||||||
| 'ruby'
|
|
||||||
| 'rust'
|
|
||||||
| 'sb'
|
|
||||||
| 'scala'
|
|
||||||
| 'scheme'
|
|
||||||
| 'scss'
|
|
||||||
| 'shell'
|
|
||||||
| 'solidity'
|
|
||||||
| 'sophia'
|
|
||||||
| 'sparql'
|
|
||||||
| 'sql'
|
|
||||||
| 'st'
|
|
||||||
| 'swift'
|
|
||||||
| 'systemverilog'
|
|
||||||
| 'tcl'
|
|
||||||
| 'twig'
|
|
||||||
| 'typescript'
|
|
||||||
| 'vb'
|
|
||||||
| 'xml'
|
|
||||||
| 'yaml';
|
|
||||||
195
webpack-plugin/src/metadata.d.ts
vendored
Normal file
195
webpack-plugin/src/metadata.d.ts
vendored
Normal file
|
|
@ -0,0 +1,195 @@
|
||||||
|
export interface IWorkerDefinition {
|
||||||
|
id: string;
|
||||||
|
entry: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IFeatureDefinition {
|
||||||
|
label: string;
|
||||||
|
entry: string | string[] | undefined;
|
||||||
|
worker?: IWorkerDefinition;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const features: IFeatureDefinition[];
|
||||||
|
|
||||||
|
export const languages: IFeatureDefinition[];
|
||||||
|
|
||||||
|
export type EditorLanguage =
|
||||||
|
| 'abap'
|
||||||
|
| 'apex'
|
||||||
|
| 'azcli'
|
||||||
|
| 'bat'
|
||||||
|
| 'bicep'
|
||||||
|
| 'cameligo'
|
||||||
|
| 'clojure'
|
||||||
|
| 'coffee'
|
||||||
|
| 'cpp'
|
||||||
|
| 'csharp'
|
||||||
|
| 'csp'
|
||||||
|
| 'css'
|
||||||
|
| 'dart'
|
||||||
|
| 'dockerfile'
|
||||||
|
| 'ecl'
|
||||||
|
| 'elixir'
|
||||||
|
| 'flow9'
|
||||||
|
| 'fsharp'
|
||||||
|
| 'go'
|
||||||
|
| 'graphql'
|
||||||
|
| 'handlebars'
|
||||||
|
| 'hcl'
|
||||||
|
| 'html'
|
||||||
|
| 'ini'
|
||||||
|
| 'java'
|
||||||
|
| 'javascript'
|
||||||
|
| 'json'
|
||||||
|
| 'julia'
|
||||||
|
| 'kotlin'
|
||||||
|
| 'less'
|
||||||
|
| 'lexon'
|
||||||
|
| 'liquid'
|
||||||
|
| 'lua'
|
||||||
|
| 'm3'
|
||||||
|
| 'markdown'
|
||||||
|
| 'mips'
|
||||||
|
| 'msdax'
|
||||||
|
| 'mysql'
|
||||||
|
| 'objective-c'
|
||||||
|
| 'pascal'
|
||||||
|
| 'pascaligo'
|
||||||
|
| 'perl'
|
||||||
|
| 'pgsql'
|
||||||
|
| 'php'
|
||||||
|
| 'pla'
|
||||||
|
| 'postiats'
|
||||||
|
| 'powerquery'
|
||||||
|
| 'powershell'
|
||||||
|
| 'protobuf'
|
||||||
|
| 'pug'
|
||||||
|
| 'python'
|
||||||
|
| 'qsharp'
|
||||||
|
| 'r'
|
||||||
|
| 'razor'
|
||||||
|
| 'redis'
|
||||||
|
| 'redshift'
|
||||||
|
| 'restructuredtext'
|
||||||
|
| 'ruby'
|
||||||
|
| 'rust'
|
||||||
|
| 'sb'
|
||||||
|
| 'scala'
|
||||||
|
| 'scheme'
|
||||||
|
| 'scss'
|
||||||
|
| 'shell'
|
||||||
|
| 'solidity'
|
||||||
|
| 'sophia'
|
||||||
|
| 'sparql'
|
||||||
|
| 'sql'
|
||||||
|
| 'st'
|
||||||
|
| 'swift'
|
||||||
|
| 'systemverilog'
|
||||||
|
| 'tcl'
|
||||||
|
| 'twig'
|
||||||
|
| 'typescript'
|
||||||
|
| 'vb'
|
||||||
|
| 'xml'
|
||||||
|
| 'yaml';
|
||||||
|
|
||||||
|
export type EditorFeature =
|
||||||
|
| 'accessibilityHelp'
|
||||||
|
| 'anchorSelect'
|
||||||
|
| 'bracketMatching'
|
||||||
|
| 'caretOperations'
|
||||||
|
| 'clipboard'
|
||||||
|
| 'codeAction'
|
||||||
|
| 'codelens'
|
||||||
|
| 'colorPicker'
|
||||||
|
| 'comment'
|
||||||
|
| 'contextmenu'
|
||||||
|
| 'coreCommands'
|
||||||
|
| 'cursorUndo'
|
||||||
|
| 'dnd'
|
||||||
|
| 'documentSymbols'
|
||||||
|
| 'find'
|
||||||
|
| 'folding'
|
||||||
|
| 'fontZoom'
|
||||||
|
| 'format'
|
||||||
|
| 'gotoError'
|
||||||
|
| 'gotoLine'
|
||||||
|
| 'gotoSymbol'
|
||||||
|
| 'hover'
|
||||||
|
| 'iPadShowKeyboard'
|
||||||
|
| 'inPlaceReplace'
|
||||||
|
| 'indentation'
|
||||||
|
| 'inlayHints'
|
||||||
|
| 'inlineCompletions'
|
||||||
|
| 'inspectTokens'
|
||||||
|
| 'linesOperations'
|
||||||
|
| 'linkedEditing'
|
||||||
|
| 'links'
|
||||||
|
| 'multicursor'
|
||||||
|
| 'parameterHints'
|
||||||
|
| 'quickCommand'
|
||||||
|
| 'quickHelp'
|
||||||
|
| 'quickOutline'
|
||||||
|
| 'referenceSearch'
|
||||||
|
| 'rename'
|
||||||
|
| 'smartSelect'
|
||||||
|
| 'snippets'
|
||||||
|
| 'suggest'
|
||||||
|
| 'toggleHighContrast'
|
||||||
|
| 'toggleTabFocusMode'
|
||||||
|
| 'transpose'
|
||||||
|
| 'unusualLineTerminators'
|
||||||
|
| 'viewportSemanticTokens'
|
||||||
|
| 'wordHighlighter'
|
||||||
|
| 'wordOperations'
|
||||||
|
| 'wordPartOperations';
|
||||||
|
|
||||||
|
export type NegatedEditorFeature =
|
||||||
|
| '!accessibilityHelp'
|
||||||
|
| '!anchorSelect'
|
||||||
|
| '!bracketMatching'
|
||||||
|
| '!caretOperations'
|
||||||
|
| '!clipboard'
|
||||||
|
| '!codeAction'
|
||||||
|
| '!codelens'
|
||||||
|
| '!colorPicker'
|
||||||
|
| '!comment'
|
||||||
|
| '!contextmenu'
|
||||||
|
| '!coreCommands'
|
||||||
|
| '!cursorUndo'
|
||||||
|
| '!dnd'
|
||||||
|
| '!documentSymbols'
|
||||||
|
| '!find'
|
||||||
|
| '!folding'
|
||||||
|
| '!fontZoom'
|
||||||
|
| '!format'
|
||||||
|
| '!gotoError'
|
||||||
|
| '!gotoLine'
|
||||||
|
| '!gotoSymbol'
|
||||||
|
| '!hover'
|
||||||
|
| '!iPadShowKeyboard'
|
||||||
|
| '!inPlaceReplace'
|
||||||
|
| '!indentation'
|
||||||
|
| '!inlayHints'
|
||||||
|
| '!inlineCompletions'
|
||||||
|
| '!inspectTokens'
|
||||||
|
| '!linesOperations'
|
||||||
|
| '!linkedEditing'
|
||||||
|
| '!links'
|
||||||
|
| '!multicursor'
|
||||||
|
| '!parameterHints'
|
||||||
|
| '!quickCommand'
|
||||||
|
| '!quickHelp'
|
||||||
|
| '!quickOutline'
|
||||||
|
| '!referenceSearch'
|
||||||
|
| '!rename'
|
||||||
|
| '!smartSelect'
|
||||||
|
| '!snippets'
|
||||||
|
| '!suggest'
|
||||||
|
| '!toggleHighContrast'
|
||||||
|
| '!toggleTabFocusMode'
|
||||||
|
| '!transpose'
|
||||||
|
| '!unusualLineTerminators'
|
||||||
|
| '!viewportSemanticTokens'
|
||||||
|
| '!wordHighlighter'
|
||||||
|
| '!wordOperations'
|
||||||
|
| '!wordPartOperations';
|
||||||
Loading…
Add table
Add a link
Reference in a new issue