Commit Graph

368 Commits

Author SHA1 Message Date
Rob Lourens c065b175fd Add argument parsing, suite filtering, and grep support to integration test scripts (#305837)
* Add argument parsing, suite filtering, and grep support to integration test scripts

- Add --run, --runGlob, --grep, --suite, and --help argument parsing
- --suite selects extension host test suites (comma-separated, glob patterns)
- --grep forwards test name filter to all runners via MOCHA_GREP env var
- Validate --suite filter matches at least one known suite
- Add MOCHA_GREP support to testrunner.js, CSS and HTML test runners
- Seed user settings to suppress dock bounce notifications
- Always apply *.integrationTest.js glob for node.js tests
- Add integration-tests skill documentation

* Address Copilot review feedback

- Quote cd $ROOT, rm -rf $VSCODEUSERDATADIR, rmdir %VSCODEUSERDATADIR%
- Quote --runGlob pattern to prevent premature glob expansion
- Use GREP_ARGS array for safe grep forwarding in .sh
- Use conditional call with proper quoting for grep in .bat
- Deduplicate suite list into KNOWN_SUITES variable
- Remove unused EXTRA_ARGS and ARGS variables from .bat

* Fix Windows CI: remove unnecessary enabledelayedexpansion

The original script used plain 'setlocal'. Adding 'enabledelayedexpansion'
may affect path resolution behavior on Windows CI. Since no delayed
expansion (\!var\!) syntax is used, revert to the original 'setlocal'.

* Fix Windows CI: capture %~dp0 before call :label corrupts it

In Windows batch, 'call :label' can change what %~dp0 resolves to.
Our should_run_suite subroutine uses 'call :should_run_suite', which
caused %~dp0 to resolve to the wrong directory for extension paths
that appear after the subroutine call. Capture the script directory
once at startup into %SCRIPT_DIR% and use it everywhere.
2026-03-28 11:23:37 +11:00
Matt Bierner af32b7b329 Revert "Add min-release-age in npmrc files"
This reverts commit a440ae0518.
2026-03-11 10:07:42 -07:00
Matt Bierner a440ae0518 Add min-release-age in npmrc files
For #299632

Not fully enabled unless you're using a recent npm. Next step will be to bump the min node/npm versions for the workspace too
2026-03-10 20:33:07 -07:00
Matt Bierner ffc4f9dcb3 Reapply 8e445caeff
Switching to a slightly older postcss version to avoid the official build issue
2026-03-03 10:57:52 -08:00
Matt Bierner 8e445caeff Revert "Remove remaining webpack references for building extensions"
This reverts commit 3d7cf10fd1.
2026-03-02 22:42:15 -08:00
Matt Bierner 3d7cf10fd1 Remove remaining webpack references for building extensions
All extensions now should be fully ported over to use esbuild instead of webpack
2026-03-02 15:07:39 -08:00
Martin Aeschlimann 36d424971f [html/css/json] update services (#297113) 2026-02-23 22:17:23 +00:00
Matt Bierner d36696b482 Esbuild the html and json extensions
Switches from webpack to esbuild
2026-02-19 00:33:01 -08:00
Raymond Zhao e987c5242e chore: bump extension versions (#295040) 2026-02-13 04:15:03 +05:00
Matt Bierner ee01088b74 Update roots 2026-01-30 13:12:58 -08:00
Matt Bierner 0d9a2ef2b0 Add explicit rootDirs 2026-01-30 11:07:53 -08:00
Martin Aeschlimann 5561fdf4f3 [css/html/json] update services (#280428) 2025-12-01 20:45:13 +00:00
Martin Aeschlimann cee904f80c remove some anys (#271651) 2025-10-16 11:48:38 +02:00
Matt Bierner 162806006a Update a few package-locks for mocha 2025-10-13 11:13:12 -07:00
Matt Bierner 98b069c041 Work towards getting isolated built-in extension compiles
For #271167

This makes it so our built-in extensions can mostly be built using `tsc` on the command line. Previously the extensions were picking up a lot of typing info from the root `node_modules` that meant they weren't truly independent
2025-10-13 11:03:20 -07:00
Matt Bierner 360c9fd134 Add lint rule for as any and bulk ignore all existing breaks
For #269213

This adds a new eslint rule for `as any` and `<any>({... })`. We'd like to remove almost all of these, however right now the first goal is to prevent them in new code. That's why with this first PR I simply add `eslint-disable` comments for all breaks

Trying to get this change in soon after branching off for release to hopefully minimize disruption during debt week work
2025-10-02 23:38:33 -07:00
Martin Aeschlimann 153c4c2aa9 [css/html/json] update services (#268964) 2025-09-29 22:00:05 +00:00
Matt Bierner ed71020bfc Convert extension webpack scripts to modules 2025-08-07 17:20:22 -07:00
Matt Bierner 30b93b1217 Bump extensions to target es2024
I reviewed the various changes and library additions of es2024 and it seems they are widely supported across node and modern browsers
2025-08-05 10:40:33 -07:00
Ladislau Szomoru 4d7c56ee82 Engineering - Add GitHub action for pull requests (#254056)
* Test - handle running tests as part of a GitHub action

* Add GitHub action files
2025-07-04 08:21:56 +00:00
Martin Aeschlimann b9558f6405 [css/html/json] update services (#253088) 2025-06-30 23:15:58 +02:00
Martin Aeschlimann a74b37c62f [css/json/html] update services (#250307) 2025-06-02 17:48:12 +00:00
Robo 12326f9906 chore: update to Electron 35 (#245423)
* chore: bump electron@35.0.1

* chore: update types/node@22.x

* chore: update web types for node v22.x

* chore: bump electron@35.1.2

* chore: update node.js build

* chore: update app.dock usage

Refs https://github.com/electron/electron/commit/71f3ff6bf289745c74d48cf54c254120a70804b4

* chore: bump electron@35.1.4

* chore: bump electron@35.1.5

* ci: bump sysroot to glibc 2.28 and gcc 10.5.0

* ci: enable timeout for smoketests

* chore: bump min glibcxx to 3.4.26 for server

* Revert "ci: enable timeout for smoketests"

This reverts commit afb637e85d.

* chore: update debian dependencies

* fix: workaround npm.ps1 argument parsing with powershell

* chore: update rpm dependencies

* test: partially revert changes from 242535

* test: remove redudant keybinding dispatch for selectTab

* test: fix test failure from running configured tasks

* test: focus settings editor for preferences.test.ts

* node - adopt compile cache (#246835)

* node - adopt compile cache

* adopt for utility process

* tweaks

* log state of compilation cache

* Revert "log state of compilation cache"

This reverts commit f3840387a583013834762e2c44f6e8424929297f.

* Revert "node - adopt compile cache (#246835)"

This reverts commit 673a00cab66c9bac87f3cd27b80efa41c80150f1.

* chore: update builds

* chore: bump electron@35.2.0

* chore: bump electron@35.2.1

* chore: bump electron@35.2.2

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
2025-05-09 19:03:36 +09:00
Martin Aeschlimann d9951c029e [html] JavaScript IntelliSense in <script type=module> HTML without quotes breaks (#247405) 2025-04-29 14:32:54 +00:00
Martin Aeschlimann 63acf66b1c [css/html/json] update services (#247404) 2025-04-25 09:28:57 -07:00
Martin Aeschlimann d15f6eee9b Merge pull request #244074 from nknguyenhc/goto-html
Goto definition for built-in symbols in HTML script
2025-04-10 16:50:55 +02:00
Martin Aeschlimann 165c1094cd polish 2025-04-10 11:24:30 +02:00
Martin Aeschlimann e833c72359 update css service (#245688) 2025-04-04 16:29:20 +02:00
nknguyenhc 618a091f90 Remove sending of extension URI 2025-03-28 23:00:30 +08:00
nknguyenhc 4baf61eeb2 Add reading library files to HTML server 2025-03-28 22:48:10 +08:00
Martin Aeschlimann b3c8c9f11d [css/html/json] update services (#244509) 2025-03-24 15:32:33 -07:00
nknguyenhc c1da035939 Some error handling 2025-03-22 00:53:20 +08:00
nknguyenhc c8c2281cba Handle libs on web 2025-03-22 00:47:25 +08:00
nknguyenhc f2ea517495 Move function to javascriptLib 2025-03-21 19:02:12 +08:00
nknguyenhc d9d05285b9 Goto definition for DOM classes in HTML 2025-03-20 11:23:00 +08:00
Derek Yang 77f0483dcd Add additional test case containing no escaped quotes 2024-12-05 14:22:54 -05:00
Derek Yang 4685d75964 Fix CSS errors when using HTML escaped quotes 2024-12-04 23:48:25 -05:00
Martin Aeschlimann 8713346d2b [css/json/html] update services (#235034) 2024-12-02 22:13:01 +01:00
Martin Aeschlimann fc6d94b806 [css/json/html] adopt latest lsp, update to module: node16 (#230371)
* adopt latest language-server/client

* update package-locks

* transpiler to support Node16
2024-10-03 13:49:56 +02:00
Johannes e6f315d2fc eng - use esModuleInterop for extensions 2024-10-01 21:57:30 +02:00
Robo 9494a89080 chore: add npmrc to extensions folder (#230214) 2024-10-01 12:43:01 +02:00
Matt Bierner 51fa4d0172 Fix more type assertions (#230156)
* Fix more type assertions

For #211878

* Fix type error
2024-09-30 14:17:06 -07:00
Robo b5a6aa14a8 feat: switch to npm as default package manager (#226927)
* feat: move from yarn to npm

* chore: skip yarn.lock files

* fix: playwright download

* chore: fix compile and hygiene

* chore: bump vsce@2.17.0

Refs https://github.com/microsoft/vscode-vsce/commit/8b49e9dfdf909ad3af2b9ec9c825f5b501f6d75e

* test: update results for bat and sh colorizer tests

* fix: add missing lock files for windows

* fix: switch to legacy-peer-deps

* chore: update markdown-it@14.1.0

Refs https://github.com/markdown-it/markdown-it/commit/737c95a12976357df99652e4b51d831cac4a75aa

esbuild step in extensions-ci-pr was previously using markdown-it
from root which had userland punycode and was able to compile successfully.

* ci: increase pr timeout for windows integration tests

* chore: fix product build

* build: ignore extension dev dependency for rcedit

* build: fix working directory inside container

* build: fix dependency generation

* npm: update dependencies

* ci: use global npmrc

* ci: update cache

* ci: setup global npmrc for private npm auth

* build: fix extension bundling

* chore: sync npm dependencies

* ci: debug env variables for container

* ci: fix win32 cli pipeline

* build: fix npmrc config usage for build/ and remote/ dirs

* fix: windows build

* fix: container builds

* fix: markdown-language-features tests and bundling

```
[03:58:22] Error: Command failed: /Users/demohan/.nvm/versions/node/v20.15.1/bin/node /Users/demohan/github/vscode/extensions/markdown-language-features/esbuild-notebook.js --outputRoot /Users/demohan/github/vscode/.build/extensions/markdown-language-features
✘ [ERROR] Could not resolve "punycode"

    extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```

Adds userland package based on https://github.com/markdown-it/markdown-it/commit/beed9aee2c1b44819afc25d485e86a6c699b6ef0

* fix: container builds for distro

* chore: update yarn occurrences

* fixup! chore: bump vsce@2.17.0

Uses the closest version to `main` branch that does not
include https://github.com/microsoft/vscode-vsce/commit/d3cc84cdec99b8e9f24be63d1a2a54abe908f68b
while still having the fix https://github.com/microsoft/vscode-vsce/commit/8b49e9dfdf909ad3af2b9ec9c825f5b501f6d75e

* chore: sync npm dependencies

* chore: sync npm dependencies

* chore: sync npm dependencies

* chore: throw error when yarn is used for installation

* chore: add review feedback

* chore: switch exec => run where needed

* chore: npm sync dependencies

* fix: markdown-language-features bundling

```
✘ [ERROR] Could not resolve "punycode"

    extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```

Adds missing userland package based on markdown-it/markdown-it@beed9ae,
can be removed once we update markdown-it >= 14.1.0

* ci: rename no-yarn-lock-changes.yml

* chore: sync npm dependencies

* ci: restore no-yarn-lock-changes.yml

We can disable it in a separate PR to keep the required
checks happy and also need workflow edit perms.

* chore: sync npm dependencies

* ci: rebuild cache

* ci: fix no-package-lock-changes.yml

* chore: bump distro

* chore: rm yarn.lock files

* chore: rm yarn.lock files without dependencies

* chore: add vscode-selfhost-import-aid to postinstall dirs

* chore: bump distro
2024-09-06 22:18:02 +09:00
Martin Aeschlimann ce9ce04ab5 [css/json/html] update services (#226666)
* [css/json/html] update services

* revert server/client update
2024-08-27 00:25:24 +02:00
Martin Aeschlimann 45be8b8f75 [css/json/html] update services (#217364) 2024-06-24 11:47:01 -07:00
Robo 5216c04428 chore: update to electron 29 (#209818)
* chore: update electron@29.1.0

* chore: update typings to 20.x

* chore: bump electron@29.1.5

* ci: fix crash in compiling extensions-ci

* chore: disable .d.ts check for build/

$ ../node_modules/.bin/tsc -p tsconfig.build.json
node_modules/@types/chokidar/index.d.ts:21:14 - error TS2420: Class 'import("/Users/demohan/github/vscode/build/node_modules/@types/chokidar/index").FSWatcher' incorrectly implements interface 'import("fs").FSWatcher'.
  Type 'FSWatcher' is missing the following properties from type 'FSWatcher': ref, unref

21 export class FSWatcher extends EventEmitter implements fs.FSWatcher {
                ~~~~~~~~~

node_modules/chokidar/types/index.d.ts:8:14 - error TS2420: Class 'import("/Users/demohan/github/vscode/build/node_modules/chokidar/types/index").FSWatcher' incorrectly implements interface 'import("fs").FSWatcher'.
  Type 'FSWatcher' is missing the following properties from type 'FSWatcher': ref, unref

8 export class FSWatcher extends EventEmitter implements fs.FSWatcher {
               ~~~~~~~~~

Found 2 errors in 2 files.

Errors  Files
     1  node_modules/@types/chokidar/index.d.ts:21
     1  node_modules/chokidar/types/index.d.ts:8

Refs https://github.com/paulmillr/chokidar/commit/a0f9e09f64ce7ae70cc6ae1f5615f65cb35f532f

* chore: update core types

* temp: fix layer validation

* chore: update nodejs checksums

* ci: use latest v20 LTS for missing node-gyp

Refs https://github.com/npm/cli/commit/eacec5f49060d3dfcdc3c7043115619e4bb22864

* ci: define LIBCPP_HARDENING_MODE

* ci: fix crash in vscode-web-min-ci

* chore: update rpm deps-list

* chore: bump tree-sitter-typescript@0.20.5

* chore: bump electron@29.3.0

* chore: bump electron@29.3.1

* chore: update rpm deps-list for x86_64

* ci: disable io_uring UV backend on linux

* ci: disable io_uring backend for oss as well

* chore: update typings to 20.x

* ci: add TODO for io_uring workaround

* chore: bump distro

* chore: update preinstall node version checks

* chore: update @types/gulp

Refs https://github.com/microsoft/vscode/issues/212442

* ci: disable io_uring in more test suites
2024-05-11 01:20:28 +09:00
Martin Aeschlimann fb757ca041 [json/html/css] update services (#208443)
* [json/html/css] update services

* use older language client

* older languageclient

---------

Co-authored-by: Logan Ramos <lramos15@gmail.com>
2024-03-22 21:52:12 +01:00
Martin Aeschlimann 4b0d700f7a [json/css/html] Update dependencies (#203084)
* update json/css/html

* fix typing

* revert to vscode-languageclient@9.0.1
2024-01-23 13:00:55 +01:00
Martin Aeschlimann 8f0f284b0f [html] update service (#196318) 2023-10-23 14:21:46 -07:00
Martin Aeschlimann e1b62b9b9e [html/css/json] update language servers (#195157)
* [html/css/json] update language servers

* extension webpack: add conditionNames to prefer import over require
2023-10-11 09:41:12 +02:00