From ff773c39753d75983bdd6e38baaec39615fc3214 Mon Sep 17 00:00:00 2001 From: punkfairie Date: Wed, 27 Nov 2024 20:31:55 -0800 Subject: [PATCH] nuke --- flake.lock | 606 ------------------ flake.nix | 44 -- lib/autocmds/default.nix | 14 - lib/default.nix | 4 - lib/icons/default.nix | 10 - lib/keys/default.nix | 26 - modules/nixvim/autocommands/default.nix | 132 ---- modules/nixvim/default.nix | 9 - modules/nixvim/keymaps/default.nix | 250 -------- modules/nixvim/options/default.nix | 154 ----- .../plugins/ui/bufferline.nvim/default.nix | 103 --- .../plugins/ui/lualine.nvim/default.nix | 36 -- .../nixvim/plugins/ui/mini.icons/default.nix | 8 - .../nixvim/plugins/util/snacks/default.nix | 190 ------ packages/neovim/default.nix | 66 -- readme.md | 9 - 16 files changed, 1661 deletions(-) delete mode 100644 flake.lock delete mode 100644 flake.nix delete mode 100644 lib/autocmds/default.nix delete mode 100644 lib/default.nix delete mode 100644 lib/icons/default.nix delete mode 100644 lib/keys/default.nix delete mode 100644 modules/nixvim/autocommands/default.nix delete mode 100644 modules/nixvim/default.nix delete mode 100644 modules/nixvim/keymaps/default.nix delete mode 100644 modules/nixvim/options/default.nix delete mode 100644 modules/nixvim/plugins/ui/bufferline.nvim/default.nix delete mode 100644 modules/nixvim/plugins/ui/lualine.nvim/default.nix delete mode 100644 modules/nixvim/plugins/ui/mini.icons/default.nix delete mode 100644 modules/nixvim/plugins/util/snacks/default.nix delete mode 100644 packages/neovim/default.nix delete mode 100644 readme.md diff --git a/flake.lock b/flake.lock deleted file mode 100644 index c144958..0000000 --- a/flake.lock +++ /dev/null @@ -1,606 +0,0 @@ -{ - "nodes": { - "devshell": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1728330715, - "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", - "owner": "numtide", - "repo": "devshell", - "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "revCount": 57, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "neovim-nightly", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "neovim-nightly", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils-plus": { - "inputs": { - "flake-utils": "flake-utils_2" - }, - "locked": { - "lastModified": 1715533576, - "narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=", - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", - "type": "github" - }, - "original": { - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "git-hooks": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore", - "nixpkgs": [ - "neovim-nightly", - "nixpkgs" - ], - "nixpkgs-stable": [ - "neovim-nightly", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1732021966, - "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { - "inputs": { - "flake-compat": [ - "nixvim", - "flake-compat" - ], - "gitignore": "gitignore_2", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ], - "nixpkgs-stable": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1732021966, - "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "neovim-nightly", - "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" - } - }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "nixvim", - "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": "flake-parts_2", - "nixpkgs": [ - "neovim-nightly", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730903510, - "narHash": "sha256-mnynlrPeiW0nUQ8KGZHb3WyxAxA3Ye/BH8gMjdoKP6E=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "b89ac4d66d618b915b1f0a408e2775fe3821d141", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1732025103, - "narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "a46e702093a5c46e192243edbd977d5749e7f294", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "ixx": { - "inputs": { - "flake-utils": [ - "nixvim", - "nuschtosSearch", - "flake-utils" - ], - "nixpkgs": [ - "nixvim", - "nuschtosSearch", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729958008, - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", - "owner": "NuschtOS", - "repo": "ixx", - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "ref": "v0.0.6", - "repo": "ixx", - "type": "github" - } - }, - "neovim-nightly": { - "inputs": { - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "git-hooks": "git-hooks", - "hercules-ci-effects": "hercules-ci-effects", - "neovim-src": "neovim-src", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1732492905, - "narHash": "sha256-9/BfieHsR0BC5LaQr1WvqBBcfNAOMHHUpgV31NRZWf4=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "f021fdc7493b0243129a979fd338eaae50a931ef", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-src": { - "flake": false, - "locked": { - "lastModified": 1732489512, - "narHash": "sha256-ctSHOjNaWQM6g5L2OhJyEMTeMYEbIGk2vENqhT8FWbs=", - "owner": "neovim", - "repo": "neovim", - "rev": "ff00d583af8f1ce21a508d701d09c54d2621b16e", - "type": "github" - }, - "original": { - "owner": "neovim", - "repo": "neovim", - "type": "github" - } - }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1732016537, - "narHash": "sha256-XwXUK+meYnlhdQz2TVE4Wv+tsx1CkdGbDPt1tRzCNH4=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "61cee20168a3ebb71a9efd70a55adebaadfbe4d4", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixvim": { - "inputs": { - "devshell": "devshell", - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_3", - "git-hooks": "git-hooks_2", - "home-manager": "home-manager", - "nix-darwin": "nix-darwin", - "nixpkgs": [ - "unstable" - ], - "nuschtosSearch": "nuschtosSearch", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1732315025, - "narHash": "sha256-vPAMWd5/akE3U3B8uXzi05X/9fUd71sZaOnfBrX4AR0=", - "owner": "nix-community", - "repo": "nixvim", - "rev": "c1271fa10a54a3b35db6040dd6e779f349af52bf", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixvim", - "type": "github" - } - }, - "nuschtosSearch": { - "inputs": { - "flake-utils": "flake-utils", - "ixx": "ixx", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731936508, - "narHash": "sha256-z0BSSf78LkxIrrFXZYmCoRRAxAmxMUKpK7CyxQRvkZI=", - "owner": "NuschtOS", - "repo": "search", - "rev": "fe07070f811b717a4626d01fab714a87d422a9e1", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "repo": "search", - "type": "github" - } - }, - "root": { - "inputs": { - "neovim-nightly": "neovim-nightly", - "nixpkgs": "nixpkgs", - "nixvim": "nixvim", - "snowfall-lib": "snowfall-lib", - "unstable": "unstable" - } - }, - "snowfall-lib": { - "inputs": { - "flake-compat": "flake-compat_4", - "flake-utils-plus": "flake-utils-plus", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730136121, - "narHash": "sha256-tfVayj13Zw+zzOKrmJhnvBod7Hdb9ixBR6/4GUlyMA0=", - "owner": "snowfallorg", - "repo": "lib", - "rev": "dd348182c1a010993e68004eada86cf0341fe2c4", - "type": "github" - }, - "original": { - "owner": "snowfallorg", - "repo": "lib", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1732111664, - "narHash": "sha256-XWHuPWcP59QnHEewdZJXBX1TA2lAP78Vz4daG6tfIr4=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "62003fdad7a5ab7b6af3ea9bd7290e4c220277d0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "unstable": { - "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index ef369a6..0000000 --- a/flake.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - description = "MarleyVim"; - - outputs = inputs: - inputs.snowfall-lib.mkFlake { - inherit inputs; - - src = ./.; - - snowfall = { - namespace = "marleyvim"; - }; - - # channels-config.allowUnfree = true; - - alias.packages.default = "neovim"; - - overlays = [inputs.nixvim.overlays.default]; - - outputs-builder = channels: { - formatter = channels.nixpkgs.nixfmt-rfc-style; - }; - }; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - - snowfall-lib = { - url = "github:snowfallorg/lib"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - nixvim = { - url = "github:nix-community/nixvim"; - inputs.nixpkgs.follows = "unstable"; - }; - - neovim-nightly = { - url = "github:nix-community/neovim-nightly-overlay"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; -} diff --git a/lib/autocmds/default.nix b/lib/autocmds/default.nix deleted file mode 100644 index e7dd19d..0000000 --- a/lib/autocmds/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -_: { - autocmds = rec { - ## [String] | String -> String -> [String] | String -> String -> String -> AttrSet - mk = event: group': pattern: callback: desc: let - group = "marleyvim_${group'}"; - in { - inherit event group pattern callback desc; - }; - - ## [String] | String -> String -> String -> String -> AttrSet - mk' = event: group: callback: desc: - mk event group null callback desc; - }; -} diff --git a/lib/default.nix b/lib/default.nix deleted file mode 100644 index 6d1dce5..0000000 --- a/lib/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -_: { - ## (a -> {name :: String; value :: b}) -> [a] -> AttrSet - mapListToAttrs = fn: list: builtins.listToAttrs (builtins.map fn list); -} diff --git a/lib/icons/default.nix b/lib/icons/default.nix deleted file mode 100644 index 561c7ad..0000000 --- a/lib/icons/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -_: { - icons = { - diagnostics = { - error = " "; - warn = " "; - hint = " "; - info = " "; - }; - }; -} diff --git a/lib/keys/default.nix b/lib/keys/default.nix deleted file mode 100644 index 77aaa6a..0000000 --- a/lib/keys/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -_: { - keys = rec { - ## [String] | String -> String -> String -> String -> AttrSet - mk = mode: key: action: desc: { - inherit mode key action; - options = { - inherit desc; - }; - }; - - ## [String] | String -> String -> String -> AttrSet - mk' = mode: key: action: - mk mode key action null; - - ## [String] | String -> String -> String -> String -> AttrSet -> AttrSet - mkWithOpts = mode: key: action: desc: opts: - (mk mode key action desc) - // { - options = opts; - }; - - ## [String] | String -> String -> String -> AttrSet -> AttrSet - mkWithOpts' = mode: key: action: opts: - mkWithOpts mode key action null opts; - }; -} diff --git a/modules/nixvim/autocommands/default.nix b/modules/nixvim/autocommands/default.nix deleted file mode 100644 index 1987f95..0000000 --- a/modules/nixvim/autocommands/default.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ - lib, - helpers, - ... -}: let - inherit (lib.marleyvim) mapListToAttrs autocmds; - inherit (helpers) mkRaw; -in { - autoGroups = - mapListToAttrs (i: { - name = "marleyvim_${i}"; - value = {clear = true;}; - }) [ - "checktime" - "highlight_yank" - "resize_splits" - "last_loc" - "close_with_q" - "man_unlisted" - "wrap_spell" - "json_conceal" - "auto_create_dir" - ]; - - autoCmd = [ - (autocmds.mk' ["FocusGained" "TermClose" "TermLeave"] "checktime" (mkRaw '' - function() - if vim.o.buftype ~= "nofile" then - vim.cmd("checktime") - end - end - '') "Check if file needs to be reloaded when changed") - - (autocmds.mk' ["TextYankPost"] "highlight_yank" (mkRaw '' - function() - (vim.hl or vim.highlight).on_yank() - end - '') "Highlight on yank") - - (autocmds.mk' ["VimResized"] "resize_splits" (mkRaw '' - function() - local current_tab = vim.fn.tabpagenr() - vim.cmd("tabdo wincmd =") - vim.cmd("tabnext " .. current_tab) - end - '') "Resize splits on window resize") - - (autocmds.mk' ["BufReadPost"] "last_loc" (mkRaw '' - function(event) - local exclude = { "gitcommit" } - local buf = event.buf - if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].marleyvim_last_loc then - return - end - vim.b[buf].marleyvim_last_loc = true - local mark = vim.api.nvim_buf_get_mark(buf, '"') - local lcount = vim.api.nvim_buf_line_count(buf) - if mark[1] > 0 and mark[1] <= lcount then - pcall(vim.api.nvim_win_set_cursor, 0, mark) - end - end - '') "Go to last location when opening a buffer") - - (autocmds.mk ["FileType"] "close_with_q" [ - "PlenaryTestPopup" - "checkhealth" - "dbout" - "gitsigns-blame" - "grug-far" - "help" - "lspinfo" - "neotest-output" - "neotest-output-panel" - "neotest-summary" - "notify" - "qf" - "snacks_win" - "spectre_panel" - "startuptime" - "tsplayground" - ] (mkRaw '' - function(event) - vim.bo[event.buf].buflisted = false - vim.schedule(function() - vim.keymap.set("n", "q", function() - vim.cmd("close") - pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) - end, { - buffer = event.buf, - silent = true, - desc = "Quit buffer", - }) - end) - end - '') "Close some filetypes with ") - - (autocmds.mk ["FileType"] "man_unlisted" ["man"] (mkRaw '' - function(event) - vim.bo[event.buf].buflisted = false - end - '') "Easy-close man files") - - (autocmds.mk ["FileType"] "wrap_spell" [ - "text" - "plaintex" - "typst" - "gitcommit" - "markdown" - ] (mkRaw '' - function() - vim.opt_local.wrap = true - vim.opt_local.spell = true - end - '') "Wrap & check spelling in text files") - - (autocmds.mk ["FileType"] "json_conceal" ["json" "jsonc" "json5"] (mkRaw '' - function() - vim.opt_local.conceallevel = 0 - end - '') "Fix conceallevel for json files") - - (autocmds.mk' ["BufWritePre"] "auto_create_dir" (mkRaw '' - function(event) - if event.match:match("^%w%w+:[\\/][\\/]") then - return - end - local file = vim.uv.fs_realpath(event.match) or event.match - vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") - end - '') "Auto create missing parent dirs when saving") - ]; -} diff --git a/modules/nixvim/default.nix b/modules/nixvim/default.nix deleted file mode 100644 index 7fcb74c..0000000 --- a/modules/nixvim/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -_: { - viAlias = true; - vimAlias = true; - - luaLoader.enable = true; - - # Ignore ~/.config/nvim entirely. - impureRtp = false; -} diff --git a/modules/nixvim/keymaps/default.nix b/modules/nixvim/keymaps/default.nix deleted file mode 100644 index d01d9ec..0000000 --- a/modules/nixvim/keymaps/default.nix +++ /dev/null @@ -1,250 +0,0 @@ -{ - lib, - helpers, - ... -}: let - inherit - (lib) - map - mapAttrsToList - toUpper - substring - mapCartesianProduct - toLower - ; - - inherit (lib.marleyvim) keys; - inherit (helpers) mkRaw; -in { - globals = { - mapleader = " "; - maplocalleader = "\\"; - }; - - keymaps = - # - # Disable Arrow Key Movement - - - - - - - - - - - - - - - - - - - - - - - - - (map (d: keys.mk' ["i" "n"] d "") ["" "" "" ""]) - # - # Better Up/Down - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ ( - mapAttrsToList - (d: k: - keys.mkWithOpts ["n" "x"] k "v:count == 0 ? 'g${k}' : '${k}'" d - { - expr = true; - silent = true; - }) - { - Down = "j"; - Up = "k"; - } - ) - # - # Resize Windows - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ ( - mapAttrsToList - ( - k: d: let - s = - if (d == "Increase") - then "+" - else "-"; - in - keys.mk ["n"] "" "resize ${s}4" "${d} Window Height" - ) - { - Up = "Increase"; - Down = "Decrease"; - Left = "Decrease"; - Right = "Increase"; - } - ) - # - # Buffers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ ( - mapAttrsToList ( - k: d: let - # previous -> Prev - prettyDir = (toUpper (substring 0 1 d)) + (substring 1 3 d); - in - keys.mk ["n"] k "b${d}" "${prettyDir} Buffer" - ) - { - "" = "previous"; - "" = "next"; - "[b" = "previous"; - "]b" = "next"; - } - ) - ++ [(keys.mk ["n"] "bD" "bd" "Delete Buffer and Window")] - # - # Clear Search/Diff Update/Redraw - - - - - - - - - - - - - - - - - - - - - - ++ [ - (keys.mk ["i" "n"] "" "noh" "Escape and Clear hlsearch") - ( - keys.mk ["n"] "ur" - "nohlsearchdiffupdatenormal! " - "Redraw / Clear hlsearch / Diff Update" - ) - ] - # - # Better n & N - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ ( - mapCartesianProduct ( - { - m, - d, - }: let - k = - if (d == "Next") - then "n" - else "N"; - nn = - if (d == "Next") - then "Nn" - else "nN"; - zv = - if (m == "n") - then ".'zv'" - else ""; - in - keys.mkWithOpts [m] k "'${nn}'[v:searchforward]${zv}" - "${d} Search Result" {expr = true;} - ) - { - m = ["n" "x" "o"]; - d = ["Next" "Prev"]; - } - ) - # - # Undo Break-Points - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ (map (c: keys.mk' ["i"] c "${c}u") ["," "." ";"]) - # - # Search Docs (keywordprog) - - - - - - - - - - - - - - - - - - - - - - - - - # https://til.codeinthehole.com/posts/about-how-to-use-keywordprg-effectively/ - ++ [(keys.mk ["n"] "K" "norm! K" "Search for word")] - # - # Better Indenting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ (map (c: keys.mk' ["v"] c "${c}gv") ["<" ">"]) - # - # Commenting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ ( - mapAttrsToList ( - k: d: - keys.mk ["n"] "gc${k}" "${k}Vcxnormal gccfxa" - "Add Comment ${d}" - ) - { - o = "Below"; - O = "Above"; - } - ) - # - # New File - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ [(keys.mk ["n"] "fn" "enew" "New File")] - # - # Locations/Quickfixes - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ [ - (keys.mk ["n"] "xl" "lopen" "Location List") - (keys.mk ["n"] "xq" "copen" "Quickfix list") - ] - ++ ( - mapAttrsToList ( - k: d: let - cmd = substring 0 4 (toLower d); - in - keys.mk ["n"] "${k}q" "c${cmd}" "${d} Quickfix" - ) - { - "[" = "Previous"; - "]" = "Next"; - } - ) - # - # Diagnostics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ [ - (keys.mk ["n"] "cd" ( - mkRaw '' - function() vim.diagnostic.open_float() end - '' - ) "Line Diagnostics") - ] - ++ ( - mapCartesianProduct ( - { - dir, - key, - }: let - kmap = "${ - if (dir == "Next") - then "]" - else "[" - }${key}"; - - sevs = { - d = { - key = "nil"; - desc = "Diagnostic"; - }; - e = { - key = "vim.diagnostic.severity.ERROR"; - desc = "Error"; - }; - w = { - key = "vim.diagnostic.severity.WARN"; - desc = "Warning"; - }; - }; - - cmd = toLower dir; - sev = sevs."${key}".key; - in - keys.mk ["n"] kmap ( - mkRaw '' - function() vim.diagnostic.goto_${cmd}({ severity = ${sev} }) end - '' - ) "${dir} ${sevs."${key}".desc}" - ) - { - dir = ["Next" "Prev"]; - key = ["d" "e" "w"]; - } - ) - # - # Quit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ [(keys.mk ["n"] "qq" "qa" "Quit All")] - # - # Inspect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ [(keys.mk ["n"] "ui" (mkRaw "vim.show_pos") "Inspect Position")] - # - # Window Management - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ [ - (keys.mkWithOpts ["n"] "w" "" "Windows" {remap = true;}) - (keys.mkWithOpts ["n"] "-" "s" "Split Window Below" {remap = true;}) - (keys.mkWithOpts ["n"] "|" "v" "Split Window Right" {remap = true;}) - (keys.mkWithOpts ["n"] "wd" "c" "Delete Window" {remap = true;}) - ] - # - # Tab Management - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ ( - mapAttrsToList ( - k: a: let - desc = - if (a == "Only") - then "Close Other Tabs" - else "${a} Tab"; - in - keys.mk ["n"] "${k}" "tab${toLower a}" desc - ) - { - l = "Last"; - o = "Only"; - f = "First"; - "" = "New"; - "]" = "Next"; - d = "Close"; - "[" = "Previous"; - } - ); -} diff --git a/modules/nixvim/options/default.nix b/modules/nixvim/options/default.nix deleted file mode 100644 index 094a369..0000000 --- a/modules/nixvim/options/default.nix +++ /dev/null @@ -1,154 +0,0 @@ -{ - pkgs, - helpers, - ... -}: { - extraPackages = [pkgs.ripgrep]; - - opts = { - # Relative line numbers. - number = true; - relativenumber = true; - - # Set to 2 spaces. - expandtab = true; - shiftwidth = 2; - tabstop = 2; - - # Smart/auto indenting. - shiftround = true; - smartindent = true; - breakindent = true; - - # Show matches while searching. - hlsearch = true; - incsearch = true; - - # Disable text wrap. - wrap = true; - - # Better splitting. - splitbelow = true; - splitright = true; - - # Enable mouse mode. - mouse = "a"; - - # Smart handling of case when searching. - ignorecase = true; - smartcase = true; - - # Use Ripgrep for searching. - grepprg = "rg --vimgrep"; - grepformat = "%f:%l:%c:%m"; - - # Faster swap file saving. - updatetime = 200; - - # Completion. - completeopt = [ - "menu" - "menuone" - "noselect" - "noinsert" - ]; - - # Persistent & bigger undo history. - undofile = true; - undolevels = 10000; - - # Enable 24-bit colors. - termguicolors = true; - - # Always show the signcolumn to keep the text from shifting. - signcolumn = "yes"; - - # Highlight the current line. - cursorline = true; - - # Fold settings. - foldcolumn = "1"; - foldlevel = 99; - foldenable = true; - foldmethod = "expr"; - foldexpr = "v:lua.vim.treesitter.foldexpr()"; - - # Always keep 4 lines above/below cursor. - scrolloff = 4; - - # Max width. - textwidth = 80; - colorcolumn = "+1"; - - # Show some invisible chars. - list = true; - listchars = { - tab = "->"; - trail = "·"; - }; - - # Only show a single status line instead of one for each window. - laststatus = 3; - - # Preview subsitutions as you type. - inccommand = "split"; - - # Only set clipboard if not in SSH, to make sure the OSC 52 - # integration works automatically. - clipboard = - helpers.mkRaw # lua - - '' - vim.env.SSH_TTY and "" or "unnamedplus" - ''; - - # Ask to save changes before exiting modified buffer. - confirm = true; - - # I don't understand this but LazyVim sets it and it seems like a good idea. - jumpoptions = "view"; - - # Enable a little transparency for pop-ups. - pumblend = 10; - - # Disable showing line/col numbers in statusline. - ruler = false; - - # What to save when calling :mksession. - sessionoptions = [ - "buffers" - "curdir" - "tabpages" - "winsize" - "help" - "globals" - "skiprtp" - "folds" - ]; - - # Smoother left/right scrolling. - sidescroll = 1; - - # Min columns to show to the left/right of cursor when side-scrolling. - sidescrolloff = 8; - - # Languages to use for spelling suggestions. - spelllang = ["en"]; - - # Allow cursor to move where there is no text in visual block mode. - virtualedit = "block"; - - # Command mode completion mode. - wildmode = ["longest:full" "full"]; - - # Min window width when splitting. - winminwidth = 5; - }; - - extraConfigLua = - # lua - '' - -- Disable messages. - vim.opt.shortmess:append({ W = true, I = true, c = true, C = true }) - ''; -} diff --git a/modules/nixvim/plugins/ui/bufferline.nvim/default.nix b/modules/nixvim/plugins/ui/bufferline.nvim/default.nix deleted file mode 100644 index 18407ea..0000000 --- a/modules/nixvim/plugins/ui/bufferline.nvim/default.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ - lib, - helpers, - ... -}: let - inherit (lib) flatten mapAttrsToList map; - inherit (lib.marleyvim) icons keys autocmds; - inherit (helpers) mkRaw; -in { - plugins.mini = { - enable = true; - modules.icons = {}; - }; - - plugins.bufferline = { - enable = true; - - settings = { - options = { - close_command.__raw = "function(n) Snacks.bufdelete(n) end"; - right_mouse_command.__raw = "function(n) Snacks.bufdelete(n) end"; - - diagnostics = "nvim_lsp"; - diagnostics_indicator.__raw = - # lua - '' - function(_, _, diag) - local ret = (diag.error and "${icons.diagnostics.error}" .. diag.error .. " " or "") - .. (diag.warning and "${icons.diagnostics.warn}" .. diag.warning or "") - return vim.trim(ret) - end - ''; - - always_show_bufferline = true; - - offsets = [ - { - filetype = "neo-tree"; - text = "Explorer"; - highlight = "Directory"; - text_align = "left"; - } - ]; - - get_element_icon.__raw = '' - function(elem) - local icon, hl, _ = - require('mini.icons').get('filetype', elem.filetype) - return icon, hl - end - ''; - }; - }; - }; - - autoGroups.marleyvim_bufferline.clear = true; - autoCmd = [ - (autocmds.mk' ["BufAdd" "BufDelete"] "bufferline" ( - mkRaw '' - function() - vim.schedule(function() - pcall(nvim_bufferline) - end) - end - '' - ) "Fix bufferline when restoring a session") - ]; - - keymaps = - [ - (keys.mk ["n"] "bp" "BufferLineTogglePin" "Toggle Pin") - (keys.mk ["n"] "bP" "BufferLineGroupClose ungrouped" - "Delete Non-Pinned Buffers") - (keys.mk ["n"] "br" "BufferLineCloseRight" - "Delete Buffers to the Right") - (keys.mk ["n"] "bl" "BufferLineCloseLeft" - "Delete Buffers to the Left") - (keys.mk ["n"] "" "BufferLineCyclePrev" "Prev Buffer") - (keys.mk ["n"] "" "BufferLineCycleNext" "Next Buffer") - ] - ++ (flatten (mapAttrsToList ( - a: ks: - map (k: keys.mk ["n"] k "BufferLineCycle${a}" "${a} Buffer") ks - ) { - Prev = ["" "[b"]; - Next = ["" "]b"]; - })) - ++ ( - mapAttrsToList ( - a: k: let - befAft = - if (a == "Prev") - then "After" - else "Before"; - in - keys.mk ["n"] "${k}B" "BufferLineMove${a}" - "Move Buffer ${befAft} ${a}" - ) { - Prev = "["; - After = "]"; - } - ); -} diff --git a/modules/nixvim/plugins/ui/lualine.nvim/default.nix b/modules/nixvim/plugins/ui/lualine.nvim/default.nix deleted file mode 100644 index 04ee7ac..0000000 --- a/modules/nixvim/plugins/ui/lualine.nvim/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -_: { - plugins.lualine = { - enable = true; - - luaConfig.pre.__raw = '' - vim.g.lualine_laststatus = vim.o.laststatus - if vim.fn.argc(-1) > 0 then - -- set an empty statusline till lualine loads - vim.o.statusline = " " - else - -- hide the statusline on the starter page - vim.o.laststatus = 0 - end - ''; - - settings = { - options = { - theme = "auto"; - globalstatus.__raw = "vim.o.laststatus == 3"; - disabled_filetypes.statusline = [ - "dashboard" - "alpha" - "ministarter" - "snacks_dashboard" - ]; - }; - sections = { - lualine_a = ["mode"]; - lualine_b = ["branch"]; - - lualine_c = [ - ]; - }; - }; - }; -} diff --git a/modules/nixvim/plugins/ui/mini.icons/default.nix b/modules/nixvim/plugins/ui/mini.icons/default.nix deleted file mode 100644 index 42d14f0..0000000 --- a/modules/nixvim/plugins/ui/mini.icons/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -_: { - plugins.mini = { - enable = true; - - mockDevIcons = true; - modules.icons = {}; - }; -} diff --git a/modules/nixvim/plugins/util/snacks/default.nix b/modules/nixvim/plugins/util/snacks/default.nix deleted file mode 100644 index 7c3c06b..0000000 --- a/modules/nixvim/plugins/util/snacks/default.nix +++ /dev/null @@ -1,190 +0,0 @@ -{ - pkgs, - lib, - helpers, - ... -}: let - inherit (helpers) mkRaw; - inherit (lib.marleyvim) keys; -in { - extraPackages = [pkgs.lazygit]; - - plugins.snacks = { - enable = true; - - settings = { - bigfile.enabled = true; - notifier.enabled = true; - quickfile.enabled = true; - statuscolumn.enabled = true; - words.enabled = true; - }; - }; - - keymaps = [ - (keys.mk ["n"] "un" ( - mkRaw '' - function() Snacks.notifier.hide() end - '' - ) "Dismiss All Notifications") - - (keys.mk ["n"] "bd" ( - mkRaw '' - function() Snacks.bufdelete() end - '' - ) "Delete Buffer") - - (keys.mk ["n"] "bo" ( - mkRaw '' - function() Snacks.bufdelete.other() end - '' - ) "Delete Other Buffers") - - # LazyGit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (keys.mk ["n"] "gg" ( - mkRaw '' - function() Snacks.lazygit() end - '' - ) "Lazygit") - - (keys.mk ["n"] "gf" ( - mkRaw '' - function() Snacks.lazygit.log_file() end - '' - ) "Lazygit Current File History") - - (keys.mk ["n"] "gl" ( - mkRaw '' - function() Snacks.lazygit.log() end - '' - ) "Lazygit Log") - - # Git - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (keys.mk ["n"] "gb" ( - mkRaw '' - function() Snacks.git.blame_line() end - '' - ) "Git Blame Line") - - (keys.mk ["n" "x"] "gB" ( - mkRaw '' - function() Snacks.gitbrowse() end - '' - ) "Git Browse (open)") - - (keys.mk ["n" "x"] "gY" ( - mkRaw '' - function() - Snacks.gitbrowse({ open = function(url) vim.fn.setreg("+", url) end }) - end - '' - ) "Git Browse (copy)") - ]; - - # Toggles - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - extraConfigLua = - # lua - '' - ---@param buf? number - function format_enabled(buf) - buf = (buf == nil or buf == 0) and vim.api.nvim_get_current_buf() or buf - local gaf = vim.g.autoformat - local baf = vim.b[buf].autoformat - - -- If the buffer has a local value, use that - if baf ~= nil then - return baf - end - - -- Otherwise use the global value if set, or true by default - return gaf == nil or gaf - end - - ---@param enable? boolean - ---@param buf? boolean - function format_enable(state, buf) - if enable == nil then - enable = true - end - - if buf then - vim.b.autoformat = enable - else - vim.g.autoformat = enable - vim.b.autoformat = nil - end - end - - ---@param buf? boolean - function toggle_format(buf) - return Snacks.toggle({ - name = "Auto Format (" .. (buf and "Buffer" or "Global") .. ")", - get = function() - if not buf then - return vim.g.autoformat == nil or vim.g.autoformat - end - return format_enabled() - end, - set = function(state) - format_enable(state, buf) - end, - }) - end - - toggle_format():map("uf") - toggle_format(true):map("uF") - - Snacks.toggle.option("spell", { name = "Spelling"}):map("us") - Snacks.toggle.option("wrap", {name = "Wrap"}):map("uw") - Snacks.toggle.option("relativenumber", { name = "Relative Number"}):map("uL") - Snacks.toggle.diagnostics():map("ud") - Snacks.toggle.line_number():map("ul") - Snacks.toggle.option("conceallevel", {off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2}):map("uc") - Snacks.toggle.treesitter():map("uT") - Snacks.toggle.option("background", { off = "light", on = "dark" , name = "Dark Background"}):map("ub") - if vim.lsp.inlay_hint then - Snacks.toggle.inlay_hints():map("uh") - end - - function maximize_window() - ---@type {k:string, v:any}[]? - local maximized = nil - return Snacks.toggle({ - name = "Maximize", - get = function() - return maximized ~= nil - end, - set = function(state) - if state then - maximized = {} - local function set(k, v) - table.insert(maximized, 1, { k = v, v = vim.o[k] }) - vim.o[k] = v - end - set("winwidth", 999) - set("winheight", 999) - set("winminwidth", 10) - set("winminheight", 4) - vim.cmd("wincmd =") - vim.api.nvim_create_autocmd("ExitPre", { - once = true, - group = vim.api.nvim_create_augroup("marleyvim_restore_max_exit_pre", { clear = true }), - desc = "Restore width/height when closing Neovim while maximized", - callback = function() - maximize_window.set(false) - end, - }) - else - for _, opt in ipairs(maximized) do - vim.o[opt.k] = opt.v - end - maximized = nil - vim.cmd("wincmd =") - end - end, - }) - end - - maximize_window():map("wm") - ''; -} diff --git a/packages/neovim/default.nix b/packages/neovim/default.nix deleted file mode 100644 index 7785704..0000000 --- a/packages/neovim/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - lib, - pkgs, - inputs, - neovim-settings ? {}, - neovim-config ? {}, - ... -}: let - raw-modules = lib.snowfall.fs.get-default-nix-files-recursive ( - lib.snowfall.fs.get-file "/modules/nixvim" - ); - - wrapped-modules = - builtins.map - ( - raw-module: args: let - module = import raw-module; - result = - if builtins.isFunction module - then - module - ( - args - // { - # NOTE: nixvim doesn't allow for these to be customized so we must work around the - # module system here... - inherit lib pkgs; - } - ) - else module; - in - result // {_file = raw-module;} - ) - raw-modules; - - raw-neovim = pkgs.nixvim.makeNixvimWithModule { - inherit pkgs; - - module = { - imports = wrapped-modules; - - config = lib.mkMerge [ - { - _module.args = { - settings = neovim-settings; - lib = lib.mkForce lib; - }; - } - - neovim-config - ]; - }; - }; - - neovim = raw-neovim.overrideAttrs (attrs: { - meta = - attrs.meta - // { - # NOTE: The default platforms specified aren't actually all - # supported by nixvim. Instead, only support the ones that can build with - # the module system. - platforms = builtins.attrNames inputs.nixvim.legacyPackages; - }; - }); -in - neovim diff --git a/readme.md b/readme.md deleted file mode 100644 index 84349e6..0000000 --- a/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# MarleyVim - -## Notes - -`plugins.${plugin}.luaConfig` - added in top-level Lua config (outside of -`require("${plugin}").setup({})`) - -`plugins.${plugin}.settings` - given to setup function (i.e. -`require("${plugin}").setup(${settings})`)