* Initial implementation for external repositories
* Added setting
* Add basic welcome views
* Replaced "Always Open" with "Configure"
* Remove code duplication
* Polish based on feedback
* Language consistency
* Update notification severity
* Move away from the "external repository" terminology
* Refactor notification logic
* Saving my changes
* Further improvements
* Refactor parent repository notification
* Update message and fix edge case when setting is set to `never`
* support workspace trust keyboard shortcut
* macos test/fix
* Add support for short labels to the Button
* Remove code that is not needed
Co-authored-by: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com>
* recreate logging from other machine
* comment out openSystemBrowser
Because I dont have the default browser set up correctnly on any of my
machiens
* Add vscode-wasm-typescript dep
And some logging as I figure out how to use it
* remove unused reference to module
* use require reference that linter allows
* Add vscode-wasm-typescript to tsserver.web.js
Use webpack's CopyPlugin transform pattern to do this manually. This is
probably a bad idea! It's just for prototyping purposes.
* Update vscode-wasm-typescript dependency
* Fix minor syntax in webpack hack
Nonetheless required for it to work!
* Fix another typo in webpack hack!
* Fix provided typescript path
Another typo. Guess my local test wasn't running the contents really
* Try to improve module.exports handling in webpack hac
* tsserver.web.js comes from local builds
Also:
- tsserver.js is no longer minified
- log crossOriginIsolated
* First attempt to set up server-side support
* Remove auto-imported identifier
* Move sync-api setup code to serverProcess.browser.ts
Because it's browser-specific
* Reorder webpack hack and clean up unused logging
* Update vscode-wasm/vscode-wasm-typescript dependencies
* Add file watching
* Extract webpack hack
Build only the ts parts of tsserver.web.js, don't rebuild the vscode
extension. This is a lot faster.
* Remove manual verbose logging
Sheetal showed me the correct way to create a verbose logger instead.
* Add vscode-test-web to semantic-supported schemes
And make isWeb support semantic mode.
* Also update the webpack-hack-only build
* Switch to tsserverlibrary
Also paste in some example code for cancellation, which is not finished
at all.
* Remove bogus auto-import and unneeded (?) dep
* remove webpack-like hack
* move code from vscode-wasm-typescript
* Initial prototype of cancellation
It compiles and looks kind of plausible. But I haven't tested it yet.
* Switch tsserver to separate MessageChannel
* Move watches to a separate MessagePort
Further simplifies the message dispatch code by shifting complexity to
setup. And the setup is straight-line code.
* switch vscode-web from in-memory to real filesystem
goto-def is currently broken because some part of main vscode still
needs treat the files as in-memory, though.
* Make toResource translate / -> vscode-test-web
* Encode scheme and authority in TS filenames
Like the previous host did, but without the leading ^ that TS hard-codes
as "in-memory".
The tsserver host needs to know about the encoding, but the translation
is in a single function. This also means that displayed file paths are
prefixed with /scheme/authority (/vscode-test-web/mount in my testing), but I think that's fine.
* Lift parseUri outside createServerHost
I'm not using it to set the schema/authority for getCurrentDirectory
right now, so there's no shared state to mutate.
* Special-case URI of lib*d.ts in webServer.toResource
Similar to the special-casing in typescriptServiceClient.toResource.
Also requires passing in the extensionUri. This feels like it's breaking
through at least one abstraction layer, which might be a problem.
* Improve cancellation
1. Simplify cancellation checking in web tsserver host to match the
checking in typescript's node host.
2. Move cancellation of request in the extension to tryCancelRequest
from sendNextRequests.
3. Only send cancellation via node or web cancellation, not both.
* Pass in current request instead of waiting for a fresh one.
* Address initial PR comments
Also add some TODO comments for the revision to watches.
* Add cancellation bit to each (cancellable) request, locally fix an issue with retrieving the cancellation bit
* Switch to per-file/directory watches
Watching the entire filesystem recursively is supposed to be
inefficient.
Not done yet: there is an error when watching directories, but it works.
And I can't tell whether watching files works yet.
* Parse --serverMode partialSemantic in webServer
Now the syntax server actually runs as a syntax server.
* Simplify logging code
* Cleanup in webServer
1. Remove a little logging.
2. Correct failure return value for getFileSize
3. Reorder some methods and parameters.
* Switch to markdown extension's FileWatcherManager
I'm not sure if it's OK to depend on a module from another extension;
it's probably better to include the files from a central place instead.
* Clean up host methods
1. Copy and adapt implementations from node host where possible.
2. Note questions for the PR elsewhere.
3. Remove logging except for caught exceptions.
* More logging/TODO cleanup
* Remove duplicate dependency
* Add setting to enable/disable semantic mode on web
Also gate it behind a check to `crossOriginIsolated`
* Re-order and re-arrange code to minimise PR diff
It won't minimise it *much*, but I also consolidated some
unnecessarily-spread-out code that will be easier to read in the long
term, and possibly easier to read in diff form as well.
* Copy fileWatchingManager to typescript extension
Copy from markdown extension to typescript extension. I used the
existing dependencies in the typescript extension, but verified that
they would work the same.
* Fix linting of webServer
* Align formatting of catch / else
* Extract isProjectWideIntellisenseOnWebEnabled and keep using in-memory prefix when project wide intellisense is disabled
* Make sure we still work if SharedArrayBuffers aren't supported
* Remove symlink support and fix typo
Symlinks are implicitly supported by the filesystem right now.
* Fix compile errors
Co-authored-by: Johannes <johannes.rieken@gmail.com>
Co-authored-by: Matt Bierner <matb@microsoft.com>
* 🖊 Include branch name in commit button popup
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 🖊 Include branch name in "Publish" button popup
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
Fixes#171091
This setting controls TS Server's behavior and should not be exposed directly. Instead you can use the `includeCompletionsForImportStatements` and `suggest.classMemberSnippets.enabled` settings to enable/disable individual types of completions
* Git - cleanup getRemotes()
* Remove test for read-only remote as the code to determine that a remote is read-only has been moved out of the function that does the parsing
This improves the PAT auth flow by showing a modal to open github.com with the scopes already pre-filled.
This should allow for less room for error during the PAT auth.
Additionally, this allows PAT auth flow to be used as a fallback for GH Enterprise flows.
* Revert "Revert "Add experimental setting to define where files should be copied for markdown (#169454)" (#169615)"
This reverts commit b2121c2dbe.
* Fix tests
These paths should always use `/`
Before this change, every single window was writing to the same secret at basically the same time because they would all refresh the token and then attempt to store that refresh token.
I believe this was causing a few race condition bugs that users were seeing.
With this change we now so our best to have only 1 window store the session by relying on the window focused state.
If the window is focused or becomes focused, we will store the refresh token.
If the window detects that another window has stored something, we will not attempt to wait for focus to store something.
If nothing has happened, and it's been 5 hrs (+/- some seconds) go ahead and store it. This is the scenario of when a user has VS Code in the background for like ages but never goes to it.
ref #165115
ref #130893
ref #168485
* fix#167649
* Update src/vs/platform/terminal/common/xterm/terminalQuickFix.ts
* fix#167652
* add builtin everywhere for consistency
* fix #167621 and fix#167646
* get rid of type in api
* fix #167584
* fix#167587
* fix#167587
* fix#167590 and fix#167557
* Revert "fix #167652"
This reverts commit cf4cc72790.
* Update src/vs/workbench/contrib/terminal/common/terminal.ts
Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
* Update src/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts
Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
* use const enum + more
* use classes
* update npm package.json
* add example for outputMatcher
* improve description
Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
* Add border to quick pick to match menus
* Add more borders and border radius to widgets
* More border updates
* Move color defaults to themes
* Address feedback
Use JSX in display names of the TypeScript React and JavaScript React languages
Fixes#138285
This changes the display name of the languages `JavaScript React` -> `JavaScript JSX` and `TypeScript React` -> `TypeScript JSX`
This only changes the display names and leaves the ids alone. Changing the ids would be a very breaking change for extensions with no real user benefits
This removes extra code we had to support TS versions that are 4+ years old. We do not test these versions and a very small number of users are actually using them
* Added ${rootNameShort} formatting
* Add unit tests for label that use rootNameShort
* move `Verbose` interface to a better location
* more support
* 💄
* fix tests
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
* Add experimental default dark/light themes
* Update themes and name
* Add colorizer test results
* Update accent color
* Fix status bar no folder background issue
* Fix tree indent strokes
* Update lighter layer
* Fix breadcrumbs
* Update accent
* Update light lights and dark links
* Update colorizer test
Fixes#165055
We need to consider the distance between the end of the previous element and start of the next element. Previously we were taking distance from start of the previous to start of the next
* 🎁 Add `killOnServerStop` to schema
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 📜 Add description for `killOnServerStop`
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 🔨 Stop created debug session on server stop
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 🔨 Push kill listeners into another disposable container
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 🐛 Prevent leak when new debug session fails to start
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 🔨 Use more verbose name for debug session tracker ID
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
Since the warning is initiated through user action, and the user is required to interact with the warning to finish their intended action we should use a modal dialog here.
* Add explorer.autorevealExclude setting
* Update setting name, only check sibling once
* linting
* Correct boolean order and add catch for force reveal
* Check for force instead of converting
* Do not make revealexcludes inherit from file.excludes
* Linting
* Initial draft.
Not working.
Also not correctly formatted, I'll do that later.
* Various fixes
It works now
* A bit of cleanup
* Move webServer to its own directory
And prepare for getting rid of dynamicImportCompat.js hack
* Remove dynamicImportCompat.js hack
* Revert unrelated change
* Webpac tsserver.web.js with webServer.ts as entrypoint
Instead of using CopyPlugin.
1. Shipping multiple entrypoints in a single file required fixes to
build code.
2. There are a couple of warnings from `require` calls in
tsserverlibrary.js. Those are not relevant since they're in non-web
code, but I haven't figured how to turn them off; they are fully dynamic
so `externals` didn't work.
* Ignore warnings from dynamic import in tsserver
* Add to .vscodeignore files