* 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
Fixes#17488
**Bug**
In the calls to `JSON.stringify`, we are currently passing in `[]` as a whitelist. This results in no argument values being printed.
**Fix**
Pass in null instead so that we print all argument values
* Add CompletionItemKind.Folder
Fixes#17435
Adds a new completion item kind for folder/directories. This is useful for path intellisense
For the icons, I copied the icons for folders into the suggestion icon set. Let me know if new ones are needed instead.
* Fix monaco.d.ts
Fixes#16888
**Bug**
The js/ts completion provide can currently only complete whole words (as defined by `TextDocument.getWordRangeAtPosition`). This causes completion of literal string types to fail if they are not a whole word.
**Fix**
Instead of relaying on the default range, compute a range by taking the longest match of the replacement text from the current position.