coc-oxc
v0.4.0
Published
Oxc extension for coc.nvim
Readme
coc-oxc
Oxc extension for coc.nvim
Install
:CocInstall coc-oxc
Features
- oxlint: Fast linter with auto-fix support
- oxfmt: Fast formatter with format-on-save support
Note: This plugin only uses oxlint and oxfmt installed in the respective project; it does not activate globally.
Vite+
If vite-plus is installed in the workspace root, the plugin runs vp lint --lsp and vp fmt --lsp from it.
If vite-plus is not installed, it falls back to node_modules/.bin.
An explicit binPath takes priority.
Configurations
Oxlint (Linter)
oxc.oxlint.enable: Enable oxlint language server (default:true)oxc.oxlint.run: Run the linter on saveonSaveor on typeonType(default:onType)oxc.oxlint.configPath: Path to oxlint configuration (default:null, searches for.oxlintrc.json)oxc.oxlint.binPath: Path to theoxlintbinary (default: searches innode_modules/.bin)oxc.oxlint.codeActionsOnSave: Code action kinds to apply on save, e.g.["source.fixAll.oxc"](default:[], disabled)
Oxfmt (Formatter)
oxc.oxfmt.enable: Enable oxfmt formatting (default:true)oxc.oxfmt.binPath: Path to theoxfmtbinary (default: searches innode_modules/.bin)oxc.oxfmt.formatterPriority: Priority used when multiple formatters are registered for a language. Only positive values boost; the default1outranks formatters that do not set a priority. To defer for a given language, usecoc.preferences.formatterExtensioninstead (default:1)
Format on Save
To enable format on save, add this to your coc-config (:CocConfig):
{
"oxc.oxfmt.enable": true,
"coc.preferences.formatterExtension": "coc-oxc"
}coc.preferences.formatterExtension tells coc.nvim to use coc-oxc whenever it is available, which avoids conflicts with other extensions that also register an LSP formatter (e.g. coc-biome, coc-tsserver, coc-prettier). You can scope it per-language if you want a different formatter for some files:
{
"[json]": { "coc.preferences.formatterExtension": "coc-prettier" }
}oxfmt also registers itself with oxc.oxfmt.formatterPriority 1 by default, which outranks any extension that does not set a priority.
You can also format manually with :call CocAction('format')
Fix on Save
To apply oxlint's auto-fixes on save, add this to your coc-config (:CocConfig):
{
"oxc.oxlint.codeActionsOnSave": ["source.fixAll.oxc"]
}Commands
Oxlint Commands
oxlint.restartServer: Restart oxlint Serveroxlint.showOutputChannel: Show oxlint Output Channel
Oxfmt Commands
oxfmt.restartServer: Restart oxfmt Serveroxfmt.showOutputChannel: Show oxfmt Output Channel
License
MIT
This extension is built with create-coc-extension
