Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
[language_servers.oxlint]declaredcode_actions_kind. Zed reads that field ascode_action_kinds, andExtensionManifestdoes not useserde(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_kindsprefers the kinds a server advertises in itsinitializeresult 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 noonlyfilter.The oxlint server does advertise its kinds —
quickfix,source.fixAll.oxc,source.fixAllDangerous.oxcandsource.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:
nameunder[language_servers.*]has never existed inLanguageServerManifestEntry, 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