Commit graph

1785 commits

Author SHA1 Message Date
Matt Bierner 4d59b19b73
Enable project wide JS/TS intellisense on web by default (#182812)
Fixes #170920

Enables this feature by default but also disables semantic errors. This is needed to avoid lots of annoying false positive errors for external modules. We plan to remove this limitation once type downloading support is enabled
2023-05-18 00:06:00 +02:00
Matt Bierner adddf406d0
Simplify buffer enums (#182811) 2023-05-18 00:01:06 +02:00
Matt Bierner 1569f9d9d7
Don't cancel file reopen if language has changed (#182657)
Fixes #182526

The chat panel changes the language of a document. This revealed a bug in JS/TS about language changes.

Normally changing a language should close and reopen a text document. However we added an optimization to not do this full flow if the open then close happens quickly

However this causes issues if the file changes languages as TS gets into a state where its doc language id does not match VS Code's language id. To fix this, I've limited the optimization to only apply when the expected script kinds match
2023-05-16 12:28:14 -07:00
Matt Bierner 8b11c814cc
Use better placeholder for move to file (#182108) 2023-05-10 12:56:25 -07:00
Bhavya U 6efb31c7a9
Add temporary nodeJS walkthrough (#181441) 2023-05-03 12:31:11 -07:00
Matt Bierner be03603bfe
Remove duplicated types (#181267) 2023-05-01 19:15:34 +00:00
Matt Bierner 8243eb2556
Fix enumItem labels (#180889)
`javascript.preferences.importModuleSpecifierEnding` and `typescript.preferences.importModuleSpecifierEnding` got out of sync here
2023-04-25 16:14:03 -07:00
Matt Bierner 42fbc2f784
Use custom command to open JS doc links (#180737)
Fixes #162507

Prevents incorrect auto transform of the uri
2023-04-24 15:05:14 -07:00
Matt Bierner 03540d605f
Pick up latest TS for building VS code (#180706) 2023-04-24 20:14:30 +02:00
Matt Bierner 6a9c24cbd0
Update importModuleSpecifierEnding to mention .ts (#180349)
Makes the `importModuleSpecifierEnding` settings mention that it can include `.js` or `.ts`
2023-04-19 20:43:53 +02:00
Matt Bierner 6fefe056e2
Don't show JS/TS loading indicator eagerly (#180265)
This fixes the loading indicator showing when an extension opens an in-memory JS file that doesn't belong to any project
2023-04-18 19:14:49 -07:00
Matt Bierner f24d50369f
Add note on required TS version to setting (#180271) 2023-04-18 19:14:17 -07:00
Donald33 Wang 7122771026
Support custom switch-case indentation (#179670) 2023-04-18 17:24:51 +00:00
Matt Bierner 95396f14db
Don't complete jsx tag as function call (#180171)
Fixes #177606
2023-04-17 21:12:28 -07:00
Matt Bierner 24c44070ae
Revert "Nicely format logged objects (#179405)" (#179894)
This reverts commit 5d3f960b67.

Based on comments in https://github.com/microsoft/vscode/pull/179405#issuecomment-1506843399
2023-04-13 18:55:06 +01:00
Matt Bierner 26ccce443f
Enable renaming of matching jsx tags (#179806)
Fixes #159534

Uses the new linked editing api to make f2 rename matching jsx tags
2023-04-12 21:42:59 +02:00
Matt Bierner 5d3f960b67
Nicely format logged objects (#179405)
Follow up oin https://github.com/microsoft/vscode/issues/176479#issuecomment-1498597499

This uses JSON.stringify to format objects that are logged. Currently they are all printed as a single line without any whitespace
2023-04-11 13:04:44 -07:00
Matt Bierner a58d9dc08f
Update linked editing file name (#179643)
Also make sure we are enabled in all syntax files
2023-04-10 15:55:44 -07:00
Matt Bierner 06659f0ba9
Add stubs for jsx linked editing (#176279)
* Add stubs jsx linked editing

For https://github.com/microsoft/TypeScript/issues/51832

* Update for new TS changes

* Update to finalized protocol
2023-04-10 23:32:09 +01:00
Andrew Branch 117668153b
[typescript-language-features] Support replacing Go to Definition with Go to Source Definition by preference (#178840)
* Add preference for replacing Go to Definition with Go to Source Definition

* Support replacing Go to Definition with Go to Source Definition by preference

* Predicate call on TS version
2023-04-05 21:17:01 +00:00
Matt Bierner cc69fb1aad
Switch TS ext to use LogOutputChannel (#179205)
Fixes #176479
2023-04-05 10:44:21 -07:00
Daniel Rosenwasser 93026118c5
Remove Node.js walkthrough/getting started guide (#176325)
Remove Node.js walkthrough/getting started.

Co-authored-by: Matt Bierner <matb@microsoft.com>
2023-04-04 15:27:13 -07:00
Martin Aeschlimann 59608d3aee
Update webpack, css/file & style loaders (#179008) 2023-04-03 16:10:40 +02:00
Matt Bierner b9202b6408
Use better names in js/ts text rendering (#178711)
Use better names
2023-03-30 21:10:51 +02:00
Matt Bierner 0acd272268
Refactor structure of typescript extension (#178634)
There were way to many files under `util`. This change moves around files to more meaningful locations
2023-03-29 16:54:53 -07:00
Matt Bierner ce00cd7812
Add initial prototype for JS/TS move to file refactoring (#178535)
Add initial support for move to file

Fixes #176705
For https://github.com/microsoft/TypeScript/pull/53542
2023-03-28 16:49:50 -07:00
Matt Bierner 6f5920818a
Bump eslint versions (#178516) 2023-03-28 14:16:09 -07:00
Matt Bierner 07b2b6066b
Remove extra file check in documentHighlights (#177879)
Fixes #177823

For document hightlights, it seems TS returns windows paths that use forward slashes. This seems wrong, but we also likely don't need the extra check for the file on our side either since we already pass in `filesToSearch`
2023-03-21 21:09:19 +01:00
Matt Bierner 26e7b9a3bd
TS source actions should not be blocked by pending action requests (#177737)
Fixes #164876
2023-03-21 10:29:56 -07:00
João Moreno c6fbb48ec4
Revert "Update webpack (#177265)"
This reverts commit e88eb65966.
2023-03-17 18:55:15 +01:00
Martin Aeschlimann e88eb65966
Update webpack (#177265)
* update webpack

* update `@types/webpack`

* update copy-webpack-plugin

* update @types/webpack in build

* fix compile error in @types/eslint
2023-03-17 15:07:05 +01:00
Matt Bierner 549d31a5d5
Stop VS Code from transforming uris in tsconfig document link (#177305)
Fixes #160979
2023-03-15 17:17:18 -07:00
Matt Bierner 54921d7173
Pass TS Server the original fs path (#177292)
For #177083

We've had code to normalize the file path for a long time but I don't think it's needed. In the case of samba paths, it also appears to break things

Let's try dropping it and passing along the original `fsPath` instead
2023-03-15 15:00:15 -07:00
Fabio Spampinato 2a20cc59f0
Updated title for typescript.restartTsServer command (#177167) 2023-03-15 16:14:31 +00:00
Matt Bierner 3df6a29a80
Don't skip JS/TS diagnostic updates on equals (#177149)
Even though the diagnostics on the ext host side may be equal, the displayed diagnostic may be at a different spot. We need to make sure the UI is also updated in these cases by setting the diagnostics again
2023-03-14 18:03:51 -07:00
Matt Bierner 1f3da727a9
Bump TS web version (#176577) 2023-03-09 07:32:42 -08:00
Matt Bierner ed43d97e47
Always use TS's sort text in TS 5+ (#176322)
* Always use TS's sort text in TS 5+

Fixes #174628

* Add missing file
2023-03-06 17:12:44 -08:00
Matt Bierner 797291f90f
Fixing some project wide intellisense issues in safari (#176294)
For #175229

- Safari can't transfer `Proxy` objects
- Safari's nested worker polyfill wasn't forwarding along the `ports` field on message events
2023-03-06 12:52:34 -08:00
Matt Bierner 1270982c75
Make add missing new auto fixable (#175720)
Fixes #175719
2023-03-01 06:50:11 +01:00
Matt Bierner 28d9a83f12
Fix TS Server logging on windows (#175600)
Fixes #175172

We need to pass TS the windows style path here
2023-02-28 14:36:27 -07:00
Matt Bierner ce24cb7dac
Fix suggest action toggling (#175567)
Fixes #175113
2023-02-27 20:10:00 +01:00
Matt Bierner 4d247bae44
Don't allow one click reporting of TS Server crashes against VS Code repo when TS server plugins are enabled (#175186)
Don't allow one click reporting of TS Server crashes when TS server plugins are enabled

Fixes #175184
2023-02-22 23:26:18 +00:00
Matt Bierner 5170e1a42b
Use native path for trace directory (#173856)
Fixes #173854

On windows, we need to pass in the `c:\` style path. The normal `/` path causes TS Server to crash
2023-02-08 10:41:10 -08:00
Matt Bierner 095a2f8ae8
Log correct tsserver path (#173708)
Fixes #173707

We previously converted the TS Server log from a simple string to an object. However there were a few cases where this object was incorrectly being converted into a UI string, resulting in `[Object object]`
2023-02-07 09:18:15 -08:00
Matt Bierner 25514d899f
Use pervious crashed TS Server version to check if user was on old TS version (#173620)
Use pervious crashed version to check if user was on old TS version

Fixes #133818
2023-02-06 15:05:19 -08:00
Matt Bierner d948f68bd1
Skip watching lib files on web (#173601)
These files can never change on web so there is no point in creating a watcher for them
2023-02-06 14:01:53 -07:00
Logan Ramos 8e6bcc9b9e
Bump module to new package (#173599) 2023-02-06 12:29:36 -08:00
Matt Bierner eec5c907ea
Fix web TS Server trying to read files outside of project root (#173591)
There's a bug on the TS Server side that causes it to traverse out of the project root when checking for directories like `node_modules`. On web this ends up being super slow because it goes to the network

This fix blocks those reads
2023-02-06 11:17:21 -08:00
Matt Bierner 69b6f978f6
Make sure we pass TS server the transformed project root (#173096)
When opening a file, we pass TS Server a project root to prevent it from scanning too many files. On web, we need to pass the transformed project root, not the original uri

This PR also removes some confusingly duplicated methods and renames them to make their behavior more clear
2023-02-02 11:30:04 +00:00
Matt Bierner 6c12ba1f81
Revert to TS 4.9.5 for this iteration (#173081)
TS 5.0 doesn't come out til mid March
2023-02-01 15:12:13 -08:00
Matt Bierner 224472b8b9
Pick up latest TS nightly (#172928)
This lets us remove the `ignoreWarnings` webpack hack
2023-01-31 16:37:29 -08:00
Matt Bierner 855dd78852
Fix open ts server log command on web (#172885)
Fixes #172853
2023-01-31 06:34:00 +01:00
Matt Bierner 4630d8e4de
Remove more implicit activation events from built-in extensions (#172838) 2023-01-30 17:25:56 -08:00
Matt Bierner 5be17a3f51
Use uris instead of string paths for TS Server logs (#172872) 2023-01-30 16:28:53 -08:00
Matt Bierner e0ea3d9b11
Also route stdlib files through TS Server virtual file system (#172857)
This workaround doesn't seem to be needed any more
2023-01-30 14:14:21 -08:00
Matt Bierner 99d9949a7c
Make remove await quick fix auto fixable (#172854)
Make remove `await` quick fixable

Fixes #172851
2023-01-30 14:09:30 -08:00
Matt Bierner 35b008315a
Fix web compile for TS 5.0 (#172856)
This fixes the error message in `ignoreWarnings` for TS 5.0
2023-01-30 14:09:08 -08:00
Matt Bierner f3edd0e0be
Fix TS Server always logging (#172562)
Fixes #172554
2023-01-30 09:39:19 -08:00
Matt Bierner b1a4dfdcfd
TS should ignore github: files (#172603)
Fixes #172597
2023-01-30 08:39:43 -08:00
Johannes Rieken 46a157973f
fix TS filterText/insertText updating (#172616)
fixes https://github.com/microsoft/vscode/issues/172419
2023-01-27 10:06:14 +01:00
Matt Bierner 869f00e0c6
Restore slice call for decoding file contents (#172438)
We need to slice the bytes since we can't pass a shared array to text decoder
2023-01-25 20:59:20 +01:00
Matt Bierner d749617c78
Add more verbose logging to TS Server web calls (#172325) 2023-01-25 02:30:33 +01:00
Matt Bierner 6c710f3324
Give debug name to the TS Server workers (#172328)
Give a debug name to the TS Server workers

This gives the TS Server worker process debug name, which helps with debugging and profiling
2023-01-24 17:07:33 -08:00
Matt Bierner 983ee9c0f9
Make sure only lib files go through XMLHttpRequest in TS Server (#172327)
If project wide IntelliSense is enabled, we want to make sure only `lib` files do through the old `XMLHttpRequest` flow
2023-01-24 17:05:19 -08:00
Matt Bierner 1ec468f1d6
Small fixes to web server (#172295)
- Fix loading of `/lib.dom.d.ts` files
- Remove file content copies being made on read
- Extract encoder/decoder constants
- Small formatting cleanup
- Remove platform setting since it's not relevant
2023-01-24 15:26:27 -08:00
Matt Bierner 3e4a338c7a
Fix compile errors in webserver (#172083)
- Remove deprecated flag
- Use more explicit typings
2023-01-24 00:39:58 +01:00
Matt Bierner f6318f31f7
Try downloading repo for project wide IntelliSense (#171686)
* Try downloading repo for project wide IntelliSense

For #170920

* Defer preload
2023-01-23 16:30:56 -05:00
Vitaly b9ee0575f1
[typescript] fix potential [object Object] in member completions (#171127) 2023-01-23 19:35:37 +00:00
Logan Ramos 8cea434dec
Remove unused proposals (#172035) 2023-01-23 19:09:07 +01:00
Matt Bierner 7545b2f6d0
Use single TS server output log channel on web (#171679)
Previously we were creating a new output channel for each server instance
2023-01-18 14:32:53 -08:00
Matt Bierner 9f48317464
Enable JS/TS project wide intellisense for opened folders on web (#171678)
For #170920
2023-01-18 23:25:11 +01:00
Jake Bailey 43907341df
Set disableLineTextInReferences=true in TS user preferences (#171376) 2023-01-17 16:46:36 +00:00
Matt Bierner 848d300e8c
Use explicit flag to enable TS server project wide intellisense (#171208) 2023-01-12 23:15:18 +01:00
Nathan Shively-Sanders 3261c7d3af
Cross-file Typescript support in vscode-web (#169311)
* 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>
2023-01-12 11:54:39 -08:00
Matt Bierner e14165e0f5
Remove extra space in log message (#171197) 2023-01-12 20:43:08 +01:00
Matt Bierner 95f9599d16
Remove typescript.suggest.includeCompletionsWithSnippetText setting (#171098)
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
2023-01-11 12:09:32 -08:00
Logan Ramos 4acf2d9b46
Update the telemetry modules (#170512)
Update the module
2023-01-03 15:10:45 -05:00
Logan Ramos b1076b41f3
Bump telemetry packages (#169283) 2022-12-15 17:29:10 +01:00
Matt Bierner b63dd77718
Remove TS extension's use of resolver proposal (#168371)
Fixes #164039
2022-12-08 01:16:19 +01:00
Matt Bierner 1c89f079be
Don't show empty @return in JSDoc (#168366)
Fixes #164888
2022-12-07 15:47:31 -08:00
Tyler James Leonhardt eab8c54b30
Fix a translation (#168353) 2022-12-08 00:08:36 +01:00
Matt Bierner fd0ee4f77e
Remove explicit support for TS versions < 3.0 (#168348)
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
2022-12-07 23:31:35 +01:00
Matt Bierner 16e7698751
Shorten update import labels (#168250)
Fixes #165907

This aligns with the markdown update imports UI
2022-12-07 01:09:05 +01:00
Matt Bierner 3e7637064d
Use more generic button title for jsconfig create/open (#167482)
For #166808
2022-11-29 00:39:56 +00:00
Matt Bierner 838b48504c
Pick up TS 4.9 final (#166509) 2022-11-16 14:16:36 -08:00
Greg Van Liew 816f31f691
More settings description tuning (#166429) 2022-11-16 09:33:33 -08:00
Matt Bierner 5452c6af10
Eagerly delete diagnostic on quick fix (#166417)
Fixes #166415
2022-11-16 07:43:28 +01:00
Matt Bierner 7d6c575031
Check cancellation token earlier and avoid capturing resolve (#166416) 2022-11-15 16:33:01 -08:00
Matt Bierner d0d28a6295
Reapply building of web server (#166391)
* Reapply building of web server

Revert 8b4642ab23

* Fix critical dep error
2022-11-15 14:55:40 -08:00
Matt Bierner 4fdcdb17c6
Pick up latest jsonc parser (#166334) 2022-11-15 13:46:52 -08:00
Henning Dieterichs b11207c539 Revert "Copy webServer from Typescript to VS Code (#165771)"
This reverts commit cb43019d6a.
2022-11-15 14:45:32 +01:00
Matt Bierner 44441de137
Adopt prefer-readonly in JS/TS extension (#165089) 2022-11-14 20:12:10 -08:00
Greg Van Liew 27a550f451
Settings description edits (#166315)
* Settings description edits

* Remove unnecessary trailing line returns
2022-11-14 13:47:54 -08:00
Nathan Shively-Sanders cb43019d6a
Copy webServer from Typescript to VS Code (#165771)
* 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
2022-11-14 10:56:31 -08:00
Logan Ramos 73d882bcf7
Update telemetry package (#166292) 2022-11-14 09:30:33 -08:00
Logan Ramos bf1697d98c
Consume proposed telemetry API (#165862)
* Consume proposed telemetry API

* Update webpack
2022-11-08 21:58:28 -05:00
Matt Bierner 5d04c3b06c
Don't assume file paths in tsconfigs (#165779)
Fixes #160979
2022-11-07 20:24:31 -08:00
Matt Bierner 3c874be287
Fix UI string (#165554) 2022-11-04 14:04:58 -07:00
Matt Bierner 0bd1531e00
Adopt l10n for ts extension (#165450)
For #164438

Also refines the eslint rule from #165448
2022-11-04 09:50:18 +01:00
Matt Bierner 8ad43669a9
Prompt users to test with extensions disabled (#165203) 2022-11-01 16:38:45 -07:00
Jake Bailey b99cf7e41e
Ensure 'undefined' does not make it into tsserver.web.js (#164064) 2022-10-19 16:44:03 -07:00
Daniel Rosenwasser 182beb6ee4
Merge pull request #163498 from DanielRosenwasser/iconsForWalkthroughs
Allow walkthroughs to specify icons.
2022-10-19 11:26:51 -07:00
Matt Bierner 7f99b7c655
Remove references to finalized proposals in js/ts (#164040) 2022-10-19 13:23:48 -04:00
Matt Bierner 33378c2ec0
Fix organize imports (#164035)
Fixes #163994

This fixes the organize imports command (it was using the wrong id) and also cleans up the implementation
2022-10-19 09:27:41 -07:00
Andrew Branch 1fb956d2f5
[typescript-language-features] Add removeUnusedImports command (#161654)
* Add `removeUnusedImports` command

* Continue to send `skipDestructiveCodeActions` for older TS versions

* Expose Sort Imports and Remove Unused Imports commands

* Update localization keys

* Update for 4.9 protocol

* Proto must be type only import?
2022-10-18 09:00:16 -07:00
Matt Bierner 186d3415a3
Use ??= in more places (#163594) 2022-10-13 14:59:35 -07:00
Jake Bailey 65a9097aa2
Remove forgoten reference to typescript/lib/protocol (#163585) 2022-10-13 13:15:13 -07:00
Daniel Rosenwasser a053a4d505 Allow walkthroughs to specify icons.
Useful for specifying icons *other* than those of the contributing extension.
2022-10-12 17:14:42 -07:00
Jake Bailey 07b87405e7
Don't depend on typescript protocol.d.ts (#163365) 2022-10-12 16:03:07 -07:00
Suven-p 22ff985c19
Add multiple template parameters (#163191) 2022-10-12 14:06:19 -07:00
Tyler James Leonhardt 4322170fd8
comment is an array (#163348) 2022-10-11 13:39:12 -07:00
Matt Bierner 3ee9749b35
Remove extra enums (#162686)
`showMessage` returns the selected item, so we don't need to create an enum here and can instead used the returned items directly
2022-10-04 10:46:53 -07:00
Tyler James Leonhardt 29e985eca0
rev vscode-nls to version that doesn't ask for vscode-nls-web-data (#161819)
ref #161297
2022-09-26 11:10:54 -07:00
Gerrit Birkeland cace09d0eb
Add schema for typedoc.json to default jsonValidation (#157592)
Add schema for typedoc.json to default 
jsonValidation
2022-09-26 15:51:42 +02:00
Daniel Rosenwasser da506e9b8d
Tag existing events with experimentation info in typescript-language-features (#161463)
* Associate experiment info with existing telemetry.

* Move the ExperimentTelemetryReporter to its own file.

* Roughly copied the 'getPackageInfo' function from other extensions.

* Addressed code review feedback.
2022-09-23 15:18:57 -07:00
Matt Bierner f25d47121b
Pick up newer vscode-tas-client version (#161344) 2022-09-20 13:52:29 -07:00
Daniel Rosenwasser 5cde74b767
Fix accidental case fallthroughs in experimentation services. (#161339) 2022-09-20 12:00:32 -07:00
Johannes Rieken 77309b33d4
add WorkspaceEditMetadata and use it for applyEdit, (#160996)
* add `WorkspaceEditMetadata` and use it for `applyEdit`,

https://github.com/microsoft/vscode/issues/112109

* fix compilo in tests

* workspace edits from updating paths are marked as refactoring fyi @mjbvz
2022-09-16 09:44:19 +02:00
Matt Bierner 3c37a5a8d7
Reapply JavaScript and Node.js walkthrough (#161003)
This reverts commit cfc0119755.

Brings the walkthrough back in but makes sure it is only loaded on desktop
2022-09-15 13:02:43 -07:00
Daniel Rosenwasser 9dfd49db63
Ensure ExperimentationService gets disposed. (#161004) 2022-09-15 11:06:53 -07:00
Benjamin Pasero cfc0119755
Revert "JavaScript and Node.js walkthrough" (#160959)
Revert "JavaScript and Node.js walkthrough (#157965)"

This reverts commit 0cbcb1b1ab.
2022-09-15 08:26:22 +02:00
Daniel Rosenwasser 0cbcb1b1ab
JavaScript and Node.js walkthrough (#157965)
* Initial contents for JavaScript walkthrough.

* Just suggest a `.js` file.

* Switch the walkthrough to be a Node.js walkthrough.

* Remove leftover file from HTML walkthrough.

* Add basic detection mechanism for node.

* Don't check for a Node install until the user runs debug.

* Add "learn more" link.

* Some assets.

* Remove "run" section.

* Add a "try debugging anyway" option just in case.

* Remove "view terminal" command in run & debug.

* More copy.

* Remove unused command.

* Update icon and themed walkthrough SVGs

* Default to not showing the extension.

* Replace icon

* Delete TODO.md

* jsWelcome -> nodejsWelcome

Co-authored-by: David Dossett <ddossett@microsoft.com>
Co-authored-by: Matt Bierner <matb@microsoft.com>
2022-09-14 09:53:37 -07:00
Daniel Rosenwasser 00902daee1
Instantiate ExperimentationService in typescript-language-features. (#160877)
Co-authored-by: Matt Bierner <matb@microsoft.com>
2022-09-14 09:34:04 -07:00
Matt Bierner 1d500fb4de
Add CodeActionKind.RefactorMove (#160730)
Fixes #160728
2022-09-12 15:14:06 -07:00
Matt Bierner c4722f1bb2
Write markdown link setting change to correct scope (#159816)
Fixes #159084

Also fixes the same issue for JS/TS
2022-09-02 13:38:41 +10:00
Matt Bierner c9a97b5581
Pick up TS 4.8 final (#159238)
Fixes #157527
2022-08-26 01:30:07 +02:00
Matt Bierner 129f5bc976
Use own calls to localize (#158372)
Fixes #156684
2022-08-17 10:27:29 -04:00
Tyler James Leonhardt d8453c0440
Rev built-in versions of vscode-nls to 5.1.0 (#157530)
* rev version of vscode-nls to 5.1.0

* and yarn lock
2022-08-08 18:43:45 +02:00
Tyler James Leonhardt 49394cc44d
Enable translations for extension code for the web (#155355)
* Initial attempt

* alex feedback
2022-08-08 09:11:16 -07:00
Matt Bierner 0c78644c6e
Use tabs to figure out when to report JS/TS diagnostics (#157117)
Fixes #101885

We currently only want to report diagnostics for opened JS/TS files
2022-08-04 10:46:56 -07:00
Matt Bierner 424fe151f1
Add patch for enabling new TS plugins on web approach (#149186)
* Add patch for enabling new TS plugins on web approach

https://github.com/microsoft/TypeScript/pull/47377

To run plugins on web, we need to shim out `dynamicImport`. This is done in a file call `tsserverWeb.js`, which is added by the linked PR

* Update for new files names
2022-08-02 20:00:22 +02:00
Matt Bierner f0434c0960
Pick up TS 4.8 for JS/TS extension (#156828) 2022-08-01 13:59:07 -07:00
Matt Bierner 97c8a97261
Include globally enabled TS Server plugins when reporting issues (#156510)
We're seeing a lot of crashes caused by TS Server plugins (usually those that come from extension). This will be easier to track down if we also include the enabled plugins when reporting issues
2022-08-01 10:44:46 -07:00
Matt Bierner 4eef7a94e1
Tell users about enabled TS plugins on crash (#156514)
We've been seeing a fair number of reported issues about TS Server crashes that are caused by plugins contributed by extension. This change adds info to the error message about enabled global plugins so users can try disabling them

Other changes:

- Use `JS/TS` instead of Typescript since the server is used for javascript too (a common source of confusion)
- Fix some missing checks to `_isPromptingAfterCrash` and some extra guards that were causing some crashes to now show this message
- Use `crashed` instead of `died unexpectedly`
2022-08-01 10:44:33 -07:00
Matt Bierner 06f8d52e37
Always log on tsserver exits (#156495)
This ensures we also log if the TS Server exits with no code but a valid signal. Useful for figuring out how many users are hitting OOM errors
2022-07-27 12:58:52 -07:00
Matt Bierner 00bb9bdefc
Always log tsserver exit code, even for kill processes (#156378)
We suspect that some exit code info is being dropped since 1.61. Changing this code to always log, even when the user manually restarts the server
2022-07-27 11:54:24 -07:00
ryuurock 42e79ca270
Update typescriptServiceClient.ts, fix naming errors (#155946)
Update typescriptServiceClient.ts

fix naming errors
2022-07-22 17:46:48 +00:00
Logan Ramos a20329d291
Switch extensions to 1DS (#154299)
* Move extensions to 1DS

* Switch extensions to 1DS
2022-07-06 17:18:41 -07:00
Andrew Branch 1d16e313d6
[typescript-language-features] Add setting for autoImportFileExcludePatterns (#153160)
* Add setting for autoImportFileExcludePatterns

* Add TS 4.8 to message
2022-06-28 16:43:24 -07:00
Matt Bierner c16036705e
Initial contents for experimentation in typescript-language-features. (#153358)
Co-authored-by: Daniel Rosenwasser <Daniel.Rosenwasser@microsoft.com>
2022-06-27 12:53:24 -07:00
Matt Bierner 9051021473
Clarify label on source action (#153356)
Clairify label on source action

For https://github.com/microsoft/vscode-eslint/issues/1428
2022-06-27 19:01:41 +00:00
Logan Ramos 4a7a6a597a
Update extension telemetry modules (#153057) 2022-06-24 00:53:23 +00:00
Daniel Imms f0cf1ea129
Fix initial compilation problem matching in tsc-watch
Fixes #152966
2022-06-23 04:48:25 -07:00
Matt Bierner 8559324b09
Use more optional chaining in TS extension (#152271)
Use optional chaining in TS extension

Also removes `prefer-const` since this is now enabled globally
2022-06-16 05:33:58 +02:00
Matt Bierner a289e64e09
Switch to finalized TS protocol types (#152259) 2022-06-15 15:37:21 -07:00
Matt Bierner 8fb977f2c1
Make jsx: react the default for implicit js/ts projects (#152256)
Make jsx: react the default

Fixes #152150

This fixes imports of `react` getting removed with TS 4.7 in implicit projects
2022-06-15 21:41:52 +00:00
Andrew Branch 5a32c3ff17
[typescript-language-features] Pass through all typescript.unstable.* settings (#151472)
Pass through all `typescript.unstable.*` settings
2022-06-08 11:53:06 -07:00
Matt Bierner e44f4ba886
Add experimental tag to experimental extension settings (#151031)
This makes a few more extension settings with the `experimental` tag so that show up if you search `@tag:experimental`
2022-06-01 16:32:58 -07:00
Matt Bierner 6428d0fc7d
Support TS's includeInlayVariableTypeHintsWhenTypeMatchesName setting (#150489)
From https://github.com/microsoft/TypeScript/pull/48529

Let users control is variable type inlay hints are suppresed if the variable name matches the type name, such as:

```ts
const range = new Range();
```
2022-05-26 16:00:04 -07:00
Logan Ramos 3a8b1fe03e
More telemetry comments (#150303)
* Add owners to all telemetry events

* More comments

* Add comments to non typescript GDPR annotation

* Another comment
2022-05-24 16:00:55 -07:00
Matt Bierner 6bd7605ae1
Enable strictNullChecks for implicit projects (#149844)
Mistakenly enabled checkJS instead of strictNullChecks
2022-05-18 10:47:37 -07:00
Matt Bierner 101f6fb31d
Enable enabling js/ts.implicitProjectConfig.checkJs by default (#149660)
Fixes #149659
2022-05-16 11:52:27 -07:00
Matt Bierner 4923404e98
Don't include leading @ in JS/TS completion word range (#149400)
Fixes #149385
2022-05-12 15:22:18 -07:00
Matt Bierner 3ba66bf24f
Use explicit empty authority for JS/TS resources (#149125)
Fixes #149123

10c8c1c2cc made sure we sync over the authority of in-memory resources over to TS Server. However if a resource does not have an authority, this resulted in a url with `scheme//path` instead of `scheme/authority/path`

TS would then normalize the uri to `scheme/path`, resulting in us considering this a new resource

This fix adds an explicit empty authority that we use in this case instead
2022-05-09 15:52:52 -07:00
Matt Bierner 10c8c1c2cc
Include authority in TS in-memory scheme (#148940)
For #146853

Make sure we include the uri authority when serializing and then restoring the file paths we send to TSServer (similarly to how we already handle the uri scheme)
2022-05-06 11:48:53 -07:00
Andrew Branch 076bb03cb4
No commit characters for string completions (#148597) 2022-05-03 13:36:20 -07:00
Matt Bierner 17ee4c4265
Pick up TS 4.7 for bundling with VS Code 2022-05-02 15:50:42 -07:00
Andrew Branch e9e3ca02ef
Add flags to completions telemetry (#148313) 2022-04-30 17:57:13 -04:00
Matt Bierner 1d2461bed6
Sort 2022-04-21 22:23:48 -04:00
Andrii Dieiev 7e887b76ea
Fix version in error message (#147750) 2022-04-20 09:40:18 -07:00
Matt Bierner d851ea5d49
Add 'go to source definition' command
Fixes #147532

Requires TS 4.7+
2022-04-19 19:32:19 -07:00
Matt Bierner 977c9c9f98
Revert "Always use nameSpan for code lenses"
This reverts commit d218b48067.

Fixes #147154
Fixes #146818

TS still needs to make tweaks before we can remove this logic
2022-04-13 12:00:06 -07:00
Matt Bierner a52e45add2
Don't show busy for JS/TS files not in workspace
Fixes #145309
2022-04-05 17:03:12 -07:00
Matt Bierner 464e50f207
Use more consistent method names 2022-03-31 11:56:37 -07:00
Matt Bierner 8d5ae2bdd9
Add auto enum case for ts.locale
Fixes #146436
2022-03-31 11:56:36 -07:00
Gabriela Araujo Britto 88e3d49156
support label details (#146270) 2022-03-30 15:27:50 -07:00
Gabriela Araujo Britto 4e159b9e28
[typescript-language-features] Add includeCompletionsWithObjectLiteralMethodSnippets preference (#145941)
* create flag for object literal method snippet completions

* reword description
2022-03-24 15:17:43 -07:00
Logan Ramos 9b7268acf9
Update telemetry module 2022-03-18 11:34:33 -04:00
Matt Bierner 7ba9564ac6
Use correct casting when working with Object.freeze
Casting the result of Object.freeze results in a non-readonly object. Instead we should pass the type along to the call to `Object.freeze`
2022-03-16 16:00:32 -07:00
Robo 32d40cf44e
chore: update to electron 17 (#143223)
* chore: bump electron@17.0.0

* Revert "chore: revert to electron@13 (#143851)"

This reverts commit df645f1450.

* chore: bump electron@17.1.0

* Revert "ci: fix build with latest node-gyp"

This reverts commit c3e948aa30.

* chore: revert ci changes for node v16

* chore: update yarn.lock

* chore: bump electron@17.1.1
2022-03-11 00:51:37 +09:00
Matt Bierner 71c0686d04
Use lowercase preserve for jsxemit
This matches what the tsconfig schema expects
2022-03-09 14:38:13 -08:00
Matt Bierner b3832713db
Use esnext as implicit js/ts module
For https://github.com/microsoft/TypeScript/issues/46698

Also adds new settings for the target and module in implicit projects
2022-03-09 14:33:37 -08:00
Matt Bierner 9d41c706c6
Allow manually restarting TS Server even if it has crashed too many times
Currently if the server crashes too many times, the user has to restart VS Code. It's possible the user could fix something (such as a bad plugin) and then run this command to just restart the server without needing to restart the entire editor
2022-03-08 18:48:48 -08:00
Matt Bierner 886ab06860
Try to have more explicit error when we don't have a server
Fixes #143032

This change removes a call that would automatically restart the TS server when invoking a command. Instead we now return a `NoServer` response

When this happens, the server still should be restarted. This change stops us from logging a large number of errors when we get into this state where the server has crashed too many times and we no longer want to automatically restart it
2022-03-08 18:48:48 -08:00
Matt Bierner eb6050d8a8
Preserve path item details for JS/TS completions
Fixes #144455
2022-03-08 14:33:26 -08:00
Ondrej Medek 529cc9c859
fix markdownDescription for javascript.suggest.jsdoc.generateReturns (#144486) 2022-03-07 17:12:55 -08:00
Matt Bierner 5c452f8973
Use [].flat() 2022-03-03 15:03:33 -08:00
Matt Bierner 1900abc88b
while -> for 2022-03-01 16:39:41 -08:00
Matt Bierner ea76090229
Remove support for old plugin based semantic token responses
We removed support for the plugin a few iterations ago so this branch should no longer be active
2022-03-01 16:38:37 -08:00
Matt Bierner fb292d9a46
Cleanup semantic tokens provider
- Don't modify params
- mark public
- Use standard api version object
- remove extra disposable
- Don't use declare for const enums
2022-03-01 16:38:36 -08:00
Matt Bierner e6d702383d
Remove experimental protocol stubs 2022-03-01 16:38:36 -08:00
Matt Bierner a068ebee8d
Finalize markdownstring.baseUri
Fixes #142051
2022-03-01 15:48:53 -08:00
Matt Bierner e04c70a676
Fix TS resolved paths when on vfs
For #136433

These paths always have to start with `/`
2022-02-28 17:27:43 -08:00
Matt Bierner c662fe67bf
Bump default target for jsconfig template 2022-02-28 15:16:39 -08:00
Matt Bierner 062b82c1bc
Use .test instead of .match 2022-02-28 14:27:47 -08:00
Matt Bierner 1d77856203
Use ?.forEach instead of ( || []).forEach 2022-02-28 13:52:59 -08:00
Matt Bierner 6f63577e80
Remove unused event 2022-02-28 13:46:52 -08:00
Matt Bierner 2fc747419d
use ?. 2022-02-28 13:44:48 -08:00
Matt Bierner cf898ff7d1
null -> undefined 2022-02-28 13:43:18 -08:00
Matt Bierner 70dd24e9bd
Remove extra check
This should not be nullable
2022-02-28 13:43:18 -08:00
Matt Bierner d218b48067
Always use nameSpan for code lenses
Fixes #143648

The nameSpan property has existed for something like years or so, so it should be safe to use. There's currently not a good way to request the reference count of an anon function and I don't think this is actually useful to show since the ref count should always be 1 for these
2022-02-28 13:43:16 -08:00
Matt Bierner ee9c87ccca
Clean up logged messages 2022-02-24 14:28:27 -08:00
Matt Bierner 2a72cf7070
Restore 'follow link' text on tsconfig links
For #141112
2022-02-24 14:02:38 -08:00
Robo df645f1450
chore: revert to electron@13 (#143851)
* Revert "chore: update to electron 16 (#137241)"

This reverts commit 01df559c18.
This reverts commit 46301339b7

* ci: fix remote compiler for sdl-scan

* chore: fix remote/.yarnrc

* chore: fix build/npm/postinstall.js

* chore: rm crash reporter from shared process

* chore: rm crash reporter from ext host

* chore: fix build/lib/layersChecker.ts

* :chore: preserve some more changes

* fix tests

Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
2022-02-24 17:49:49 +01:00
Matt Bierner 932976b8d2
Fix return type typing 2022-02-22 16:22:55 -08:00
Matt Bierner ad0311a25a
Improve quote style setting display
Follow up on #143164
2022-02-16 12:13:45 -08:00
Matt Bierner 1f5f486ccb
Add note about quote style setting to jsxAttributeCompletionStyle
For #143164
2022-02-16 12:13:45 -08:00
Matt Bierner 3ecc99a3f5
Format switch using braces 2022-02-09 14:49:13 -08:00
Matt Bierner ca6c806af5
Adopt busy for TS intellisense status
For #141269
2022-02-09 14:49:13 -08:00
Johannes Rieken b7955eac38
finalize inlay hints provider API, https://github.com/microsoft/vscode/issues/16221 2022-02-09 15:32:46 +01:00