diff --git a/build/utils.js b/build/utils.js
index e8c8c4a9..fe9278b3 100644
--- a/build/utils.js
+++ b/build/utils.js
@@ -5,10 +5,13 @@
const fs = require('fs');
const path = require('path');
+const cp = require('child_process');
const REPO_ROOT = path.join(__dirname, '..');
/**
+ * Copy a file.
+ *
* @param {string} _source
* @param {string} _destination
*/
@@ -41,6 +44,8 @@ function copyFile(_source, _destination) {
exports.copyFile = copyFile;
/**
+ * Remove a directory and all its contents.
+ *
* @param {string} _dirPath
*/
function removeDir(_dirPath) {
@@ -68,3 +73,60 @@ function removeDir(_dirPath) {
}
}
exports.removeDir = removeDir;
+
+/**
+ * Launch the typescript compiler synchronously over a project.
+ *
+ * @param {string} projectPath
+ */
+function tsc(_projectPath) {
+ const projectPath = path.join(REPO_ROOT, _projectPath);
+ cp.spawnSync(process.execPath, [path.join(__dirname, '../node_modules/typescript/lib/tsc.js'), '-p', projectPath], { stdio: 'inherit', stderr: 'inherit' });
+
+ console.log(`Compiled ${_projectPath}`);
+}
+exports.tsc = tsc;
+
+/**
+ * Transform an external .d.ts file to an internal .d.ts file
+ *
+ * @param {string} _source
+ * @param {string} _destination
+ * @param {string} namespace
+ */
+function dts(_source, _destination, namespace) {
+ const source = path.join(REPO_ROOT, _source);
+ const destination = path.join(REPO_ROOT, _destination);
+
+ const lines = fs
+ .readFileSync(source)
+ .toString()
+ .split(/\r\n|\r|\n/);
+
+ let result = [
+ `/*---------------------------------------------------------------------------------------------`,
+ ` * Copyright (c) Microsoft Corporation. All rights reserved.`,
+ ` * Licensed under the MIT License. See License.txt in the project root for license information.`,
+ ` *--------------------------------------------------------------------------------------------*/`,
+ ``,
+ `/// `,
+ ``,
+ `declare namespace ${namespace} {`
+ ];
+ for (let line of lines) {
+ if (/^import/.test(line)) {
+ continue;
+ }
+ line = line.replace(/ /g, '\t');
+ line = line.replace(/declare /g, '');
+ if (line.length > 0) {
+ line = `\t${line}`;
+ result.push(line);
+ }
+ }
+ result.push(`}`);
+ result.push(``);
+
+ fs.writeFileSync(destination, result.join('\n'));
+}
+exports.dts = dts;
diff --git a/monaco-css/README.md b/monaco-css/README.md
index 6b4e68bc..2e079fe3 100644
--- a/monaco-css/README.md
+++ b/monaco-css/README.md
@@ -9,29 +9,15 @@ CSS language plugin for the Monaco Editor. It provides the following features wh
- Document Symbols
- Color Decorators
-Linting an be configured through the API. See [here](https://github.com/Microsoft/monaco-css/blob/master/src/monaco.d.ts) for the API that the
+Linting an be configured through the API. See [`monaco.d.ts`](./monaco.d.ts) for the API that the
CSS plugin offers to configure the CSS/LESS/SCSS language support.
-Internally the CSS plugin uses the [vscode-css-languageservice](https://github.com/Microsoft/vscode-css-languageservice)
+Internally the CSS plugin uses the [`vscode-css-languageservice`](https://github.com/microsoft/vscode-css-languageservice)
node module, providing the implementation of the functionally listed above. The same module is also used
-in [Visual Studio Code](https://github.com/Microsoft/vscode) to power the CSS, LESS and SCSS editing experience.
-
-## Issues
-
-Please file issues concering `monaco-css` in the [`monaco-editor` repository](https://github.com/Microsoft/monaco-editor/issues).
-
-## Installing
-
-This npm module is bundled and distributed in the [monaco-editor](https://www.npmjs.com/package/monaco-editor) npm module.
+in [Visual Studio Code](https://github.com/microsoft/vscode) to power the CSS, LESS and SCSS editing experience.
## Development
-- `npm install .`
-- compile with `npm run compile`
- watch with `npm run watch`
- `npm run prepublishOnly`
- open `$/monaco-css/test/index.html` in your favorite browser.
-
-## License
-
-[MIT](https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md)
diff --git a/monaco-css/scripts/build.js b/monaco-css/scripts/build.js
index 0b77b2c7..35b41695 100644
--- a/monaco-css/scripts/build.js
+++ b/monaco-css/scripts/build.js
@@ -7,14 +7,14 @@ const esbuild = require('esbuild');
const alias = require('esbuild-plugin-alias');
const path = require('path');
const cp = require('child_process');
-const { copyFile, removeDir } = require('../../build/utils');
+const { copyFile, removeDir, tsc, dts } = require('../../build/utils');
removeDir(`monaco-css/release`);
removeDir(`monaco-css/out`);
-cp.spawnSync(process.execPath, [path.join(__dirname, '../../node_modules/typescript/lib/tsc.js'), '-p', path.join(__dirname, '../src/tsconfig.json')], { stdio: 'inherit', stderr: 'inherit' });
+tsc(`monaco-css/src/tsconfig.json`);
-cp.spawnSync(process.execPath, [path.join(__dirname, './dts.js')], { stdio: 'inherit', stderr: 'inherit' });
+dts(`monaco-css/out/amd/monaco.contribution.d.ts`, `monaco-css/monaco.d.ts`, 'monaco.languages.css');
cp.spawnSync(process.execPath, [path.join(__dirname, '../../node_modules/prettier/bin-prettier.js'), '--write', path.join(__dirname, '../monaco.d.ts')], { stdio: 'inherit', stderr: 'inherit' });
diff --git a/monaco-css/scripts/bundle.js b/monaco-css/scripts/bundle.js
index 49709bc5..a37d11f0 100644
--- a/monaco-css/scripts/bundle.js
+++ b/monaco-css/scripts/bundle.js
@@ -1,3 +1,8 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
const requirejs = require('requirejs');
const path = require('path');
const fs = require('fs');
@@ -13,9 +18,9 @@ const headerVersion = semver + '(' + sha1 + ')';
const BUNDLED_FILE_HEADER = [
'/*!-----------------------------------------------------------------------------',
' * Copyright (c) Microsoft Corporation. All rights reserved.',
- ' * monaco-css version: ' + headerVersion,
+ ' * Version: ' + headerVersion,
' * Released under the MIT license',
- ' * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md',
+ ' * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt',
' *-----------------------------------------------------------------------------*/',
''
].join('\n');
diff --git a/monaco-css/scripts/dts.js b/monaco-css/scripts/dts.js
deleted file mode 100644
index bb585c76..00000000
--- a/monaco-css/scripts/dts.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-const path = require('path');
-const fs = require('fs');
-
-const REPO_ROOT = path.join(__dirname, '../');
-const SRC_PATH = path.join(REPO_ROOT, 'out/amd/monaco.contribution.d.ts');
-const DST_PATH = path.join(REPO_ROOT, 'monaco.d.ts');
-
-const lines = fs
- .readFileSync(SRC_PATH)
- .toString()
- .split(/\r\n|\r|\n/);
-let result = [
- `/*---------------------------------------------------------------------------------------------`,
- ` * Copyright (c) Microsoft Corporation. All rights reserved.`,
- ` * Licensed under the MIT License. See License.txt in the project root for license information.`,
- ` *--------------------------------------------------------------------------------------------*/`,
- ``,
- `/// `,
- ``,
- `declare namespace monaco.languages.css {`
-];
-for (let line of lines) {
- if (/^import/.test(line)) {
- continue;
- }
- line = line.replace(/ /g, '\t');
- line = line.replace(/declare /g, '');
- if (line.length > 0) {
- line = `\t${line}`;
- result.push(line);
- }
-}
-result.push(`}`);
-result.push(``);
-
-fs.writeFileSync(DST_PATH, result.join('\n'));
diff --git a/monaco-css/test/index.html b/monaco-css/test/index.html
index d858437b..8d345999 100644
--- a/monaco-css/test/index.html
+++ b/monaco-css/test/index.html
@@ -1,12 +1,11 @@
-
@@ -16,9 +15,9 @@
-
-
-
+
+
+