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.
* Workaround for #16909Fixes#16909
Worksaround TS2.1+ returning strings in the occurrences response we use for highlighting occurrences in documents
The workaround is to look at the text surrounding the first occurrence to see if it is a string literal.
* Small cleanup
* Add gate for ts 2.1.x
* Added check to make sure we don't compare the same character
Issue #2092
**bug**
With typescript.useCodeSnippetsOnMethodSuggest enabled, we will automatically complete function calls inside some contexts where they should not be completed. For example, destructing assigment.
**fix**
Add a quickinfo check on the position before attempting to insert a function call. Create a blacklist of invalid contexts. Otherwise, assume that we want to complete the function call.