Commit Graph

6389 Commits

Author SHA1 Message Date
Jake Bailey
36e29448e9 Get codebase building pre bundling
This isn't totally complete, but enough to get everything building and
tests running manually. The next commit will make the build work fully.
2022-11-07 13:34:44 -08:00
Jake Bailey
d12116d8da Fix all internal JSDoc comments
If these are regular comments, then they won't appear in our d.ts files.
But, now we are relying on an external d.ts bundler to produce our final
merged, so they need to be present in the "input" d.ts files, meaning
they have to be JSDoc comments.

These comments only work today because all of our builds load their TS
files from scratch, so they see the actual source files and their
non-JSDoc comments.

The comments also need to be attached to a declaration, not floating,
otherwise they won't be used by api-extractor, so move them if needed.
2022-11-07 13:34:44 -08:00
Jake Bailey
39e27fbb6b Fix up linting, make lint clean
Now that we are modules, there's no reason to ban multiple namespaces
per file; each file is its own scope and declaring a namespace won't
merge it into any other files.
2022-11-07 13:33:07 -08:00
Jake Bailey
07758c08ab Generated module conversion step - inlineImports
This step converts as many explicit accesses as possible in favor of direct imports from the modules in which things were declared. This restores the code (as much as possible) back to how it looked originally before the explicitify step, e.g. instead of "ts.Node" and "ts.Symbol", we have just "Node" and "Symbol".
2022-11-07 13:33:07 -08:00
Jake Bailey
b6c0538826 Generated module conversion step - stripNamespaces
This step converts each file into an exported module by hoisting the namespace bodies into the global scope and transferring internal markers down onto declarations as needed.

The namespaces are reconstructed as "barrel"-style modules, which are identical to the old namespace objects in structure. These reconstructed namespaces are then imported in the newly module-ified files, making existing expressions like "ts." valid.
2022-11-07 13:32:03 -08:00
Jake Bailey
9a0b85ce2a Generated module conversion step - explicitify
This step makes all implicit namespace accesses explicit, e.g. "Node" turns into "ts.Node".
2022-11-07 13:29:05 -08:00
Jake Bailey
94724a8c2e Generated module conversion step - unindent
This step makes further commits look clearer by unindenting all of the top level namespaces preemptively.
2022-11-07 13:28:13 -08:00
Sheetal Nandi
7b0df1ff99 Pass in information for the module name resolution when resolutions from file are partially used (#49738)
* Test showing wrong resolution is returned because of incorrect mode calculation
Test for #48229

* Pass in information for the module name resolution when resolutions from file are partially used
Fixes #48229

* Make the resolution info complete
2022-11-07 11:51:04 -08:00
Oleksandr T
fa4b49d541 fix(51374): ts(80004): Quick fix... > Annotate with type from JSDoc :: object types (#51378)
* fix(51374): transform JSDocTypeLiteral

* add additional tests

* add additional tests
2022-11-07 11:35:08 -08:00
Andrew Casey
f1d62f4dc4 Change watchdog tagged users (#51411) 2022-11-04 15:23:08 -07:00
Gabriela Araujo Britto
fdcb2ffd1b Fix services' type's isLiteral implementation (#50929)
* fix services' type's isLiteral

* update literal completions tests

* remove booleans from literals
2022-11-02 11:28:10 -07:00
Oleksandr T
64d0d5ae14 fix(51301): Fixing an unused import at the end of a line removes the newline (#51320)
* fix(51301): keep the line break after removing the unused identifier

* preserve line breaks in import specifiers

* preserve line breaks in parameters and destructuring elements

* remove preserveLineBreak option
2022-10-27 17:27:36 -07:00
Oleksandr T
d4f26c840b fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure (#51256)
* fix(51245): don't rely on parent nodes in formatting rules

* check existing parent node
2022-10-26 16:59:44 -04:00
Oleksandr T
8b1ecdb701 fix(50654): "Move to a new file" breaks the declaration of referenced variable (#50681)
* fix(50654): remove entire import require call instead of the name

* handle require imports in ts files
2022-10-25 17:05:57 -07:00
Oleksandr T
88d25b4f23 fix(50068): Refactors trigger debug failure when JSX text has a ' and a tag on the same line. (#51299)
* fix(50068): rescan JsxText on JsxElement context

* fix lint errors

* add tests
2022-10-25 13:10:31 -07:00
Andrew Branch
ef69116c41 Generate shortest rootDirs module specifier instead of first possible (#51244)
* Generate shortest rootDirs module specifier instead of first possible

* Simplify `min`
2022-10-21 16:05:58 -07:00
Oleksandr T
8ac465239f change type (#51231) 2022-10-19 12:38:37 -07:00
Oleksandr T
245a02cbed fix(51222): Go-to-definition on return statements should jump to the containing function declaration (#51227)
* fix(51222): add go-to-definition return statement to containing function

* add additional tests
2022-10-19 11:32:39 -07:00
Oleksandr T
f25bcb7c27 fix(49196): add jsdoc snippet for interface member functions (#51135) 2022-10-17 17:35:08 -07:00
Oleksandr T
7406ee9c14 fix(51170): Completing an unimplemented property overwrites rest of line (#51175)
* fix(51170): skip insertText for class members with existing initializer

* skip insertText for class members with existing tokens
2022-10-17 13:14:23 -07:00
Isabel Duan
2cb7e779d7 fix(50416): correctly names disabled export refactors (#50663)
* added test case to try to retrieve duplicate refactor as in #50416. 'verify.refactorAvailable' correctly retrieves nonduplicate refactors...

* optional arguments in refactorAvailable return `true` even if there is no single refactor that satisfies both

* it still passes :C

* Delete fixExtractToInnerFunctionDuplicaton.ts

* deleted extra test code

* fix 'verify.refactorAvailable' so that tests correctly check for multiple arguments

* fixes #50416

* refactor
2022-10-13 16:44:30 -07:00
Oleksandr T
2bcfed01f3 feat(37440): Provide a quick-fix for non-exported types (#51038)
* feat(37440): add QF to handle missing exports

* change diagnostic message

* add type modifier only if isolatedModules is set or if the export declaration already uses type modifiers
2022-10-13 15:43:49 -07:00
Oleksandr T
cf1b6b7333 feat(51163): show QF to fill in the missing properties for the mapped type. (#51165) 2022-10-13 11:29:18 -07:00
Valerian Clerc
503604c884 Overloads shouldn't gain @deprecated tags of other overloads in quick info (#50904)
* Add test case to check for the propogation of @deprecation tag to multiple overloads

* Implement filter to only include @deprecated tag in first signature after JSDoc comment
2022-10-11 16:58:03 -07:00
Jake Bailey
67256e50c4 Remove unused declarations array in extractSymbol's TargetRange (#51091) 2022-10-10 13:57:10 -07:00
Oleksandr T
d0bfd8caed fix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings (#51082) 2022-10-07 10:33:20 -07:00
Nathan Shively-Sanders
299745cb21 Fix crash in goto-def on @override (#51016)
* Fix crash in goto-def on `@override`

When the base type is not defined, getDefinitionFromOverriddenMember
will have its type as errorType, which has no symbol. The error handling
previously only handled the case of no baseType at all -- which I'm not
sure ever actually happens.

* Improve checking

1. getTypeAtLocation never returns undefined, only errorType, so check for that.
2. Return directly after missing baseTypeNode instead of continuing to return later.

* Experiment with making goto-def on `override` more consistent

* Unify static/instance node->symbol->type path

* Make getSymbolAtLocation support class expressions

and parenthesized expressions

* Revert "Make getSymbolAtLocation support class expressions"

This reverts commit 4c1b031355.

* fix semicolon lint
2022-10-03 16:07:57 -07:00
Oleksandr T
7dcf11f139 fix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references (#50757)
* fix(50750): skip unbound symbols from JSDoc tags in typescript

* skip contextual type checking in JsDoc for TypeScript files
2022-10-03 15:57:32 -07:00
Andrew Branch
0ce72ef6c8 Add option to OrganizeImports for removal only (#50931)
* Remove unused imports

* Lint

* Update baselines

* Make mode paramter required

* Clean up
2022-09-29 16:30:02 -07:00
Jack Works
42f9143e11 feat: codefix for for await of (#50623) 2022-09-29 16:13:25 -07:00
Daniel Rosenwasser
9740bcc534 Pluralized hasInvalidatedResolution -> hasInvalidatedResolutions (#50912)
* Pluralize hasInvalidatedResolution to hasInvalidatedResolutions.

* Accepted baselines.
2022-09-22 18:33:09 -07:00
Jake Bailey
645d1cd7c1 Fix assert in addIndirectUser in FAR (#50905) 2022-09-22 16:47:27 -07:00
Oleksandr T
7a3de819bf fix(49993): skip the quick fix for an expression with an enum type (#50625) 2022-09-21 16:59:17 -07:00
Oleksandr T
4d91204c9d fix(37030): Expand Selection in function and arrow function skips body block (#50711)
* fix(37030): include curly braces from function body in the selection

* add missed sourceFile argument
2022-09-21 10:47:24 -07:00
Andrew Branch
938a69a526 Fix import statement completions followed by interface declaration (#50350)
* Fix import statement completions followed by interface declaration

* Fix stuff

* Linty

* Fix when named imports is missing closing brace
2022-09-20 13:29:06 -07:00
Oleksandr T
e002159ad1 feat(49962): Disallow comparison against NaN (#50626)
* feat(49962): disallow comparison against NaN

* change diagnostic message

* use global NaN symbol for NaN equality comparisons
2022-09-20 13:16:44 -07:00
Jake Bailey
16156b1baf Add rules from eslint's recommended set that triggered good lints (#50422) 2022-09-19 16:20:55 -07:00
magic-akari
01cae69e34 fix(50796): omit questionToken in object literal method completions (#50802) 2022-09-16 10:06:03 -07:00
Oleksandr T
08b91f6b82 fix(50717): tsc crashes when it sees a JSDoc tag inside an @override annotation (#50724) 2022-09-13 12:51:17 -07:00
Jake Bailey
8e5e2e08ea Fix backticks in our JSDoc comments (#50737) 2022-09-12 13:27:49 -07:00
Ron Buckton
a4cabe725b Support for auto-accessor fields from the Stage 3 Decorators proposal (#49705)
* Support for auto-accessor fields

* Add tests, ensure accessors are initialized in ctor

* classFields cleanup and PR feedback
2022-09-12 15:12:11 -04:00
Jake Bailey
eb40134373 Don't leave space for property access on non-integer literals (#50703) 2022-09-09 14:36:39 -07:00
Jake Bailey
1a1c271675 Don't remove space before dot if in property access on numeric literal (#50695)
* Add failing test

* Don't remove space before dot if in property access on numeric literal
2022-09-08 19:08:51 -07:00
Oleksandr T
4579245f36 fix(50427): allow convert function expressions (#50430) 2022-08-26 15:43:19 -07:00
Oleksandr T
bb3a7aec11 fix(50415): Language server debug failure - Did not expect GetAccessor to have an Identifier in its trivia (#50470)
* fix(50415): clone props for get/set accessors

* add additional tests

* create helpers to create name, body, modifiers, typeName

* cleanup
2022-08-26 14:33:23 -07:00
Ryan Cavanaugh
3557092b14 Rephrase error message to be 100% technically correct (#50471) 2022-08-26 14:22:49 -07:00
Jake Bailey
226dd0b7bf Fix typechecking related lints that changed post 4.8, update LKG to 4.8.2 (#50472) 2022-08-26 11:41:45 -07:00
Oleksandr T
164dddc48e feat(7481): Operator to ensure an expression is contextually typed by, and satisfies, some type (#46827)
* feat(7481): add explicit type compatibility check with 'satisfies' expression

* Add failing test for lack of intersectioned contextual type

* Implement the behavior

* Add test corresponding to the 'if'

* Add test based on defined scenarios

* remove isExpression in favor of using type casting

* move tests from compiler to conformance folder

* update baseline

* add missing contextFlags argument

* use asserted type

* accept baseline

Co-authored-by: Ryan Cavanaugh <ryanca@microsoft.com>
2022-08-26 10:05:52 -07:00
Andrew Branch
38076df346 Fix auto import crash due to difference in paths handling (#50419) 2022-08-25 13:02:48 -07:00
Oleksandr T
12eb519b3f fix(50435): Duplicate seeming Code Actions for convert const to let (#50442)
* fix(50435): omit fix all in constToLet QF

* add FixAll action
2022-08-25 13:01:46 -07:00