Commit graph

1319 commits

Author SHA1 Message Date
Andrew Branch 2cf34eefdd
[typescript-language-features] Add telemetry for package.json auto imports (#103126)
* Add telemetry for package.json auto imports

* Change data classification

* Use string, boolean is not allowed in TelemetryProperties
2020-07-22 15:59:51 -07:00
Andrew Branch 1c8662b8bf
Add setting for package.json auto imports (#103037) 2020-07-22 15:28:22 -07:00
Matt Bierner 3f1206a355 Fix isWeb platform check
The new check should be safer
2020-07-22 14:52:38 -07:00
Matt Bierner 5b9fd525fa Minimize shipped tsserver
This takes the shipped size from 9Mb to 2.9mb
2020-07-22 14:52:38 -07:00
Matt Bierner ba6576d343 Move project status into host 2020-07-22 14:02:38 -07:00
Matt Bierner 8d6b507dfb Fix build error
watch didn't pick up on the file rename
2020-07-22 12:12:21 -07:00
Matt Bierner f9224c26cb Move command manager into commands folder 2020-07-22 11:31:08 -07:00
Matt Bierner 3b15049759 Rename files to mark them as browser or electron 2020-07-22 11:31:08 -07:00
Matt Bierner c6ce8f26cc Move fork impl into serverProcess 2020-07-22 11:31:08 -07:00
Matt Bierner 2f10b23958 Move buffer sync support into server folder 2020-07-22 11:31:08 -07:00
Matt Bierner 0a7364f005 Use object parameter for services 2020-07-21 18:56:27 -07:00
Matt Bierner feadf5183d Move code lens files into own directory 2020-07-21 17:19:47 -07:00
Matt Bierner 5dfb77c313 Move task provider into own folder 2020-07-21 17:15:20 -07:00
Matt Bierner a4b0116978 Rename features -> langaugeFeatures 2020-07-21 17:12:19 -07:00
Matt Bierner 6649f4e296 Clean up extension activation 2020-07-21 17:06:24 -07:00
Matt Bierner 0bf4493b75 Don't send git resources to tsserver 2020-07-21 16:52:17 -07:00
Matt Bierner 21cd7c6001 Move some files into server 2020-07-21 16:47:54 -07:00
Matt Bierner ae7254a2e9 Fixing some errors when loading workspace TS versions 2020-07-21 16:41:02 -07:00
Matt Bierner 23c4467ed3
Enable web TS Server (#102990)
This enables running the TS Server on web. This currently requires a special version of the TypeScript server
2020-07-21 16:13:52 -07:00
Matt Bierner ec8606cb49 Make sure main process webview file resource loads stays on main process
We were checking the wrong uri
2020-07-21 14:02:28 -07:00
Matt Bierner caa05dd6d5 Remove extra gating around selector
A registration should only need to if it targets all files, or just those on disk
2020-07-20 16:53:32 -07:00
Matt Bierner 3841f78377 Fix normalization of toResource for untitled resources 2020-07-20 16:36:58 -07:00
Matt Bierner e41c195051 Work towards allowing enhanced syntax server commands to be run against any file
We currently restrict the TS server to working with a small set of file schemes. This is done because the TS server itself cannot read files from on of VS Code's virtual file system providers (and will crash if it tries to do so)

However we can enable single file commands for these other file schemes, so long as they are treated as in-memory files. This change works towards supporting that by changing when certain providers are enabled/disabled
2020-07-20 16:27:37 -07:00
Matt Bierner 8bf2ae16a0 Export RequestCancellerFactory implementations as constants 2020-07-20 16:27:37 -07:00
Matt Bierner 538ff07c71 Move logDirectoryProvide into server 2020-07-20 16:27:37 -07:00
Matt Bierner 90fbd0eb60 Extract cancellation.electron
This makes it possible to replace the cancellation logic for serverless
2020-07-20 16:27:37 -07:00
Matt Bierner 3b9db3df27 Extract NodeLogDirectoryProvider to electron specific file 2020-07-20 16:27:37 -07:00
Matt Bierner 00bd63c32c Move lazyClientHost to own file 2020-07-20 16:27:37 -07:00
Matt Bierner c17905888c Extract onIsCaseInsenitiveFileSystem 2020-07-20 16:27:37 -07:00
Matt Bierner 00a0a77785 Cleaning up ts server logic
Getting ready to have worker based TS servers instead of ones that use a process

- Use standard error handler instead of having separate reader error
- Move all process based server logic into own file (`serverProcess`)
2020-07-16 16:05:20 -07:00
Matt Bierner ed028cfd96 Add ClientCapabilities class 2020-07-16 14:37:58 -07:00
Matt Bierner 0857489caf Add the concept of client capabilities for TypeScript
For serverless, we will only be able to run the TypeScript syntax server which does not support all features. This change makes this possible by adding the concept of client capabilities. Providers such as rename will only be registered when the client has semantic capabilities
2020-07-16 12:32:27 -07:00
Matt Bierner 16c6b81b3e Flatten conditional registration
This allows us to pass a precomputed, flat list of requirements when registering a language feature
2020-07-16 12:32:27 -07:00
Matt Bierner a1967ddf13 Remove eslint disable
For #101978
2020-07-09 09:25:47 -07:00
Matt Bierner 76471bdb74 Add slight delay to test
For #101922

I can't repo this locally but suspect it may be timing related
2020-07-08 11:43:48 -07:00
Matt Bierner dee0511b58 Remove duplicated test 2020-07-08 11:43:48 -07:00
Matt Bierner 46c2494cb0
Enable ts tests on ./test-integration.sh (#101826)
* Enable ts tests on ./test-integration.sh

* Fix join lines for windows

* Fixing more tests for windows

Make sure we use the correct new line character

* Update test-ingration scripts
2020-07-07 17:38:03 -07:00
Matt Bierner bc462053d6 Making TS tests more reliable 2020-07-06 16:52:35 -07:00
Matt Bierner 4f9ebc3205 Sort implement abstract above remove unused
Fixes #101486
2020-07-06 15:41:10 -07:00
Matt Bierner 2ce03eed5a Update VS Code refactoring support for new TS 4.0 api
Adopts changes from https://github.com/microsoft/TypeScript/pull/37871/
2020-07-02 16:41:34 -07:00
Armando Aguirre 2ddb2c5a72
Added word boundary on tsserver regex (#101598)
Adds a word boundary on the tsserver regex so that it doens't get confused by other file names.
2020-07-02 13:18:57 -07:00
Matt Bierner c5b91342d6 Remove extra dispose implementations 2020-06-29 14:40:15 -07:00
Matt Bierner 04c36be045 Prompt user to upload TS Server log 2020-06-26 16:41:38 -07:00
Matt Bierner 90de01176e Always enable dynamic syntax server on TS 4.0+
We are looking for feedback on this new setting. For those on TS 4.0+, it should also be a sensible default
2020-06-26 16:18:48 -07:00
Matt Bierner 9d59cb9813 Reduce duplicate code
Merge the `SyntaxRoutingTsServer` and `ProjectLoadingRoutingSyntaxTsServer` classes since these only differ routing to the syntax server while a project is loading
2020-06-26 16:18:48 -07:00
Martin Aeschlimann 6eeb350744 update typescript-vscode-sh-plugin (fix version check) 2020-06-26 15:26:15 +02:00
Martin Aeschlimann 4952232a7b
Merge pull request #101046 from madskristensen/patch-2
Fix SchemaStore.org URLs
2020-06-26 08:46:20 +02:00
Matt Bierner 32e6693f00 Fix race on 'projectInfo' requests
Fixes #101076

Make sure we fully start the TS Server (including uploading files) before sending the 'projectInfo' request for the status bar item
2020-06-25 16:44:25 -07:00
Matt Bierner 48c6e3979d
Add experimental support for using iframes for webviews (#100991)
* Use non-deprecated API version

* Prototype: enable offline iframe based webviews on desktop

Adds a new `vscode-webview` protocol  for loading the wrapper contents of a webview

Still needs cleaning up

* fix loading of electron webview

* Cleanup and add `webview.experimental.useIframes` setting

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-06-25 14:52:02 -07:00
Mads Kristensen 860ca64f07
Fix SchemaStore.org URLs
SchemaStore.org now support HTTPS directly instead of relying on the backdoor through *.azurewebsites.net
2020-06-25 10:13:47 -07:00
Matt Bierner adb27e5fd0 enable/disable deprecated diagnostics in core instead of requiring each diagnostic provider do so 2020-06-22 15:21:15 -07:00
Wenlu Wang 9d6054c99d
Add ts/js deprecated support (#97742)
* Add ts/js deprecated support

* Support callhierarchy

* avoid tags

* fix lint

* fix lint

* Avoid changes

* Avoid assign

* Avoid changes

* Avoid styles

* Add temp deps for build

* update version

* add config item

* fix type

* Use expiremental namepsace

* fix types
2020-06-22 14:01:37 -07:00
Rhitik Bhatt 4dfc14b846
Fixes buggy onEnter behavior when used with generator method (#100076)
* Adds regex to ignore already closed comment block

* Adds test case for generator method onEnter buggy behavior
2020-06-15 11:57:40 -07:00
Matt Bierner 7e4cc2c435 Only run specific commands on the syntax server
This works better than running all commands on the syntax server by default
2020-06-11 20:05:33 -07:00
Matt Bierner 102311f877 Always send projectInfo to semantic server 2020-06-08 17:14:22 -07:00
Matt Bierner 480c98f1ab Add ProjectLoadingRoutingSyntaxTsServer
For #99643

Add a new server option for TypeScript that routes request based on if a project is loading or not

The is enabled by the undocumented `"typescript.tsserver.useSeparateSyntaxServer": "dynamic"` setting
2020-06-08 16:46:55 -07:00
Matt Bierner 0184d2f90d Extract EventName to enum 2020-06-08 16:46:55 -07:00
Matt Bierner 233eac4110 Simplify getFixAllActions 2020-06-04 15:18:51 -07:00
Matt Bierner 05d6fb6634 Support new TS proposed API for refactorings
For https://github.com/microsoft/TypeScript/pull/38378/files#diff-121b46a8c0f71b73817f429b57e27e61R553
2020-06-01 14:18:41 -07:00
matt penrice 3cb12a21b5
Create VsCodeResource for schemed filepaths (#94986) 2020-05-29 12:00:22 -07:00
Matt Bierner dfde221caa Fix the remove unused source action not removing single unused interfaces 2020-05-29 11:05:38 -07:00
Matt Bierner 5f8e6d0b19 Make sure add all missing imports quick fix comes after individual add missing import quick fixes
Fixes #98613
2020-05-29 11:05:38 -07:00
Andrew Branch 766e520783
Allow TS Server to be started with --inspect-brk (#98340) 2020-05-26 11:57:02 -07:00
Matt Bierner c3b1725a2d Make sure implement interface is prioritized over remove unused
Fixes #94212
2020-05-20 15:34:02 -07:00
Matt Bierner 85a336c885 Only return single ts-ignore action if there are multiple errors on one line
Fixes #97867
2020-05-20 15:17:22 -07:00
Matt Bierner d9f0f110f9 Don't compile testworkspace 2020-05-15 13:08:22 -07:00
Matt Bierner 9efb82eda9 Fix kind of SourceAddMissingImports 2020-05-15 10:39:43 -07:00
Matt Bierner 39fb3b1065 Mark add missing imports as preferred fixes
Allow auto fixing add missing imports if:

- There is only one possible import
- And there are no better fixes (such as spelling changes)
2020-05-15 10:39:43 -07:00
Matt Bierner 541b9eb7a6 Don't mark fix all actions as preferred
Fixes #97866
2020-05-15 10:39:43 -07:00
Matt Bierner f3454d430b Better clean for 452a377c5e 2020-05-14 12:13:31 -07:00
Benjamin Pasero 45aa0bf525 fix compile error
fyi @mjbvz
2020-05-14 09:58:21 +02:00
Matt Bierner 452a377c5e Still search all projects if you are using TS 3.9 but are not in a TS file 2020-05-13 19:42:18 -07:00
Matt Bierner b312fa2d33 Add initial source actions for remove unused and add missing imports
Fixes #95831
2020-05-12 13:16:08 -07:00
Matt Bierner 6efd86a30c Cleaning up fix all for JS/TS 2020-05-12 13:16:08 -07:00
Matt Bierner c6db83b483 Extract error codes to constant file 2020-05-11 17:33:28 -07:00
Matt Bierner 2393521d37 Use equals helper 2020-05-11 17:33:28 -07:00
Rahul Kadyan 47c54f0e32
feat: use configNamespace for registering language providers of other extensions (#95621)
fixes #75890
2020-05-11 15:22:42 -07:00
Matt Bierner e4e1099f8c Configure optional chain completions at the file level instead of per-request
Fixes #97398
2020-05-11 14:52:20 -07:00
Matt Bierner b1e9155139
Use generic for providers with resolve methods (#96955)
* Use generic for providers with resolve

Fixes #95852

Some of our providers have two phases: provide and resolve. This change updates the typings to make it clearer that the values returned by provider are passed into resolve.

* Remove duplicate vscode.d.ts in search-result extension

* Also use generic type in result of resolve
2020-05-11 13:06:03 -07:00
Matt Bierner 986a9c8bc9 Don't save files on JS/TS server start
Fixes #96503

This workaround no longer seems needed
2020-05-04 17:36:34 -07:00
Matt Bierner 996b5be2ed Update built-in JS/TS version to 3.9 2020-05-04 16:34:31 -07:00
Andrew Casey 13d3a9358b
Update npm script compile-extension:typescript-language-features (#96320) 2020-04-27 18:38:08 -07:00
Andrew Casey 3ecefe6d7a
Make char position optional in TS stack (#96321) 2020-04-27 18:37:50 -07:00
kieferrm 3aa931c67d fix GDPR annotation 2020-04-28 00:49:18 +00:00
Matt Bierner 686ad17217 Clean up onTypesInstallerInitializationFailed
- Convert to async
- don't require using inline type with id
2020-04-27 16:42:45 -07:00
Andrew Casey 27e2e92a54
Clean up CallstackOrException telemetry in typescript-language-features (#96108)
One was actually SystemMetaData, all others were either dropped or
replaced with sanitized versions classifiable as SystemMetaData.
2020-04-27 12:13:00 -07:00
Matt Bierner a4597e1905 Enable JS/TS workspace symbol search for all projects
Fixes #11026

Adds a new `typescript.workspaceSymbols.scope` setting that enables searching all known projects when using TS 3.9+
2020-04-24 00:42:55 -07:00
Matt Bierner 0d5ed6bfde Add logging of service state
For #95122
2020-04-22 14:01:30 -07:00
Duncan Walter c7c2301bc2
TS: Add setting to prompt users about workspace tsdk (#95566)
* add a setting to prompt users to switch to tsdk version

* version manager in control

Co-authored-by: Duncan Walter <dwalter@hubspot.com>
2020-04-22 10:57:22 -07:00
Johannes Rieken d1dfa5e91b iterate over suggestions only once, #95324 2020-04-17 09:06:34 +02:00
Matt Bierner c189b2bb05 Remove use of memoize
Fixes #95324
2020-04-16 10:17:01 -07:00
Matt Bierner b89738c83b Scope prepareRename to TS 3.1+
Fixes #95399
2020-04-16 10:17:01 -07:00
Matt Bierner 1c542d50be More improvements to TS completion computation
For #95324

- Get word range before we make the TS request
- Reuse the context
2020-04-15 14:14:20 -07:00
Matt Bierner 564c619d73 💄 2020-04-15 14:14:20 -07:00
Matt Bierner a51f8c4626 Fix missing property description string 2020-04-15 12:46:40 -07:00
Matt Bierner 605d2cfadb 💄 2020-04-15 12:46:40 -07:00
Matt Bierner 948aa4a214 Make TS completion item more efficent to compute
For #95324

- Removes repeated calls to `getWordRangeAtPosition`
- Only use our fuzzy string logic when using TS 3.8 or older
2020-04-15 10:02:47 -07:00
Josh Smith 3f9e68436b
Issue #93589: Rename 'renameShorthandProperties' setting to 'useAliasesForRenames' (#94480)
* Issue #93589: Rename 'renameShorthandProperties' setting to 'useAliasesForRenames'

* Issue 93589: Added deprecation message to 'renameShorthandProperties' preference

* Issue 93589: Old and new setting value added for mitigtion

Co-authored-by: joshuahs <joshuahs@umich.edu>
2020-04-14 14:53:19 -07:00
Matt Bierner b6c2ea092d Add experimental trigger reason to ts server protocol
For https://github.com/microsoft/TypeScript/issues/35096
2020-04-14 13:55:08 -07:00
Matt Bierner a8f8a2dca0 Only re-request diagnostics if the file has actually been opened
Fixes #95027

Hovers cause VS Code to quickly open and the close the target file. We never actually sync the file with the TypeScript server when this happens. However on file close, we always re-request diagnostics for the project.

This fix makes it so that we only re-request diagnostics if the file has actually been opened on the TSServer
2020-04-11 17:30:12 -07:00
Matt Bierner f3ceb33c5c Hook up experimental TS refactor error
For https://github.com/microsoft/TypeScript/pull/37871
2020-04-10 17:07:09 -07:00
Matt Bierner 8b46fd0645 Try preserving selected signature better in js/ts
Fixes #94834
2020-04-09 15:06:46 -07:00
Martin Aeschlimann ef715cf8c5 TypeScript semantic tokens: use range provider 2020-04-09 18:25:20 +02:00
Martin Aeschlimann 8ef9a03b52 typescript: update typescript-vscode-sh-plugin 2020-04-09 17:24:48 +02:00
Matt Bierner 7ae7343973 Fix some strict null errors revealed by change to emitter 2020-04-08 18:06:24 -07:00
Matt Bierner 32929fbbb8 Always prefer the extract constant refactoring with the lowest scope
Fixes #94717

Previously we hardcoded a check to scope_0
2020-04-08 13:48:03 -07:00
Matt Bierner 74b4540bd1 Prioritize implement interface over remove unused in JS/ts
Fixes #94212

If both `implement interface` and `remove unused` are possible, only mark `implement interface` as prefered.

Also changes our core code action sorting logic to prioritize autofixes
2020-04-08 13:05:44 -07:00
Git-Lior ce57f8ad58
bugfix - typescript code completion doesn't recognize property modifiers when more than one exists (#94165)
* fix microsoft/TypeScript#37117 - code completion in typescript fails to recognize property modifiers

* split kindModifiers by comma or spaces
2020-04-07 13:22:28 -07:00
Martin Aeschlimann 72df4fc229 update typescript-vscode-sh-plugin 2020-04-07 09:46:21 +02:00
Martin Aeschlimann 677b3cfa4b Disable semantic highlighting in large JS/TS files. Fixes #94321 2020-04-03 14:53:07 +02:00
Alex Dima 65309e1d7c
Have SemanticTokensBuilder.build() return SemanticTokens (for #93614) 2020-03-30 15:52:25 +02:00
Matt Bierner 6bdf50706f Enable resolveJsonModule for implicit JS/TS projects
For #93500
2020-03-27 15:11:12 -07:00
Martin Aeschlimann f04dce33a1 Throttle the number of semantic token requests #92583 2020-03-27 16:46:15 +01:00
Martin Aeschlimann 40077f5ea9 [typescript][semantic] add library modifier. Fixes #91090 2020-03-27 14:35:22 +01:00
Martin Aeschlimann c65ea4300d update typescript-vscode-sh-plugin 2020-03-13 00:42:20 +01:00
Matt Bierner 8c596fbf90 Mark arrays readonly 2020-03-10 16:38:34 -07:00
Matt Bierner 9d25faad7f Show better symbolKinds for workspace symbols 2020-03-10 16:38:34 -07:00
Matt Bierner 89fe6d2bfe Fix bad filter
Fixes #92338
2020-03-10 12:31:37 -07:00
Matt Bierner f20250c965 Move version check into provideCompletionItems
Handle TS version changes
2020-03-09 14:45:43 -07:00
Josh Goldberg 72c700cf54
Added completion entry for @ts-expect-error directive (#92093)
* Added completion entry for @ts-expect-error directive

* Limited to relevant TS versions

* You know what, it's more complicated, I'll just go with everything vs 3.9
2020-03-09 12:56:23 -07:00
Pine Wu 2362584a62 Revert "Fix #73803"
This reverts commit 67e6aef0c8.
2020-03-06 00:30:14 -08:00
Pine Wu 4857a9a746 Revert "Fix integration test"
This reverts commit 5a0ab960f0.
2020-03-06 00:29:57 -08:00
Matt Bierner be9c791caa Extract toSymbolInformation 2020-03-05 13:30:52 -08:00
Matt Bierner f062556992 Limit number of pulled in workspace symbols
Fixes #11432
2020-03-05 13:30:52 -08:00
Matt Bierner 9cc4da7503 💄 2020-03-05 12:52:18 -08:00
Pine Wu 5a0ab960f0 Fix integration test 2020-03-05 12:41:06 -08:00
Matt Bierner eca0690ba0
Allow issue reporter to work on built-in extensions (#92040)
Fixes #91029
2020-03-05 12:15:23 -08:00
Pine Wu 67e6aef0c8 Fix #73803 2020-03-05 11:34:58 -08:00
Matt Bierner 81c95f2e5c Prompt user to report issue after single fatal error on insiders 2020-03-04 19:25:15 -08:00
Matt Bierner 2057e931c8 Refactoring version picker
- Rename `versionPicker` -> `versionManager`
- Simplify running of picked items
- Cleaning up interfaces
- 💄
2020-03-03 17:12:40 -08:00
Matt Bierner 3f0aeab1ca Display more information in the TS version status bar item
For #91510

Switching TS versions is fairly uncommon, so repurpose the status bar entry to have additional project commands in it (including the ability to switch TS versions)
2020-03-03 17:12:40 -08:00
Matt Bierner d4dc9e09a2 Fix command being set twice in object 2020-02-28 14:45:35 -08:00
Andrew Branch 23850c7990
[typescript-language-features] Add importModuleSpecifierEnding preference (#90405)
* Expose importModuleSpecifierEnding to typescript-language-features

* Add default `auto` setting

* Use string 'auto' for auto setting

* Work with TypeScript 3.8
2020-02-28 11:20:50 -08:00
Matt Bierner e4beca6b31 Remove TS 3.7 protocol workaround 2020-02-26 16:04:27 -08:00
Matt Bierner 027da88563 Use constant 2020-02-26 16:03:10 -08:00
Matt Bierner a10e4cb911 Make sure we set the correct replacement range for dot member completions
Fixes #91105
2020-02-24 15:53:13 -08:00
Matt Bierner 3c030d7014 Add extra guard on restarting TS server on fatal crash 2020-02-24 15:12:57 -08:00
Matt Bierner 6ff3d9c899 Auto restart TS Server on watch options change 2020-02-24 15:12:57 -08:00
Martin Aeschlimann b2e0925ba1 update jsonc-parser 2020-02-21 15:03:33 +01:00
Matt Bierner 9c0899f286 Pick up TS 3.8.2 2020-02-20 21:38:14 -08:00
Matt Bierner d17a017c0b Fix formatting and version for TS Server issue report 2020-02-20 21:34:20 -08:00
Matt Bierner 0b3aa0a6ea
Let extensions prepopulate the issue reporter title and description (#91039)
* Let extensions prepopulate the issue reporter title and description

Fixes #91028

Adds two new optional arguments to the `vscode.openIssueReporter` command: `issueTitle` and `issueBody`. These are taken using an options object and are used to pre-populate the native issue reporter fields

Hooks up these fields for TypeScript's report issue prompt. We use this to post the most recent TS Server error stack

* Extract duplicate command id to constant

* Log version directly instead of prompting users for it
2020-02-20 10:31:09 -08:00
Martin Aeschlimann 12770d4fed update typescript semantic highlighting 2020-02-20 15:35:50 +01:00
Martin Aeschlimann 66f525f435 [ts] enumMember missing in token legend 2020-02-20 10:31:14 +01:00
Matt Bierner 2aced89ae1 Show more clear TS Version picker when reinstalling a different TS version locally
- Make sure that `TypeScriptVersion` is immutable by getting and caching `apiVersion` on init
- Only show dot next to currently active version if both path and api versions match
2020-02-18 19:16:56 -08:00
Matt Bierner 8503705b11 Don't show reference code lens for both class and ctor in es5 classes
Fixes #90396
2020-02-14 16:57:47 -08:00
Matt Bierner ea0880611f Use non-deprecated version of registerTasksProvider
For #88391
2020-02-12 17:20:05 -08:00
Matt Bierner 43e268ad72 💄 2020-02-12 15:48:38 -08:00
Matt Bierner fb622a8b83 Move code action documentation contribution point to come from metadata
For #86788
2020-02-11 11:36:23 -08:00
Matt Bierner efb781e5be Marking that documents/workspaces arrays cannot be mutated 2020-02-11 11:36:23 -08:00
Martin Aeschlimann 985840db96 update typescript-language-features 2020-02-10 03:27:46 +01:00
Martin Aeschlimann 12509673e9 update typescript-vscode-sh-plugin 2020-02-10 02:25:47 +01:00
Matt Bierner 718331d6f3 Allow configuring TS Server watch options through VS Code
Fixes #89381

Given that these are advanced options, we require editing them in the json file instead of using our settings UI
2020-02-07 18:14:38 -08:00
Matt Bierner 4d35421462 Remove version gating on for now enableProjectDiagnostics
None of the apis being users for this experimental setting require the latest TS version
2020-02-06 16:33:05 -08:00
Matt Bierner f0942786b4 Add experimental setting to use separate server to compute project level diagnostics
For #13953

**Problem**
We'd like to show project wide diagnostics, however at the moment TS server is single threaded. This means that computing all these diagnostics would interrupt other user operations such as completions.

Right now, our advice is to use tasks to get around this limitation (since tasks always run as separate process) however few people actually use tasks.

**Change**
This change adds an experimental `tsserver.experimental.enableProjectDiagnostics` setting (default false) that makes VS Code spawn a separate TS Server that is only used for computing diagnostics. This should help keep the primary syntax server responsive while letting the diagnostics server churn away at project level diagnostics

**Why experimental?**

- We are comporting too many diagnostics. This is bad for larger projects. I don't think TS provides the right APIs to know which files we actually need to request diagnostics on when a file changes.

- This hasn't been fully extensively tested to make sure it plays nicely with feature such as automatic type acquisition or in complex workspace with multiple projects
2020-02-06 15:15:33 -08:00
Matt Bierner aca46ac4a5 Take server arguments object
Makes it more difficult to mistaktenly reverse which server is which
2020-02-06 15:15:33 -08:00
Matt Bierner c8516dd7e8 Marking arrays as readonly 2020-02-06 15:15:33 -08:00
Matt Bierner 5d3c86ad99 Remove VS Code project file change watchers
Updating projects should be handled by the `projectsUpdatedInBackground events` now
2020-02-06 15:15:33 -08:00
Matt Bierner ae758e681d Fix spelling in test name 2020-02-05 18:12:26 -08:00
Matt Bierner 5347c21ecf Treat any non-whitespace character as jsdoc param names
Fixes #90108
2020-02-05 15:26:13 -08:00
Matt Bierner 87b6d03182 Add cursor position check to jsDocCompletionTest 2020-02-04 18:02:38 -08:00
Matt Bierner 2b7e6ab2fd 💄 2020-02-04 18:00:03 -08:00
Matt Bierner e7451b12ce Adding assertEditorContents helper function and fixing jsdoc completion tests 2020-02-04 17:52:11 -08:00
Matt Bierner a32cb805a2 Adding some basic tests for auto insert of await on completions 2020-02-04 17:34:12 -08:00
Matt Bierner 58fe34bb77 Don't require strict prefix matches for private field completions
Fixxes #89556
2020-02-04 17:17:00 -08:00
Matt Bierner b4a835f5b9 Fixing backet completion items not shown for cases such as this.xy| 2020-02-04 16:15:58 -08:00
Matt Bierner 7b754d7d95 Adding more pinning tests for JS/TS completions 2020-02-04 16:15:58 -08:00
Matt Bierner 9887559f17 Add basic JS/TS replace/insert completions
For #87091

Adds basic support for insert/replace mode for JS/TS completions. We're blocked on full support by https://github.com/microsoft/TypeScript/issues/35602. I'll be adding some skipped tests that document current limitations
2020-02-04 16:15:58 -08:00
Matt Bierner 78465390bd Run many of the JS/TS completion tests in both insert and replace completion mode 2020-02-04 16:15:58 -08:00
Matt Bierner 6205cf0fed Add basic insert mode tests 2020-02-04 16:15:58 -08:00
Matt Bierner 6960e8c07b Fixing TS completion tests
The current method of verifying when suggestions have been shown is not reliable so switch to use a delay instead :(
2020-02-04 16:15:58 -08:00
Matt Bierner 5b284c140c Build TS extension against current vscode.d.ts directly
Currently  extensions like TS have a dev dependency on the `"vscode"` package. This pulls in a copy of `vscode.d.ts` that we end up using instead of our local `vscode.d.ts`.

This change uses the `paths` `tsconig` option so that we use our local `vscode.d.ts` instead of the one from `node_modules`
2020-02-04 16:15:58 -08:00
Matt Bierner 45999fdb8f Remove extra cast
Not required with TS 3.8
2020-02-04 16:15:58 -08:00
Matt Bierner 5623c36a40 Remove surveyor code
Not currently being used
2020-02-04 16:15:58 -08:00
Alex Ross 8066726b27 Allow both : an . as time separators in tsc problem pattern
Fixes https://github.com/microsoft/vscode/issues/89273
2020-02-04 15:01:09 +01:00
Matt Bierner 3f5fda1800 Redefine performanceData 2020-02-03 14:31:21 -08:00
Matt Bierner 7c502bbb6a Fix compile error related to new TS version 2020-02-03 14:20:17 -08:00
Matt Bierner 55e72d8d02 Add support for rendering jsdoc inline @link tags
Fixes #28624
2020-02-03 14:00:19 -08:00
Matt Bierner 8fd777f649 Remove extra not null checks 2020-02-03 14:00:19 -08:00
Ron Buckton d837ddc72e
Fix off-by-one typo to improve display of file names in TS call hierarchy (#89822) 2020-01-31 15:35:49 -08:00
Matt Bierner d92dedcd69 Allows for js and ts specific refactoring pages 2020-01-29 18:03:24 -08:00
Alex Dima acf2931955
Fixes #89552: Throw from the provider when semantic tokens cannot be computed and keep old semantic tokens if this happens 2020-01-29 16:22:08 +01:00
Matt Bierner d99bbafe17 Pick up new TS version for building VS Code 2020-01-28 11:00:02 -08:00
Matt Bierner c4b6a6b537 Send # as a completion trigger character to TS 3.8.1+
https://github.com/microsoft/TypeScript/issues/36367 added support for `#` as a TS completion trigger
2020-01-27 19:06:05 -08:00
Matt Bierner c0c9e0043c Use type only imports for protocol
These imports should never result in a real import in the emitted code
2020-01-27 19:06:05 -08:00
kieferrm ab1514ed77 fix GDPR annotation 2020-01-27 22:17:56 +00:00
Martin Aeschlimann a6df4b39d9 update typescript-vscode-sh-plugin 2020-01-27 15:03:16 +01:00
Martin Aeschlimann 2b880f2b74 update typescript-vscode-sh-plugin 2020-01-23 17:08:49 +01:00
Martin Aeschlimann 3c930f9214 improve jsx semantic highlighting 2020-01-22 23:16:57 +01:00
Alex Dima fbc1c189ff
Bring back version check to avoid flickering caused by coordinates conversion 2020-01-21 09:19:20 +01:00
Matt Bierner 74cc2f352a Use more explit name for request start time
Note that this is the total time the request has been in the server queue, not the actual execution time
2020-01-19 20:14:25 -08:00
Matt Bierner 5359a9373a Log the full version string for TS
Right now, if TS has an error before we get back the full version string in the TSServer `'telemetry'` event, we end up logging just the basic version info (such as 3.8.0). We also want to include the pre-release tags (3.8.0-tsversion20200101)
2020-01-19 20:14:25 -08:00
Matt Bierner 4a5890eabc Add explict update methods intead of using spread 2020-01-19 20:14:25 -08:00
Matt Bierner 8714526077 💄 2020-01-19 20:14:25 -08:00
Matt Bierner cb0cd66791 Make sure we only send TS trigger characters they know about 2020-01-19 20:14:25 -08:00
Matt Bierner 2fd0153d56 Remove extra no null check
This is already checked a few lines up
2020-01-19 20:14:25 -08:00
Martin Aeschlimann b6e7eaa1bd fix for typescript-vscode-sh-plugin not found 2020-01-17 16:09:44 +01:00
Martin Aeschlimann 844f49f2a8 typescript-vscode-sh-plugin is not bundled 2020-01-17 11:16:34 +01:00
Matt Bierner b600d39061 Treat '#' as a VS Code trigger character
Fixes #88816
2020-01-16 17:22:04 -08:00
Matt Bierner b57190f449 💄 2020-01-16 15:49:36 -08:00
Matt Bierner e1373b367d Use test instead of exec 2020-01-16 15:49:36 -08:00
Matt Bierner b53a2f4b8a 💄 2020-01-16 15:49:36 -08:00
Matt Bierner 53682cf56d Bump VS code version 2020-01-16 13:16:38 -08:00
Rob Lourens 8c0a573b9e
Merge pull request #88730 from mairaw/typo
fix typo
2020-01-16 10:00:15 -08:00
Alex Dima 9e1d730cf2
SemanticTokens - implement feedback received in API call:
- extract a separate DocumentRangeSemanticTokensProvider that deals with a document range
- extract a separate provideDocumentSemanticTokensEdits that deals with updating via SemanticTokensEdits a previous result
2020-01-16 18:02:02 +01:00
Johannes Rieken 430de16fef fix compilos and adopt proposed api usage, #10266 2020-01-16 17:52:18 +01:00
Maira Wenzel 71ed221b0e fix typo 2020-01-15 16:35:58 -08:00
Martin Aeschlimann a2d46d4b68 ts semantic highlighting: support alias 2020-01-15 23:08:15 +01:00
Matt Bierner 95793304cc Also show extract to function as disabled in js/ts
Currently we only show `extract constant`
2020-01-14 13:03:59 -08:00
Martin Aeschlimann 661bc5da41 define constants in typescript-vscode-sh-plugin 2020-01-14 17:35:58 +01:00
Martin Aeschlimann 5ee9f6646e add constants 2020-01-14 10:07:40 +01:00
Martin Aeschlimann fc57a1421d update typescript-language-features 2020-01-13 21:09:37 +01:00
Martin Aeschlimann 18f0a5bd21 add reaonly support, update typescript-vscode-sh-plugin version 2020-01-13 19:57:17 +01:00
Martin Aeschlimann 0fe69bd529 TS semantic highlighting: check api version 2020-01-13 12:42:45 +01:00
Martin Aeschlimann 59e12621ae polish 2020-01-10 16:15:08 +01:00
Martin Aeschlimann 703a2afcef update typescript-vscode-sh-plugin 2020-01-10 16:05:16 +01:00
Martin Aeschlimann fbad0c368e Merge branch 'master' into aeschli/ts-sem 2020-01-10 15:40:03 +01:00
Martin Aeschlimann 4032ce7241 polish 2020-01-10 15:37:37 +01:00
Matt Bierner ad97bd7493 Exclude tsconfig files under dot file directories
Fixes #88328
2020-01-09 14:25:39 -08:00
Martin Aeschlimann 900100b745 use typescript-vscode-sh-plugin 2020-01-09 23:23:55 +01:00
Martin Aeschlimann a07286f7f9 use @aeschli/typescript-vscode-sh-plugin 2020-01-09 22:47:06 +01:00
Martin Aeschlimann b8a7184825 use plugin 2020-01-09 17:36:45 +01:00
Martin Aeschlimann 741a8b2b2f Merge branch 'master' into aeschli/ts-sem 2020-01-09 15:41:56 +01:00
Matt Bierner fc65a7c41b Update logging of updateGraph to match TS protocol changes
For #88313

Also log updateGraph on `completions.execute` instead of as its own event
2020-01-08 16:57:26 -08:00
Matt Bierner ce5ffc76c0 Fix type 2020-01-08 16:47:10 -08:00
Matt Bierner e7b44e70e9 Dont' use default export for TelemetryReporter
We are also exproting other values/types, so use a named export instead
2020-01-08 16:36:31 -08:00
Matt Bierner 7c6897aca0 Report updateGraph performance Telemetry from the TypeScript server
Fixes #88313
2020-01-08 16:34:21 -08:00
Ron Buckton 71b60d0d22 Add call hierarchy support for TypeScript 3.8 (#88168)
* Add call hierarchy support for TypeScript 3.8

* Add version dependent registration for call hierarchy provider

* Revert TS version, PR feedback
2020-01-08 14:35:44 -08:00
Martin Aeschlimann ed4173796d ts sem 2020-01-08 17:08:48 +01:00
Matt Bierner 80ccf6fd9d Make sure we always explicitly reset pendingGetErr
#88209
2020-01-07 16:14:54 -08:00
Matt Bierner f0336455ed Adding documentation.refactor proposed contribution point
For #86788
2020-01-07 16:14:54 -08:00
Matt Bierner 629a08ed62 When generating a tsconfig with checkJs, make sure we also set allowJs
For #87972
2020-01-06 15:35:41 -08:00
Matt Bierner f105af6007 Set sourceMap: true in default tsconfig
For #87972
2020-01-06 15:35:41 -08:00
Andrew Liu 81fb34c445 fix parsed JSDoc author tag (#80898)
* fix parsed JSDoc author tag

* fix author tag
2020-01-06 11:53:13 -08:00
Johannes Rieken 09ee89ca87 remove more unused tslint directives 2020-01-03 08:14:23 +01:00
Johannes Rieken f80a6f9b96 update rule-disablements (eslint-disable for tslint-disable) 2020-01-02 20:28:59 +01:00
Johannes Rieken f01f7ebe93 fix some (future) linting issues 2019-12-31 09:54:04 +01:00
Matt Bierner c0c4eb6a51 Always use same range for jsdoc completions
For #87091

JSdoc completions do not have different behavior for replace vs insert
2019-12-20 11:55:46 -08:00
Matt Bierner 4636be2b71 Remove grep for ts tests 2019-12-17 16:50:36 -08:00
Simon Siefke 043da28dda fix: typescript completion item kind for local function (#87182) 2019-12-17 11:03:00 -08:00
Alex Ross 7a374c3d13 Handle stat.type correctly in typescript features extension
#85753
2019-12-17 11:58:28 +00:00
Matt Bierner c645eeee69 Remove extra check 2019-12-12 10:31:55 -08:00
Matt Bierner faf453c1c4 Prefer startsWith 2019-12-12 10:31:55 -08:00
Matt Bierner 1dd79d573c Use more explicit names 2019-12-12 10:31:55 -08:00
Matt Bierner a4177f50c4 Use object for refactor.disabled
For #85160

Using an object is more explict with property names and will let us introduce additional properties in the future if needed
2019-12-11 20:15:30 -08:00
Matt Bierner 58d954737f Don't show references code lens on const members
Fixes #86495
2019-12-09 17:28:32 -08:00
Matt Bierner 35587bec93 Also log error when a fatal error happens 2019-12-09 17:28:32 -08:00
Matt Bierner 9bdb4a2f70 Handle normalized windows paths in resource map
Fixes #86433

During path normalization, we convert `\` in windows paths to  `/`. This causes the isWindowsPath check to fail

I think it is generally safe to assume that file paths that start with a drive letter and then any type of slash should be treated as windows paths
2019-12-05 15:08:13 -08:00
Martin Aeschlimann eeee6244d9 [josn] fix wrong schema-schema reference, use draft-07 everywhere 2019-12-05 11:15:39 +01:00
Matt Bierner 57455124b5 Make sure we also log the typescript error properties on fatal error telemetry events
Fixes #86205

We already log error metadata for failed requests. However we don't include this on the fatalError event. This makes investigation of these errors difficult
2019-12-04 10:59:15 -08:00
Martin Aeschlimann 3bef2000a8
Merge branch 'master' into patch-2 2019-11-26 14:28:00 +01:00
Matt Bierner a63d88ec55 Make sure we normalize paths before sending them to tsserver
Fixes #84826
2019-11-25 20:58:47 -08:00
Matt Bierner 16fffb122b Mark parameter suggestions as variables
For #85430
2019-11-25 20:09:10 -08:00
Matt Bierner dd300e4fe7 Show constants as normal variables
Fixes #85429
2019-11-25 19:50:32 -08:00
Matt Bierner 4116c9411b Use enum member completion type 2019-11-25 19:50:32 -08:00
Samuel Bronson 96479b86f3
Allow trailing commas in jsconfig.json, too
This is a followup to commit bcf67c867f "allow trailing commas in tsconfig.json (for #80419)".
2019-11-23 21:36:10 -05:00
okmttdhr 0db887a1a3 Show JS/TS References Code Lens for Inner Functions (#84689)
* Show code lens for inner functions

* Create typescript.referencesCodeLens.showOnAllFunctions setting

* Create javascript.referencesCodeLens.showOnAllFunctions setting

* Add a new setting in a existing class

* Avoid unnecessary fallthrough
2019-11-22 18:06:23 -08:00
Matt Bierner 827e94edef Hook up basic alert of why a code action could not be applied
For #85160
2019-11-20 17:10:00 -08:00
Alex Ross e82dd213dd Make typescript problem match watch patterns less locale specific
Improves #46373
2019-11-20 09:33:32 +00:00
Matt Bierner 0e5a5f6524 Better time logging for js + markdown
We don't need full date, only times
2019-11-19 11:22:08 -08:00
Alexandru Dima cf624b01fc
Fix memory leak caused by listeners to nulToken (#84940) 2019-11-19 11:13:38 +01:00
Matt Bierner 942287eb44 Fix report issue command
For #85021
2019-11-18 11:00:47 -08:00
Matt Bierner 5b428d2ec1 Don't use locale strings
For #84803

These can cause issues on node 12
2019-11-18 09:35:35 -08:00
Johannes Rieken 95a7255725 fix more compilos 2019-11-18 15:26:44 +01:00
Alexandru Dima e7f8a94eb2
Split TS changes to separate PR 2019-11-18 12:17:23 +01:00
Alexandru Dima 41be9a6142
Merge remote-tracking branch 'origin/master' into alex/semantic-exploration 2019-11-18 08:59:14 +01:00
Matt Bierner 91200b1202 Use const enum for types 2019-11-15 14:55:14 -08:00
Matt Bierner fa72810c77 Don't send TS Server open requests if we open then quickly close a resource
Fixes #84875
2019-11-15 14:02:46 -08:00
Alexandru Dima cbb231754f
Merge remote-tracking branch 'origin/master' into alex/semantic-exploration 2019-11-15 10:10:39 +01:00
Matt Bierner 738d85a51e Don't return js/ts fix all for empty edits 2019-11-14 15:35:46 -08:00
Matt Bierner 88c2100793 Make sure we always reset bufferSyncSupport when the TS server is started
Splits `reset` from `reinitialize` and makes sure we always `resset` buffer sync support when the service starts
2019-11-14 11:30:41 -08:00
Matt Bierner 4e8ef4cf4d Remove gating for inMemoryResourcePrefix
Some users are setting weird errors related to untitled TS files. In some of these cases (such as https://github.com/microsoft/TypeScript/issues/35091) we see a untitled file being sent to the tsserver without the `inMemoryResourcePrefix`.

I can't figure out how to get into this state but am removing the gating that *could* perhaps cause use not to set `inMemoryResourcePrefix`. This gating targets TS 2.7 or older, which telemetry shows very, very few users are still enabling in their workspaces
2019-11-14 00:17:57 -08:00
Alex Dima 15beb36ccf
Merge remote-tracking branch 'origin/master' into alex/semantic-exploration 2019-11-14 09:16:10 +01:00
Johannes Rieken 27eafea04a
Merge pull request #84578 from microsoft/joh/outlineNav
Symbol navigation
2019-11-13 12:33:36 +01:00
Matt Bierner cf197953d7 Prefer using vscode.workspace.fs over node fs 2019-11-12 21:59:36 -08:00
Matt Bierner 0749b7aca8 Timebox the TSServer request used in the JS/TS task provider
Fixes #84278
2019-11-12 21:59:36 -08:00
Matt Bierner 1f3642a07d Add explicit type on experimental fixAll provider
For #84602
2019-11-12 14:28:43 -08:00
Matt Bierner a170916295 Highlight a few other types in jsdoc comments
Fixes #84622
2019-11-12 13:31:09 -08:00
Greg Van Liew 8ae2921645 Nits in settings comments 2019-11-12 10:55:04 -08:00
Johannes Rieken 7e333135dd often set selection range for TS document symbols, #84576 2019-11-12 11:28:48 +01:00
Matt Bierner 2ec3bc4fd0 Removed undocumented setting usage 2019-11-11 16:12:52 -08:00
Matt Bierner 8904a3cbce 💄 2019-11-11 16:12:52 -08:00
Matt Bierner 6118d2713e Make sure synchronized buffers are reset when tsserver restarts 2019-11-11 16:12:52 -08:00
Matt Bierner 21fd94b70c Make sure buffer sync reset clears pending diagnostics 2019-11-08 14:47:06 -08:00
Matt Bierner 7218d47251 Make sure we don't try calling a cached getErr on a closed resources that are in the getErr queue 2019-11-08 14:47:06 -08:00
kieferrm 59ba1190b4 fix GDPR annotation 2019-11-08 22:36:55 +00:00
Alex Dima c9a2de2d9c
Improve integration test output on Windows (#84239) 2019-11-08 17:21:35 +01:00
Matt Bierner fdeb9aa9b8 Use 'as const' instead of readonly class object 2019-11-07 20:31:32 -08:00
Matt Bierner a8ad448cb0 Aggressively cancel code lens requests when the resource changes
For #84185
2019-11-07 18:47:39 -08:00
Matt Bierner d83f121f6d Fix spelling 2019-11-07 07:57:04 -08:00
Alexandru Dima c34e736195
Forward SemanticColoring disposals to the ext host 2019-11-07 16:06:46 +01:00
Alexandru Dima bdbe2e3612
Clear semantic tokens in case of errors/empty results 2019-11-07 15:40:06 +01:00
Alexandru Dima 7761e75deb
API tweak from the standup discussion 2019-11-07 15:26:22 +01:00
Matt Bierner bea911842a Fix name and make sure tell VS Code about about specific code actions 2019-11-06 18:21:43 -08:00
Matt Bierner 5b63895862 Docment remaining known js/ts refactorings 2019-11-06 18:13:54 -08:00
Matt Bierner 26c4541c4a Add coalease helper function 2019-11-06 17:47:43 -08:00
Matt Bierner 692630172a Documenting more js/ts refactorings 2019-11-06 17:47:43 -08:00
Matt Bierner 42d53cf373 Document extract constant and extract type alias 2019-11-06 16:51:49 -08:00
Matt Bierner c3983ca63b Document extract interface for js/ts
Also re-organizes the code action kinds fo better encapsulate mapping of TS kinds to VS Code kinds
2019-11-06 16:51:49 -08:00
Matt Bierner 2510769bf9 Updat codeActions contribtions schema based on https://github.com/microsoft/vscode/issues/82718#issuecomment-550468267
- Adds a description
- Remove schama
- Moves the language to the top level so we don't need to duplicate so much info for each code action
2019-11-06 16:51:49 -08:00