diff --git a/neovim/languages/css.nix b/neovim/languages/css.nix index 09996953..8682e35e 100644 --- a/neovim/languages/css.nix +++ b/neovim/languages/css.nix @@ -1,13 +1,56 @@ { lib, pkgs, ... }: +let + by_ft = + tool: extraFts: + builtins.listToAttrs ( + map (x: lib.nameValuePair x [ tool ]) [ + # keep-sorted start + "css" + "javascriptreact" + "javascript" + "svelte" + "typescript" + "typescriptreact" + "vue" + # keep-sorted end + ] + ++ extraFts + ); +in { config.vim = { + diagnostics.nvim-lint = { + linters_by_ft = by_ft "oxlint" [ "astro" ]; + linters.oxlint = { + stdin = false; + cmd = lib.meta.getExe pkgs.oxlint; + args = [ + "--format" + "github" + ]; + }; + }; + formatter.conform-nvim.setupOpts = { + formatters_by_ft = by_ft "oxfmt" [ + # keep-sorted start + "graphql" + "html" + "json" + "less" + "scss" + "yaml" + # keep-sorted end + ]; + formatters.oxfmt = { + command = lib.meta.getExe pkgs.oxfmt; + }; + }; + languages.css = { + enable = true; + }; lsp.servers.vscode-css-language-server.cmd = lib.mkForce [ (lib.meta.getExe pkgs.vscode-css-languageserver) "--stdio" ]; - languages.css = { - enable = true; - format.type = [ "biome" ]; - }; }; }