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.
Fixes#16432
Introducing during null check refeactoring. Before the promise was set to null inside the promise. I added a rejection because the promise value should never be used before that point, but it seems that introduced a regression.
Fix is to use `p` inside of the promise instead.
* Initial work on large proejct warnings
* Update to use projectName from ts
* Use event to clean up code
* Remove unused interface
* Revert a few testing changes
* Remove languageServiceEnabled member
Fixes#13952
**Bug**
The `typescript.useCodeSnippetsOnMethodSuggest` setting only applies to Typescript files. I believe it should also apply to JavaScript files.
**Fix**
Use `typescript.useCodeSnippetsOnMethodSuggest` to control this behavior for js files as well.
Also delete unused configuration file.
An alternate design would be to add a `javascript.useCodeSnippetsOnMethodSuggest` configuration option, if users really do want to have different behavior between JS and TS.
* Use Strict Null Checks In TS Extension
Updates the Ts extension to use strict null checks.
* Throw instead of returning undefined in some linkedmap cases
* fix small null check in buffersync
* Fix for request item null
Issue #15814
**Bug**
1. Open a tsx file on its own.
2. See a error about passing `--jsx` to tsc.
**Fix**
For implicit projects, assume `"jsx": "preserve"`.
Closes#15814
Issue #15610
**bug**
For implicit js/ts projects that trigger the large project warning in vscode, the action currently tries to create a jsconfig.json file in `/dev/null/...`
**Fix**
In cases where the `jsconfig.json` file returned by tsserver is not under the root worspace, create an empty `jsconfig.json` at the root of the project instead.
Issue #15205
**Bug**
Typescript now infers projects if no jsconfig.json is found. This means that the hint about creating a `jsconfig.json` file is not required.
**Fix**
Remove the `jsconfig.json` hinting logic.