* Rename TypeDefinitionProvider to TypeImeplementationProvider
**bug**
In #18346, I originally called the new go to implementation provider api `ImplementationProvider` which we then decided to rename to `TypeDefinitionProvider`. At the time, I didn't realize that a type definition was actually its own, unrelated concept.
**Fix**
Rename `TypeDefinitionProvider` to `TypeImplementationProvider` to make it clear what the purpose and use of this api is.
* Fix a few names in comments
* Prototype Using Commit Characters for JS and TS Completions
Part of #7326
Adds a prototype for using specific characters to complete TS/JS completion items automatically.
* Tune path completion items
* Disable dot commit in js files
* Don't complete on / in module names
* Add Go To Implementation Api
For #10806
Adds a new API for supporting `go to implementation` command for languages. Implements an example for TS
* Rename
* Cleanup
* Only apply TS Dot Accept Suggestion if previous character is a valid identifier char
Fixes#17825Fixes#17770Fixes#17584
**Bug**
When typing two or more `.` in a row, we end up unexpectedly accepting suggestions in TS files. This is caused by the custom keybinding that ts registers for `.`.
**Fix**
Only accept the suggestion on `.` if the previous character is a valid identifier character.
* Move title to nls
**Bug**
TS 2.2 includes a number of new code actions, such as implementing missing interface methods on classes. TS returns these in unedited form, so we have to format the document after applying these fixes. This formatting is not always correct using the current logic.
**Fix**
Try to determine the range to format using the set of text edits that TS returns to us. This is not perfect, but it should better match the actual edit that we make using the quick action
Fixes#17906
**bug**
To support completion items that span multiple words, I added extra logic in 1.9 insiders to use the word prefix to compute the completion range. This introduced a few regressions for completions that do start with the replacement.
**fix**
Use the old, word based range logic by default. Use the prefix completion if it is longer.
Monitors the status of typings acqusition from TS. If we are acquiring typings, in the completion item provider, return an error result that informs the user that the results are incomplete. Typings acqusition is currently capped at 30 seconds per typings install event so that we don't block intellisense forever if something goes wrong
* Initial work using ts2.1 and TS Code Actions
* Clean up implementation and fix a few issues
* Gate provider to ts2.1+
* Switch gate to use 2.1.3 instead
* Fix a few null checks
* Format after completion