Commit graph

148 commits

Author SHA1 Message Date
Sheetal Nandi 2439e7affb Reduce the number of watched config files by watching the chain only in case of inferred root 2017-07-17 16:50:26 -07:00
Sheetal Nandi dcbd7b10f1 Combine the logic to find config file as well as the watch.
This should speed up the file open scenarios where the file belongs to same configured project as we would use cache to answer those fileExists answers
2017-07-15 22:26:10 -07:00
Sheetal Nandi 0572b15adc Instead of watching directories, watch tsconfig files of inferred project root 2017-07-15 19:11:27 -07:00
Sheetal Nandi 71d79c62d0 Some refactoring to combine files removal from inferred project 2017-07-15 11:37:32 -07:00
Sheetal Nandi 404aa8f0be Logging of the watch add/remove/event 2017-07-14 17:39:42 -07:00
Sheetal Nandi 0365901381 use single instance of getCanonicalFileName 2017-07-13 15:32:11 -07:00
Sheetal Nandi 048e67c021 Merge branch 'master' into watchImprovements 2017-07-13 14:13:14 -07:00
Andy d2ec45f354 Remove unnecessary 'ts.' qualifications (#17163) 2017-07-13 13:08:59 -07:00
Sheetal Nandi e568976239 Allows the delayed update graph and project structure which helps in batching the updates when there are multiple files added/removed/changed 2017-07-13 11:32:40 -07:00
Sheetal Nandi 8fedcf78c7 TODOs for the scheduling update graph and referesh projects 2017-07-12 19:34:01 -07:00
Andy 2368847f6b Indent filesToString (#17130) 2017-07-12 10:42:05 -07:00
Sheetal Nandi 68def1b1f3 Use the cached file exists/directory exists for configured project since we watch the needed files 2017-07-11 23:23:53 -07:00
Sheetal Nandi 19a6a003f5 Cache the read directory results so that it doesnt end up reading it all the time 2017-07-11 17:50:51 -07:00
Sheetal Nandi 48c651317e Update types instantly when the type root changes. 2017-07-11 14:18:56 -07:00
Sheetal Nandi 62871cc0f9 Only update file list when there are changes in the watched directories 2017-07-11 14:10:48 -07:00
Sheetal Nandi df6f75bc70 Optimize wildcard watchers and config directory watching as now we have missing file watching as well
We dont need to explicitly watch config file directory as it will be watched:
- if there was no files specified, in wild card directories
- if there were files specified as missing file (if the file wasnt present)
2017-07-10 11:31:33 -07:00
Sheetal Nandi 2a63827891 Update the todo list 2017-07-10 11:31:33 -07:00
Sheetal Nandi 75698a893f Add project roots in the list of root files even if they arent present on the disk
This helps in reporting errors as well as syncing of the configured/external project when the files are created
2017-07-10 11:31:33 -07:00
Sheetal Nandi ae33ae894d Restructure updating the configured project from disk and actual project update
Also reload the projects when extra extension in the host change
2017-07-10 11:31:32 -07:00
Sheetal Nandi 21ad26b6ff When opening a file, if it is using existing project, there is no need to update the project by re-reading the config file
This will improve the opening file perf for file opens from same config project
2017-07-10 11:31:32 -07:00
Andy 17578e8a5d Use Map<true> for sets (#16972) 2017-07-07 10:34:36 -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
Andrew Casey 6d200bffbd Watch files through the host
Call `this.projectService.host.watchFile`, rather than
`ts.sys.watchFile` so that it gets mocked correctly in the unit tests.
Repair two failing tests.
2017-06-29 10:39:32 -07:00
Andrew Casey a39e969338 Clean up file watchers on project close 2017-06-29 10:39:31 -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
Andy 9013665e22 Replace FileMap with Map where there is no keyMapper (#16724)
* Replace FileMap with Map where there is no keyMapper

* Remove `toKey` and use `keyMapper` directly
2017-06-28 13:15:34 -07:00
Sheetal Nandi 09f0b3471a Merge branch 'master' into ownJsonParsing 2017-06-15 09:59:37 -07:00
Sheetal Nandi 187febd10f Merge pull request #16494 from Microsoft/dontCreateScriptInfosWithFileExistsAndReadFile
Fixes the memory leak because of project and its corresponding script info even after project is removed
2017-06-14 15:17:25 -07:00
Sheetal Nandi 1bf1209f7e Cleanup script infos that are not part of any project when the project is closed or inferred projects are refreshed
Also dispose some pointers so that the closures get disposed with project and script infos
2017-06-12 16:52:36 -07:00
Andy 09321b3834 Convert Extension to a string enum (#16425) 2017-06-09 19:32:44 -07:00
Sheetal Nandi c4ad151a46 Merge branch 'master' into ownJsonParsing 2017-06-05 17:01:09 -07:00
Andy 70564110c0 Make use of array helper functions (#16226)
* Make use of array helper functions

* Remove unnecessary 'ts.'
2017-06-05 14:11:43 -07:00
Ryan Cavanaugh 6f42f9ae3f Merge pull request #15308 from chuckjaz/external-files
Allow plugins to provide a list of external files.
2017-06-05 13:14:25 -07:00
Sheetal Nandi d680720f6d Merge branch 'master' into ownJsonParsing 2017-06-05 10:28:23 -07:00
Andrew Casey 95b5a691d4 Guess 1: null check is missing; Guess 2: ternary does the appropriate check 2017-05-31 16:30:27 -07:00
Sheetal Nandi 8d771ca044 Merge branch 'master' into ownJsonParsing 2017-05-30 13:03:23 -07:00
Sheetal Nandi 7bd9e092ac Make configFile on compiler options as non enumerable 2017-05-26 17:15:57 -07:00
Andy d052bb83ca Add project telemetry (#16050)
* Add project telemetry

* Respond to some PR comments

* Wrap event in a TelemetryEvent payload

* Replace paths with empty string instead of removing them entirely

* Add "version" property to payload

* Add telemetry for typeAcquisition settings

* Add "files", "include", "exclude", and "compileOnSave"

* Convert typingsOptions include and exclude to booleanss

* Add "extends", "configFileName", and "projectType"

* configFileName: Use "other" instead of undefined

* Add "languageServiceEnabled" telemetry
2017-05-25 13:30:27 -07:00
Sheetal Nandi f1ea38d127 Merge branch 'master' into ownJsonParsing 2017-05-24 12:46:29 -07:00
Andy Hanson 34bb955655 Use orderedRemoveItem instead of remove helper 2017-05-24 08:42:02 -07:00
Sheetal Nandi 7cf93f94d4 Report config file errors as part of syntactic diagnostic on the file 2017-05-23 15:56:20 -07:00
Ryan Cavanaugh ab3ffa22da Add flag to allow local plugin loading 2017-05-17 19:52:57 -07:00
Sheetal Nandi ea60e9966d Get configFiles as part of file names 2017-05-15 16:07:08 -07:00
Chuck Jazdzewski 785c281fd6 Allow plugins to provide a list of external files.
The list of the plugin's external files and request made to
a file in the list will be routed to an instance of the plugin.
2017-04-25 10:11:05 -07:00
Arthur Ozga 0ea1b82a85 test module reuse 2017-04-20 18:55:15 -07:00
Arthur Ozga cbbf6f8847 Merge branch 'master' into tripleEquals 2017-04-17 15:57:51 -07:00
Ryan Cavanaugh d31364c09c Load global plugins even if no local ones exist 2017-04-13 16:17:35 -07:00
Ryan Cavanaugh 19ddc1e94a Avoid loading duplicate local+global plugins 2017-04-13 16:17:34 -07:00
Ryan Cavanaugh 3cc379c3c0 Fix merge 2017-04-13 16:16:57 -07:00
Arthur Ozga 7e03429a8e enforce triple-equals 2017-04-04 15:51:13 -07:00