microsoft / microsoft/TypeScript
JSDoc @type completion not working inside function argument
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
🔎 Search Terms
jsdoc, completion
🕗 Version & Regression Information
Never seems to have worked
⏯ Playground Link
No response
💻 Code
JSDoc has some completion issues with completions like this:
function someFunc(/** @type {^cursor here^} **/) {}
❌ Does not work - @type completion (in function argument) from @import with named argument
///<reference path="fourslash.ts" />
// @allowJS: true
// @checkJs: true
// @module: esnext
// @filename: ./a.ts
////export interface ABC {}
// @filename: ./b.js
/////** @import * as t from "./a" */
////function someFunc(/** @type {t./**/} */arg) {}
verify.completions({
marker: "",
includes: "ABC",
});
✅ Works - @type completion (in function argument) from @typedef and with named argument
///<reference path="fourslash.ts" />
// @allowJS: true
// @checkJs: true
// @module: esnext
// @filename: ./b.js
/////** @typedef {number} SomeNumber */
////function someFunc(/** @type {S/**/} */arg) {}
verify.completions({
marker: "",
includes: "SomeNumber",
});
✅ Works - @type completion (not part of function argument) from @import completion inside
///<reference path="fourslash.ts" />
// @allowJS: true
// @checkJs: true
// @module: esnext
// @filename: ./a.ts
////export interface ABC {}
// @filename: ./b.js
/////** @import * as t from "./a" */
/////** @type {t./**/} */
verify.completions({
marker: "",
includes: "ABC",
});
❌ Does not work - @type completion (in function argument) from @import (argument not named yet)
///<reference path="fourslash.ts" />
// @allowJS: true
// @checkJs: true
// @module: esnext
// @filename: ./a.ts
////export interface ABC {}
// @filename: ./b.js
/////** @import * as t from "./a" */
////function someFunc(/** @type {t./**/} */) {}
verify.completions({
marker: "",
includes: "ABC",
});
❌ Does not work - @type completion (in function argument) @typedef (argument not named yet)
///<reference path="fourslash.ts" />
// @allowJS: true
// @checkJs: true
// @module: esnext
// @filename: ./b.js
/////** @typedef {number} SomeNumber */
////function someFunc(/** @type {S/**/} */) {}
verify.completions({
marker: "",
includes: "SomeNumber",
});
🙁 Actual behavior
See above, completions are missing.
🙂 Expected behavior
See above, completions are present.
Additional information about the issue
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par les reproductions fourslash.ts de l’issue, en particulier les cas de b.js virtuel qui utilisent JSDoc @type dans un argument de fonction. Suivez la gestion des completions par le TypeScript language service pour ces expressions de type JSDoc et comparez-la aux cas @typedef et autonomes qui fonctionnent. Le travail est terminé lorsque la couverture de régression montre des completions pour ABC et SomeNumber dans les cas manquants.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- developer-experience, tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 55/100