* ipc: use vql for uint types
On the plane I was reverse-engineering ipc.ts to implement it in Rust
and see if we could have a "service mode" for the CLI that we could
interact with like any other vscode process.
In doing so, I noticed that numbers in the protocol--which are used at
least twice in the message header and ID--were encoded as JSON. I was
curious what benefits we'd get from encoding them as variable-length
integers instead.
It makes the message shorter, as expected. Encode/decode time are very,
very slightly lower. I'm not sure it's worth the extra complexity, but
I have included it here for your consideration.
* fixup tests
* Highlight label should not create extra empty dom nodes
I noticed that the `HighlightedLabel` class creates extra `span` elements for text ranges. These should not be needed. Using text children directly should be faster for creation and also reduce the number of nodes in the document
I also related the conditional spread with a longer version that uses a simple call to push. This is worth doing since `HighlightedLabel` is so widely used in the editor
* Update tests
* Update smoke test selector
* Update css
* Remove vscode-notebook-tests in favor of an .ipynb in vscode-smoketest-express
* Update build folder
* Add build task to correct platform
* Build for smoke tests on other platforms
* Fix repo url and remove comment
* Just -media?
* Update darwin/win32 as well
Resubmission of #157532 with the following changes:
- Use `eslint-plugin-local` instead of `yarn` link to run our plugins
- Move our plugins to a top level `.eslintplugin` dir (as required by `eslint-plugin-local`)
- Update all names to `local/`
* Run our custom eslint rules using ts-node
Use `ts-node` to run our custom eslint rules. This lets us delete the pre-compiled js. It also means you can don't have to compile the rules while editing them
As part of this change, I've also switched us to using an eslint plugin instead of a rulesDir. This is now the preferred way to ship custom rules
* Fix two more disables
* Move ts-node to project root
* Enable transpileOnly
* smoke(electron): wait for page navigation to commit before using driver
* chore: only use window event in Electron
* chore: implement load event for web
* 💄
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>