Commit graph

1280 commits

Author SHA1 Message Date
Matt Bierner 3ed300eb9d
Add simple browser extension (#109276)
* Add support for TS's Hierarchical refactorings API

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

* Add simple browser extension

This change adds a new 'simple browser' extension. This extension uses a webview to render webpages directly in VS Code. We plan on using it for optionally previewing local servers in both desktop and codespaces

The browser itself has a number of limitations due to the security around iframes:

- It traps keyboard focus
- We can't detect if a page fails to load
- We can't track the current url of the iframe

* Add experimental alert when the iframe is focused

* Disable events on focus warning

* Hooking up simple browser to opener
2021-01-04 19:06:53 -08:00
Matt Bierner 69dfa670ef Fix compile error if using older ts version 2021-01-04 17:55:19 -08:00
Matt Bierner 942c3bad6b Sort contribitions 2021-01-04 16:57:38 -08:00
Matt Bierner b565c422aa Add find all references command for JS/TS
Fixes #66150
2021-01-04 16:57:24 -08:00
Alexandru Dima 20831dd3df
Keep only @types/* deps in /build/ and share terser (#112718) 2020-12-18 19:51:10 +01:00
Alexandru Dima f74ad9692f
Align @types/* dev dependencies (#112718) 2020-12-18 13:28:39 +01:00
Alexandru Dima 7ca71e763d
Move away from deprecated 'vscode' node module (#112718) 2020-12-17 21:40:14 +01:00
Alexandru Dima cbc47b1d7b
Do not share terser 2020-12-17 14:38:44 +01:00
Alexandru Dima 1cada18542
Share webpack related node modules (#112718) 2020-12-17 11:16:03 +01:00
Matt Bierner 072d922c45 Revert "Revert "Pick up offical TS build for web server""
This reverts commit eb5c4388c7.
2020-12-11 13:39:19 -08:00
Matt Bierner eb5c4388c7 Revert "Pick up offical TS build for web server"
This reverts commit f29a3cabc4.
2020-12-11 12:14:58 -08:00
Matt Bierner c3d8989b24 Enable going to stdlib on serverless 2020-12-09 18:20:28 -08:00
Matt Bierner 582f8f6bb0 Bump Static version of web TS version 2020-12-09 18:19:14 -08:00
Matt Bierner e6a13fb134 Remove work around for TS not supporting paths on its own 2020-12-09 18:19:14 -08:00
Matt Bierner 71fad5aa41 Enable preferConst in TS project 2020-12-09 18:19:14 -08:00
Matt Bierner 1633404883 Remove unused types 2020-12-09 18:19:14 -08:00
Matt Bierner f29a3cabc4 Pick up offical TS build for web server 2020-12-09 17:22:26 -08:00
Matt Bierner 9e5f14c1bc Default strict null checks to off for implicit projects
For #109988
2020-11-30 16:40:15 -08:00
Johannes Rieken bd40e2555b remove TS on-type-rename feature, https://github.com/microsoft/vscode/issues/109923, fyi @mjbvz 2020-11-24 17:58:28 +01:00
Martin Aeschlimann 07d680b7c8 semantic highligting: deprecate member, add method. Fixes microsoft/language-server-protocol#1087 2020-11-23 11:41:12 +01:00
Andrew Casey 9195c9ab14
Expose TS server tracing (#110534)
* Add typescript.tsserver.enableTracing setting

* Document typescript.tsserver.enableTracing setting
2020-11-20 15:28:18 -08:00
Matt Bierner b4c0cfb513 Better note current version in TS version UI
Fixes #111001
2020-11-19 22:19:32 -08:00
Matt Bierner 59428623f9 Cancel encodedSemanticClassifications-full on resource change
For #102161
2020-11-19 14:14:21 -08:00
Johannes Rieken 793b679ebc adopt latest API 2020-11-17 10:09:17 +01:00
Johannes Rieken fd610cfa5f
Merge branch 'master' into joh/tsQuickRename 2020-11-17 09:05:38 +01:00
Andrew Branch 00fa5d3884
[typescript-language-features] Update importModuleSpecifierPreference values (#110536)
* Update importModuleSpecifierPreference values

* -using

* Add minimum version message
2020-11-16 13:06:40 -08:00
Johannes Rieken ea3b8da874 also quick rename type parameters, ignore declare only things 2020-11-16 12:05:39 +01:00
Johannes Rieken e6bb245b6c use predefined constants 2020-11-16 11:59:14 +01:00
Johannes Rieken b851bf9ca0 Merge branch 'master' into joh/tsQuickRename 2020-11-13 13:55:23 +01:00
Johannes Rieken 8f82b02a4c
Merge pull request #109842 from microsoft/joh/98228
Use new completion label for imported modules
2020-11-13 08:39:03 +01:00
Johannes Rieken 165e49bfe8 use rename info instead of highlight info 2020-11-12 21:07:59 +01:00
Johannes Rieken ce7bd67d46 explore on-type-rename for TypeScript 2020-11-12 20:47:50 +01:00
Matt Bierner 17c29f0b99 Add support for web TS Server logging over postMessage
For https://github.com/microsoft/TypeScript/pull/39656
2020-11-11 17:39:17 -08:00
Matt Bierner afcfc97316 Fix method spelling 2020-11-11 17:39:17 -08:00
Matt Bierner 7c6994d1b5 Use toOpenedFilePath to ensure we don't ask TS server for projectInfo if a file is not open 2020-11-11 17:39:17 -08:00
Matt Bierner fb93010aa2 Make sure we use the same path normalizer in a few additional places in buffer sync 2020-11-11 17:39:17 -08:00
Matt Bierner 805aa7e8f4 Make ResourceMap treat the same file with different scheme as different
Fixes #110435
2020-11-11 17:39:17 -08:00
Suman B K 4247b296eb
Including ` as part of foldEndPairCharacters (#110108)
* Including '`' as part of foldEndPairCharacters

* Removed test code, which was unrelated
2020-11-09 18:02:38 -08:00
Matt Bierner d04956f6a7
Switches the 'Fix all' quick fix provider to use resolveCodeAction (#107853)
Made while testing #106410
2020-11-09 18:00:46 -08:00
Matt Bierner 451c2b61d3 Specify type of CodeLensProvider instead of using casts 2020-11-05 12:19:55 -08:00
Matt Bierner 9f4737fa3f Exclude definitions from js/ts references code lens
Fixes #98274
2020-11-05 12:17:18 -08:00
Benjamin Pasero ac2ca0b539 typescript - fix nls issue
//cc @mjbvz
2020-11-05 10:49:22 +01:00
Matt Bierner 4a54027a82 Disable rename after refactoring in interactive playground
Fixes #75137
2020-11-04 18:06:39 -08:00
Matt Bierner 81a25a894c Rename implicit project settings and deprecate old ones
For #109990
2020-11-04 14:55:28 -08:00
Matt Bierner ff7cc33236 Use objects.equals for comparing configuration objects 2020-11-04 14:33:24 -08:00
Matt Bierner 05fee0cf3d Extract implictProjectConfiguration class 2020-11-04 14:33:24 -08:00
Matt Bierner 64705a07dc Add two new setting for strict null and strict funtion in js/ts that are implicit projects
For #109988

The new `js/ts.implicitProjectConfig.strictNullChecks` and `js/ts.implicitProjectConfig.strictFunctionTypes` control these settings in implict javascript and typescript files that are not contained in a jsconfig or tsconfig project. They are enabled by default for now so that we can collect feedback on them
2020-11-04 14:33:24 -08:00
Matt Bierner c38a12c26c Quote jsconfig and tsconfig in setting 2020-11-04 14:33:24 -08:00
Matt Bierner 8141dcf29a Extract adjustFoldingEnd 2020-11-04 13:19:38 -08:00
Matt Bierner 97db458fa4 Show closing ) while folding JS/TS
Fixes #109854
2020-11-04 13:19:38 -08:00
Matt Bierner 0608e3f5bd Pick up TS 4.1-rc for insiders 2020-11-04 13:19:38 -08:00
Johannes Rieken 0729278ad1 use label2 when CompletionEntry#source is a path inside the workspace 2020-11-02 13:22:12 +01:00
Matt Bierner 8a5ffbb044
Mark DocumentSelector as readonly (#109212)
This change:

- Make  `DocumentSelector` use a readonly array
- Updates all properties of `DocumentFilter` to be readonly

`DocumentSelector` is used as a parameter in our provider APIs and does not need to be mutable. This change lets extensions pass in readonly values for the selector
2020-10-23 18:37:39 -07:00
Matt Bierner dc9c7fae94 Remove readonly
This change was mistakenly checked in
2020-10-22 23:51:27 -07:00
Matt Bierner aabcbd5ef8 Also enable errors and warnings in interactive playground
For #83025
2020-10-22 22:42:55 -07:00
Matt Bierner 40fc0b1789 Enable semantic features in interactive playground
Fixes #109190
2020-10-22 22:36:08 -07:00
Matt Bierner 16075cc22a Add insertSpaceAfterOpeningAndBeforeClosingEmptyBrackets formatting setting
Fixes #109190
2020-10-22 22:36:08 -07:00
Matt Bierner 37c63d6ae5 Don't show loading and project loading status for in-memory JS/TS files
Fixes #108454
2020-10-19 17:18:49 -07:00
Matt Bierner 706857dfa5 Pass executingFilePath to TS server 2020-09-29 17:59:29 -07:00
Matt Bierner 6ef40a891b Disable TS plugins on web 2020-09-29 17:59:29 -07:00
Matt Bierner ee536909df Enable logging for TS Server on web
The web server does not have a log file
2020-09-29 17:59:29 -07:00
Matt Bierner f1e631ab83 Update ts server web build 2020-09-25 16:22:05 -07:00
Matt Bierner 5a7d0a1ed2 Adopt resolveCodeAction for JS/TS refactorings 2020-09-18 18:17:31 -07:00
Matt Bierner 5b4350943e Remove custom typings for refactor trigger reason
This property has been finalized
2020-09-18 18:17:31 -07:00
Matt Bierner b255097c33 null -> undefined 2020-09-18 18:17:31 -07:00
Matt Bierner bd54e5f5cc Simplify showQuickPick 2020-09-18 18:17:31 -07:00
Matt Bierner f26d81979f Extend disposable 2020-09-18 16:27:21 -07:00
Matt Bierner f8f2538d20 Move exists to own file 2020-09-18 16:26:04 -07:00
Matt Bierner c3651027ba Use enum 2020-09-18 16:23:49 -07:00
Matt Bierner 017a42552b Use Promise.all to perform config finding in parallel instead of sequentially
For #87494
2020-09-18 16:15:50 -07:00
Matt Bierner bf2448549d Make getTsConfigsInWorkspace observe the TaskProvider cancellation 2020-09-18 16:15:50 -07:00
Matt Bierner d1510288f0 Add timeout for vscode.workspace.findFiles
For #87494
2020-09-18 16:15:50 -07:00
Matt Bierner 6932306e4d Add (get) and (set) prefixes to JS/TS getters and setters in the outline
Fixes #106935
2020-09-18 11:06:32 -07:00
ChaseKnowlden e8760a5d6c Fix capitalization of GitHub org 2020-09-17 11:43:03 +02:00
Matt Bierner 50cc1d0e97 Update to use TS 4.1 for building VS Code 2020-09-16 11:58:01 -07:00
Matt Bierner 2a954244f0 Only allow configurePlugin against main TS Server
Fixes #106346

Looks like the TS Server doesn't support this in partial mode at the moment
2020-09-09 09:21:56 -07:00
Jean Pierre a6833ed841
proper fix for #105202 (#106293) 2020-09-08 14:46:43 -07:00
Matt Bierner e969bc18a1 Disable errors in non-semantic supported files
Fixes #106299
Fixes #106314

Also enables js/ts features on the right side of PRs and in search results
2020-09-08 14:39:58 -07:00
Matt Bierner 3dc43cb7b3 Exclude pr schemed files from js/ts language features
Fixes #105842
2020-09-02 10:36:24 -07:00
Matt Bierner b8e4718a12 Disable js/ts features for the private scheme
This scheme is used internally by VS Code for features such as search/replace preview
2020-09-01 15:07:05 -07:00
Matt Bierner e6b0f45556 Use containerName if it exists 2020-09-01 14:10:15 -07:00
Matt Bierner 5e9a412cd9 Remove experimental typings
These typings are now in TS 4.0
2020-09-01 14:02:58 -07:00
Pranav Senthilnathan fb80351278
prune the refactor not applicable reasons if there are too many (#103203)
* prune the refactor not applicable reasons if there are too many

* Add in appendInvalidActions for older TS versions

Co-authored-by: Matt Bierner <matb@microsoft.com>
2020-08-31 15:37:02 -07:00
Jean Pierre 8b1aca7255
Fixes #105202 (#105664) 2020-08-31 14:54:51 -07:00
Johannes Rieken bc3b0defe0 use extensionUri and joinPath instead of asAbsolutePath 2020-08-28 14:57:20 +02:00
Alex Ross 0de8d51904 Finalize task detail API
Fixes #69785
2020-08-27 11:08:48 +02:00
Matt Bierner 64d126cafb Add new TSS_REMOTE_DEBUG flags that are only active in remote cases
Fixes https://github.com/microsoft/vscode-remote-release/issues/3546
2020-08-19 17:07:13 -07:00
Matt Bierner f694b07825 Make sure we do not enable JS/TS language features on live share clients
For #104180
2020-08-18 16:48:16 -07:00
Duc Nghiem Xuan 63c711deef
Don't include this function types in completeFunctionCalls (#104479) 2020-08-17 17:52:26 -07:00
Matt Bierner 650f7688f3 Add (loading...) prefix to hovers while TS Server is starting up
Fixes #104859
2020-08-17 17:48:26 -07:00
kieferrm c17b4c2488 fix GDPR annotations 2020-08-12 00:47:16 +00:00
kieferrm ce508a8214 fix GDPR annotation 2020-08-12 00:44:36 +00:00
Matt Bierner b84660fa86 Add more specific checks for being on TS 4.0.1
Fixes #104456
2020-08-11 15:23:56 -07:00
Andrew Maust 2f61d0037c
fixes #104059 (#104193)
Co-authored-by: Andrew Maust <69081050+Andrew884@users.noreply.github.com>
2020-08-10 20:46:14 -07:00
Eric Piacentini 7e4fd71ad8
Removed lines requiring Typescript version < 3.0 (#104211) 2020-08-10 20:45:11 -07:00
Matt Bierner 6d0ac47022 Fix RC version 2020-08-10 20:06:06 -07:00
Matt Bierner a3e37dc103 Remove expect error 2020-08-10 14:33:10 -07:00
Matt Bierner d21ff5b1c3 Remove expect error for TS 4.0 2020-08-10 14:31:25 -07:00
Matt Bierner 6dd0a9a64d Remove any casts 2020-08-10 13:36:19 -07:00
Alex Ross 924ccf2b63 Include weird timestamp pattern in tsc-watch problem matcher
Fixes #104157
2020-08-07 11:00:41 +02:00
Daniel Rosenwasser 54a38a2ee9
Add check to ensure RC and forward use '--serverMode'. (#104123) 2020-08-05 15:26:59 -07:00
Matt Bierner 4193455a6f Observe the new createAutoImportProviderProgramDurationMs property added by TS 4.0
Adds this property to our completion telemetry
2020-08-05 12:28:44 -07:00
Matt Bierner 4430401028 Include server id in telemetry and in user issue reports
From https://github.com/microsoft/TypeScript/issues/39795#issuecomment-668250348
2020-08-03 16:03:34 -07:00
Matt Bierner 358cc674a7 Add more exclaimation points 2020-08-03 16:03:34 -07:00
Matt Bierner 0009a0b424 Fallback to bundled version if selected TS version is invalid
Fixes #103213

This restores some logic that we removed during the web refactoring
2020-08-03 15:08:28 -07:00
Andrew Branch 4a206a33e5
Change includePackageJsonAutoImports options (#103732) 2020-08-03 14:16:28 -07:00
adfnekc fd75556c52
fix unicode download url error (#103460)
unicode downloadurl change
2020-07-30 20:47:34 -07:00
Matt Bierner 519ce367a3 Use asAbsolutePath instead of hardcoding path 2020-07-24 13:52:48 -07:00
Matt Bierner d43491b79d Reduce number of files copied for TS web build 2020-07-24 13:52:48 -07:00
Alex Dima 91cdca1bdb
Do not ship unnecessary files with extensions 2020-07-24 13:57:51 +02:00
Matt Bierner 8c426f9f3b Update built TS web version 2020-07-22 17:56:43 -07:00
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