Commit graph

291 commits

Author SHA1 Message Date
Michael Lively e33219dde3
Add multi-document highlight provider feature (#198467)
* multi-doc api + text provider editor feature + extHost hookup + typescript semantic multi-doc

* fix disposable leak, wasn't setting providers to the disposableMap

* filter unnecessary models to fix errors with typescript provider

* fix nits (todo - doc filter)

* fix typo from merge conflict

* expose LanguageSelector in multi-doc provider, filter out 0 score models
2023-11-22 10:07:20 -08:00
Matt Bierner fbfabc523d
Split up webServer.ts (#198802)
Refactors webServer.ts to split it into multiple files and encapsulate some functionality in classes
2023-11-21 12:06:47 -08:00
Matt Bierner 6805bb6d2b
Hook up mapped code edits experiment for TS (#198478)
For https://github.com/microsoft/TypeScript/pull/55406
2023-11-17 02:07:09 +00:00
John Murray 77dc8793db
Add typescript.implementationsCodeLens.showOnInterfaceMethods setting (#136282) (#198419)
* Add `typescript.implementationsCodeLens.showOnInterfaceMethods` setting (#136282)

* Update codelenses when `typescript.referencesCodeLens.showOnAllFunctions` changes

* Improve handling of disposables
2023-11-16 22:46:41 +00:00
Logan Ramos 9bea1fc96a
Bump telemetry package (#197168) 2023-11-01 20:51:03 +01:00
Andrew Branch 82ece597ee
Add setting for preferring type-only imports (#196123) 2023-10-30 18:14:58 +00:00
Joyce Er dedfcf65d3
feat: add enum descriptions for TS locale setting (#195947) 2023-10-19 01:52:49 +02:00
Matt Bierner a12bb0543d
Restore copilot fixes/refactorings (#194092)
Reverts #193810 to restore #193810
2023-09-26 09:40:27 +02:00
Johannes Rieken b7fad0df6d
Revert "Copilot-based TS refactors" 2023-09-22 16:05:04 +02:00
Nathan Shively-Sanders 32bb21550c Merge remote-tracking branch 'origin/main' into ai-codefixes 2023-09-21 08:40:31 -07:00
Logan Ramos cc98e55794
Fix slow telemetry module (#193607) 2023-09-20 20:14:12 +01:00
Nathan Shively-Sanders 530870bd40 Config: change defaults and add descriptions 2023-09-20 10:12:11 -07:00
Nathan Shively-Sanders 968d1bd1bb Merge branch 'main' into ai-codefixes 2023-09-14 11:24:50 -07:00
Nathan Shively-Sanders d1d6055aa5 Add more complex options 2023-09-14 11:23:16 -07:00
Gabriela Araujo Britto f563e33800
[typescript-language-features] Add option for excluding library symbols in "Go to Symbol in Workspace" (#192798)
* add option for excluding library symbols

* clarify in message that new option requires ts 5.3

* remove expect error
2023-09-13 18:19:52 +00:00
Nathan Shively-Sanders 3328d54c89 Clean up for review
Remove unused, abandoned ideas.
2023-09-08 09:28:53 -07:00
Nathan Shively-Sanders 7906b2bb61 Merge branch 'main' into ai-codefixes 2023-09-07 10:46:52 -07:00
Gabriela Araujo Britto efc1b30976
Add custom Node option to run TS Server (#191019)
* Add config for running tsserver on custom node

* log when custom node install is used

* create node version manager

* get node path from node version manager everywhere

* modify prompt

* fix useIpc

* use spawn for custom node and set windowsHide

* detect node

* link memory setting to node setting
2023-09-06 20:27:16 +00:00
Matt Bierner 45e2e0bfd0
JS/TS package acquisition (#184438)
* Experiment with adding ata using `@types` packages shipped in an extension

* Use own file system instead of `https`

* JS/TS type support on web

* Tsconfig needs esModuleInterop not module:nodenext

We actually want webpack to emit commonjs, but need to write ES default
imports to use node-maintainer

* fix package.json indentation

* Adding setting to disable web type acquisition

* Fix merge of yarn lock

* Fixing merge errors

* Fixing errors

* Pick up package externally

* Fixing conflicts

* Bump version

---------

Co-authored-by: Kat Marchán <kzm@zkat.tech>
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2023-08-28 00:49:40 -07:00
Logan Ramos ecb0c80fc1
Bump extension telemetry module (#191237)
* Bump extension telemetry module

* Fix webpack
2023-08-24 12:53:41 -07:00
Nathan Shively-Sanders 81fad69af7 AI name suggestions in Extract Constant refactor 2023-08-22 16:29:26 -07:00
Robo ea490e5545
chore: update to Electron 25 (#188268)
* chore: update electron@25.3.0

* ci: update NodeTool version

* chore: update @types/node

* add more common types to layers checker

* chore: update debian dependencies

* chore: update rpm dependencies

* fix: use legacy dns result order of Node.js

* ci: remove deprecated always-auth npm config

Refs npm/cli@72a7eeb

* chore: update deb and rpm dependencies

* chore: update armhf rpm dependencies

* chore: update x64 debian dependencies

* chore: update x64 rpm dependencies

* chore: update electron@25.3.1

* chore: update electron@25.4.0

* chore: bump distro

* chore: bump distro

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
2023-08-07 21:46:27 +09:00
Alexandru Dima f94dcb9ae0
Turn off aiQuickFix by default for stable (#189069) 2023-07-27 17:16:25 +01:00
dependabot[bot] 8c8e8600b6
Bump semver from 5.5.1 to 7.5.2 in /extensions/typescript-language-features (#185968)
Bump semver in /extensions/typescript-language-features

Bumps [semver](https://github.com/npm/node-semver) from 5.5.1 to 7.5.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.5.1...v7.5.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 10:05:01 +02:00
Johannes Rieken 50ad64e844
enable inline chat quick fix for TypeScript implements interface by default (#186167) 2023-06-26 17:34:39 +02:00
Matt Bierner 42498ee647
Mention tsconfig / jsconfig in 'Go to project configuration' (#184441)
This makes the commands more discoverable
2023-06-06 13:41:54 -07:00
Aiday Marlen Kyzy 203c911ca0
adding a setting in order to control whether the ai assisted setting is enabled or not 2023-05-24 16:18:04 +02:00
Bhavya U b0cf9f8e24
Remove temp walkthroughs (#182996) 2023-05-19 15:28:27 -07:00
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
Bhavya U 6efb31c7a9
Add temporary nodeJS walkthrough (#181441) 2023-05-03 12:31:11 -07: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 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
Donald33 Wang 7122771026
Support custom switch-case indentation (#179670) 2023-04-18 17:24:51 +00: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
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
Logan Ramos 8e6bcc9b9e
Bump module to new package (#173599) 2023-02-06 12:29:36 -08:00
Matt Bierner 4630d8e4de
Remove more implicit activation events from built-in extensions (#172838) 2023-01-30 17:25:56 -08:00
Logan Ramos 8cea434dec
Remove unused proposals (#172035) 2023-01-23 19:09:07 +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 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 4fdcdb17c6
Pick up latest jsonc parser (#166334) 2022-11-15 13:46:52 -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 0bd1531e00
Adopt l10n for ts extension (#165450)
For #164438

Also refines the eslint rule from #165448
2022-11-04 09:50:18 +01:00
Daniel Rosenwasser 182beb6ee4
Merge pull request #163498 from DanielRosenwasser/iconsForWalkthroughs
Allow walkthroughs to specify icons.
2022-10-19 11:26:51 -07:00