diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4c6ddd7..36b3551 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - package_name: ["nvim"] + package_name: ["nvim-min"] steps: - uses: actions/checkout@v3 - uses: DeterminateSystems/nix-installer-action@main diff --git a/README.md b/README.md index 223d62a..29a9c20 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## Usage Try it out! ```bash -nix run "github:iofq/nvim.nix" #nvim +nix run "github:iofq/nvim.nix" #nvim-min ``` Or use in a flake: diff --git a/flake.lock b/flake.lock index 4bf9aa7..3513204 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1762016984, - "narHash": "sha256-ADZ2b2Oz+MOSjdKKCcQX9KmlhtmvVlZFEJr0HigWsOY=", + "lastModified": 1761202123, + "narHash": "sha256-ULrZW4b8SKRvPpJPt8/jkqqc/blQiIWUriNWVXA33so=", "owner": "iofq", "repo": "dart.nvim", - "rev": "8822aabbfef95eda2b22a8f7ee08912c762ef941", + "rev": "71421e7ef5aee8267e24dc562fdd07a83bda192e", "type": "github" }, "original": { @@ -35,6 +35,38 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -61,11 +93,11 @@ ] }, "locked": { - "lastModified": 1762440070, - "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", + "lastModified": 1760948891, + "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", + "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", "type": "github" }, "original": { @@ -156,6 +188,29 @@ "type": "github" } }, + "git-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_3", + "gitignore": "gitignore_2", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1760663237, + "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -178,6 +233,53 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": [ + "neovim-nightly-overlay", + "flake-parts" + ], + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761230615, + "narHash": "sha256-pLE7U5gOtlA/2wbKCsVRYf5DqMQ5TWBCrCfZGytDDeo=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "7db2b867219a26781437d840ce457b75b7645154", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, "luvit-meta": { "flake": false, "locked": { @@ -196,18 +298,22 @@ }, "neovim-nightly-overlay": { "inputs": { + "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_2", + "git-hooks": "git-hooks_2", + "hercules-ci-effects": "hercules-ci-effects", "neovim-src": "neovim-src", "nixpkgs": [ "nixpkgs" - ] + ], + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1762646693, - "narHash": "sha256-h3c8Mcs4wI0U9JKzDyj1X+JUMc5KsfIXu2eyRE5ktAs=", + "lastModified": 1761437965, + "narHash": "sha256-X4SNeOXdFkE7Gt+waO5ck3TqfqWskqJHxt1WIu3nnUQ=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "2c33f92a62588cd30dbba26fa39384e29229bc6f", + "rev": "21595d9f79b5da0eef177dcfdd84ca981ac253a9", "type": "github" }, "original": { @@ -219,11 +325,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1762624437, - "narHash": "sha256-npSk+FSPkiaGwKTluegZ3tXqDpe3EFiRMQJ2Cc6rq4Y=", + "lastModified": 1761434579, + "narHash": "sha256-S+YmbP/bPETjKk6B/tlh+jwIH7K7iPoXyHLLwTqVOhk=", "owner": "neovim", "repo": "neovim", - "rev": "ded578625219d5056fdacdba4b04f0d5bf4fbe9d", + "rev": "a121ede1bfee2704c26159124f8f61f96c6aa136", "type": "github" }, "original": { @@ -277,11 +383,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1762704076, - "narHash": "sha256-kGEigbGxzpXpyeU9BtILXsMwTls5XcLyXEwYVfNjO4g=", + "lastModified": 1761497392, + "narHash": "sha256-aK+BZgnXKktKD1DFAJoB+8KD9L8sf/dmiOa2bShlhlk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cdfa60cc7448c7943dd3feb0ab18e342d569c7a4", + "rev": "887b4accbb94043a752c086c2aae6c6b365f7b3f", "type": "github" }, "original": { @@ -293,11 +399,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1762363567, - "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", + "lastModified": 1761114652, + "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", + "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c", "type": "github" }, "original": { @@ -310,11 +416,11 @@ "nvim-treesitter": { "flake": false, "locked": { - "lastModified": 1762599340, - "narHash": "sha256-hXs9TdytYtBeXW6nx9QZiQcqsuj1uLuZMf8kclaScQ8=", + "lastModified": 1761385693, + "narHash": "sha256-/SGikTPEMxI7rcfGvuJlNZs73/wZiQx14QX9xlfsTv0=", "owner": "nvim-treesitter", "repo": "nvim-treesitter", - "rev": "d97d226cfd4c00af000b3b8529261352677fc6a8", + "rev": "98fe644cb3b5ba390d1bc3f89299f93c70020803", "type": "github" }, "original": { @@ -331,11 +437,11 @@ "nvim-treesitter-textobjects": "nvim-treesitter-textobjects" }, "locked": { - "lastModified": 1762704339, - "narHash": "sha256-hRGD+CE04Z1qAJAaiJs6o+blS0WUEqfVS/5cqA0NcDI=", + "lastModified": 1761496664, + "narHash": "sha256-xTQUiJu0jJNSEHEv4La1HbaFokup0eWr67Kqf/wDENA=", "owner": "iofq", "repo": "nvim-treesitter-main", - "rev": "69e9583fe72fa2dbffcb740563a9cc48396e3f75", + "rev": "834d66648bb7a96a2ad11d53a33f2d9b13766447", "type": "github" }, "original": { @@ -347,11 +453,11 @@ "nvim-treesitter-textobjects": { "flake": false, "locked": { - "lastModified": 1762622273, - "narHash": "sha256-gzeT2gtmFaXhRSC13mijH6tlk/eWRZaUrGiEpKoAorA=", + "lastModified": 1756368113, + "narHash": "sha256-+KmOpRi4JAqm6UqYdtk80jwFrJhLCs0lZM/Liofq0R4=", "owner": "nvim-treesitter", "repo": "nvim-treesitter-textobjects", - "rev": "7024f8687b060dd9a425bde1fa8621c896a38138", + "rev": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931", "type": "github" }, "original": { @@ -400,6 +506,27 @@ "repo": "default", "type": "github" } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761311587, + "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index e5890fa..a9cc1ad 100644 --- a/flake.nix +++ b/flake.nix @@ -73,6 +73,7 @@ packages = rec { default = nvim; nvim = pkgs.nvim-pkg; + nvim-min = pkgs.nvim-min-pkg; }; devShells = { default = shell; diff --git a/nix/neovim-overlay.nix b/nix/neovim-overlay.nix index efc75a1..430c345 100644 --- a/nix/neovim-overlay.nix +++ b/nix/neovim-overlay.nix @@ -17,18 +17,41 @@ let nvim-treesitter nvim-treesitter-textobjects quicker-nvim + refactoring-nvim render-markdown-nvim snacks-nvim ]; - packages = with prev; [ + basePackages = with prev; [ ripgrep fd ]; + # Extra packages that should be included on nixos but don't need to be bundled + extraPackages = with prev; [ + # linters + yamllint + jq + hadolint + nixfmt + shellcheck + golangci-lint + + # LSPs + gopls + lua-language-server + nixd + basedpyright + ]; in { nvim-pkg = mkNeovim { - inherit plugins packages; + inherit plugins; + packages = basePackages ++ extraPackages; + }; + + nvim-min-pkg = mkNeovim { + inherit plugins; + packages = basePackages; }; nvim-luarc-json = final.mk-luarc-json { diff --git a/nvim/after/plugin/mini.lua b/nvim/after/plugin/mini.lua index 76b5fe9..c60ec00 100644 --- a/nvim/after/plugin/mini.lua +++ b/nvim/after/plugin/mini.lua @@ -18,7 +18,9 @@ vim.schedule(function() require('mini.git').setup() map('n', 'gb', 'Git blame -- %') - map('n', 'go', MiniGit.show_at_cursor) + map('n', 'go', function() + return MiniGit.show_at_cursor() + end) local jump = require('mini.jump2d') jump.setup { diff --git a/nvim/after/plugin/plugins.lua b/nvim/after/plugin/plugins.lua index 21c9339..4b75ce3 100644 --- a/nvim/after/plugin/plugins.lua +++ b/nvim/after/plugin/plugins.lua @@ -3,7 +3,12 @@ local map = vim.keymap.set require('mini.basics').setup { mappings = { windows = true } } require('mini.icons').setup() -require('dart').setup {} +require('dart').setup { + tabline = { + icons = false, + label_marked_fg = 'cyan', + }, +} require('snacks').setup { bigfile = { enabled = true }, @@ -60,6 +65,12 @@ vim.schedule(function() require('nvim-treesitter-textobjects').setup() require('nvim-autopairs').setup() + require('refactoring').setup() + map('n', 'rr', require('refactoring').select_refactor) + map('n', 'rv', function() + require('refactoring').refactor('Inline Variable') + end) + require('quicker').setup() map('n', 'qf', function() require('quicker').toggle { max_height = 20 } @@ -71,6 +82,7 @@ vim.schedule(function() json = { 'jq' }, lua = { 'stylua' }, python = { 'ruff' }, + nix = { 'nixfmt' }, fish = { 'fish_indent' }, ['*'] = { 'trim_whitespace' }, },