4517 Commits

Author SHA1 Message Date
Andy
d8cea359f7
moveToNewFile: Update namespace imports (#24612) 2018-06-04 11:30:14 -07:00
Andy
046c5ea6c1
moveToNewFile: Ignore reference to global (#24651) 2018-06-04 10:35:23 -07:00
Andy
886377f8d3
Add autoCloseTag language service (#24543)
* Add autoCloseTag language service

* Change name to getJsxClosingTagAtPosition and return an object
2018-06-04 10:08:15 -07:00
Benjamin Lichtman
c6bab0f395 Remove redundant null assertion 2018-06-04 09:20:49 -07:00
Benjamin Lichtman
8f14e24575 Remove second get call 2018-06-01 15:32:23 -07:00
Benjamin Lichtman
34cee162ed Replace has with get and check undefined 2018-06-01 15:21:22 -07:00
Benjamin Lichtman
45f9370997 Handle installed package missing from registry 2018-06-01 14:11:45 -07:00
Dan Freeman
4a36ee0c62 Support import completion for merged declaration exports (#24539) 2018-06-01 09:46:56 -07:00
Andy
d671c7ae96
getEditsForFileRename: Support directory rename (#24305)
* getEditsForFileRename: Support directory rename

* Code review

* Handle imports inside the new file/directory

* Document path updaters

* Shorten relative paths where possible

* Reduce duplicate code

* Rewrite, use moduleSpecifiers.ts to get module specifiers from scratch instead of updating relative paths

* Update additional tsconfig.json fields

* Add test with '.js' extension

* Handle case-insensitive paths

* Better tsconfig handling

* Handle properties inside compilerOptions

* Use getOptionFromName
2018-06-01 08:23:37 -07:00
Andy
e65444214c
Remove deprecated internal method (#24540) 2018-06-01 08:14:07 -07:00
Andy
9d42ab983d
implementations: Use declaration name for the span (#24537)
* implementations: Use declaration name for the span

* Always get name in nodeEntry
2018-05-31 13:32:02 -07:00
Sheetal Nandi
997991fdcb
Merge pull request #24529 from Microsoft/suggestionDiagnosticsToken
Suggestion diagnostics to wire cancellationToken
2018-05-31 13:22:49 -07:00
Mohamed Hegazy
1f66f21e82
Merge pull request #24431 from Zzzen/master
Document highlights on yield keywords highlight other occurrences in …
2018-05-31 12:52:56 -07:00
Sheetal Nandi
eab21e5b77 Merge branch 'master' into suggestionDiagnosticsToken 2018-05-31 12:46:33 -07:00
Nathan Shively-Sanders
d187de2076
Better JS container binding (#24367)
* Static assignments to class expressions work

* Bind static properties of functions too

Also update SymbolLinks in getTypeOfFuncClassEnumModule so that the
type gets cached correctly.

* Remove initializer handling:obj literals+type lookup

Also include a couple of improved baselines

* Fix 1-nested js containers:binding+cross-file merge

* Consolidate check into one utility

The utility is horrible and needs to change, but at least it's in one
place.

Next step is to make the utility like getDeclarationOfAlias, except
getDeclarationOfJSAlias.

* Defaulted assignments now (mostly) work

* Default assignment definitely work, and IIFEs kind of do

* n-nested undeclared containers now seem to work

Merging even seems to work ok.

* Handle prototype+prototype property assignments

Perhaps in the wrong way. I have an idea how to simplify them.

* Remove prototype special-case

1. It's not completely removed; the checker code in
getJavascriptClassType needs to be fixed, among other places.
2. I didn't actually remove the code so that it will be easier to see
what used to be there on Monday.

Regardless, the code will be much simpler and seems to be mostly
improved with very little work so far.

* Allow more merges+accept baselines

* Update more baselines

* Fix js initializer check in bindPropertyAssignment

* Fix codefixes

* Rest of strictNullChecks cleanup + other cleanup

1. Remove a few TODOs
2. Remove extraneous SymbolFlag
3. Simplify isSameDefaultedName

* Binder cleanup

* Checker cleanup

* Almost done with utilities cleanup

* Utilities cleanup

* Require js initializer to be (1) JS (2) initializer

Change getDeclarationOfJSInitializer to require that the provided js
initializer be in a javascript file, and that it is the initializer of
the retrieved declaration.

* Use getSymbolOfNode instead of accessing symbol directly

* Ugh. Start over with just test cases

* Handle additional cases in getTypeOfVariableOrParameterOrProperty

These are cases in a really embarrassing check, in which we admit that
the symbol flags steered us wrong and switch to
getTypeOfFuncClassEnumModule instead (which never asserts).

* Add test case for #24111

* Address PR comments
2018-05-31 11:41:26 -07:00
Sheetal Nandi
b0f039c9e2 Make suggestion diagnostics to wire cancellationToken
This especially needed if its a js file without the ts-check, the file wont be typechecked in getSemanticDiagnostics
Fixes part of #19458
2018-05-31 10:47:17 -07:00
Zzzen
2a8ff1c8d9 Merge remote-tracking branch 'ms/master' 2018-05-31 20:49:43 +08:00
Andy
2cb46407b1
moveToNewFile: Remove newlines after last moved statement (#24503) 2018-05-30 15:16:03 -07:00
Vyacheslav Pukhanov
75f20f9b65 fixUnusedIdentifier: fix "Remove variable statement" codefix (#24497)
* fixUnusedIdentifier: fix "Remove variable statement" codefix

* Add test for a single "Remove variable statement" codefix in a file
2018-05-30 14:51:08 -07:00
Andy
43bf039a94
Add refactor to convert namespace to named imports and back (#24469)
* Add refactor to convert namespace to named imports and back

* Add tests and comments

* Code review

* Handle shorthand property assignment and re-export

* Don't use forEachFreeIdentifier

* Fix rename after "."
2018-05-30 14:11:53 -07:00
Mohamed Hegazy
c47df3a8fd
Merge pull request #24438 from vpukhanov/issue-22674
addMethodDeclaration: add after quickfix location if possible
2018-05-30 10:30:01 -07:00
Andy
675e21203e
Improve template literal tests (#24359)
* Improve template literal tests

* Inline isTemplateLiteralToken where possible
2018-05-30 10:21:00 -07:00
Mohamed Hegazy
04dc76ec9c
Merge pull request #24442 from Kingwl/fix-implement-interface-with-extends-class
add lookup for extends class when implement interface
2018-05-30 09:20:50 -07:00
Andy
011a4df4dd
Don't allow to rename string literal (#24477) 2018-05-30 07:50:48 -07:00
Vyacheslav Pukhanov
2ea66a6dbc Refactor and inline getNodeToInsertMethodAfter 2018-05-30 16:58:23 +03:00
王文璐
e05d2bace3 fix broken test 2018-05-30 17:36:09 +08:00
王文璐
2cb211305b Merge branch 'master' into fix-implement-interface-with-extends-class 2018-05-30 09:05:56 +08:00
Andy
f411164483
Simplify calculation of sourceFiles for getReferences (#24475) 2018-05-29 16:12:25 -07:00
Andy
e99be8c47d
Avoid duplicate import completions when a namespace is exported by two different modules (#24473) 2018-05-29 15:52:34 -07:00
Andy
8bc1932ed5
moduleSpecifiers: Don't return a relative path to node_modules (#24460) 2018-05-29 12:40:06 -07:00
Andy
160b667846
fixUnusedIdentifier: Don't remove parameter in override or non-last parameter in callback (#24306)
* fixUnusedIdentifier: Don't remove parameter in override or non-last parameter in callback

* Only allow removing last parameters; don't care about contextual type
2018-05-29 12:39:45 -07:00
Andy
816f1cee5a
Include '...' on doc comment for rest parameter (#24462) 2018-05-29 12:17:57 -07:00
Mohamed Hegazy
94c455792a Remove unneeded assertions 2018-05-29 09:06:35 -07:00
王文璐
f9a55beec5 add lookup for extends class when implement interface 2018-05-28 18:38:07 +08:00
Vyacheslav Pukhanov
1a7d4b34ba addMethodDeclaration: add after quickfix location if possible (#22674) 2018-05-27 23:53:44 +03:00
Zzzen
dbe87a6741 Document highlights on yield keywords highlight other occurrences in the same body 2018-05-25 20:48:08 +08:00
Wesley Wigham
8f9c0861bc
Use external aliases in quickinfo and signature help return types (#24391)
* Dont include import types in quick info type names

* Add UseAliasDefinedOutsideCurrentScope flag to LS operations which were missing it
2018-05-24 15:19:57 -07:00
Elizabeth Dinella
b745ea059e
Fix to issue 23326 for completions on new.target (#24342)
* Fix to issue 23326 for completions on new.target

* Fixed linting issues - whitespace in if statements

* Removed debug statement in test case and consolidated and cleaned up code in switch statement for completions

* Added support for import.meta completion
2018-05-24 14:12:33 -07:00
Andy
16af96b006
moveToNewFile: Format the new file (#24379) 2018-05-24 11:08:32 -07:00
Andy
bc570cd85f
moveToNewFile: Respect UserPreferences#quote (#24365) 2018-05-24 09:36:37 -07:00
Andy
ee8337d8e4
Minor cleanups in importFixes (#23995) 2018-05-24 07:46:39 -07:00
Mohamed Hegazy
dd6dc5e27a
Merge pull request #24328 from Microsoft/getEditsForFileRename_oldFileStillPresent
getEditsForFileRename: Handle old file still being present
2018-05-23 16:16:00 -07:00
Andy
b61d4858d4
Simplify convertToMappedObjectType (#24360) 2018-05-23 16:01:52 -07:00
Wenlu Wang
4606709672 add code fix convert to mapped object type (#24286)
* add code fix convert to mapped object type

* add support for type literal and improve test

* fix typo

* add support for heritageClauses

* only determine declaration is not class
2018-05-23 14:09:49 -07:00
Andy
5983c45e24
Fix typo: seperate -> separate (#24338)
* Fix typo: seperate -> separate

* update tests
2018-05-23 09:36:17 -07:00
Andy
fb4caadaec
Support signature help for partially-filled-in type arguments f< (#24138)
* Support signature help for partially-filled-in type arguments `f<`

* Use `isPossiblyTypeArgumentPosition` and support new expressions
2018-05-23 08:28:09 -07:00
Sheetal Nandi
a0d4e4f059 Fix getter of local symbol for export= when it is json module
Fixes #24341
2018-05-22 17:10:56 -07:00
Andy
56f33ad3bb
Remove duplicate class 'NodeSet' (#24337) 2018-05-22 15:33:03 -07:00
Andy
ba63f49513
moveToNewFile: Don't provide refactor if selection is just imports (#24336) 2018-05-22 15:21:04 -07:00
Andy
e53e56cf82
Enable '--strictNullChecks' (#22088)
* Enable '--strictNullChecks'

* Fix API baselines

* Make sys.getEnvironmentVariable non-nullable

* make properties optional instead of using `| undefined` in thier type

* reportDiagnostics should be required

* Declare firstAccessor as non-nullable

* Make `some` a type guard

* Fix `getEnvironmentVariable` definition in tests

* Pretend transformFlags are always defined

* Fix one more use of sys.getEnvironmentVariable

* `requiredResponse` accepts undefined, remove assertions

* Mark optional properties as optional instead of using `| undefined`

* Mark optional properties as optional instead of using ` | undefined`

* Remove unnecessary null assertions

* Put the bang on the declaration instead of every use

* Make `createMapFromTemplate` require a parameter

* Mark `EmitResult.emittedFiles` and `EmitResult.sourceMaps` as optional

* Plumb through undefined in emitLsit and EmitExpressionList

* `ElementAccessExpression.argumentExpression` can not be `undefined`

* Add overloads for `writeTokenText`

* Make `shouldWriteSeparatingLineTerminator` argument non-nullable

* Make `synthesizedNodeStartsOnNewLine` argument required

* `PropertyAssignment.initializer` cannot be undefined

* Use one `!` at declaration site instead of on every use site

* Capture host in a constant and avoid null assertions

* Remove few more unused assertions

* Update baselines

* Use parameter defaults

* Update baselines

* Fix lint

* Make Symbol#valueDeclaration and Symbol#declarations non-optional to reduce assertions

* Make Node#symbol and Type#symbol non-optional to reduce assertions

* Make `flags` non-nullable to reduce assertions

* Convert some asserts to type guards

* Make `isNonLocalAlias` a type guard

* Add overload for `getSymbolOfNode` for `Declaration`

* Some more `getSymbolOfNode` changes

* Push undefined suppression into `typeToTypeNodeHelper`

* `NodeBuilderContext.tracker` is never `undefined`

* use `Debug.assertDefined`

* Remove unnecessary tag

* Mark `LiteralType.freshType` and `LiteralTupe.regularType` as required
2018-05-22 14:46:57 -07:00