diff --git a/homes/modules/programs/neovim/lua/lsp/lsp.lua b/homes/modules/programs/neovim/lua/lsp/lsp.lua index 230033a..d115a00 100644 --- a/homes/modules/programs/neovim/lua/lsp/lsp.lua +++ b/homes/modules/programs/neovim/lua/lsp/lsp.lua @@ -1,110 +1,92 @@ local servers = {} -if nixCats("lang.lua.lsp") then - servers.lua_ls = { - settings = { - Lua = { - formatters = { - ignoreComments = false, - }, - signatureHelp = { enable = true }, - diagnostics = { - globals = { "nixCats", "vim" }, - -- disable = { 'missing-fields' }, - }, - workspace = { - -- make the server aware of the neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - checkThirdParty = false, - }, - }, - telemetry = { enabled = false }, - }, - } -end - -if nixCats("lang.nix.lsp") then - servers.nil_ls = { - settings = {}, - } -end - -if nixCats("lang.rust.lsp") then - local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD") - servers.rust_analyzer = { - cmd = { rust_analyzer_cmd }, - settings = { - server = { - -- For debugging rust-analyzer, to see log location do :LspInfo in neovim - -- extraEnv = { {["RA_LOG"]="project_model=debug"} }, - }, - cargo = { - allFeatures = false, - allTargets = false, - buildScripts = { enable = true }, - target = "x86_64-unknown-linux-gnu", +servers.lua_ls = { + settings = { + Lua = { + formatters = { + ignoreComments = false, }, + signatureHelp = { enable = true }, diagnostics = { - enable = true, + globals = { "nixCats", "vim" }, + -- disable = { 'missing-fields' }, + }, + workspace = { + -- make the server aware of the neovim runtime files + library = vim.api.nvim_get_runtime_file("", true), + checkThirdParty = false, }, }, - } -end + telemetry = { enabled = false }, + }, +} -if nixCats("lang.zig.lsp") then - servers.zls = { - settings = {}, - } -end +servers.nil_ls = { + settings = {}, +} -if nixCats("lang.elixir.lsp") then - local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD") - servers.elixirls = { - cmd = { elixir_ls_cmd }, - settings = {}, - } -end +local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD") +servers.rust_analyzer = { + cmd = { rust_analyzer_cmd }, + settings = { + server = { + -- For debugging rust-analyzer, to see log location do :LspInfo in neovim + -- extraEnv = { {["RA_LOG"]="project_model=debug"} }, + }, + cargo = { + allFeatures = false, + allTargets = false, + buildScripts = { enable = true }, + target = "x86_64-unknown-linux-gnu", + }, + diagnostics = { + enable = true, + }, + }, +} -if nixCats("lang.gleam.lsp") then - servers.gleam = { - settings = {}, - } -end +servers.zls = { + settings = {}, +} -if nixCats("lang.haskell.lsp") then - servers.hls = { - settings = {}, - } -end +local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD") +servers.elixirls = { + cmd = { elixir_ls_cmd }, + settings = {}, +} -if nixCats("lang.java.lsp") then - local java_home = os.getenv("JAVA_HOME") - servers.jdtls = { - settings = { - java = { - contentProvider = { preferred = "fernflower" }, - configuration = { - runtimes = { - { - name = "OpenJDK 17", - path = os.getenv("OPENJDK_17"), - }, - { - name = "OpenJDK 21", - path = os.getenv("OPENJDK_21"), - }, +servers.gleam = { + settings = {}, +} + +servers.hls = { + settings = {}, +} + +local java_home = os.getenv("JAVA_HOME") +servers.jdtls = { + settings = { + java = { + contentProvider = { preferred = "fernflower" }, + configuration = { + runtimes = { + { + name = "OpenJDK 17", + path = os.getenv("OPENJDK_17"), + }, + { + name = "OpenJDK 21", + path = os.getenv("OPENJDK_21"), }, }, }, }, - } -end + }, +} -if nixCats("lang.protobuf.lsp") then - servers.protols = { - settings = {}, - } -end +servers.protols = { + settings = {}, +} -- Taken from nixCats example: -- If you were to comment out this autocommand diff --git a/homes/modules/programs/neovim/lua/plugins/format.lua b/homes/modules/programs/neovim/lua/plugins/format.lua index c3f85e2..5ca4e27 100644 --- a/homes/modules/programs/neovim/lua/plugins/format.lua +++ b/homes/modules/programs/neovim/lua/plugins/format.lua @@ -56,12 +56,11 @@ return { conform.setup({ formatters_by_ft = { - lua = nixCats("lang.lua.format") and { "stylua" } or nil, - nix = nixCats("lang.nix.format") and { "alejandra" } or nil, - rust = nixCats("lang.rust.format") and { "rustfmt", lsp_format = "fallback" } or nil, - haskell = nixCats("lang.haskell.format") and { "ormolu" } or nil, - proto = nixCats("lang.protobuf.format") and { "buf" } or nil, - toml = nixCats("lang.toml.format") and { "taplo" } or nil, + lua = nixCats("lang.lua") and { "stylua" } or nil, + nix = nixCats("lang.nix") and { "alejandra" } or nil, + rust = nixCats("lang.rust") and { "rustfmt", lsp_format = "fallback" } or nil, + haskell = nixCats("lang.haskell") and { "ormolu" } or nil, + proto = nixCats("lang.protobuf") and { "buf" } or nil, }, format_on_save = { timeout_ms = 500, diff --git a/homes/modules/programs/neovim/lua/plugins/git.lua b/homes/modules/programs/neovim/lua/plugins/git.lua index c2250cc..61d413d 100644 --- a/homes/modules/programs/neovim/lua/plugins/git.lua +++ b/homes/modules/programs/neovim/lua/plugins/git.lua @@ -1,12 +1,12 @@ return { { "vim-fugitive", - enabled = nixCats("git") or false, + for_cat = "git", cmd = { "Git", "Gvdiffsplit" }, }, { "resolve-nvim", - enabled = nixCats("git") or false, + for_cat = "git", event = { "BufReadPre", "BufNewFile" }, after = function(plugin) require("resolve").setup({ diff --git a/homes/modules/programs/neovim/nixcats.nix b/homes/modules/programs/neovim/nixcats.nix index 564b652..91d3763 100644 --- a/homes/modules/programs/neovim/nixcats.nix +++ b/homes/modules/programs/neovim/nixcats.nix @@ -55,51 +55,43 @@ in { tree-sitter ]; lang = { - lua = { - lsp = [lua-language-server]; - format = [stylua]; - }; - nix = { - lsp = [nil]; - format = [alejandra]; - docs = [nix-doc]; # TODO: i forgot how to integrate this into neovim - }; - rust = { - lsp = [cargo mpkgs.rust-analyzer]; + lua = [ + lua-language-server + stylua + ]; + nix = [ + nil + nix-doc # TODO: i forgot what this is for + alejandra + ]; + rust = [ + cargo + mpkgs.rust-analyzer # nightly rustfmt has nicer features :3 - format = [inputs.fenix.packages.${system}.complete.rustfmt]; - }; - zig = { - lsp = [zls]; - # TODO: needs formatter field - }; - elixir = { - lsp = [elixir-ls]; - # TODO: needs formatter field - }; - gleam = { - lsp = [gleam]; - # TODO: needs formatter field - }; - haskell = { - lsp = [haskell-language-server]; - format = [ormolu]; - }; - java = { - lsp = [ - jdt-language-server - javaPackages.compiler.openjdk17 - javaPackages.compiler.openjdk21 - ]; - # TODO: needs formatter field - }; - protobuf = { - lsp = [protols]; - format = [buf]; - }; - toml = { - format = [taplo]; - }; + inputs.fenix.packages.${system}.complete.rustfmt + ]; + zig = [ + zls + ]; + elixir = [ + elixir-ls + ]; + gleam = [ + gleam + ]; + haskell = [ + haskell-language-server + ormolu + ]; + java = [ + jdt-language-server + javaPackages.compiler.openjdk17 + javaPackages.compiler.openjdk21 + ]; + protobuf = [ + protols + buf + ]; }; }; @@ -247,47 +239,15 @@ in { git = false; # not really setup yet lang = { - lua = { - lsp = true; - format = true; - }; - nix = { - lsp = true; - format = true; - docs = true; - }; - rust = { - lsp = true; - format = true; - }; - zig = { - lsp = true; - format = true; - }; - elixir = { - lsp = true; - format = true; - }; - gleam = { - lsp = true; - format = true; - }; - haskell = { - lsp = true; - format = true; - }; - java = { - lsp = true; - format = true; - }; - protobuf = { - lsp = true; - format = true; - }; - toml = { - lsp = true; - format = true; - }; + lua = true; + nix = true; + rust = true; + zig = true; + elixir = true; + gleam = true; + haskell = true; + java = true; + protobuf = true; }; }; }; diff --git a/hosts/nixarawrui/default.nix b/hosts/nixarawrui/default.nix index 8d5ae58..d0bc4bc 100644 --- a/hosts/nixarawrui/default.nix +++ b/hosts/nixarawrui/default.nix @@ -19,9 +19,9 @@ efi.canTouchEfiVariables = true; }; - # kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4; + kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4; # TODO: idk make this a toggle or smth idfk - kernelPackages = upkgs.linuxPackages_zen; + # kernelPackages = upkgs.linuxPackages_latest; kernelModules = ["v4l2loopback"]; extraModulePackages = with kernelPackages; [v4l2loopback];