Files
nixos-config/home/terminal/software/opencode/_languages.nix
T
2026-03-31 16:53:11 +02:00

76 lines
1.8 KiB
Nix

{pkgs}: let
formatterBins = {
alejandra = "${pkgs.alejandra}/bin/alejandra";
biome = "${pkgs.biome}/bin/biome";
oxfmt = "${pkgs.oxfmt}/bin/oxfmt";
shfmt = "${pkgs.shfmt}/bin/shfmt";
};
lspBins = {
astro-ls = "${pkgs.astro-language-server}/bin/astro-ls";
biome = "${pkgs.biome}/bin/biome";
marksman = "${pkgs.marksman}/bin/marksman";
nil = "${pkgs.nil}/bin/nil";
tailwindcss = "${pkgs.tailwindcss-language-server}/bin/tailwindcss-language-server";
volar = "${pkgs.vue-language-server}/bin/vue-language-server";
};
in {
packages = with pkgs; [
astro-language-server
biome
marksman
nil
tailwindcss-language-server
vue-language-server
alejandra
oxfmt
shfmt
];
formatter = {
shfmt = {
command = [formatterBins.shfmt "-i" "2"];
extensions = ["sh" "bash"];
};
oxfmt = {
command = [formatterBins.oxfmt];
extensions = ["yaml" "js" "json" "jsx" "md" "ts" "tsx" "css" "html" "vue"];
};
biome = {
command = [formatterBins.biome "format" "--stdin-file-path"];
extensions = ["astro"];
};
alejandra = {
command = [formatterBins.alejandra "-q"];
extensions = ["nix"];
};
};
lsp = {
astro-ls = {
command = [lspBins.astro-ls "--stdio"];
extensions = ["astro"];
};
biome = {
command = [lspBins.biome "lsp-proxy"];
extensions = ["js" "ts" "json" "jsx" "tsx"];
};
nil = {
command = [lspBins.nil];
extensions = ["nix"];
};
marksman = {
command = [lspBins.marksman];
extensions = ["md"];
};
tailwindcss = {
command = [lspBins.tailwindcss "--stdio"];
extensions = ["css" "html"];
};
volar = {
command = [lspBins.volar "--stdio"];
extensions = ["vue"];
};
};
}