* Merge 'decorators' into 'modifiers' on various Nodes
* Drop RESERVED argument in favor of removing parameter
* Ignore grammar error nodes when asserting invariants
* Revert 'illegalX' property renames
* PR Feedback
* fix(47562): Add option to suppress type hint if variable name matches type
* Remove the unnecessary debug code
* Re-run gulp runtests
* Use equateStringsCaseInsensitive to compare strings
* Fix path completions for typesVersions
* Add more tests
* Fix case when * is a fragment of a path component
* Once a path pattern matches, only return completions from that pattern and higher priority ones
* Fix iteration order issue
* Aesthetics
* Remove unnecessary members of HostCache
* Standardize on calling compiler host members in preparation for adding caching at that layer
* Call changeCompilerHostLikeToUseCache to cache existence checks
* Drop now-redundant HostCache
* Don't make directoryExists caching contingent on createDirectory
* Clear compilerHost rather than tracking state
* Clean up FAR and RenameLocations
This change had two goals:
1. Make the code easier to understand, primarily by simplifying the callback structure and minimizing side-effects
2. Improve performance by reducing repeated work, both FAR searches of individual projects and default tsconfig searches
This implementation attempts to preserve the merging order found in the original code (someone less relevant in the present state of using syntactic isDefinition).
* Stop enforcing search and aggregation order
...in preparation for implementing isDefinition explicitly.
Also restore convention of referring to `DocumentPosition`s as "locations".
* Introduce LanguageService.updateIsDefinitionOfReferencedSymbols
...to allow use of the checker when computing isDefinition across projects.
* Update baselines
* Tidy diff
* De-dup simplified results
* Baseline cross-project isDefinition results
* Move de-duping upstream to fix Full output
* Add server baseline test to confirm searches are not repeated
* Manually merge #48758
* Update baseline for newer fix to #48963
- this currently causes a bug on Windows with mixed path separators
- it returns a POSIX backslash path for __dirname, and then adds a
forward slash from the directorySeparator, causing mixed separators
- TS uses `/` internally and lets the host convert if needed, so
I assume this should be normalized to all forward slashses instead
- example of the bug from my tests:
```
Expected: "D:\\a\\rollup-plugin-typescript2\\rollup-plugin-typescript2\\node_modules\\typescript\\lib\\lib.d.ts"
Received: "D:\\a\\rollup-plugin-typescript2\\rollup-plugin-typescript2\\node_modules\\typescript\\lib/lib.d.ts"
```
- every other use of __dirname in the codebase seems to be normalized
except for this one
- could use normalizeSlashes for this, but I figure combinePaths is
more appropriate since that will handle it and combine properly as
well without any `+ directorySeparator +` stuff
* Add JSDoc's @inheritDoc Support for Static Class Members for TypeScript
* use public api
* fix
* add tests
* simplify implementation
* extract comments from inherticDoc
* Remove Node12, add Node16.
* Accepted baselines.
* Refactor checking for top-level await, give a better error message in CJS files.
* Accepted baselines.
* Stop erroring on JSON module imports in node ESM since they're no longer experimental.
* Accepted baselines.
* More refactoring, do the same checks for for-await loops.
* Accepted baselines.
* Adjust phrasing to permit for-await on CJS error.
* Accepted baselines.
* Accepted baselines.
* Fix lints.
* WIP
* fix cross-project renaming logic
* only use configure if prefix opt is defined
* refactor skipAlias into stopAtAlias
* fix stopAtAlias
* update another stopAtAlias location
processChildNodes needs to skip processing when the node array is
outside the target range, just like processChildNode already does for a
single node.
Fixes#48006
* Add failing test
* Block auto-import module specifiers including node_modules path
* Eagerly resolve module specifiers in completions in nodenext so failures can be filtered
* Add completion info flags for telemetry
* Update API baseline
* Update completions baselines
* Fix missed boolean flip
* Fix remaining tests
* change error message on Promise
* fix(46570): Unhelpful Promise type argument hint in JS file
* refactor: Reword void Promise message for JSDoc type hint to provide better feedback
Co-authored-by: Osa <osaimola@gmail.com>
* Prototype resolving to JS when go-to-def aliases all resolve to ambient declarations
* Add test infrastructure
* Start fleshing out test coverage
* Fix some go-to-def stuff
* Finish lodash test case
* Make go-to-implementation never return ambient results
* Build new functionality into go-to-implementation
* Update baselines
* Two more test cases
* Refine definition searches for unresolved imports
* Revert "Build new functionality into go-to-implementation"
This reverts commit 381799d0f1.
* Fix tests
* Revert go-to-implementation changes
* Wow a bunch of code was unnecessary
* Update baselines and go-to-def test
* Fix navigation on symbols that are not aliases but resolve through aliases in chain
* Temporarily replace go-to-def with new command implementation
* Revert "Temporarily replace go-to-def with new command implementation"
This reverts commit 34c6cfdebb.
* Revert "Wow a bunch of code was unnecessary"
This reverts commit 1cb2ba646c.
* Bring back some deleted code needed for a new test case
* Clean up a little
* Rename more stuff
* Update test
* Update API baseline
* Temporarily replace go-to-def with new command implementation
* PR review fixes
* Fix getTopMostDeclarationNamesInFile
* Rename local
* Use hash set
* Remove option from commandLineParser
* Keep noDtsResolution project around
* Handle AuxiliaryProject kind in ScriptInfo getDefaultProject etc.
* Do not run updateGraph in the background for AuxiliaryProject
* Don’t create auxiliary project outside of semantic mode
* No-op on scheduled invalidation
* Add comments to unit test
* Sync compiler options to auxiliary project
* Fix case sensitivity
* Update extensionIsOk with new file extensions
* PR feedback
* Update API baseline
* Mark scheduleInvalidateResolutionsOfFailedLookupLocations internal
* Use same heuristics on property accesses of loosely-resolvable aliases as unresolvable named imports
* Rename command, and no need to return the bound span
* Update API baseline
* Reuse type nodes from optional parameters and properties even when not written as a union with `undefined`
* Remove newly unneeded NodeBuilderFlag
* Update public API
* Update baselines from main
* Don't report isDefinition unless the starting node is a declaration
* Drop isDefinition everywhere it isn't specifically needed
* Fix tsserver tests
* Update shim comment
* Update baselines
* Add tests for isDefinition
* Update doc comment
* Clear isDefinition from all references if the first one lacks it
* fix(48540): Remove comments from jsdoc union type expression
* fix(48540) - Remove comment for top level import and add extract typedef tests
* fix(48540) - Remove comments from jsdoc's descendant
* fix(48540) - Using no nested comments instead of traversing
* Add 'extends' clause to 'infer' type
* Revise parse for infer..extends, improve parenthesizer
* More aggressive parens to match existing DT tests
* tests 'infer' constraint using outer type parameter
* Adds a test showing 'infer' cannot reference other 'infer' in same 'extends'
* Emit extends clause for synthetic infer typesduring declaration emit
* fix(48109) - Remove extra indent when converting to arrow function
* fix(48109) - Only treat curly brace in object literal as block
* Apply suggestions from code review
Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>