* make editor readonly and disable squiggle while inline chat shows reply
https://github.com/microsoft/vscode/issues/226160
* tweak inline chat hint
only show on intented empty lines, hide when command run
* fix tests (only disable squiggle, not readonlyness)
* 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 8b49e9dfdf
* 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 737c95a129
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 beed9aee2c
* 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 d3cc84cdec
while still having the fix 8b49e9dfdf
* 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
* Use electron net directly in shared process
* add built file
* introduce shared electron-node layer
* remove electron-utility layer
* fix (overlook): move back cli files to node
* Make space for tree sitter
* Add the tree sitter wasm file
* Very naive tree-sitter syntax highlighting for html, with a layer breaker
* Update tree when content changes
* WIP for making abstract tokens class
* Handle theme changes
* Replace entire text model value with parse callback
* Perf improvements
* Add tree-sitter-typescript
* Add typescript + better initial parsing
* Refactor into tree parsing service and fix flaw in parse callback
* Remove things that aren't the parser service
* Add yielding
* Remove changes that aren't required for PR
* Remove more file changes
* Reduce yield to 50 ms
* Fix incremental parsing
* Try update node-abi
* Revert "Try update node-abi"
This reverts commit df28801e31.
* Update text buffer chunk api
* fix build
* Remove tree-sitter dependency
* Adopt new, as yet unpublished, `@vscode/tree-sitter-wasm` package
* Use published `@vscode/tree-sitter-wasm` package
* Break `TreeSitterTree` and `TreeSitterParserService` into better pieces
and:
- document the order of editor changes
- use service injection where `TextModel` is constructed
* Fix tests
* Remove unneeded import
* Fix missing tree-sitter-wasm in web and remote
* Make package.jsons match
* Add @vscode/tree-sitter-wasm to web loader config
* Try using importAMDNodeModule
* PR feedback
* Add race condition test for changing language while loading language
* Use same timeout
* Queue content changes
* Remove override dispose
* Move queue into TreeSitterTree
---------
Co-authored-by: Peng Lyu <penn.lv@gmail.com>
* Make space for tree sitter
* Add the tree sitter wasm file
* Very naive tree-sitter syntax highlighting for html, with a layer breaker
* Update tree when content changes
* WIP for making abstract tokens class
* Handle theme changes
* Replace entire text model value with parse callback
* Perf improvements
* Add tree-sitter-typescript
* Add typescript + better initial parsing
* Refactor into tree parsing service and fix flaw in parse callback
* Remove things that aren't the parser service
* Add yielding
* Remove changes that aren't required for PR
* Remove more file changes
* Reduce yield to 50 ms
* Fix incremental parsing
* Try update node-abi
* Revert "Try update node-abi"
This reverts commit df28801e31.
* Update text buffer chunk api
* fix build
* Remove tree-sitter dependency
* Adopt new, as yet unpublished, `@vscode/tree-sitter-wasm` package
* Use published `@vscode/tree-sitter-wasm` package
* Break `TreeSitterTree` and `TreeSitterParserService` into better pieces
and:
- document the order of editor changes
- use service injection where `TextModel` is constructed
* Fix tests
* Remove unneeded import
* Fix missing tree-sitter-wasm in web and remote
* Make package.jsons match
* Add @vscode/tree-sitter-wasm to web loader config
* Try using importAMDNodeModule
* PR feedback
* Add race condition test for changing language while loading language
* Use same timeout
* Queue content changes
* Remove override dispose
* Move queue into TreeSitterTree
---------
Co-authored-by: Peng Lyu <penn.lv@gmail.com>
* don't dimiss inline chat content widget when already having typed something
https://github.com/microsoft/vscode-copilot/issues/6067
* extract `TextOnlyMenuEntryActionViewItem` for reuse
* remove unused variables
* * show chat input below request/response pairs
* setting for text-only buttons
* more dynamic buttons
* always show the first request, don't repopulate input with last message
* keep progress bar hidden, rely on "Generating..."
* no more special background color
* add `minimal` renderer style for chat renderings
* tweak font-size for details when render mode is minimal
* stable scroll position for inline chat, don't push down the lines chat is editing but push the inline chat upwards
* more buttons more compact, tweak labels
* * add missing service dependency
* repopulate input for some unit test
* allow output from `InteractiveChatController` suite
* add `ListenerRefusalError` and `ListenerLeakError` which get logged when listener thresholds are exceeded.
The `stack` property of these errors will point towards the most frequent listener and how often it is used. If that's a high number there is a leak (same listener is added over and over again), if that's a low number there might be a conceptual flaw that an emitter is simply too prominent.
* rightfully don't use Error.captureStackTrace (v8/nodejs only)
- Som more tweaks to our own runner scripts to allow asking for the
generated coverage formats.
- Add actions alongside debug/run for executing coverage profiles
- Finish with displaying function coverage stats in Coverage view,
allow changing its sort order.
Fixes#200529Fixes#199380
- Allow coverage bar color thresholds to be configurable as the Java
folks requested.
- Update some of our scripts for integration into
the selfhost test runner.
- Initial parts of showing function coverage in the Test Coverage view.
(Still a work in progress, more tomorrow)
* snippet completions should also check with the completion model
this will allow to return "more" from the snippet completion item provider and rely on the completions model to do some filtering
* when debugging tests allow to use console.log
* fix https://github.com/microsoft/vscode/issues/191070
This adds an `assertHeap` function that can be used in tests. It
takes a heap snapshot, and asserts the state of classes in memory. This
works in Node and the Electron sandbox, but is a no-op in the browser.
Snapshots are process asynchronously and will report failures at the end
of the suite.
This method should be used sparingly (e.g. once at the end of a suite to
ensure nothing leaked before), as gathering a heap snapshot is fairly
slow, at least until V8 11.5.130 (https://v8.dev/blog/speeding-up-v8-heap-snapshots).
When used, the function will ensure the test has a minimum timeout
duration of 20s to avoid immediate failures.
It takes options containing a mapping of class names, and assertion functions
to run on the number of retained instances of that class. For example:
```ts
assertSnapshot({
classes: {
ShouldNeverLeak: count => assert.strictEqual(count, 0),
SomeSingleton: count => assert(count <= 1),
}
});
```
Closes https://github.com/microsoft/vscode/issues/191920
Second attempt at this, which should work. Stop trying to use
exposeFunction, which seems to work poorly on macOS webkit in CI, and
just run a server with HTTP endpoints to do the "RPC."
Reuses Alex's "yaserver" module that we were already using for other
tests. Uses a secure random prefix for security in each run.
Should fix the issue that @roblourens and @Yoyokrazy were hitting with snapshot tests on macOS WebKit in CI. Not pretty, but I'd rather do this than spend a bunch of time chasing down something that certainly seems to be a browser issue.