diff --git a/config/default.nix b/config/default.nix index e7525d7..3764ebc 100644 --- a/config/default.nix +++ b/config/default.nix @@ -12,14 +12,14 @@ ./modules/plugins/conform-nvim.nix ./modules/plugins/fzf-lua.nix ./modules/plugins/gitsigns.nix - # ./modules/plugins/lazygit.nix ./modules/plugins/mini.nix - ./modules/plugins/neotree.nix + # ./modules/plugins/neotree.nix ./modules/plugins/oil.nix ./modules/plugins/snacks.nix ./modules/plugins/tmux-navigator.nix ./modules/plugins/treesitter.nix ./modules/plugins/undotree.nix + ./modules/plugins/venv-selector.nix ./modules/plugins/which-key.nix ]; diff --git a/config/modules/plugins/blink-cmp.nix b/config/modules/plugins/blink-cmp.nix index c9976e5..7afe0ad 100644 --- a/config/modules/plugins/blink-cmp.nix +++ b/config/modules/plugins/blink-cmp.nix @@ -2,10 +2,6 @@ plugins.blink-cmp = { enable = true; settings = { - appearance = { - nerd_font_variant = "normal"; - use_nvim_cmp_as_default = true; - }; completion = { accept = { auto_brackets = { @@ -15,39 +11,17 @@ }; }; }; - trigger = { - show_on_keyword = true; - show_on_trigger_character = true; - }; - documentation = { - auto_show = true; - auto_show_delay_ms = 500; - }; - menu = { - auto_show = true; - }; - }; - keymap = { - preset = "default"; }; signature = { enabled = true; }; sources = { default = [ + "omni" "lsp" "buffer" - "snippets" "path" ]; - providers = { - buffer = { - score_offset = -7; - }; - lsp = { - fallbacks = [ ]; - }; - }; }; }; }; diff --git a/config/modules/plugins/conform-nvim.nix b/config/modules/plugins/conform-nvim.nix index c1299ee..873f390 100644 --- a/config/modules/plugins/conform-nvim.nix +++ b/config/modules/plugins/conform-nvim.nix @@ -46,41 +46,8 @@ plugins.conform-nvim = { enable = true; + autoInstall.enable = true; settings = { - format_on_save = '' - function(bufnr) - if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then - return - end - - if slow_format_filetypes[vim.bo[bufnr].filetype] then - return - end - - local function on_format(err) - if err and err:match("timeout$") then - slow_format_filetypes[vim.bo[bufnr].filetype] = true - end - end - - return { timeout_ms = 200, lsp_fallback = true }, on_format - end - ''; - - format_after_save = '' - function(bufnr) - if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then - return - end - - if not slow_format_filetypes[vim.bo[bufnr].filetype] then - return - end - - return { lsp_fallback = true } - end - ''; - notify_on_error = true; formatters_by_ft = { html = { __unkeyed-1 = "prettierd"; @@ -112,7 +79,7 @@ __unkeyed-2 = "prettier"; stop_after_first = true; }; - python = [ "ruff" ]; + python = [ "ruff_format" ]; lua = [ "stylua" ]; nix = [ "nixfmt-rfc-style" ]; markdown = { @@ -132,43 +99,14 @@ "shfmt" ]; json = [ "jq" ]; + go = [ + "goimports" + "gofmt" + ]; "_" = [ "trim_whitespace" ]; }; formatters = { - ruff = { - command = "${lib.getExe pkgs.ruff}"; - }; - nixfmt-rfc-style = { - command = "${lib.getExe pkgs.nixfmt-rfc-style}"; - }; - alejandra = { - command = "${lib.getExe pkgs.alejandra}"; - }; - jq = { - command = "${lib.getExe pkgs.jq}"; - }; - prettier = { - command = "${lib.getExe pkgs.nodePackages.prettier}"; - }; - prettierd = { - command = "${lib.getExe pkgs.prettierd}"; - }; - stylua = { - command = "${lib.getExe pkgs.stylua}"; - }; - shellcheck = { - command = "${lib.getExe pkgs.shellcheck}"; - }; - shfmt = { - command = "${lib.getExe pkgs.shfmt}"; - }; - shellharden = { - command = "${lib.getExe pkgs.shellharden}"; - }; - yamlfmt = { - command = "${lib.getExe pkgs.yamlfmt}"; - }; terraform_fmt = { command = "${lib.getExe ( pkgs.terraform.overrideAttrs (oldAttrs: { diff --git a/config/modules/plugins/lsp/default.nix b/config/modules/plugins/lsp/default.nix index 02b0971..468871e 100644 --- a/config/modules/plugins/lsp/default.nix +++ b/config/modules/plugins/lsp/default.nix @@ -17,59 +17,8 @@ ./lua_ls.nix ./marksman.nix ./nixd.nix - ./ruff.nix + ./pyright.nix ./tflint.nix ./yamlls.nix ]; - - # lsp.keymaps = [ - # { - # key = "gd"; - # lspBufAction = "definition"; - # } - # { - # key = "gD"; - # lspBufAction = "references"; - # } - # { - # key = "gt"; - # lspBufAction = "type_definition"; - # } - # { - # key = "gi"; - # lspBufAction = "implementation"; - # } - # { - # key = "K"; - # lspBufAction = "hover"; - # } - # { - # action = lib.nixvim.mkRaw "function() vim.diagnostic.jump({ count=-1, float=true }) end"; - # key = "k"; - # } - # { - # action = lib.nixvim.mkRaw "function() vim.diagnostic.jump({ count=1, float=true }) end"; - # key = "j"; - # } - # { - # action = "LspStop"; - # key = "lx"; - # } - # { - # action = "LspStart"; - # key = "ls"; - # } - # { - # action = "LspRestart"; - # key = "lr"; - # } - # # { - # # action = lib.nixvim.mkRaw "require('telescope.builtin').lsp_definitions"; - # # key = "gd"; - # # } - # { - # action = "Lspsaga hover_doc"; - # key = "K"; - # } - # ]; } diff --git a/config/modules/plugins/lsp/pyright.nix b/config/modules/plugins/lsp/pyright.nix new file mode 100644 index 0000000..74e3870 --- /dev/null +++ b/config/modules/plugins/lsp/pyright.nix @@ -0,0 +1,3 @@ +{ + lsp.servers.pyright.enable = true; +} diff --git a/config/modules/plugins/lsp/ruff.nix b/config/modules/plugins/lsp/ruff.nix deleted file mode 100644 index 3aed3c5..0000000 --- a/config/modules/plugins/lsp/ruff.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - lsp.servers.ruff.enable = true; -} diff --git a/config/modules/plugins/treesitter.nix b/config/modules/plugins/treesitter.nix index da1b05c..c66de14 100644 --- a/config/modules/plugins/treesitter.nix +++ b/config/modules/plugins/treesitter.nix @@ -23,9 +23,11 @@ treesitter-textobjects = { enable = true; - select = { - enable = true; - lookahead = true; + settings = { + select = { + enable = true; + lookahead = true; + }; }; }; }; diff --git a/config/modules/plugins/venv-selector.nix b/config/modules/plugins/venv-selector.nix new file mode 100644 index 0000000..aef4ffc --- /dev/null +++ b/config/modules/plugins/venv-selector.nix @@ -0,0 +1,26 @@ +{ lib, ... }: +{ + plugins.venv-selector = { + enable = true; + + settings = { + dap_enabled = true; + name = [ + "venv" + ".venv" + ]; + pyenv_path = lib.nixvim.mkRaw "vim.fn.expand('$HOME/.pyenv/versions')"; + }; + }; + + keymaps = [ + { + mode = "n"; + key = "cv"; + action = "VenvSelect"; + options = { + desc = "Select Python virtual env"; + }; + } + ]; +} diff --git a/flake.lock b/flake.lock index c40df5f..ed9c296 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1760948891, - "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "type": "github" }, "original": { @@ -26,11 +26,11 @@ ] }, "locked": { - "lastModified": 1759362264, - "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "type": "github" }, "original": { @@ -87,27 +87,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1761999846, - "narHash": "sha256-IYlYnp4O4dzEpL77BD/lj5NnJy2J8qbHkNSFiPBCbqo=", + "lastModified": 1764522689, + "narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3de8f8d73e35724bf9abef41f1bdbedda1e14a31", + "rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-lib": { "locked": { - "lastModified": 1754788789, - "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "lastModified": 1761765539, + "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", + "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", "type": "github" }, "original": { @@ -116,26 +116,40 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1764338033, + "narHash": "sha256-1LNGcU+aTbATD3BPCf7U1KsP1CjCH+ZWqM6JH0sZ6Q0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ba9b83e5fb4b552a423d24dabe5ccb47a9c89901", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_2", "nuschtosSearch": "nuschtosSearch", "systems": "systems_2" }, "locked": { - "lastModified": 1760795571, - "narHash": "sha256-gi+tWWAknKuTNso3yMeKsT9nj0jx+tuYF7g7nmLUWT8=", + "lastModified": 1764614282, + "narHash": "sha256-oHT1/E5yf9lvOVHtO5joevADcQLGp5mVab5shVVqxso=", "owner": "nix-community", "repo": "nixvim", - "rev": "6c945865ba5de87fa2d0dd8a0e66ca572ddf9043", + "rev": "6bdabc1359d7658e1d9ce065db37df92e904b581", "type": "github" }, "original": { "owner": "nix-community", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixvim", "type": "github" } @@ -150,11 +164,11 @@ ] }, "locked": { - "lastModified": 1760652422, - "narHash": "sha256-C88Pgz38QIl9JxQceexqL2G7sw9vodHWx1Uaq+NRJrw=", + "lastModified": 1761730856, + "narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=", "owner": "NuschtOS", "repo": "search", - "rev": "3ebeebe8b6a49dfb11f771f761e0310f7c48d726", + "rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ca3ec33..1075367 100644 --- a/flake.nix +++ b/flake.nix @@ -2,10 +2,9 @@ description = "Neovim configuration, declaratively written using nix"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; - nixvim.url = "github:nix-community/nixvim/nixos-25.05"; - nixvim.inputs.nixpkgs.follows = "nixpkgs"; + nixvim.url = "github:nix-community/nixvim/nixos-25.11"; flake-parts.url = "github:hercules-ci/flake-parts";