Skip to content

fix: rename code_actions_kind to code_action_kinds - #263

Open
KuSh wants to merge 1 commit into
oxc-project:mainfrom
KuSh:fix/extension-manifest-code-action-kinds
Open

KuSh wants to merge 1 commit into
oxc-project:mainfrom
KuSh:fix/extension-manifest-code-action-kinds

Conversation

@KuSh

@KuSh KuSh commented Sep 20, 2026

Copy link
Copy Markdown

Summary

[language_servers.oxlint] declared code_actions_kind. Zed reads that field as code_action_kinds, and ExtensionManifest does not use serde(deny_unknown_fields), so the misspelled key has been dropped silently and the declaration has never had any effect.

What the field is for, from the Zed sources: GetCodeActions::supported_code_action_kinds prefers the kinds a server advertises in its initialize result and falls back to the manifest list only when the server advertises none. It gates whether Zed asks a server for a given kind at all, on the format-on-save path; it plays no part in the interactive quick-actions menu, which sends no only filter.

The oxlint server does advertise its kinds — quickfix, source.fixAll.oxc, source.fixAllDangerous.oxc and source.fixAll — so this changes no behaviour today. It makes a declaration that was silently ignored effective, and the value now mirrors what the server advertises instead of a narrower guess, so the fallback is right if a server ever stops advertising them.

Nothing is added for oxfmt: it declares no code action provider.

While checking the other keys against the structs Zed parses this file with, one more turned up: name under [language_servers.*] has never existed in LanguageServerManifestEntry, although Zed's own documentation shows it in its examples. It is equally inert and left untouched here.

AI disclosure: implemented with Claude Code under my review; every change was tested and reviewed by me.

🤖 Generated with Claude Code

Zed parses the language server entry with `code_action_kinds`, and its
manifest struct does not deny unknown fields, so `code_actions_kind` was
dropped on load and the declaration never reached Zed.

Zed consults this list only when the server advertises no code action
kinds in its initialize result. The oxlint server does advertise them, so
this changes nothing today; it makes the fallback effective and correct
should that ever stop being the case. The value now mirrors the four
kinds oxlint advertises instead of a narrower subset.

Oxfmt advertises only document formatting and no code action provider, so
it gets no such declaration.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant