diff options
author | tom barrett <tom@tombarrett.xyz> | 2025-02-16 16:12:18 +0100 |
---|---|---|
committer | tom barrett <tom@tombarrett.xyz> | 2025-02-16 16:12:18 +0100 |
commit | b96cf3a52f310aa4df59a304c80070bda7f83c14 (patch) | |
tree | cc97eaea8efd83af5560fd951eab63b282f5d17e /flake.nix | |
parent | a1140b2d47df62214537abaea86974c2a14c39b2 (diff) |
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 158 |
1 files changed, 88 insertions, 70 deletions
@@ -4,81 +4,100 @@ nixvim.url = "github:nix-community/nixvim"; }; - outputs = { - nixpkgs, - nixvim, - self, - }: let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - npkgs = nixvim.legacyPackages.x86_64-linux; - in { - packages.x86_64-linux.default = npkgs.makeNixvimWithModule { - module = { - config = { - opts = {mouse = "";}; - colorschemes.kanagawa = { - enable = true; - settings.transparent = true; - }; - extraPackages = [ - pkgs.go - pkgs.rustfmt - ]; - plugins = { - ledger.enable = true; - lsp-format.enable = true; - vim-css-color.enable = true; - none-ls = { + outputs = + { + nixpkgs, + nixvim, + self, + }: + let + pkgs = nixpkgs.legacyPackages.x86_64-linux; + npkgs = nixvim.legacyPackages.x86_64-linux; + in + { + packages.x86_64-linux.default = npkgs.makeNixvimWithModule { + module = { + config = { + opts = { + mouse = ""; + expandtab = true; + tabstop = 4; + }; + colorschemes.kanagawa = { enable = true; - sources = { - formatting = { - shfmt = { + settings.transparent = true; + }; + extraPackages = [ + pkgs.nixfmt-rfc-style + pkgs.shfmt + ]; + filetype.pattern.".*".__raw = '' + function(path, bufnr) + local content = vim.api.nvim_buf_get_lines(bufnr, 1, 2, false)[1] or "" + if vim.regex("bash"):match_str(content) then + return 'bash' + elseif vim.regex("python"):match_str(content) then + return 'python' + end + end + ''; + plugins = { + ledger.enable = true; + lsp-format.enable = true; + vim-css-color.enable = true; + lsp = { + enable = true; + servers = { + cmake.enable = true; + gopls.enable = true; + ruff.enable = true; + nixd = { enable = true; - settings.extra_args = ["-i" "4" "-s"]; + extraOptions.formatting.command = "nixfmt"; }; - alejandra.enable = true; + bashls.enable = true; }; }; - }; - lsp = { - enable = true; - servers = { - cmake.enable = true; - gopls.enable = true; - ruff.enable = true; - nixd.enable = true; - bashls.enable = true; - rust-analyzer = { - enable = true; - installCargo = true; - installRustc = true; + luasnip.enable = true; + cmp = { + enable = true; + cmdline = { + ":" = { + mapping.__raw = "cmp.mapping.preset.cmdline()"; + sources = [ + { name = "path"; } + { + name = "cmdline"; + option.ignore_cmds = [ + "Man" + "!" + ]; + } + ]; + }; }; - }; - }; - luasnip.enable = true; - cmp = { - enable = true; - settings = { - autoEnableSources = true; - sources = [ - {name = "nvim_lsp";} - {name = "path";} - {name = "buffer";} - {name = "luasnip";} - ]; - mapping = { - "<CR>" = "cmp.mapping.confirm({ select = true })"; - "<Tab>" = '' - cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item({ - behavior = cmp.SelectBehavior.Select - }) - else - fallback() - end - end, {"i","s","c",}) - ''; + settings = { + autoEnableSources = true; + sources = [ + { name = "nvim_lsp"; } + { name = "path"; } + { name = "buffer"; } + { name = "luasnip"; } + ]; + mapping = { + "<CR>" = "cmp.mapping.confirm({ select = true })"; + "<Tab>" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item({ + behavior = cmp.SelectBehavior.Select + }) + else + fallback() + end + end, {"i","s","c",}) + ''; + }; }; }; }; @@ -86,5 +105,4 @@ }; }; }; - }; } |