Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ vscode.db
product.overrides.json
*.snap.actual
.vscode-test
.void

# Void added these:
.tmp/
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"editor.insertSpaces": false,
"editor.renderWhitespace": "all",
"files.trimTrailingWhitespace": true,
"files.exclude": {
".git": true,
Expand Down
62 changes: 45 additions & 17 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
}
}
},
{ // Void added this
{ // Void added this
"type": "npm",
"script": "watchreactd",
"label": "React - Build",
Expand Down Expand Up @@ -227,7 +227,13 @@
"windows": {
"command": ".\\scripts\\code-server.bat"
},
"args": ["--no-launch", "--connection-token", "dev-token", "--port", "8080"],
"args": [
"--no-launch",
"--connection-token",
"dev-token",
"--port",
"8080"
],
"label": "Run code server",
"isBackground": true,
"problemMatcher": {
Expand All @@ -249,7 +255,12 @@
"windows": {
"command": ".\\scripts\\code-web.bat"
},
"args": ["--port", "8080", "--browser", "none"],
"args": [
"--port",
"8080",
"--browser",
"none"
],
"label": "Run code web",
"isBackground": true,
"problemMatcher": {
Expand All @@ -275,26 +286,43 @@
},
{
"type": "shell",
"command": "node build/lib/preLaunch.js",
"label": "Ensure Prelaunch Dependencies",
"label": "Lint (eslint: CLI)",
"command": "mkdir -p /tmp/tsc-problems-logs/; npx eslint \"src/**/*.{ts,tsx,js}\" --format stylish 2>&1 | tee -a /tmp/tsc-problems-logs/eslint.log",
"problemMatcher": [
"$eslint-stylish"
],
"group": "build",
"presentation": {
"reveal": "silent",
"close": true
"reveal": "always"
}
},
{
"type": "npm",
"script": "tsec-compile-check",
"problemMatcher": [
{
"base": "$tsc",
"applyTo": "allDocuments",
"owner": "tsec"
}
"label": "all problems check",
"dependsOn": [
"Lint (eslint: CLI)",
"TS: typecheck (noEmit, non-blocking)"
],
"group": "build",
"label": "npm: tsec-compile-check",
"detail": "node_modules/tsec/bin/tsec -p src/tsconfig.json --noEmit"
"dependsOrder": "sequence",
"presentation": {
"reveal": "always"
},
"problemMatcher": []
},
{
"type": "shell",
"label": "TS: typecheck (noEmit, non-blocking)",
"command": "bash ${workspaceFolder}/scripts/tsc-problems.sh",
"problemMatcher": "$tsc",
"group": "build",
"options": {
"shell": {
"executable": "/bin/bash",
"args": [
"-lc"
]
}
}
},
{
// Used for monaco editor playground launch config
Expand Down
21 changes: 19 additions & 2 deletions HOW_TO_CONTRIBUTE.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,14 @@ If you're certain you want to build a local executible of Void, follow these ste

Make sure you've already entered Developer Mode with Void first, then run one of the following commands. This will create a folder named `VSCode-darwin-arm64` or similar outside of the void/ repo (see below).

You can optionally tune the local executable build with these environment variables:

- `VSCODE_MANGLE_MAX_WORKERS` (default: `4`) controls how many parallel mangler workers are used during build. Lower it on low-memory machines.
- `VSCODE_TSC_IGNORE_UNUSED` (set to any non-empty value, for example `1`) disables `noUnusedLocals` and `noUnusedParameters` checks for faster local builds.

Example:

- `VSCODE_MANGLE_MAX_WORKERS=2 VSCODE_TSC_IGNORE_UNUSED=1 npm run gulp vscode-linux-x64`

##### Mac
- `npm run gulp vscode-darwin-arm64` - most common (Apple Silicon)
Expand All @@ -131,6 +139,17 @@ Make sure you've already entered Developer Mode with Void first, then run one of
- `npm run gulp vscode-linux-arm64`


##### Linux: `vscode-reh-linux-x64` Component

`vscode-reh-linux-x64` builds the server-side REH package (Remote Extension Host), not the full desktop app UI.

- Use it when you only need the server component (for remote/SSH-style setups).
- Output folder: `../vscode-reh-linux-x64/`
- Main server launcher inside that folder: `bin/void-server`
- Useful variant for faster packaging in CI flows:

`VSCODE_MANGLE_MAX_WORKERS=8 VSCODE_TSC_IGNORE_UNUSED=1 npm run gulp vscode-reh-linux-x64 --max-old-space-size=48000`

##### Local Executible Output

The local executible will be located in a folder outside of `void/`:
Expand All @@ -151,5 +170,3 @@ workspace/
- Please don't use AI to write your PR 🙂




2 changes: 1 addition & 1 deletion build/buildfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ function createModuleDescription(name) {
};
}

exports.workerEditor = createModuleDescription('vs/editor/common/services/editorWebWorkerMain');
exports.workerEditor = createModuleDescription('vs/editor/common/language/services/editorWebWorkerMain');
exports.workerExtensionHost = createModuleDescription('vs/workbench/api/worker/extensionHostWorkerMain');
exports.workerNotebook = createModuleDescription('vs/workbench/contrib/notebook/common/services/notebookWebWorkerMain');
exports.workerLanguageDetection = createModuleDescription('vs/workbench/services/languageDetection/browser/languageDetectionWebWorkerMain');
Expand Down
11 changes: 9 additions & 2 deletions build/filters.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports.unicodeFilter = [
'!LICENSES.chromium.html',
'!**/LICENSE',

'!**/*.{dll,exe,png,bmp,jpg,scpt,cur,ttf,woff,eot,template,ico,icns,opus,wasm}',
'!**/*.{dll,exe,png,bmp,jpg,scpt,cur,ttf,otf,woff,woff2,eot,template,ico,icns,opus,wasm}',
'!**/test/**',
'!**/*.test.ts',
'!**/*.{d.ts,json,md}',
Expand Down Expand Up @@ -123,7 +123,7 @@ module.exports.indentationFilter = [
'!src/vs/*/**/*.d.ts',
'!src/typings/**/*.d.ts',
'!extensions/**/*.d.ts',
'!**/*.{svg,exe,png,bmp,jpg,scpt,bat,cmd,cur,ttf,woff,eot,md,ps1,psm1,template,yaml,yml,d.ts.recipe,ico,icns,plist,opus,admx,adml,wasm}',
'!**/*.{svg,exe,png,bmp,jpg,scpt,bat,cmd,cur,ttf,otf,woff,woff2,eot,md,ps1,psm1,template,yaml,yml,d.ts.recipe,ico,icns,plist,opus,admx,adml,wasm}',
'!build/{lib,download,linux,darwin}/**/*.js',
'!build/**/*.sh',
'!build/azure-pipelines/**/*.js',
Expand Down Expand Up @@ -164,6 +164,13 @@ module.exports.copyrightFilter = [
'!**/*.opts',
'!**/*.disabled',
'!**/*.code-workspace',

'!**/*.ttf',
'!**/*.otf',
'!**/*.woff',
'!**/*.woff2',
'!**/*.eot',

'!**/*.js.map',
'!**/*.wasm',
'!build/**/*.init',
Expand Down
2 changes: 1 addition & 1 deletion build/gulpfile.editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const extractEditorSrcTask = task.define('extract-editor-src', () => {
entryPoints: [
'vs/editor/editor.main',
'vs/editor/editor.worker.start',
'vs/editor/common/services/editorWebWorkerMain',
'vs/editor/common/language/services/editorWebWorkerMain',
],
inlineEntryPoints: [
apiusages,
Expand Down
30 changes: 26 additions & 4 deletions build/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,37 @@ gulp.task(transpileClientSWCTask);
const transpileClientTask = task.define('transpile-client', task.series(util.rimraf('out'), transpileTask('src', 'out')));
gulp.task(transpileClientTask);

// Fast compile for development time
const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), compileApiProposalNamesTask, compileTask('src', 'out', false)));
// Fast compile for development time (use esbuild for bundling dependencies)
const compileClientTask = task.define('compile-client', task.series(
util.rimraf('out'),
compileApiProposalNamesTask,
transpileClientSWCTask
));
gulp.task(compileClientTask);

const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), task.parallel(watchTask('out', false), watchApiProposalNamesTask)));
// Copy Terminalia fonts after dev compile
const copyVoidFontsDev = () => {
return gulp.src('src/vs/code/electron-sandbox/workbench/assets/fonts/*.{woff2,ttf}')
.pipe(gulp.dest('out/vs/code/electron-sandbox/workbench/assets/fonts'));
};

const copyPatchLibDev = () => {
return gulp.src('src/vs/workbench/contrib/void/browser/lib/diff-match-patch.js')
.pipe(gulp.dest('out/vs/workbench/contrib/void/browser/lib'));
};

const watchClientTask = task.define('watch-client', task.series(
util.rimraf('out'),
task.parallel(watchTask('out', false), watchApiProposalNamesTask)
));
gulp.task(watchClientTask);

// All
const _compileTask = task.define('compile', task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask, compileExtensionMediaTask));
const _compileTask = task.define('compile', task.series(
task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask, compileExtensionMediaTask),
copyVoidFontsDev,
copyPatchLibDev
));
gulp.task(_compileTask);

gulp.task(task.define('watch', task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask)));
Expand Down
1 change: 1 addition & 0 deletions build/gulpfile.vscode.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ const vscodeResourceIncludes = [

// Workbench
'out-build/vs/code/electron-sandbox/workbench/workbench.html',
'out-build/vs/code/electron-sandbox/workbench/assets/fonts/*.{woff2,ttf}',

// Electron Preload
'out-build/vs/base/parts/sandbox/electron-sandbox/preload.js',
Expand Down
Loading