Commit Graph

144 Commits

Author SHA1 Message Date
Andrew Casey 1880b147b4 Make branch-specific corrections 2017-11-22 10:32:12 -08:00
Andrew Casey 34b9d090f3 Update project on PackageInstalledResponse
As with `SetTypings`, new typings have been installed so the project
should be updated and the client should be notified (via event).

Changed PackageInstalledResponse from "event" to "action" for the sake
of explicitness.

Fixes #20084.
2017-11-22 10:23:29 -08:00
Mohamed Hegazy 8475e307f2 Port master into release-2.6 10/19 (#19348)
* Adding test case where opened file included in project is not added to ref count of configured project

* Fix the way configured project's reference is managed so that the open file

* Do not watch root folders for failed lookup locations and effective type roots
Fixes #19170

* LEGO: check in for master to temporary branch.

* LEGO: check in for master to temporary branch.

* Mark fresh spread objects w/ContainsObjectLiteral

* Test excess property checks of spreads of unions.

* Add exported members of all project files in the global completion list (#19069)

* checker.ts: Remove null check on symbols

* tsserverProjectSystem.ts: add two tests

* client.ts, completions.ts, types.ts: Add codeActions member to CompletionEntryDetails

* protocol.ts, session.ts: Add codeActions member to CompletionEntryDetails protocol

* protocol.ts, session.ts, types.ts: add hasAction to CompletionEntry

* session.ts, services.ts, types.ts: Add formattingOptions parameter to getCompletionEntryDetails

* completions.ts: define SymbolOriginInfo type

* completions.ts, services.ts: Add allSourceFiles parameter to getCompletionsAtPosition

* completions.ts, services.ts: Plumb allSourceFiles into new function getSymbolsFromOtherSourceFileExports inside getCompletionData

* completions.ts: add symbolToOriginInfoMap parameter to getCompletionEntriesFromSymbols and to return value of getCompletionData

* utilities.ts: Add getOtherModuleSymbols, getUniqueSymbolIdAsString, getUniqueSymbolId

* completions.ts: Set CompletionEntry.hasAction when symbol is found in symbolToOriginInfoMap (meaning there's an import action)

* completions.ts: Populate list with possible exports (implement getSymbolsFromOtherSourceFileExports)

* completions.ts, services.ts: Plumb host and rulesProvider into getCompletionEntryDetails

* completions.ts: Add TODO comment

* importFixes.ts: Add types ImportDeclarationMap and ImportCodeFixContext

* Move getImportDeclarations into getCodeActionForImport, immediately after the implementation

* importFixes.ts: Move createChangeTracker into getCodeActionForImport, immediately after getImportDeclarations

* importFixes.ts: Add convertToImportCodeFixContext function and reference it from the getCodeActions lambda

* importFixes.ts: Add context: ImportCodeFixContext parameter to getCodeActionForImport, update call sites, destructure it, use compilerOptions in getModuleSpecifierForNewImport

* importFixes.ts: Remove moduleSymbol parameter from getImportDeclarations and use the ambient one

* importFixes.ts: Use cachedImportDeclarations from context in getCodeActionForImport

* importFixes.ts: Move createCodeAction out, immediately above convertToImportCodeFixContext

* Move the declaration for lastImportDeclaration out of the getCodeActions lambda into getCodeActionForImport

* importFixes.ts: Use symbolToken in getCodeActionForImport

* importFixes.ts: Remove useCaseSensitiveFileNames altogether from getCodeActions lambda

* importFixes.ts: Remove local getUniqueSymbolId function and add checker parameter to calls to it

* importFixes.ts: Move getCodeActionForImport out into an export, immediately below convertToImportCodeFixContext

* completions.ts: In getCompletionEntryDetails, if there's symbolOriginInfo, call getCodeActionForImport

* importFixes.ts: Create and use importFixContext within getCodeActions lambda

* importFixes.ts: Use local newLineCharacter instead of context.newLineCharacter in getCodeActionForImport

* importFixes.ts: Use local host instead of context.host in getCodeActionForImport

* importFixes.ts: Remove dummy getCanonicalFileName line

* Filter symbols after gathering exports instead of before

* Lint

* Test, fix bugs, refactor

* Suggestions from code review

* Update api baseline

* Fix bug if previousToken is not an Identifier

* Replace `startsWith` with `stringContainsCharactersInOrder`

* Dont try to run unit tests with rwc tests again (#19240)

* In tsserver, indent logged JSON (#19080)

* noUnusedLocals: Warn for recursive call to private method (#18920)

* Added test for windows style paths watched directories

* Handle when directory watcher is invoked on file change
Fixes #19206

* Add quickfix and refactoring to install @types packages (#19130)

* Add quickfix and refactoring to install @types packages

* Move `validatePackageName` to `jsTyping.ts`

* Remove combinePaths overloads

* Respond to code review

* Update api baselines

* Use native PromiseConstructor

* Return false instead of undefined

* Remove getProjectRootPath

* Update api

* This wasnt required before... (#19262)

* Collapse jsdoc annotation refactors to one

Previously there were two, and two always fired.

* Update baselines

* Fix #19257: Ensure a generated signature has a return type (#19264)

* Fix #19257: Ensure a generated signature has a return type

* Ensure generated properties have types

* Use the same context for multiple inferences to the same property access

* Respect newLine compiler option in language service output (#19279)

* LEGO: check in for master to temporary branch.

* LEGO: check in for master to temporary branch.

* LEGO: check in for master to temporary branch.

* Disambiguate same-named refactors using description (#19267)

Disambiguate same-named refactors using actionName

* Set the scriptKind from the host configuration if present

* Update API baselines

* Remove erroneous error for JSDoc object literals

appears with checkJS.

* Update annotateWithTypeFromJSDoc tests

1. Object literals are single-line now.
2. Index signatures transform to TS index signatures.
3. The refactoring is only available when it could add types.

* Add a better test for jsdoc index signatures.

The test case shows that the errorenous error no longer appears.

* Fix bugs in jsdoc annotation refactor

1. Transform index signatures to TS index signatures.
2. Print object literals on a single line.
3. Only offer the refactor when it could add types. (There must not be a
type annotation already, and there must be a JSDoc that applies.)

* Move isJSDocIndexSignature to utilities

* Add failing testcase where when d.ts file is in program, the files get emitted multiple times with --out setting

* Modify api to emit affected files using callback instead of generating in memory output
Also marking few apis introduced during watch improvements changes that are suppose to be internal for now

* Use get files affected by internally and hence use file paths as input

* Simplify emit changed files further
Also use source file version as the signature of declaration file instead of computing it from text

* Do not cache the semantic diagnostics when compiler options has --out since we would anyways get all fresh diagnostics

* make getCurrentDirectory required (#19303)

* LEGO: check in for master to temporary branch.

* Actually use cached semantic diagnostics

* Fix tsc-instrumented

1. Make recursiveCreateDirectory correctly handle relative paths.
2. Remove dependency on Harness
3. Correctly increment iocapture0, iocapture1, ... iocaptureN.
4. Stop double-nesting baseline files.

* Fix lint

* Fix https://github.com/Microsoft/TypeScript/issues/19270: ensure output name is a valid locale name (#19308)

* Fix https://github.com/Microsoft/TypeScript/issues/19270: ensure output name is a valid locale name

* Use const instead of var

* Add comment

* Fix typo

* Split the concat logic for generatedLCGFile

* findAllRefs: Support anonymous default export (#19302)

* Fix undefined error using `getEffectiveTypeRoots` (#19300)

* Remove extra blank line in logs (#19307)

* Use Promise instead of PromiseLike (#19305)

* Workaround for nonnull operator on indexed accesses (#19275)

* Quick and dirty workaround

* Add third case to show current behavior

* Rename variable, replace elaboration from comment with links

* Remove some unnecessary `undefined` checks in extractSymbol (#19256)

* Fix "noStringLiteral" lint errors (#19310)

* LEGO: check in for master to temporary branch.

* Rename locale outputs

* Update LKG
2017-10-19 13:13:57 -07:00
Sheetal Nandi 52d7c7278d Add comment about swallowing exception 2017-10-10 17:16:53 -07:00
Sheetal Nandi aa22c56282 Swallow the directory watcher exceptions 2017-10-09 18:04:14 -07:00
Sheetal Nandi 23acff5bc8 Merge branch 'master' into watchImprovements 2017-09-25 16:18:26 -07:00
Andrew Casey 965a4d5aeb Restructure handling to TI messages to enforce exhaustiveness 2017-09-15 11:33:05 -07:00
Andrew Casey f3411d4361 Only decrement activeRequestCount on SetTypings responses
InvalidateCache responses are triggered by file watchers, rather than by
requests.
2017-09-14 15:45:26 -07:00
Sheetal Nandi cf72f2aaf0 Merge branch 'master' into watchImprovements 2017-09-13 17:35:21 -07:00
Andy 2a70bf5158 Don't count a write-only reference as a use (#17752)
* Don't count a write-only reference as a use

* Split isWriteAccess to isWriteOnlyAccess and isReadOnlyAccess

* Update "unusedParameterUsedInTypeOf" to use "b"

* Update diagnostic messages: "is never used" -> "its value is never read"

* Use a WriteKind enum

* Rename enum and move documentation to enum members
2017-09-13 09:02:33 -07:00
Sheetal Nandi fdb104b242 Merge branch 'master' into watchImprovements 2017-09-11 13:49:36 -07:00
Sheetal Nandi 680994ea42 Better log for update graph and delay operations 2017-09-06 16:34:31 -07:00
Andrew Casey 9692ce86db Add explanatory comment 2017-09-06 15:46:59 -07:00
Andrew Casey 0b1bad8421 Fix lint issues 2017-09-06 15:44:00 -07:00
Andrew Casey 482e802e83 Limit the number of unanswered typings installer requests
If we send them all at once, we (apparently) hit a buffer limit in the
node IPC channel and both TS Server and the typings installer become
unresponsive.
2017-09-05 18:08:50 -07:00
Ryan Cavanaugh 43b8ce664c Merge 2017-08-22 14:31:49 -07:00
Sheetal Nandi 6227a36ff0 In Server when polling the file stat's do not send changed event in case the file doesnt exist. 2017-08-22 11:21:16 -07:00
Andy ade3b565ae Revert public API changes to logger (#17899) 2017-08-18 11:20:07 -07:00
Ron Buckton 360dc914c3 Merge pull request #17602 from Microsoft/multiInferredProjects
Adds support for inferred project isolation by projectRootPath
2017-08-11 16:06:49 -07:00
Andy d99a492ddd Simplify server logger (#17271)
* Simplify server logger

* Move function printProjects out of inner closure
2017-08-08 11:22:22 -07:00
Andy f69ce5c0c8 Convert two arrays to readonly (#17685) 2017-08-08 10:54:18 -07:00
Andy a9a30d76fb Fix parsing of globalPlugins and pluginProbeLocations: Don't include empty string (#17143) 2017-08-08 07:55:03 -07:00
Andy 382785a528 Fix logging of module resolution errors (#17144) 2017-08-08 07:54:08 -07:00
Ron Buckton fa7f3e85fe Adds support for inferred project isolation by projectRootPath 2017-08-03 16:03:59 -07:00
Andy bb34bce420 Set a high stack trace limit in command-line and server scenarios (#17464) 2017-08-02 12:40:39 -07:00
Ryan Cavanaugh 253cde4907 Fix tests 2017-07-27 16:59:31 -07:00
Ryan Cavanaugh 5272ec6309 Types Map WIP 2017-07-27 16:07:50 -07:00
Andy 7702d15cf3 Add current time to tsserver logs (#17268) 2017-07-24 13:32:23 -07:00
Andy d2ec45f354 Remove unnecessary 'ts.' qualifications (#17163) 2017-07-13 13:08:59 -07:00
Andrew Casey 911f1f88ee Correct FileWatcherEventKind in server polling method
Was sending Changed on Creation.

Caveat: the tests will probably still fail intermittently with a race -
this just fixes the deterministic failure.
2017-07-10 19:30:03 -07:00
Andy e7dc2a67ca Enable "object-literal-shorthand" lint rule (#16987) 2017-07-07 07:26:58 -07:00
Andrew Casey ac72803bb2 Merge pull request #16684 from amcasey/Vsts434619
Watch for the creation of missing files
2017-06-29 13:41:18 -07:00
Andrew Casey 569ecabb0a Address PR feedback
Make Program.getMissingFilePaths required

Assume getMissingFilePaths always returns a defined value

Make getMissingFilePaths internal

Replace nullable-bool with enum

Update type to reflect possibility of undefined

Use deepEqual to simplify tests

Make condition const

Don't bother cleaning up map before freeing it

Switch from foreach to for-of to simplify debugging

Use a Map, rather than a FileMap, to track open FileWatchers

Fix compilation errors

Introduce and consume arrayToSet

Fix lint warnings about misplaced braces

Delete incorrect comment

Delete from map during iteration

Eliminate unnecessary type annotations
2017-06-29 11:29:19 -07:00
Andy 179a3e10b5 Handle depth in all readDirectory implementations (#16646) 2017-06-29 11:04:33 -07:00
Andrew Casey 4863ada22c Track missing files
1. Expose missing files from the `Program`.
2. In `tsc --watch` and `tsserver`, add file watchers to missing files.
3. When missing files are created, schedule compilation (tsc) or refresh
the containing projects (tsserver).
2017-06-29 10:39:31 -07:00
Mine Starks 3bd5df7577 Set typings cache location per TS version 2017-06-08 13:33:24 -07:00
Andrew Casey e3c4a7031d Reuse already-computed modification time 2017-06-06 16:35:11 -07:00
William Orr b62e1b5745 Use unix cache location on the major BSDs (#16187) 2017-06-01 18:27:20 -07:00
Andy 2412f8c6cf Allow configurable npmLocation for typingsInstaller (#16084)
* Allow configurable npmLocation for typingsInstaller

* Undo "export class" changes

* Add log for npmLocation

* Log whether '--npmLocation' was provided
2017-05-26 07:06:11 -07:00
Ryan Cavanaugh ab3ffa22da Add flag to allow local plugin loading 2017-05-17 19:52:57 -07:00
Andy 0b0a2d070b Merge pull request #15039 from Microsoft/resolveJavaScriptModule
Refactor how we (internally) expose JS module resolution
2017-05-08 10:52:17 -07:00
Arthur Ozga cbbf6f8847 Merge branch 'master' into tripleEquals 2017-04-17 15:57:51 -07:00
Matt Bierner 6fd8653847 Fix globalPlugins TSServer Flag
**Bug**
globalPlugins flag not being threaded through IOSession object properly

**Fix**
Pass these flags to superclass in IOSession
2017-04-17 14:05:49 -07:00
Andy Hanson c0d26e81f1 Merge branch 'master' into resolveJavaScriptModule 2017-04-14 10:15:30 -07:00
Ryan Cavanaugh 3cc379c3c0 Fix merge 2017-04-13 16:16:57 -07:00
Andy Hanson 7320891933 boolean-trivia lint rule: Lint for null/undefined too 2017-04-07 13:13:39 -07:00
Andy Hanson 4a3b38b274 Refactor how we (internally) expose JS module resolution
Also, provide a useful error if resolution fails.
2017-04-05 15:33:01 -07:00
Ryan Cavanaugh e3bb5d3f28 Update linting to avoid typechecking for booleanTriviaRule 2017-04-04 22:34:51 -07:00
Arthur Ozga 7e03429a8e enforce triple-equals 2017-04-04 15:51:13 -07:00
Ryan Cavanaugh f1339ecb8e Remove trailing WS 2017-03-24 16:07:23 -07:00