Commit Graph

3909 Commits

Author SHA1 Message Date
Amin Pakseresht
290af69b73 Filter out global keywords of UMD module export declarations in completion providing auto import suggestions (#42141)
* Add AutoImportSuggestions for UMD module export declarations instead of global keywords

* Add test for scripts

* Add more comments

* Provide auto import suggestion only for modules and not scripts

* PR review #1

* PR review #1
2021-01-25 09:29:13 -08:00
Andrew Branch
0383b5cb4c Optimize import fixes for projects with many symlinks (#42150)
* Create symlink cache when a pnpm module is found

* Keep pnpm-internal symlinks out of the symlink cache

* Filter out  pnpm path from realpath module specifier too

* Optimize symlink module specifier generation

* Add trailing directory separators

* Remove unneeded change

* Fix paths losing case in cache

* Fix missing absolutification
2021-01-20 12:15:36 -08:00
chenjigeng
d1e1e9dccc Feat/exclude completions of variable initializers (#42087)
* feat: exclude declared variable when Object literal completions

* feat: check undeclareVariable when completion

* feat: add completion test case

* feat: code optimization

* feat: support shorthand property assignment

* feat: add shorthand property assignment test case

* feat: update completionPropertyShorthandForObjectLiteral test cases

* feat: exclude completions of variable initializers

* feat: update test cases

* feat: add completionListWithoutVariableinitializer test case

* feat: perfect the completionListWithoutVariableinitializer test case

* feat: remove isIdentifier limit

* feat: update test cases

* feat: code optimization and filter out some binding cases

* feat: update test case

* feat: handle arrow function expressions without braces

* feat: add arrow function expressions without braces test case

* feat: check node.parent exist first

* feat: optimization name

* feat: optimize test cases

* chore: code formatting

* feat: perfect type
2021-01-15 15:57:18 -08:00
Oleksandr T
8324dec9e9 feat(33715): include methods of class defined in a property (#42164) 2021-01-15 09:52:46 -08:00
Andrew Branch
33ea6c581a Fix indentation for closing > of ExpressionWithTypeArguments (#42341) 2021-01-14 14:48:40 -08:00
Andrew Branch
33046e389a Do not suggest paths inside node_modules/.pnpm as module specifiers (#42095)
* Create symlink cache when a pnpm module is found

* Keep pnpm-internal symlinks out of the symlink cache

* Filter out  pnpm path from realpath module specifier too

* Use ignoredPaths instead of pnpm-specific path
2021-01-12 14:04:03 -08:00
Anders Hejlsberg
6aeb8c12cc Preserve type aliases for union and intersection types (#42149)
* Create separate types for equivalent aliased unions

* Accept new baselines

* Preserve original types for union types

* Accept new baselines

* Preserve intersection origin for union types

* Accept new baselines

* Accept new baselines

* Preserve aliases during relationship checks

* Accept new baselines

* Preserve aliases for intersection and indexed access types

* Accept new baselines

* Compute intersection-of-unions cross product without recursion

* Accept new baselines

* Use denormalized type objects for origin / support 'keyof' origins

* Accept new baselines

* Fix fourslash test

* Recursively extract named union types

* Accept new baselines

* Map on union origin in mapType to better preserve aliases and origins

* Remove redundant call

* Accept new baselines

* Revert back to declared type when branches produce equivalent union

* Accept new baselines

* Don't include denormal origin types in regular type statistics

* Fix issue with unions not being marked primitive-only

* Allow new alias to be associated with type alias instantiation

* Accept new baselines

* Revert "Accept new baselines"

This reverts commit 4507270cc1.

* Revert "Allow new alias to be associated with type alias instantiation"

This reverts commit 2c2d06dfe1.
2021-01-08 15:19:58 -10:00
Oleksandr T
0c58edeb29 feat(26217): Add missing member fix should work for missing function (#41215)
* feat(26217): Add missing function declaration QF

* use codeFixAvailable instead of codeFix

* add diagnostics messages 'Method not implemented.' and 'Function not implemented.'

* use codeFixAvailable instead of codeFix

* fix signature types
2021-01-08 16:10:50 -08:00
Oleksandr T
042bf4eb15 feat(14248): add returns tag to JSDoc template (#42068) 2021-01-07 17:57:23 -08:00
Oleksandr T
0876feb7cb fix(42160): omit unnecessary parentheses around assertions (#42169) 2021-01-04 11:24:37 -08:00
Oleksandr T
f1dca6a61f fix(42019): include the jsdoc tags from the base declaration (#42098) 2021-01-04 15:33:26 +00:00
Brandon Pickering
822962e7b3 Improve documentation for basic array methods (#41961)
* Improve documentation for basic array methods

* Accept baseline changes for new lines from JSDoc changes

Co-authored-by: Orta <git@orta.io>
2021-01-04 10:06:01 +00:00
Oleksandr T
dfe23421ba fix(41867): completions - omit the deprecated flag if some declarations are not deprecated (#41941) 2020-12-30 10:42:38 -08:00
chenjigeng
ea03c2966b Fix/jsx syntax quickinfo (#42124)
* feat: add jsx type invalid check

* feat: update jsxGenericQuickInfo test cases
2020-12-28 09:43:43 -08:00
Jesse Trinity
8bbef818ed Hierarchical refactorings (#41975)
* add hierarchical refactoring strings

* fourslash tests

* extractSymbol filters returned actions

* move refactorKind check to utilities

* rename parameters

* messaging for addOrRemoveBracesToArrowFunction

* fix up inferFunctionReturnType

* fix up convertArrowFunctionOrFunctionExpression

* add preferences to fourslash method

* fix up convert string

* fix up moveToNewFile

* fix lint errors

* remove extra arrow braces diagnostics

* break out tests

* add refactor helpers

* refactor refactors

* keep list of actions

* address PR comments

* response protocol

* address more comments
2020-12-23 12:50:03 -08:00
Andrew Branch
c84838bd23 Avoid rewriting bare module specifiers on rename when fix is not verifiably correct (#41959) 2020-12-22 11:02:38 -08:00
orange4glace
1e4a5c9b37 fix(41259) : JS autocomplete doesn't work for object literal shorthands (#41539)
* fix: #41259

* fix: #41259

* fix: fourslash

* fix: remove nested if

* fix: change tc result for #41259

* fix: less restrictive shorthand completion rules

* fix: use typeMembers to find out whether properties are empty

* fix: typo

* fix: lint

* fix: exclude Object in completion

* fix: test

* fix: testcase tidy up

* fix: apply completions for unclosed literal and missing comma

* fix: ignore auto-imports

* fix: use exact to ensure the order of completions

* fix: use exact to ensure the order of completions

* fix: add new lines so it can easy to be distinguished
2020-12-22 10:36:52 -08:00
Song Gao
3442151f9d completion for return const assertion. (#41475) 2020-12-22 09:16:30 +00:00
Andrew Branch
487be36919 Fix auto import completion inserting wrong module specifier (#41955)
* Don’t look for reëxports when import source was an ambient module

* Add additional assertion for clarity
2020-12-18 15:13:02 -08:00
Andrew Branch
e84a95f707 Fix find-all-refs crashing in some project references scenarios (#42025)
* Add failing test

* Fix test

* Accept baseline
2020-12-18 14:24:34 -08:00
Andrew Branch
49136f7879 Use getPropertiesForObjectExpression in string literal object completions (#42020)
Co-authored-by: Johanne Enama <jenama@users.noreply.github.com>
Co-authored-by: Kevin Wong <kwong0419@users.noreply.github.com>

Co-authored-by: Johanne Enama <jenama@users.noreply.github.com>
Co-authored-by: Kevin Wong <kwong0419@users.noreply.github.com>
2020-12-18 14:20:41 -08:00
Andrew Branch
3160b5cfcc Don’t require fourslash completions tests to specify replacementSpan when it’s zero-length (#42013) 2020-12-17 09:45:49 -08:00
Wesley Wigham
b217f22e79 Allow identical type parameter lists to merge in union signatures (#31023)
* Have signature identity checks look at the base constraint of type parameters, allow identical type parameter lists to merge in union signatures

* Update text in fourslash test

* Add whitespace to fix lint, remove duplicate impl

* Consolidate names

* Remove comparisons of type parameter defaults, add more test cases
2020-12-16 13:17:57 -08:00
Zen
422fd1962e Spelling correction fixes should not be case-agnostic for two equally weighed options (#39060)
* Spelling correction fixes should not be case-agnostic when two equally weighed options occur. fixes #17219

* update tests

* Update src/compiler/core.ts

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>

* init bestCaseSensitiveDistance lazily

* Add a test case with a class named the same as an instance, except for case

* make the core levenshtein distance check case-aware

* Update package-lock.json

* use fractional Levenshtein distance

* fix weight of Levenshtein distance

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

* Update src/compiler/core.ts

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>

* refactor

* Update package-lock.json

* revert unnecessary changes

* Update package-lock.json

* increase bestDistance

* increase bestDistance again

* make changes minimal

* Update package-lock.json

* Update package-lock.json

* Update package-lock.json

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
Co-authored-by: TypeScript Bot <typescriptbot@microsoft.com>
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2020-12-15 10:36:05 -08:00
Léo Meira Vital
4a9e2be386 fix(41868): Infer parameter from usage does not work on arrow functions that are a PropertyDeclaration of a Class (#41869) 2020-12-14 17:08:52 -08:00
Andrew Branch
78ded6577e Make findAllReferences work on triple-slash reference paths that resolve to scripts (#41936)
* Support find-all-references on triple-slash references that resolve to scripts

* Rename terrible name

* Add test for <reference types="..." />

* Actually accept baselines
2020-12-11 15:46:11 -08:00
Andrew Branch
9dfbf07d8a Find references of a module by filename (#41805)
* Naive implementation enough to build and write a test

* Add simple test

* Add project references test

* Add deduplication test, accept baselines

* Add test for referencing a script (doesn’t do anything)

* Update API baselines

* Use refFileMap for non-module references

* Fix find-all-refs on module specifier

* Remove unused util

* Don’t store text range on ts.RefFile

* Ensure string literal could itself be a file reference

* Remove unused utilities

* Improve baseline format

* Preserve old behavior of falling back to string literal references

* Update baselines from master

* Fix old RefFileMap code after merge

* Add test for additional response info

* Undo test change
2020-12-11 12:37:02 -08:00
Oleksandr T
1c1cd9b08d fix(37539): extend scope for function expressions to include JSDoc (#41364) 2020-12-11 09:00:05 -08:00
Sheetal Nandi
2eca17d7c1 Keep track of why files are in the program (#40011)
* --explainFiles currently hardcoded

* Move configFileSpecs to configFile so it can be used in program later

* Explain root file inclusion reason and explain include files in the log

* Baseline explainFiles

* Fix incorrectly reporting of file list two times in --b mode

* Fix unnecessary new lines in output represented incorretly in the baseline

* More tests

* More cleaning up

* Keep listing files in same order as list files, just add explaination

* Fix double listing of file names when the program has errors

* Make diagnostic chains for file include reason

* Add explaination for the file include to diagnostics for program

* Harness ls incorrectly adding tsconfig as the root file

* Fix incorrect use of path for calculating absolute path

* Fix the root file in fourslash

* Test project service options merge

* Add config file name to matched by include explaination

* Add test for when the file changes and program is reused completely but related file information is reattached to correct location

* Handle file preprocessing diagnostics updates when program is reused and related information location changes

* Moved types to types.ts

* Refactoring and cleanup

* More cleanup

* More refatoring

* Handle synthetic imports

* Baselines after merge
2020-12-08 16:10:05 -08:00
Oleksandr T
0fa41db6c6 fix(41827): allow infer parameters from method signature usage (#41836) 2020-12-07 14:00:46 -08:00
Oleksandr T
2946318df0 fix(41526): add JSDoc type annotations before parameters (#41561) 2020-12-04 16:52:12 -08:00
Oleksandr T
f0340005a3 fix(41295): handle deprecated callbacks (#41310) 2020-12-04 16:37:25 -08:00
Wenlu Wang
4f8fde38ca Rename codeFixNoPropertyAccessFromIndexSignature4.ts to codeFixNoPropertyAccessFromIndexSignature5.ts 2020-12-04 11:18:07 +08:00
kingwl
501b69c61f respect quote Preference 2020-12-03 12:00:30 +08:00
kingwl
31e686b996 Fix codefix for noPropertyAccessFromIndexSignature 2020-12-03 11:51:41 +08:00
Jack Works
0b6c9254a8 Fix import tracker for dynamic import (#41473)
* chore: migrate findAllRefs_importType_js to baseline

* fix: reference for dynamic import

* fix: find all reference for typeof import()

* fix: test

* refactor: addIndirectUser

* refactor: isExported

* refactor: isExported

* resolve review
2020-12-02 14:46:20 -08:00
Ryan Cavanaugh
9a957e7b9c Remove incorrect assert that triggers crash on completions of globalThis (#40278)
Fixes #39338
2020-12-02 11:47:32 -08:00
Armando Aguirre
fd50f1e3c9 Merge pull request #41543 from a-tarasyuk/fix/41534
fix(41534): Maximum call stack error while computing document symbol file
2020-12-01 18:03:11 -08:00
Wenlu Wang
55810095f4 Allow qualified name for convert namespace import (#41592) 2020-12-01 15:23:57 -08:00
Oleksandr T
23b3eb685f fix(41621): fixUnusedIdentifier - allow deleting prefix/postfix unary operators (#41624) 2020-11-30 13:58:47 -08:00
Oleksandr T
1bd8e388ae fix(41688): completions with infer keyword (#41704) 2020-11-30 11:56:12 -08:00
Song Gao
d5779c75d3 replace whole path if directory separator appears for import completion. (#41412)
* replace whole path if directory separator appears.

* Fix.

* revert change.

* Fix test case.

* add test.

* fix as suggested.

* revert useless change

* adapt to code change.

* fix baseline for test file.
2020-11-25 09:37:08 -08:00
Oleksandr T
5adb55eb18 feat(41216): show JSDoc for aliases (#41452) 2020-11-24 14:40:51 -08:00
Jean Pierre
71559a5c0c Fix show deprecated suggestion for alias (#41128)
* Fix show deprecated suggestion for alias

* Fix failing tests

* Avoid duplicated kind modifiers
2020-11-23 15:50:12 -08:00
Nathan Shively-Sanders
d057f7a992 Remove-unused-identifiers codefix skips assigned identifiers (#41168)
* Remove-all-unused-identifiers skips assigned identifiers

Previously, fixUnusedIdentifier worked the same in fix-all mode as for a
single fix: identifiers with assignments would be deleted:

```ts
function f(a) { }
f(1)
```

becomes

```ts
function f() { }
f()
```

But any kind of argument will be deleted, even one with side effects.
For a single codefix invocation, this is probably OK.
But for fix-all, this could lead to multiple changes
spread throughout a large file.

Now fix-all will only delete parameters and variable declarations with
no assignments:

```ts
function f(a) { }
function g(a) { }
f(1)
g
let x = 1
let y
```

becomes

```
function f(a) { }
function g() { }
f(1)
g
let x = 1
```

* Don't remove assigned parameters for single codefix either

* add optional parameter test case

* Skip initialised params and binding elements

Based on PR feedback from @amcasey

* fixAll removes unused binding patterns completely

* Fixes from comments

Thanks @amcasey for the thorough review

* fix trailing space lint

* correctly remove-all array binding
2020-11-21 09:57:17 -08:00
Oleksandr T
9bcbca4e6c fix(41534): fix children circular references 2020-11-20 22:41:12 +02:00
Nathan Shively-Sanders
d3abd35428 Unused Identifier codefix better understands constructors and methods (#41555)
* Unuse Identifier codefix understands constructors

Previously, it did not look for `super()` and `new this()` calls when
determining whether a constructor parameter could be deleted.

* better names, fix off-by-1 bug

* Codefix understands super methods now too

This unifies the code, changing it considerably.
2020-11-18 11:19:43 -08:00
Andrew Branch
266d8de64a Proposal: importModuleSpecifierPreference: project-relative (#40637)
* Add new importModuleSpecifierPreference value

* Add second test

* Update API baselines

* Clean up and add some comments

* Rename option value
2020-11-11 11:48:32 -08:00
Nathan Shively-Sanders
64be2a8d16 Revert "Revert "feat(40197): handle uncalled function checks in binary expressions (#40260)"" (#41462)
This reverts commit cf3e28ea66.
2020-11-09 11:34:41 -08:00
Wenlu Wang
ca7510ea05 String literal rename support (#39298)
* add basicly support for rename string literal type

* fix merge conflict

* fix some behavior

* Update package-lock.json

* Update package-lock.json

* do not break old behavior if not type checked

* fix cr issue

Co-authored-by: TypeScript Bot <typescriptbot@microsoft.com>
2020-11-06 09:58:34 -08:00