In your editor
Inside a Strapi project — zero config, no type generation.
Autocomplete
Section titled “Autocomplete”Inside a magic string, suggests the real values for the context at your cursor: UIDs, services, controllers, policies, middlewares, components, and a content-type’s route actions.
strapi.service('api::|') // ← suggests every real content-type UID in your projectDiagnostics
Section titled “Diagnostics”Underlines references that don’t exist (with quick fixes that suggest the closest
match), and flags Strapi v4 patterns (e.g. strapi.entityService) used in a
v5 project.
strapi.documents('api::artcle.artcle')// ✗ unknown UID — quick fix: did you mean 'api::article.article'?Go to definition
Section titled “Go to definition”Ctrl/Cmd-click a string to jump to the right target: a UID → its schema.json, a
service/controller/policy/middleware → its file, a route handler → the
controller method, a component → its JSON, a plugin('a').service('b') chain
→ the plugin’s service.
// Ctrl/Cmd-click the UID → opens the content-type's schema.jsonstrapi.documents('api::article.article')Find references & CodeLens
Section titled “Find references & CodeLens”A “N references (Strapi)” lens on every definition, including per-method usages
(strapi.service('x').find() calls and route handlers) the TypeScript server
can’t see, because strapi.service(...) is typed any. A second
“N incoming relations” lens on schema.json.
Rename — Pro
Section titled “Rename — Pro”Renaming an entity or a method propagates to every call-site and route
handler, renames the underlying file/folder, and updates relation targets — no
grep-and-pray. See Pro.
Describes what a string resolves to, with the signature for service methods and usage insights (incoming relations, route handlers, data usages).
Every feature here can be tuned in Configuration — diagnostic severity, the references CodeLens, the per-method lens, and project-discovery exclusions.