Commit Graph
4208 Commits
Author SHA1 Message Date
Andy ea6740fa91 replaceNode: Always use non-adjusted end (#22519)
* replaceNode: Always use non-adjusted end

* Never adjust start position either

* Fix excess property checks, remove unnecessary arguments

* Make 'insertText' and 'newLineCharacter' private

* Use replaceNode in one more place now that it doesn't affect comments

* Update replaceNodeRange too

* Always ask for ChangeNodeOptions
2018-03-27 10:34:16 -07:00
Andy a9d65b8b00 textChanges: Clean up *Options interfaces (#22813) 2018-03-26 15:34:58 -07:00
Andy ced4c00522 importFixes: Distinguish when we need to import JSX constructor or JSX namespace (#22828) 2018-03-26 14:05:03 -07:00
Andy fa794f6ee1 Remove unnecessary 'forEachEntry' call (#22653) 2018-03-26 13:04:47 -07:00
Wesley Wigham 6af764c560 Declaration maps and transparent goto definition using them (#22658)
* Add compiler option to enable declaration sourcemaps

* Transparent goto definition for sourcemapped declaration files

* Post-rebase touchups

* Rename API methods

* Fix lints

* Fix typo in name XD

* Log sourcemap decode errors

* Share the cache more, but also invalidate it more

* Remove todo

* Enable mapping on go to implementation as well

* Allow fourslash to test declaration maps mroe easily

* more test

* Handle sourceRoot

* Add tests documenting current behavior with other sourcemapping flags

* Ignore inline options for declaration file maps, simplify dispatch in emitter

* Change program diagnostic

* Fix nit

* Use charCodeAt

* Rename internal methods + veriables

* Avoid filter

* span -> position

* Use character codes

* Dont parse our sourcemap names until we need to start using them

* zero-index parsed positions

* Handle sourceMappingURL comments, including base64 encoded ones

* Unittest b64 decoder, make mroe robust to handle unicode properly

* Fix lint

* declarationMaps -> declarationMap

* Even more feedback

* USE Mroe lenient combined regexp

* only match base64 characters

* Fix nit
2018-03-26 12:15:34 -07:00
Andy 9557e4ad96 Handle completions in interface / type literal similar to class (#22701)
* Handle completions in interface / type literal similar to class

* Code review
2018-03-23 16:04:29 -07:00
uniqueiniquity 6ba4dbeae4 Make region outlining more sensitive to CRLF 2018-03-23 14:29:32 -07:00
Wesley Wigham 0736554db7 Alternate but more general token comment emit fix + organizeImports fix (#22836)
@amcasey: Preserve leading trivia when organizing imports

When organizing imports, we used to move the leading and trailing trivia
of each individual import with that import as it was repositioned or
deleted.  This had the unfortunate effect of repositioning or deleting
the header comment of the file.

Our new approach is to leave the leading trivia of the first import
ahead of the resulting block of imports (i.e. it no longer follows the
first import as it is repositioned or deleted).  Trailing trivia on the
first import and trivia on subsequent imports are treated as before.
2018-03-23 14:13:40 -07:00
Andy 02ee11c357 Refactor tryGetGlobalSymbols into list of things to try (#22704)
* Refactor `tryGetGlobalSymbols` into list of things to try

* Refactor to `||` expression
2018-03-23 08:44:21 -07:00
Andy e0ca8a5f39 organizeImports: Fix bug in reference-testing for renamed import (#22797) 2018-03-22 13:08:58 -07:00
Andy 6d82a20109 Combine getLastChild helpers (#22418) 2018-03-22 09:32:05 -07:00
Andy b6b51a4d38 convertFunctionToEs6Class: Combine deletes and deletedNodes (#22742) 2018-03-22 08:22:00 -07:00
Andy f2f2393f4b convertFunctionToEs6Class: Copy comments from constructor to class (#22738) 2018-03-22 08:12:02 -07:00
Andy effcf2ac56 Fix test for overlapping changes (#22741) 2018-03-22 08:11:27 -07:00
Andy 3a3f57acfd Remove unnecessary exports (#22739) 2018-03-22 08:10:52 -07:00
Andy cc3921323c Support services settings (#22236)
* Support services settings

* Code review

* More review

* Use different names for Options and GetCompletionsAtPositionOptions (todo: come up with better names)

* More renames

* More renaming

* Support quote style in importFixes

* Add `importModuleSpecifierPreference` option

* Support quote style for `throw new Error('Method not implemented.')` (#18169)

* options -> preferences
2018-03-20 13:07:59 -07:00
Andy 0df92a1ba1 Simplify isImplementation (#22660) 2018-03-19 11:59:22 -07:00
Andy c7215a181c findAllRefs: give entry for union its own definition (#22694) 2018-03-19 11:58:20 -07:00
Andy 5fd3ed2c10 Fix indent (#22662) 2018-03-16 15:54:52 -07:00
Andy 42c7aa85ce Clean up isNameOfExternalModuleImportOrDeclaration (#22659) 2018-03-16 14:54:41 -07:00
Andy 28ff6b6ef3 Store import nodes in SourceFile.imports instead of StringLiteral nodes (#22495)
* Store import nodes in SourceFile.imports instead of StringLiteral nodes

* Change SourceFile#imports storage back

* Code review

* StringLiteral -> StringLiteralLike
2018-03-16 14:01:00 -07:00
Andy adf3635a1f For import fix, for "foo/index" module, use "foo" as default export name, not "index" (#22651) 2018-03-16 14:00:33 -07:00
Matt Bierner 9774cd5eb5 Fix await code action crashes when await is not in a function (#22623)
Fixes #22614
2018-03-16 11:53:17 -07:00
Matt Bierner 984aaa3ee9 Fix completions and brace in empty file (#22620)
Fixes #22618
2018-03-16 11:05:33 -07:00
Wesley Wigham 19ec83fcdf Refactor declaration emitter into declaration transformer (#21930)
* Refactor declaration emitter into declaration transformer

* Slight cleanup from code review feedback

* Incorporate fix for new test

* Swaths of PR feedback

* Merge public methods

* Per-file output

* Preserve input import ordering more often

* Unify jsdoc comment start detection under more lenient rule

* Move to per-file transformations to reduce the memory that msut be retained

* Fix typo
2018-03-15 22:23:10 -07:00
Andy 85e9cce3c7 Don't add external module completions in a pure commonjs file (#22583) 2018-03-15 08:13:16 -07:00
Andy e7ce3f9457 useNonAdjustedEndPosition when replacing import node (#22517)
* useNonAdjustedEndPosition when replacing import node

* Never adjust positions, and add trivia test
2018-03-14 11:46:45 -07:00
Andy 6ef2db5c48 inferFromUsage: Handle being at an unexpected location (#22569)
* inferFromUsage: Handle being at an unexpected location

* add comment
2018-03-14 10:57:38 -07:00
Andy 23a64fe804 Remove redundant call to checkNodeDeferred (#22516)
* Remove redundant call to `checkNodeDeferred`

* Use a set to speed up `contains` checks
2018-03-13 15:46:25 -07:00
Andy 83b438ffa6 fixUnusedIdentifier: Don't remove setter parameter (#22488) 2018-03-12 16:07:20 -07:00
Sheetal Nandi fa2b7ff6b3 Merge pull request #22421 from Microsoft/typesInTypeArguments
Allow types as well as values in possibly type argument location
2018-03-09 14:36:45 -08:00
Sheetal Nandi ef64cde621 Merge pull request #22409 from Microsoft/symbolKind
Symbol kind needs to use location before falling back to flags
2018-03-09 13:59:38 -08:00
Sheetal Nandi 73947f8990 Add comments and make some nit changes based on PR feedback 2018-03-09 13:57:57 -08:00
Andy 0f47c8a205 annotateWithTypeFromJSDoc: Do less special-casing for arrow functions (#22407)
* annotateWithTypeFromJSDoc: Do less special-casing for arrow functions

* Code review
2018-03-08 16:32:32 -08:00
Sheetal Nandi e1a89e7011 Allow types as well as values in possibly type argument location
Fixes #22369
2018-03-08 16:06:26 -08:00
Sheetal Nandi ea37c37e88 Symbol kind needs to use location before falling back to flags
Fixes #22366
2018-03-08 11:50:52 -08:00
Andy a49e83ffa7 annotateWithTypeFromJSDoc: Use changes.insertTypeAnnotation instead of replaceNode (#22404) 2018-03-08 11:47:30 -08:00
Nathan Shively-Sanders f8134d0b45 Merge branch 'master' into js-object-literal-assignments-as-declarations 2018-03-08 10:40:55 -08:00
Andy 0605424852 fixJSDocTypes: Use ChangeTracker (#22391) 2018-03-08 07:52:03 -08:00
Nathan Shively-Sanders d86440f94f Merge branch 'master' into js-object-literal-assignments-as-declarations 2018-03-07 14:51:55 -08:00
Andy 1f7a5097fa When every import is unused, error on the entire import declaration (#22386)
* When every import is unused, error on the entire import declaration

* Code review

* Store key in map value
2018-03-07 14:42:09 -08:00
Andy e5804aefde inferFromUsage: use ChangeTracker and typeToTypeNode (#22379)
* inferFromUsage: use ChangeTracker and typeToTypeNode

* Use typeToTypeNode with SymbolTracker

* Add comment
2018-03-07 14:40:50 -08:00
Andy 0be9ee2871 Increase size of span for unused declaration (#22388) 2018-03-07 14:14:11 -08:00
Sheetal Nandi 36b45e3f13 Merge pull request #22343 from Microsoft/codeFixActionNotUndefined
Create the action only if the text change creation is successful.
2018-03-06 12:31:04 -08:00
Mohamed Hegazy b2dd610e92 Fix ignore message indentation (#22340)
* Update baselines for user tests

* Add explicit indentation

* Fix https://github.com/Microsoft/TypeScript/issues/21355: Format `// @ts-ignore` added by quick fix

* Extract check to a separate function

* Consolidate checking for valid insert location

* Code review comments

* Do not return makeChange
2018-03-06 12:19:19 -08:00
Andy 2fb7e643f4 Simplify suppressLeadingAndTrailingTrivia (#22356) 2018-03-06 11:34:33 -08:00
Sheetal Nandi 70944428a1 Create the action only if the text change creation is successful. …
Make change for the infer type from usage could return undefined even if type is present if the type cannot be named
Fixes #22184
2018-03-06 11:03:20 -08:00
Andy e5f91f5948 Convert annotateWithTypeFromJSDoc refactor to a codefix (#22336)
* Convert annotateWithTypeFromJSDoc refactor to a codefix

* Compute isJsFile once at top
2018-03-06 07:49:21 -08:00
Josh Goldberg 7826b38426 Apply 'no-unnecessary-initializer' lint rule (#22014)
* Apply 'no-unnecessary-initializer' lint rule

Forbids `let`/`const` statements to be initialized to `undefined`, since that's the initial value by default anyway.
The auto-fixer also happened to remove two unnecessary `as number` casts in `src/harness/parallel/worker.ts`.

For historical data: to run with `--fix`, I modified the line in `Jakefile.js` that declared the `cmd` for running TSLint.

* Moved worker.ts type assertions to parameters
2018-03-06 07:30:40 -08:00
Andy 5e593acad9 Avoid cast by providing type predicate to isExternalModuleAugmentation (#22119)
* Avoid cast by providing type predicate to isExternalModuleAugmentation

* Break into isExternalModuleAugmentation and isModuleAugmentationExternal
2018-03-06 07:27:36 -08:00