Commit Graph

2256 Commits

Author SHA1 Message Date
Andrew Casey
2ea4cfe23b Insert a line break before a function at EOF if needed
This is a pre-existing issue that became more obvious after refining
trivia handling.
2017-10-12 14:19:36 -07:00
Andrew Casey
4de6b0dd2d Introduce and consume suppressLeadingAndTrailingTrivia
Fixes #18626
2017-10-12 11:34:34 -07:00
Andrew Casey
b12947a35b Merge pull request #18931 from amcasey/ExtractConstantThis
Allow Extract Constant into enclosing scope in spite of RangeFacts.UsesThis
2017-10-12 11:25:00 -07:00
Mohamed Hegazy
4487917f89 Quick fix for no-implicit-any errors to add explicit type annotation (#14786)
* Infer from usage quick fix

* Change full function singature

* Add property/element access support

* Fix a few issues

* Some cleanup

* Expose getArrayType and getPromiseType

* Switch to collecting all usage before infering

* Infer array and promise type arguments

* Handel enums in binary operators

* consolidate usage of addCandidateTypes

* Handel rest paramters

* Properly handel `+=` and `+` inference for numbers and strings

* Add print quickfixes debug helper

* Add rest param tests

* Add optional paramter tests

* Handel set accessors

* Support getters

* Support no implicit any error for variable at use site

* Support properties

* Only offer quick fix if an infered type other than any is available

* Rename functions

* Move to a separate namespace

* Check cancellation token

* Cleanup

* Check for accesibile symbols where serializing types

* Remove JS support

* Reorganize functions

* Mark APIs as internal

* Fix lint errors

* Removed conflict markers.

* Update 'createSymbol' to use '__String'.

* Fixed most problems relating to '__String' and 'includeJsDocComments' in the fix itself.

* Addressed most API changes.

* Make all helpers internal

* Use a diffrent writer and not the built-in single line write

* Infer types for all parameters in a parameter list instead of one at a time

* Accept baselines

* Code review commments

* Respond to code review comments
2017-10-12 10:14:58 -07:00
Andrew Casey
73826bdb7b Allow Extract Constant into enclosing scope in spite of RangeFacts.UsesThis 2017-10-12 09:32:05 -07:00
Andrew Casey
568c8a3298 Allow extraction of variable decls used outside the extracted range
If there are only declarations, use the new function as the initializer
for a destructuring declaration.

If there are declarations and writes, changes all of the `const`
declarations to `let` and add `| undefined` onto any explicit types.
Use destructuring assignment to accomplish both "initialization" and
writes.

I don't believe there is a case where there are both declarations and a
return (since the declarations wouldn't be available after the return).

UNDONE: this could probably be generalized to handle binding patterns
but,
for now, only identifiers are supported.

Fixes #18242
Fixes #18855
2017-10-11 16:38:38 -07:00
Charles Pierce
576bd8c25f Ensure Async Modifier is maintained through ES6 Class Conversion (#19092) 2017-10-11 09:04:51 -07:00
Sheetal Nandi
61dd815ebc Merge pull request #19072 from Microsoft/completionInClassMember
Handle the case of completion of class member when member name is being edited
2017-10-10 15:45:11 -07:00
Charles Pierce
249c2cbaf7 Maintain Export Modifier when Refactoring to ES6 Class #18435 (#19070) 2017-10-10 15:39:59 -07:00
Andrew Casey
d33a9acbcc Merge pull request #18950 from amcasey/MissingMemberFormatting
Improve AddMissingMember formatting
2017-10-10 13:12:05 -07:00
Andy
927ffefcf4 Replace more 'verify.rangeAfterCodeFix' with 'verify.codeFix' (#18800) 2017-10-10 11:28:05 -07:00
Sheetal Nandi
3171d082a6 Handle the case of completion of class member when member name is being edited
Fixes #17977
2017-10-10 10:58:21 -07:00
Sheetal Nandi
67a6a9477f Merge pull request #16586 from Microsoft/projectRootAsCurrentDirectoryInEmit
Use the project root or the directory of current script info as the current directory to emit the file
2017-10-10 10:28:14 -07:00
Arthur Ozga
1db762356e Merge pull request #18706 from aozgaa/dev/aozgaa/JsDocExtendsSupport
support @extends in jsdoc
2017-10-09 15:08:58 -07:00
Arthur Ozga
932b1b038c better error message 2017-10-06 16:16:37 -07:00
Arthur Ozga
0afaadba3b add error for multiple tags 2017-10-06 15:56:39 -07:00
Andy
71f8852124 Have getNameOfDeclaration return x for export default x. (#18616) 2017-10-06 14:29:45 -07:00
Arthur Ozga
5ea3ca4ef9 Merge branch 'master' into dev/aozgaa/JsDocExtendsSupport 2017-10-06 14:25:31 -07:00
Daniel Rosenwasser
e5eccf0a22 Added test. 2017-10-05 11:38:21 -07:00
Sheetal Nandi
03441fe120 Merge branch 'master' into projectRootAsCurrentDirectoryInEmit 2017-10-04 18:48:16 -07:00
Benjamin Lichtman
43084829bc Increase maximum depth of outlining span search (#18704)
* Increase max depth of outlining spans to 120

* Update tests

* Update tests to demonstrate limit

* Set limit to 40 and update tests
2017-10-04 13:48:08 -07:00
Andrew Casey
4cf289e1a5 Fix whitespace around inserted property initializer
Fixes #18741
2017-10-04 11:26:41 -07:00
Andrew Casey
686fd1e62d Fix whitespace around inserted static property
Fixes #18743
2017-10-04 11:23:58 -07:00
Andy
6617819bf3 In getModifierOccurrences, support additional container kinds (#18947) 2017-10-04 09:52:51 -07:00
Andy
fe9129b1ab Support contextual type for property assignments in JS that are not declarations (#18820) 2017-10-04 09:32:09 -07:00
Nathan Shively-Sanders
4d8663c378 Merge pull request #18117 from Microsoft/jsdoc-dotdotdot-binds-tighter-than-postfix
Jsdoc ... binds tighter than postfix ?!
2017-10-03 08:45:26 -07:00
Andy
eefe5c9706 Fix acquiring format options for getEditsForRefactor (#18848)
* Fix acquiring format options for getEditsForRefactor

* Add test

* Fix test description

* Use `executeCommandSeq`
2017-10-02 13:26:35 -07:00
Armando Aguirre
a39110add9 Merge pull request #18806 from armanio123/FixScriptBlockFormatting
Fixed formatting on script blocks
2017-09-28 12:35:32 -07:00
Andy
1a2de721b5 Fixes to @augments handling (#18775)
* Fixes to @augments handling

* Renames and diagnostic changes

* Add test for < > characters

* Use more specific return type
2017-09-28 12:34:54 -07:00
Sheetal Nandi
fad71d3dc6 Use project root as the current directory whenever possible to create the project 2017-09-27 17:19:54 -07:00
Armando Aguirre
8683ac92c8 Fixed formatting on script blocks, added regrestion tests, fixed minor bugs 2017-09-27 15:18:25 -07:00
Andrew Casey
3eea1a9e9a Generalize extract method to handle constants as well
Major changes:

1) Instead of skipping undesirable scopes, include them and mark them
with errors.  Constants can be extracted into more scopes.

2) Update the tests to call through the "public" API.  This caused some
baseline changes.

3) Rename refactoring to "Extract Symbol" for generality.

4) Return a second ApplicableRefactorInfo for constants.  Distinguish
the two by splitting the action name.
2017-09-26 17:29:34 -07:00
Andy
ecef2dc970 Improve testing of code fixes, and improve diagnostic messages (#18742)
* Improve testing of code fixes, and improve diagnostic messages

* Disambiguate `newFileContent` from `newRangeContent`
2017-09-26 15:16:29 -07:00
Andy
b4018a2ef1 Handle @typedef tag with missing type (#18662)
* Handle @typedef tag with missing type

* Add single quotes to diagnostic

* Remove redundant jsdoc checking (now done on every source element)

* Update baselines
2017-09-25 12:11:33 -07:00
Arthur Ozga
b21c46b9b5 support @extends in jsdoc 2017-09-22 16:21:31 -07:00
Andy
72c8b804da Use JSDoc @type tag type cast as a contextual type (#18690)
* Use JSDoc `@type` tag type cast as a contextual type

* Suggested changes
2017-09-22 10:42:02 -07:00
Nathan Shively-Sanders
36cdbb2857 Merge pull request #18625 from Microsoft/fix-getAdjustedStartPosition-on-first-line
Fix get adjusted start position on first line
2017-09-21 10:08:30 -07:00
Nathan Shively-Sanders
3cc0aeb6be PR comments
I plan to fix the missing comment issue when I add the
convert-jsdoc-types-to-typescript-types refactoring. Or at least work
around it.
2017-09-21 09:44:51 -07:00
Andrew Casey
f00c78c9b5 Merge pull request #18622 from amcasey/NoModifiers
JavaScript: handle lack of modifiers on extracted method
2017-09-20 17:10:42 -07:00
Nathan Shively-Sanders
410f84656d Update baselines temporarily
The loss of comments is not good, but should be fixed when
(1) trivia-handling issues are fixed or (2) the reafactorings themselves
add a workaround.
2017-09-20 16:31:28 -07:00
Andrew Casey
a1dee452fa JavaScript: handle lack of modifiers on extracted method
The emitter expects undefined, rather than empty.  This only affects JS,
because TS applies `private` to all extracted methods.

(cherry picked from commit 9630c46ea7)
2017-09-20 16:25:15 -07:00
Andy
4d2aa9bf2c Fix formatting when keyword is parsed as part of a JSX identifier (e.g. module-layout) (#18598) 2017-09-20 15:01:04 -07:00
Andy
12649516cf navigation tree / bar: Set span of anonymous function to span of VariableDeclaration containing it (#18575)
* navigation tree / bar: Set span of anonymous function to span of VariableDeclaration containing it

* Add back `isFunctionOrClassExpression`
2017-09-19 14:39:29 -07:00
Andrew Casey
af49c60a2c Stop requiring that the full range of a declaration fall within the
selection

Fixes #18546
2017-09-18 19:17:47 -07:00
Andy
79e12eb48b Ensure that emitter calls callbacks for empty blocks (#18547) 2017-09-18 10:05:44 -07:00
Benjamin Lichtman
83f2401523 Merge pull request #17954 from uniqueiniquity/regions
Add support for custom outlining regions
2017-09-15 17:04:32 -07:00
uniqueiniquity
3dfeb2d0f4 Combine and simplify regex 2017-09-15 15:52:08 -07:00
Andrew Casey
abd4f58824 Restore single-token tests 2017-09-15 10:45:15 -07:00
Vakhurin Sergey
95594e3ef3 Fixed formatting for multiline initialization of object and class members (#18494) 2017-09-15 09:12:35 -07:00
Andy
c522f379b2 Update assertion: symbol in union type may be a Function (#18483) 2017-09-14 15:02:32 -07:00