JSDoc @type completion not working inside function argument
#62,281 opened on 2025幎8æ13æ¥
Repository metrics
- Stars
- Â (48,455 stars)
- PR merge metrics
-  (å¹³åããŒãž 6d 17h) (30d ã§ 9 merged PRs)
説æ
ð 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