Compare commits
31 commits
92ec57e83f
...
400742f8a9
| Author | SHA1 | Date | |
|---|---|---|---|
| 400742f8a9 | |||
| 56dc7f3bba | |||
| 39ca09b05f | |||
| 86f39ed4ce | |||
| bf50c2b05c | |||
| d794974e0c | |||
| 9238672dad | |||
| f764a607c0 | |||
| 96c4fb932d | |||
| 44cbe023d0 | |||
| dbb0d61937 | |||
| 3948d2b53d | |||
| 2b6bc9763d | |||
| 58b503453b | |||
| 933446925a | |||
| cfdd89c080 | |||
| 7477166d9e | |||
| 54d4bc057e | |||
| e70d021a24 | |||
| 3649602a07 | |||
| 745a964d79 | |||
| cf90eede7e | |||
| d242144445 | |||
| 37914d6957 | |||
| 8806190f75 | |||
| 7078dd84eb | |||
| 9466308478 | |||
| cdf7e9908a | |||
| 419edec01f | |||
| 0bae976b08 | |||
| c75945ddba |
56 changed files with 1770 additions and 170 deletions
|
|
@ -130,6 +130,27 @@
|
|||
},
|
||||
"version": "Serif2.003"
|
||||
},
|
||||
"nvim_vim-startuptime": {
|
||||
"cargoLocks": null,
|
||||
"date": "2025-02-17",
|
||||
"extract": null,
|
||||
"name": "nvim_vim-startuptime",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "dstein64",
|
||||
"repo": "vim-startuptime",
|
||||
"rev": "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6",
|
||||
"sha256": "sha256-0YLDkU1y89O5z7tgxaH5USQpJDfTuN0fsPJOAp6pa5Y=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6"
|
||||
},
|
||||
"radicle-ci-broker": {
|
||||
"cargoLocks": null,
|
||||
"date": "2025-06-27",
|
||||
|
|
|
|||
|
|
@ -82,6 +82,18 @@
|
|||
sha256 = "sha256-mfbBSdJrUCZiUUmsmndtEW6H3z6KfBn+dEftBySf2j4=";
|
||||
};
|
||||
};
|
||||
nvim_vim-startuptime = {
|
||||
pname = "nvim_vim-startuptime";
|
||||
version = "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dstein64";
|
||||
repo = "vim-startuptime";
|
||||
rev = "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6";
|
||||
fetchSubmodules = false;
|
||||
sha256 = "sha256-0YLDkU1y89O5z7tgxaH5USQpJDfTuN0fsPJOAp6pa5Y=";
|
||||
};
|
||||
date = "2025-02-17";
|
||||
};
|
||||
radicle-ci-broker = {
|
||||
pname = "radicle-ci-broker";
|
||||
version = "d5f684b2ec12dc875ec0278c8e2fe71faaa88d38";
|
||||
|
|
|
|||
307
flake.lock
generated
307
flake.lock
generated
|
|
@ -101,7 +101,7 @@
|
|||
"nur-ataraxiasjel",
|
||||
"devenv"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744206633,
|
||||
|
|
@ -205,10 +205,10 @@
|
|||
"devenv": {
|
||||
"inputs": {
|
||||
"cachix": "cachix",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"git-hooks": "git-hooks",
|
||||
"flake-compat": "flake-compat_6",
|
||||
"git-hooks": "git-hooks_2",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_9"
|
||||
"nixpkgs": "nixpkgs_10"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748273445,
|
||||
|
|
@ -305,6 +305,38 @@
|
|||
}
|
||||
},
|
||||
"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-compat_4": {
|
||||
"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_5": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746162366,
|
||||
|
|
@ -320,7 +352,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake-compat_6": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
|
|
@ -376,6 +408,48 @@
|
|||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"neovim-nightly",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754487366,
|
||||
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_4": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"neovim-nightly",
|
||||
"hercules-ci-effects",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751413152,
|
||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "flake-parts",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"flake-parts_5": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
|
|
@ -396,7 +470,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_4": {
|
||||
"flake-parts_6": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
|
|
@ -417,7 +491,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_5": {
|
||||
"flake-parts_7": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur-ataraxiasjel",
|
||||
|
|
@ -440,7 +514,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_6": {
|
||||
"flake-parts_8": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
|
|
@ -540,12 +614,35 @@
|
|||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"neovim-nightly",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754416808,
|
||||
"narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"nur-ataraxiasjel",
|
||||
"devenv"
|
||||
],
|
||||
"gitignore": "gitignore_2",
|
||||
"gitignore": "gitignore_3",
|
||||
"nixpkgs": [
|
||||
"nur-ataraxiasjel",
|
||||
"devenv",
|
||||
|
|
@ -589,6 +686,28 @@
|
|||
}
|
||||
},
|
||||
"gitignore_2": {
|
||||
"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_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nur-ataraxiasjel",
|
||||
|
|
@ -650,6 +769,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hercules-ci-effects": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_4",
|
||||
"nixpkgs": [
|
||||
"neovim-nightly",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752595130,
|
||||
"narHash": "sha256-CNBgr4OZSuklGtNOa9CnTNo9+Xceqn/EDAC1Tc43fH8=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "hercules-ci-effects",
|
||||
"rev": "5f2e09654b2e70ba643e41609d9f9b6640f22113",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "hercules-ci-effects",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -821,6 +962,46 @@
|
|||
"url": "https://git.lix.systems/lix-project/nixos-module"
|
||||
}
|
||||
},
|
||||
"neovim-nightly": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"git-hooks": "git-hooks",
|
||||
"hercules-ci-effects": "hercules-ci-effects",
|
||||
"neovim-src": "neovim-src",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754641381,
|
||||
"narHash": "sha256-eMoujl/X1lbdjRbC/HHCpZmUb5tqTAYSL1hocy+o7nc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "neovim-nightly-overlay",
|
||||
"rev": "83aaf3085f808dec9ea1b5d16b216875a8081b37",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "neovim-nightly-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"neovim-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1754610154,
|
||||
"narHash": "sha256-ORfF40X4BGiFxnLNQbdsQbUTW4TkUHfPqyZWHaYL5NE=",
|
||||
"owner": "neovim",
|
||||
"repo": "neovim",
|
||||
"rev": "038eb01b41b66379f75164507571497929f8847c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "neovim",
|
||||
"repo": "neovim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-flake": {
|
||||
"inputs": {
|
||||
"niri-stable": "niri-stable",
|
||||
|
|
@ -885,9 +1066,9 @@
|
|||
"nur-ataraxiasjel",
|
||||
"devenv"
|
||||
],
|
||||
"flake-parts": "flake-parts_5",
|
||||
"flake-parts": "flake-parts_7",
|
||||
"libgit2": "libgit2",
|
||||
"nixpkgs": "nixpkgs_8",
|
||||
"nixpkgs": "nixpkgs_9",
|
||||
"nixpkgs-23-11": [
|
||||
"nur-ataraxiasjel",
|
||||
"devenv"
|
||||
|
|
@ -941,8 +1122,8 @@
|
|||
},
|
||||
"nixos-cosmic": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"flake-compat": "flake-compat_5",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs-stable": "nixpkgs-stable_3",
|
||||
"rust-overlay": "rust-overlay_4"
|
||||
},
|
||||
|
|
@ -1071,6 +1252,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_10": {
|
||||
"locked": {
|
||||
"lastModified": 1746807397,
|
||||
"narHash": "sha256-zU2z0jlkJGWLhdNr/8AJSxqK8XD0IlQgHp3VZcP56Aw=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"rev": "c5208b594838ea8e6cca5997fbf784b7cca1ca90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "rolling",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_11": {
|
||||
"locked": {
|
||||
"lastModified": 1748190013,
|
||||
"narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=",
|
||||
|
|
@ -1086,7 +1283,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_11": {
|
||||
"nixpkgs_12": {
|
||||
"locked": {
|
||||
"lastModified": 1747958103,
|
||||
"narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
|
||||
|
|
@ -1119,6 +1316,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1754393734,
|
||||
"narHash": "sha256-fbnmAwTQkuXHKBlcL5Nq1sMAzd3GFqCOQgEQw6Hy0Ak=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a683adc19ff5228af548c6539dbc3440509bfed3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1751011381,
|
||||
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
|
||||
|
|
@ -1134,7 +1347,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1752950548,
|
||||
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
|
||||
|
|
@ -1150,7 +1363,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1752077645,
|
||||
"narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=",
|
||||
|
|
@ -1166,7 +1379,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1752950548,
|
||||
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
|
||||
|
|
@ -1182,7 +1395,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1733212471,
|
||||
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
|
||||
|
|
@ -1198,7 +1411,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1717432640,
|
||||
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
|
||||
|
|
@ -1214,26 +1427,10 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1746807397,
|
||||
"narHash": "sha256-zU2z0jlkJGWLhdNr/8AJSxqK8XD0IlQgHp3VZcP56Aw=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"rev": "c5208b594838ea8e6cca5997fbf784b7cca1ca90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "rolling",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"flake-parts": "flake-parts_5",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_3"
|
||||
},
|
||||
|
|
@ -1253,8 +1450,8 @@
|
|||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_4",
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
"flake-parts": "flake-parts_6",
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753043887,
|
||||
|
|
@ -1274,8 +1471,8 @@
|
|||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
"devenv-root": "devenv-root",
|
||||
"flake-parts": "flake-parts_6",
|
||||
"nixpkgs": "nixpkgs_10"
|
||||
"flake-parts": "flake-parts_8",
|
||||
"nixpkgs": "nixpkgs_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752784378,
|
||||
|
|
@ -1379,16 +1576,17 @@
|
|||
"home-manager": "home-manager_2",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"lix-module": "lix-module",
|
||||
"neovim-nightly": "neovim-nightly",
|
||||
"niri-flake": "niri-flake",
|
||||
"nixos-cosmic": "nixos-cosmic",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixvim": "nixvim",
|
||||
"nur": "nur",
|
||||
"nur-ataraxiasjel": "nur-ataraxiasjel",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
"treefmt-nix": "treefmt-nix_2"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
|
|
@ -1674,7 +1872,28 @@
|
|||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_11"
|
||||
"nixpkgs": [
|
||||
"neovim-nightly",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754492133,
|
||||
"narHash": "sha256-B+3g9+76KlGe34Yk9za8AF3RL+lnbHXkLiVHLjYVOAc=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "1298185c05a56bff66383a20be0b41a307f52228",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_12"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753006367,
|
||||
|
|
|
|||
|
|
@ -194,6 +194,11 @@
|
|||
owner = "nix-community";
|
||||
repo = "nixvim";
|
||||
};
|
||||
neovim-nightly = {
|
||||
type = "github";
|
||||
owner = "nix-community";
|
||||
repo = "neovim-nightly-overlay";
|
||||
};
|
||||
|
||||
lanzaboote = {
|
||||
type = "github";
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
system,
|
||||
lib,
|
||||
self',
|
||||
inputs',
|
||||
...
|
||||
}: let
|
||||
inherit (inputs) nixpkgs;
|
||||
|
|
@ -20,6 +21,7 @@
|
|||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
overlays = [(_final: _prev: {inherit lib;})];
|
||||
};
|
||||
devShells.default = pkgs.mkShell {
|
||||
name = "nixos-shell";
|
||||
|
|
@ -36,6 +38,9 @@
|
|||
inputsScope = lib.makeScope pkgs.newScope (self: {
|
||||
inherit inputs rootPath;
|
||||
srcs = self.callPackage (rootPath + "/_sources/generated.nix") {};
|
||||
inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule;
|
||||
inherit (self'.legacyPackages) nixvimPlugins;
|
||||
neovim_git = inputs'.neovim-nightly.packages.default;
|
||||
});
|
||||
in
|
||||
lib.packagesFromDirectoryRecursive {
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ ipc_socket = true
|
|||
live_config_reload = true
|
||||
|
||||
[window]
|
||||
blur = true
|
||||
dynamic_padding = true
|
||||
opacity = 0.8
|
||||
blur = true
|
||||
|
||||
[scrolling]
|
||||
history = 100000
|
||||
|
|
|
|||
|
|
@ -482,6 +482,7 @@ in
|
|||
(window-rule [
|
||||
(match [{app-id = "^Alacritty$";}])
|
||||
(match [{app-id = "^com\\.mitchellh\\.ghostty$";}])
|
||||
(match [{app-id = "^neovide$";}])
|
||||
(leaf "draw-border-with-background" [false])
|
||||
])
|
||||
(window-rule [
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
[editor]
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
cursorcolumn = false
|
||||
true-color = true
|
||||
undercurl = true
|
||||
bufferline = "multiple"
|
||||
color-modes = true
|
||||
cursorcolumn = false
|
||||
cursorline = true
|
||||
default-line-ending = "lf"
|
||||
line-number = "relative"
|
||||
popup-border = "all"
|
||||
true-color = true
|
||||
undercurl = true
|
||||
# letters in the beginning are used first
|
||||
# move home raw letters to the beginning
|
||||
jump-label-alphabet = "jkdls;aurieowpqnvmcxz"
|
||||
|
||||
[editor.statusline]
|
||||
center = ["diagnostics"]
|
||||
left = [
|
||||
"mode",
|
||||
"spacer",
|
||||
|
|
@ -25,7 +26,9 @@ left = [
|
|||
"spacer",
|
||||
"spinner",
|
||||
]
|
||||
center = ["diagnostics"]
|
||||
mode.insert = "INSERT"
|
||||
mode.normal = "NORMAL"
|
||||
mode.select = "SELECT"
|
||||
right = [
|
||||
"register",
|
||||
"file-line-ending",
|
||||
|
|
@ -36,14 +39,11 @@ right = [
|
|||
"position-percentage",
|
||||
]
|
||||
separator = "|"
|
||||
mode.normal = "NORMAL"
|
||||
mode.insert = "INSERT"
|
||||
mode.select = "SELECT"
|
||||
|
||||
[editor.lsp]
|
||||
display-progress-messages = true
|
||||
display-messages = true
|
||||
display-inlay-hints = true
|
||||
display-messages = true
|
||||
display-progress-messages = true
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
|
|
@ -54,16 +54,16 @@ select = "underline"
|
|||
hidden = false
|
||||
|
||||
[editor.whitespace.render]
|
||||
space = "none"
|
||||
tab = "all"
|
||||
nbsp = "all"
|
||||
newline = "none"
|
||||
space = "none"
|
||||
tab = "all"
|
||||
|
||||
[editor.whitespace.characters]
|
||||
space = "·"
|
||||
nbsp = "⍽"
|
||||
tab = "→"
|
||||
newline = "⏎"
|
||||
space = "·"
|
||||
tab = "→"
|
||||
tabpad = "·"
|
||||
|
||||
[editor.indent-guides]
|
||||
|
|
|
|||
|
|
@ -1,43 +1,43 @@
|
|||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
[character]
|
||||
success_symbol = '[λ](bold blue)'
|
||||
error_symbol = '[λ](bold red)'
|
||||
vimcmd_symbol = '[Λ](bold blue)'
|
||||
success_symbol = '[λ](bold blue)'
|
||||
vimcmd_replace_one_symbol = '[Λ](bold purple)'
|
||||
vimcmd_replace_symbol = '[Λ](bold purple)'
|
||||
vimcmd_symbol = '[Λ](bold blue)'
|
||||
vimcmd_visual_symbol = '[Λ](bold yellow)'
|
||||
|
||||
[[battery.display]]
|
||||
threshold = 10
|
||||
style = 'bold red'
|
||||
threshold = 10
|
||||
|
||||
[[battery.display]]
|
||||
threshold = 30
|
||||
style = 'bold yellow'
|
||||
discharging_symbol = '💦'
|
||||
style = 'bold yellow'
|
||||
threshold = 30
|
||||
|
||||
[[battery.display]]
|
||||
threshold = 100
|
||||
style = 'green'
|
||||
threshold = 100
|
||||
|
||||
[git_branch]
|
||||
format = 'on [$symbol$branch(:$remote_branch)]($style) '
|
||||
symbol = " "
|
||||
|
||||
[git_status]
|
||||
diverged = '⇕⇡${ahead_count}⇣${behind_count}'
|
||||
conflicted = "[⚔️${count}](red)"
|
||||
ahead = '[⇡${count}](bold green)'
|
||||
behind = '[⇣${count}](bold yellow)'
|
||||
untracked = '[!${count}](red)'
|
||||
stashed = "[📦${count}](purple)"
|
||||
modified = '[M${count}](bold yellow)'
|
||||
staged = "[+${count}](green)"
|
||||
renamed = "[»${count}](bold yellow)"
|
||||
conflicted = "[⚔️${count}](red)"
|
||||
deleted = '[-${count}](blue)'
|
||||
up_to_date = '[✓](green)'
|
||||
diverged = '⇕⇡${ahead_count}⇣${behind_count}'
|
||||
format = '([(\[$all_status\])(\[$ahead_behind\])]($style) ) '
|
||||
modified = '[M${count}](bold yellow)'
|
||||
renamed = "[»${count}](bold yellow)"
|
||||
staged = "[+${count}](green)"
|
||||
stashed = "[📦${count}](purple)"
|
||||
untracked = '[!${count}](red)'
|
||||
up_to_date = '[✓](green)'
|
||||
|
||||
[git_commit]
|
||||
format = '([\($hash$tag\)]($style) )'
|
||||
|
|
@ -45,11 +45,11 @@ only_detached = false
|
|||
|
||||
[directory]
|
||||
fish_style_pwd_dir_length = 2
|
||||
truncation_length = 2
|
||||
truncate_to_repo = false
|
||||
repo_root_style = "bold green"
|
||||
use_os_path_sep = false
|
||||
read_only = " "
|
||||
repo_root_style = "bold green"
|
||||
truncate_to_repo = false
|
||||
truncation_length = 2
|
||||
use_os_path_sep = false
|
||||
|
||||
[aws]
|
||||
symbol = " "
|
||||
|
|
@ -133,9 +133,9 @@ symbol = " "
|
|||
symbol = " "
|
||||
|
||||
[os.symbols]
|
||||
AlmaLinux = " "
|
||||
Alpaquita = " "
|
||||
Alpine = " "
|
||||
AlmaLinux = " "
|
||||
Amazon = " "
|
||||
Android = " "
|
||||
Arch = " "
|
||||
|
|
@ -162,20 +162,20 @@ Mint = " "
|
|||
NetBSD = " "
|
||||
NixOS = " "
|
||||
OpenBSD = " "
|
||||
openSUSE = " "
|
||||
OracleLinux = " "
|
||||
Pop = " "
|
||||
Raspbian = " "
|
||||
Redhat = " "
|
||||
RedHatEnterprise = " "
|
||||
RockyLinux = " "
|
||||
Redhat = " "
|
||||
Redox = " "
|
||||
Solus = " "
|
||||
RockyLinux = " "
|
||||
SUSE = " "
|
||||
Solus = " "
|
||||
Ubuntu = " "
|
||||
Unknown = " "
|
||||
Void = " "
|
||||
Windows = " "
|
||||
openSUSE = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@
|
|||
localsend
|
||||
zulip
|
||||
wechat
|
||||
nixvim
|
||||
neovide
|
||||
];
|
||||
|
||||
environment.variables.EDITOR = "hx";
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@
|
|||
};
|
||||
programs = {
|
||||
bash.enable = true;
|
||||
nixvim.enable = true;
|
||||
guix.enable = true;
|
||||
dae.enable = true;
|
||||
openssh.enable = true;
|
||||
|
|
@ -91,6 +90,8 @@
|
|||
waypipe
|
||||
wineWow64Packages.waylandFull
|
||||
iperf3
|
||||
nixvim
|
||||
neovide
|
||||
|
||||
sbctl
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.nixvim;
|
||||
in {
|
||||
imports = lib.youthlic.loadImports ./.;
|
||||
options = {
|
||||
youthlic.programs.nixvim = {
|
||||
enable = lib.mkEnableOption "nixvim";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
enableMan = true;
|
||||
colorschemes.gruvbox-material = {
|
||||
enable = true;
|
||||
autoLoad = true;
|
||||
};
|
||||
plugins.lualine.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.nixvim;
|
||||
in {
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.nixvim = {
|
||||
opts = {
|
||||
backspace = ["indent" "eol" "start"];
|
||||
tabstop = 4;
|
||||
shiftwidth = 4;
|
||||
expandtab = true;
|
||||
shiftround = true;
|
||||
autoindent = true;
|
||||
nu = true;
|
||||
rnu = true;
|
||||
wildmenu = true;
|
||||
hlsearch = false;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
completeopt = ["menu" "noselect"];
|
||||
cursorline = true;
|
||||
termguicolors = true;
|
||||
signcolumn = "yes";
|
||||
autoread = true;
|
||||
title = true;
|
||||
swapfile = false;
|
||||
backup = false;
|
||||
updatetime = 50;
|
||||
mouse = "a";
|
||||
undofile = true;
|
||||
exrc = true;
|
||||
scrolloff = 5;
|
||||
wrap = true;
|
||||
splitright = true;
|
||||
splitbelow = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,60 +1,64 @@
|
|||
[juicity]
|
||||
src.git = "https://github.com/juicity/juicity"
|
||||
fetch.git = "https://githuh.com/juicity/juicity"
|
||||
src.git = "https://github.com/juicity/juicity"
|
||||
|
||||
[tree-sitter-idris]
|
||||
src.git = "https://github.com/kayhide/tree-sitter-idris"
|
||||
fetch.git = "https://github.com/kayhide/tree-sitter-idris"
|
||||
passthru.name = "idris"
|
||||
src.git = "https://github.com/kayhide/tree-sitter-idris"
|
||||
|
||||
[noto-serif-cjk]
|
||||
src.github = "notofonts/noto-cjk"
|
||||
fetch.github = "notofonts/noto-cjk"
|
||||
git.sparseCheckout = ["Serif/OTC"]
|
||||
src.github = "notofonts/noto-cjk"
|
||||
|
||||
[noto-sans-cjk]
|
||||
src.github = "notofonts/noto-cjk"
|
||||
fetch.github = "notofonts/noto-cjk"
|
||||
git.sparseCheckout = ["Sans/OTC"]
|
||||
src.github = "notofonts/noto-cjk"
|
||||
|
||||
[spotx]
|
||||
src.git = "https://github.com/SpotX-Official/SpotX-Bash.git"
|
||||
fetch.github = "SpotX-Official/SpotX-Bash"
|
||||
src.git = "https://github.com/SpotX-Official/SpotX-Bash.git"
|
||||
|
||||
[TrackersListCollection]
|
||||
src.git = "https://github.com/XIU2/TrackersListCollection.git"
|
||||
fetch.github = "XIU2/TrackersListCollection"
|
||||
git.sparseCheckout = ["all.txt"]
|
||||
src.git = "https://github.com/XIU2/TrackersListCollection.git"
|
||||
|
||||
[wshowkeys-mao]
|
||||
src.git = "https://github.com/DreamMaoMao/wshowkeys.git"
|
||||
fetch.github = "DreamMaoMao/wshowkeys"
|
||||
src.git = "https://github.com/DreamMaoMao/wshowkeys.git"
|
||||
|
||||
[OuterWildsTextAdventure]
|
||||
src.git = "https://github.com/top-mind/OuterWildsTextAdventureWeb.git"
|
||||
fetch.github = "top-mind/OuterWildsTextAdventureWeb"
|
||||
src.git = "https://github.com/top-mind/OuterWildsTextAdventureWeb.git"
|
||||
|
||||
[cliphist]
|
||||
src.git = "https://github.com/sentriz/cliphist.git"
|
||||
fetch.github = "sentriz/cliphist"
|
||||
src.git = "https://github.com/sentriz/cliphist.git"
|
||||
|
||||
[radicle-ci-broker]
|
||||
src.git = "https://seed.radicle.garden/zwTxygwuz5LDGBq255RA2CbNGrz8.git"
|
||||
fetch.git = "https://seed.radicle.garden/zwTxygwuz5LDGBq255RA2CbNGrz8.git"
|
||||
src.git = "https://seed.radicle.garden/zwTxygwuz5LDGBq255RA2CbNGrz8.git"
|
||||
|
||||
["wallpaper_hieda-no-akyuu-touhou.1920x1080.mp4"]
|
||||
src.cmd = "curl -sL http://wallpaper.youthlic.social/hieda-no-akyuu-touhou.1920x1080.mp4 | sha256sum | cut -d ' ' -f 1"
|
||||
fetch.url = "http://wallpaper.youthlic.social/hieda-no-akyuu-touhou.1920x1080.mp4"
|
||||
src.cmd = "curl -sL http://wallpaper.youthlic.social/hieda-no-akyuu-touhou.1920x1080.mp4 | sha256sum | cut -d ' ' -f 1"
|
||||
|
||||
["wallpaper_outer-wilds.3840x2160.mp4"]
|
||||
src.cmd = "curl -sL http://wallpaper.youthlic.social/outer-wilds.3840x2160.mp4 | sha256sum | cut -d ' ' -f 1"
|
||||
fetch.url = "http://wallpaper.youthlic.social/outer-wilds.3840x2160.mp4"
|
||||
src.cmd = "curl -sL http://wallpaper.youthlic.social/outer-wilds.3840x2160.mp4 | sha256sum | cut -d ' ' -f 1"
|
||||
|
||||
["wallpaper_hollow-knight-quest.3840x2160.mp4"]
|
||||
src.cmd = "curl -sL http://wallpaper.youthlic.social/hollow-knight-quest.3840x2160.mp4 | sha256sum | cut -d ' ' -f 1"
|
||||
fetch.url = "http://wallpaper.youthlic.social/hollow-knight-quest.3840x2160.mp4"
|
||||
src.cmd = "curl -sL http://wallpaper.youthlic.social/hollow-knight-quest.3840x2160.mp4 | sha256sum | cut -d ' ' -f 1"
|
||||
|
||||
[rime-yuhaostar]
|
||||
src.github = "forfudan/yuhao-ime-release"
|
||||
fetch.url = "https://github.com/forfudan/yuhao-ime-release/releases/download/$ver/yuhao_star_xingchen_$ver.zip"
|
||||
src.github = "forfudan/yuhao-ime-release"
|
||||
url.name = "yustar_$ver.zip"
|
||||
|
||||
[nvim_vim-startuptime]
|
||||
fetch.github = "dstein64/vim-startuptime"
|
||||
src.git = "https://github.com/dstein64/vim-startuptime.git"
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ in
|
|||
./wallpapers.nix
|
||||
./waydroid-script.nix
|
||||
./rime-yuhaostar.nix
|
||||
./nixvim.nix
|
||||
|
||||
./pkgsNoCuda.nix
|
||||
]
|
||||
|
|
|
|||
5
overlays/additions/nixvim.nix
Normal file
5
overlays/additions/nixvim.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{outputs, ...}: _final: prev: let
|
||||
inherit (prev.stdenv.hostPlatform) system;
|
||||
in {
|
||||
inherit (outputs.packages.${system}) nixvim;
|
||||
}
|
||||
5
pkgs/nixvim/.stylua.toml
Normal file
5
pkgs/nixvim/.stylua.toml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
column_width = 120
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
[sort_requires]
|
||||
enabled = true
|
||||
1
pkgs/nixvim/autocmds.nix
Normal file
1
pkgs/nixvim/autocmds.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{...}: {}
|
||||
55
pkgs/nixvim/coding/blink-cmp.nix
Normal file
55
pkgs/nixvim/coding/blink-cmp.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{...}: {
|
||||
youthlic.plugins.blink-cmp = {
|
||||
enable = true;
|
||||
setupLspCapabilities = true;
|
||||
settings = {
|
||||
snippets = {
|
||||
expand = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(snippet, _)
|
||||
return {}
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
appearance = {
|
||||
# use_nvim_cmp_as_default = false;
|
||||
};
|
||||
completion = {
|
||||
accept = {
|
||||
auto_brackets = {
|
||||
enabled = true;
|
||||
};
|
||||
};
|
||||
menu = {
|
||||
draw = {
|
||||
treesitter = ["lsp"];
|
||||
};
|
||||
};
|
||||
documentation = {
|
||||
auto_show = true;
|
||||
auto_show_delay_ms = 200;
|
||||
};
|
||||
ghost_text = {
|
||||
enabled = {
|
||||
__raw =
|
||||
#lua
|
||||
''vim.g.ai_cmp'';
|
||||
};
|
||||
};
|
||||
};
|
||||
sources = {
|
||||
compat = [];
|
||||
default = ["lsp" "path" "snippets" "buffer"];
|
||||
};
|
||||
cmdline = {
|
||||
enabled = false;
|
||||
};
|
||||
keymap = {
|
||||
preset = "enter";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
pkgs/nixvim/coding/lazydev.nix
Normal file
15
pkgs/nixvim/coding/lazydev.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{...}: {
|
||||
youthlic.plugins = {
|
||||
lazydev = {
|
||||
enable = true;
|
||||
settings = {
|
||||
library = [
|
||||
{
|
||||
path = "$''{3rd}/luv/library";
|
||||
words = ["vim%.uv"];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
121
pkgs/nixvim/coding/mini-ai.nix
Normal file
121
pkgs/nixvim/coding/mini-ai.nix
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
{...}: {
|
||||
youthlic.plugins.mini-ai = {
|
||||
enable = true;
|
||||
luaConfig.pre =
|
||||
#lua
|
||||
''
|
||||
do
|
||||
local ai = require("mini.ai")
|
||||
_M.__coding_plugin_mini_ai_opts = {
|
||||
n_lines = 500,
|
||||
custom_textobjects = {
|
||||
o = ai.gen_spec.treesitter({ -- code block
|
||||
a = { "@block.outer", "@conditional.outer", "@loop.outer" },
|
||||
i = { "@block.inner", "@conditional.inner", "@loop.inner" },
|
||||
}),
|
||||
f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), -- function
|
||||
c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), -- class
|
||||
t = { "<([%p%w]-)%f[^<%w][^<>]->.-</%1>", "^<.->().*()</[^/]->$" }, -- tags
|
||||
d = { "%f[%d]%d+" }, -- digits
|
||||
e = { -- Word with case
|
||||
{ "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" },
|
||||
"^().*()$",
|
||||
},
|
||||
g = function(ai_type)
|
||||
local start_line, end_line = 1, vim.fn.line("$")
|
||||
if ai_type == "i" then
|
||||
local first_nonblank, last_nonblank = vim.fn.nextnonblank(start_line), vim.fn.prevnonblank(end_line)
|
||||
if first_nonblank == 0 or last_nonblank == 0 then
|
||||
return { from = { line = start_line, col = 1 } }
|
||||
end
|
||||
start_line, end_line = first_nonblank, last_nonblank
|
||||
end
|
||||
|
||||
local to_col = math.max(vim.fn.getline(end_line):len(), 1)
|
||||
return {
|
||||
from = {
|
||||
line = start_line,
|
||||
col = 1,
|
||||
},
|
||||
to = {
|
||||
line = end_line,
|
||||
col = to_col,
|
||||
},
|
||||
}
|
||||
end, -- buffer
|
||||
u = ai.gen_spec.function_call(), -- u for "Usage"
|
||||
U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name
|
||||
},
|
||||
}
|
||||
end
|
||||
'';
|
||||
settings = {
|
||||
__raw =
|
||||
#lua
|
||||
"_M.__coding_plugin_mini_ai_opts";
|
||||
};
|
||||
luaConfig.post =
|
||||
#lua
|
||||
''
|
||||
_M.on_load("which-key", function()
|
||||
local opts = _M.__coding_plugin_mini_ai_opts
|
||||
local objects = {
|
||||
{ " ", desc = "whitespace" },
|
||||
{ '"', desc = '" string' },
|
||||
{ "'", desc = "' string" },
|
||||
{ "(", desc = "() block" },
|
||||
{ ")", desc = "() block with ws" },
|
||||
{ "<", desc = "<> block" },
|
||||
{ ">", desc = "<> block with ws" },
|
||||
{ "?", desc = "user prompt" },
|
||||
{ "U", desc = "use/call without dot" },
|
||||
{ "[", desc = "[] block" },
|
||||
{ "]", desc = "[] block with ws" },
|
||||
{ "_", desc = "underscore" },
|
||||
{ "`", desc = "` string" },
|
||||
{ "a", desc = "argument" },
|
||||
{ "b", desc = ")]} block" },
|
||||
{ "c", desc = "class" },
|
||||
{ "d", desc = "digit(s)" },
|
||||
{ "e", desc = "CamelCase / snake_case" },
|
||||
{ "f", desc = "function" },
|
||||
{ "g", desc = "entire file" },
|
||||
{ "i", desc = "indent" },
|
||||
{ "o", desc = "block, conditional, loop" },
|
||||
{ "q", desc = "quote `\"'" },
|
||||
{ "t", desc = "tag" },
|
||||
{ "u", desc = "use/call" },
|
||||
{ "{", desc = "{} block" },
|
||||
{ "}", desc = "{} with ws" },
|
||||
}
|
||||
|
||||
---@type wk.Spec[]
|
||||
local ret = { mode = { "o", "x" } }
|
||||
---@type table<string, string>
|
||||
local mappings = vim.tbl_extend("force", {}, {
|
||||
around = "a",
|
||||
inside = "i",
|
||||
around_next = "an",
|
||||
inside_next = "in",
|
||||
around_last = "al",
|
||||
inside_last = "il",
|
||||
}, opts.mappings or {})
|
||||
mappings.goto_left = nil
|
||||
mappings.goto_right = nil
|
||||
|
||||
for name, prefix in pairs(mappings) do
|
||||
name = name:gsub("^around_", ""):gsub("^inside_", "")
|
||||
ret[#ret + 1] = { prefix, group = name }
|
||||
for _, obj in ipairs(objects) do
|
||||
local desc = obj.desc
|
||||
if prefix:sub(1, 1) == "i" then
|
||||
desc = desc:gsub(" with ws", "")
|
||||
end
|
||||
ret[#ret + 1] = { prefix .. obj[1], desc = obj.desc }
|
||||
end
|
||||
end
|
||||
require("which-key").add(ret, { notify = false })
|
||||
end)
|
||||
'';
|
||||
};
|
||||
}
|
||||
71
pkgs/nixvim/coding/mini-pairs.nix
Normal file
71
pkgs/nixvim/coding/mini-pairs.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
{...}: {
|
||||
youthlic.plugins.mini-pairs = {
|
||||
enable = true;
|
||||
settings = {
|
||||
modes = {
|
||||
insert = true;
|
||||
command = true;
|
||||
terminal = false;
|
||||
};
|
||||
};
|
||||
luaConfig.post =
|
||||
#lua
|
||||
''
|
||||
do
|
||||
local opts = {
|
||||
skip_next = [=[[%w%%'%[%"%.%`%$]]=],
|
||||
skip_ts = { "string" },
|
||||
skip_unbalanced = true,
|
||||
markdown = true,
|
||||
}
|
||||
_M.on_load("snacks", function()
|
||||
vim.schedule(function()
|
||||
Snacks.toggle({
|
||||
name = "Mini Pairs",
|
||||
get = function()
|
||||
return not vim.g.minipairs_disable
|
||||
end,
|
||||
set = function(state)
|
||||
vim.g.minipairs_disable = not state
|
||||
end,
|
||||
}):map("<leader>up")
|
||||
end)
|
||||
end)
|
||||
local pairs = require("mini.pairs")
|
||||
local open = pairs.open
|
||||
pairs.open = function(pair, neigh_pattern)
|
||||
if vim.fn.getcmdline() ~= "" then
|
||||
return open(pair, neigh_pattern)
|
||||
end
|
||||
local o, c = pair:sub(1, 1), pair:sub(2, 2)
|
||||
local line = vim.api.nvim_get_current_line()
|
||||
local cursor = vim.api.nvim_win_get_cursor(0)
|
||||
local next = line:sub(cursor[2] + 1, cursor[2] + 1)
|
||||
local before = line:sub(1, cursor[2])
|
||||
if opts.markdown and o == "`" and vim.bo.filetype == "markdown" and before:match("^%s*``") then
|
||||
return "`\n``" .. vim.api.nvim_replace_termcodes("<up>", true, true, true)
|
||||
end
|
||||
if opts.skip_next and next ~= "" and next:match(opts.skip_next) then
|
||||
return o
|
||||
end
|
||||
if opts.skip_ts and #opts.skip_ts > 0 then
|
||||
local ok, captures = pcall(vim.treesitter.get_captures_at_pos, 0, cursor[1] - 1, math.max(cursor[2] - 1, 0))
|
||||
for _, capture in ipairs(ok and captures or {}) do
|
||||
if vim.tbl_contains(opts.skip_ts, capture.capture) then
|
||||
return o
|
||||
end
|
||||
end
|
||||
end
|
||||
if opts.skip_unbalanced and next == c and c ~= o then
|
||||
local _, count_open = line:gsub(vim.pesc(pair:sub(1, 1)), "")
|
||||
local _, count_close = line:gsub(vim.pesc(pair:sub(2, 2)), "")
|
||||
if count_close > count_open then
|
||||
return o
|
||||
end
|
||||
end
|
||||
return open(pair, neigh_pattern)
|
||||
end
|
||||
end
|
||||
'';
|
||||
};
|
||||
}
|
||||
3
pkgs/nixvim/coding/ts-comments.nix
Normal file
3
pkgs/nixvim/coding/ts-comments.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{...}: {
|
||||
youthlic.plugins.ts-comments.enable = true;
|
||||
}
|
||||
13
pkgs/nixvim/editor.nix
Normal file
13
pkgs/nixvim/editor.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{...}: {
|
||||
youthlic.plugins = {
|
||||
# grug-far = {
|
||||
# enable = true;
|
||||
# };
|
||||
# flash = {
|
||||
# enable = true;
|
||||
# };
|
||||
# todo-comments = {
|
||||
# enable = true;
|
||||
# };
|
||||
};
|
||||
}
|
||||
97
pkgs/nixvim/editor/gitsigns.nix
Normal file
97
pkgs/nixvim/editor/gitsigns.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{...}: {
|
||||
youthlic.plugins.gitsigns = {
|
||||
enable = true;
|
||||
luaConfig.post =
|
||||
#lua
|
||||
''
|
||||
_M.on_load("snacks", function()
|
||||
vim.schedule(function()
|
||||
Snacks.toggle({
|
||||
name = "Git Signs",
|
||||
get = function()
|
||||
return require("gitsigns.config").config.signcolumn
|
||||
end,
|
||||
set = function(state)
|
||||
require("gitsigns").toggle_signs(state)
|
||||
end,
|
||||
}):map("<leader>uG")
|
||||
end)
|
||||
end)
|
||||
'';
|
||||
settings = {
|
||||
current_line_blame = true;
|
||||
signcolumn = true;
|
||||
numhl = true;
|
||||
linehl = false;
|
||||
signs = {
|
||||
add = {text = "┃";};
|
||||
change = {text = "┃";};
|
||||
delete = {text = "";};
|
||||
topdelete = {text = "";};
|
||||
changedelete = {text = "┃";};
|
||||
untracked = {text = "┃";};
|
||||
};
|
||||
signs_staged = {
|
||||
add = {text = "┃";};
|
||||
change = {text = "┃";};
|
||||
delete = {text = "";};
|
||||
topdelete = {text = "";};
|
||||
changedelete = {text = "┃";};
|
||||
};
|
||||
on_attach = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(buffer)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local map = function(mode, l, r, desc)
|
||||
vim.keymap.set(mode, l, r, {
|
||||
buffer = buffer,
|
||||
desc = desc,
|
||||
})
|
||||
end
|
||||
|
||||
map("n", "]h", function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal({ "]c", bang = true })
|
||||
else
|
||||
gs.nav_hunk("next")
|
||||
end
|
||||
end, "Next Hunk")
|
||||
map("n", "[h", function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal({ "[c", bang = true })
|
||||
else
|
||||
gs.nav_hunk("prev")
|
||||
end
|
||||
end, "Prev Hunk")
|
||||
map("n", "]H", function()
|
||||
gs.nav_hunk("last")
|
||||
end, "Last Hunk")
|
||||
map("n", "[H", function()
|
||||
gs.nav_hunk("first")
|
||||
end, "First Hunk")
|
||||
map({ "n", "v" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
|
||||
map({ "n", "v" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
|
||||
map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
|
||||
map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
|
||||
map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
|
||||
map("n", "<leader>ghp", gs.preview_hunk_inline, "Preview Hunk Inline")
|
||||
map("n", "<leader>ghb", function()
|
||||
gs.blame_line({ full = true })
|
||||
end, "Blame Line")
|
||||
map("n", "<leader>ghB", function()
|
||||
gs.blame()
|
||||
end, "Blame Buffer")
|
||||
map("n", "<leader>ghd", gs.diffthis, "Diff This")
|
||||
map("n", "<leader>ghD", function()
|
||||
gs.diffthis("~")
|
||||
end, "Diff This ~")
|
||||
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
30
pkgs/nixvim/editor/trouble.nix
Normal file
30
pkgs/nixvim/editor/trouble.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{...}: {
|
||||
youthlic.plugins.trouble = {
|
||||
enable = true;
|
||||
settings = {
|
||||
modes = {
|
||||
lsp = {
|
||||
win = {
|
||||
position = "right";
|
||||
};
|
||||
};
|
||||
preview_float = {
|
||||
mode = "diagnostics";
|
||||
preview = {
|
||||
type = "float";
|
||||
relative = "editor";
|
||||
border = "rounded";
|
||||
title = "Preview";
|
||||
title_pos = "center";
|
||||
position = [0 (-2)];
|
||||
size = {
|
||||
width = 0.3;
|
||||
height = 0.3;
|
||||
};
|
||||
zindex = 200;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
pkgs/nixvim/editor/which-key.nix
Normal file
17
pkgs/nixvim/editor/which-key.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{...}: {
|
||||
youthlic.plugins = {
|
||||
which-key = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preset = "helix";
|
||||
win = {
|
||||
no_overlap = false;
|
||||
};
|
||||
show_help = false;
|
||||
};
|
||||
};
|
||||
web-devicons = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
102
pkgs/nixvim/formatting.nix
Normal file
102
pkgs/nixvim/formatting.nix
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
{...}: {
|
||||
userCommands = let
|
||||
formatCmd = {
|
||||
desc = "Format all the buffer";
|
||||
# conform.format function can deal with range by itself
|
||||
range = "%";
|
||||
bang = true;
|
||||
bar = true;
|
||||
nargs = "?";
|
||||
complete = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(ArgLead, CmdLine, CursorPos)
|
||||
return vim.iter(require("conform").list_all_formatters()):filter(function(val)
|
||||
return val.available
|
||||
end):map(function(val)
|
||||
return val.name
|
||||
end):filter(function(name)
|
||||
return string.match(name, "^" .. ArgLead) ~= nil
|
||||
end):totable()
|
||||
end
|
||||
'';
|
||||
};
|
||||
command = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(opts)
|
||||
local format = require("conform").format
|
||||
if #(opts.fargs) == 0 then
|
||||
return format()
|
||||
else
|
||||
return format({ formatters = { opts.fargs[1] } })
|
||||
end
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
in {
|
||||
Format = formatCmd;
|
||||
Fmt = formatCmd;
|
||||
Formatter = {
|
||||
desc = "Show config of formatter";
|
||||
nargs = "?";
|
||||
bar = true;
|
||||
complete = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(ArgLead, CmdLine, CursorPos)
|
||||
return vim.iter(require("conform").list_all_formatters()):map(function(val)
|
||||
return val.name
|
||||
end):filter(function(name)
|
||||
return string.match(name, "^" .. ArgLead) ~= nil
|
||||
end):totable()
|
||||
end
|
||||
'';
|
||||
};
|
||||
command = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(opts)
|
||||
local conform = require("conform")
|
||||
if #(opts.fargs) == 0 then
|
||||
local formatters = conform.list_all_formatters()
|
||||
print(vim.inspect(formatters))
|
||||
return formatters
|
||||
else
|
||||
local config = conform.get_formatter_config(opts.fargs[1])
|
||||
print(vim.inspect(config))
|
||||
return config
|
||||
end
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
keymaps = [
|
||||
{
|
||||
action = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(opts)
|
||||
return require("conform").format()
|
||||
end
|
||||
'';
|
||||
};
|
||||
key = "=";
|
||||
mode = ["n" "v"];
|
||||
options = {
|
||||
desc = "Format with conform";
|
||||
};
|
||||
}
|
||||
];
|
||||
youthlic.plugins.conform-nvim = {
|
||||
enable = true;
|
||||
settings.formatters.injected.options.ignore_errors = true;
|
||||
};
|
||||
}
|
||||
1
pkgs/nixvim/keymaps.nix
Normal file
1
pkgs/nixvim/keymaps.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{...}: {}
|
||||
31
pkgs/nixvim/lang/c.nix
Normal file
31
pkgs/nixvim/lang/c.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.c = {
|
||||
__unkeyed-1 = "clang-format";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters.clang-format = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.clang-format")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("clang-format")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe' pkgs.clang-tools "clang-format"}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
31
pkgs/nixvim/lang/cxx.nix
Normal file
31
pkgs/nixvim/lang/cxx.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.cpp = {
|
||||
__unkeyed-1 = "clang-format";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters.clang-format = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.clang-format")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("clang-format")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe' pkgs.clang-tools "clang-format"}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
9
pkgs/nixvim/lang/idris2.nix
Normal file
9
pkgs/nixvim/lang/idris2.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
extraPackagesAfter = with pkgs; [idris2Packages.idris2Lsp];
|
||||
lsp.servers.idris2 = {
|
||||
enable = true;
|
||||
};
|
||||
youthlic.plugins.idris2 = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
30
pkgs/nixvim/lang/json.nix
Normal file
30
pkgs/nixvim/lang/json.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.json = {
|
||||
__unkeyed-1 = "deno_fmt";
|
||||
};
|
||||
formatters.deno_fmt = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.deno_fmt")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("deno")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.deno}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
34
pkgs/nixvim/lang/lua.nix
Normal file
34
pkgs/nixvim/lang/lua.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
lsp.servers.lua_ls = {
|
||||
enable = true;
|
||||
};
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.lua = {
|
||||
__unkeyed-1 = "stylua";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters.stylua = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.stylua")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("stylua")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.stylua}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
30
pkgs/nixvim/lang/markdown.nix
Normal file
30
pkgs/nixvim/lang/markdown.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.markdown = {
|
||||
__unkeyed-1 = "deno_fmt";
|
||||
};
|
||||
formatters.deno_fmt = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.deno_fmt")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("deno")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.deno}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
61
pkgs/nixvim/lang/nix.nix
Normal file
61
pkgs/nixvim/lang/nix.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
lsp.servers = {
|
||||
nixd = {
|
||||
enable = true;
|
||||
};
|
||||
nil_ls = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.nix = {
|
||||
__unkeyed-1 = "alejandra";
|
||||
__unkeyed-2 = "injected";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters = {
|
||||
alejandra = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.alejandra")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("alejandra")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.alejandra}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
nixfmt = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.nixfmt")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("nixfmt")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.nixfmt-rfc-style}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
53
pkgs/nixvim/lang/python.nix
Normal file
53
pkgs/nixvim/lang/python.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.python = {
|
||||
__unkeyed-1 = "ruff_format";
|
||||
__unkeyed-2 = "ruff_organize_imports";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters = {
|
||||
ruff_organize_imports = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.ruff_organize_imports")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("ruff")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.ruff}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
ruff_format = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.ruff_format")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("ruff")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.ruff}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
31
pkgs/nixvim/lang/rust.nix
Normal file
31
pkgs/nixvim/lang/rust.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.rust = {
|
||||
__unkeyed-1 = "rustfmt";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters.rustfmt = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.rustfmt")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("rustfmt")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.rustfmt}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
32
pkgs/nixvim/lang/toml.nix
Normal file
32
pkgs/nixvim/lang/toml.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.toml = {
|
||||
__unkeyed-1 = "taplo";
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
formatters.taplo = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.taplo")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("taplo")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.taplo}"
|
||||
end
|
||||
end,
|
||||
args = { "format", "-o", "reorder_keys=true", "-o", "reorder_inline_tables=true", "-" },
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
30
pkgs/nixvim/lang/yaml.nix
Normal file
30
pkgs/nixvim/lang/yaml.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
youthlic.plugins.conform-nvim.settings = {
|
||||
formatters_by_ft.yaml = {
|
||||
__unkeyed-1 = "deno_fmt";
|
||||
};
|
||||
formatters.deno_fmt = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function()
|
||||
local defaultFormatter = require("conform.formatters.deno_fmt")
|
||||
return vim.tbl_extend("force", defaultFormatter, {
|
||||
command = function()
|
||||
local exe = vim.fn["exepath"]("deno")
|
||||
if exe ~= "" then
|
||||
return exe
|
||||
else
|
||||
return "${lib.getExe pkgs.deno}"
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
1
pkgs/nixvim/linting.nix
Normal file
1
pkgs/nixvim/linting.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{...}: {}
|
||||
35
pkgs/nixvim/lsp.nix
Normal file
35
pkgs/nixvim/lsp.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{...}: {
|
||||
youthlic.plugins.lspconfig.enable = true;
|
||||
lsp = {
|
||||
inlayHints.enable = true;
|
||||
luaConfig.post =
|
||||
#lua
|
||||
''
|
||||
do
|
||||
vim.diagnostic.config({
|
||||
underline = true,
|
||||
virtual_lines = {
|
||||
current_line = true,
|
||||
},
|
||||
signs = true,
|
||||
severity_sort = true,
|
||||
float = {
|
||||
scope = "cursor",
|
||||
source = "if_many",
|
||||
},
|
||||
jump = {
|
||||
on_jump = function(diagnostic, bufnr)
|
||||
vim.diagnostic.open_float({
|
||||
scope = "cursor",
|
||||
severity_sort = true,
|
||||
source = "if_many",
|
||||
bufnr = bufnr,
|
||||
})
|
||||
end,
|
||||
wrap = true,
|
||||
},
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
}
|
||||
47
pkgs/nixvim/module.nix
Normal file
47
pkgs/nixvim/module.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic;
|
||||
in {
|
||||
options = {
|
||||
youthlic.plugins = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.submodule ({
|
||||
name,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
freeformType = lib.types.anything;
|
||||
options = {
|
||||
enable = lib.mkEnableOption "nvimPlugins.${name}";
|
||||
};
|
||||
}));
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
config = let
|
||||
enabledPlugins = lib.filterAttrs (_name: value: value.enable) cfg.plugins;
|
||||
in
|
||||
lib.mkMerge [
|
||||
{
|
||||
plugins = enabledPlugins;
|
||||
}
|
||||
{
|
||||
plugins = lib.pipe enabledPlugins [
|
||||
builtins.attrNames
|
||||
(lib.filter (name: options.plugins.${name} ? luaConfig))
|
||||
(map (name:
|
||||
lib.nameValuePair name {
|
||||
luaConfig.post =
|
||||
#lua
|
||||
''
|
||||
_M.load("${name}")
|
||||
'';
|
||||
}))
|
||||
lib.listToAttrs
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
33
pkgs/nixvim/neovide.nix
Normal file
33
pkgs/nixvim/neovide.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{...}: {
|
||||
extraConfigLua =
|
||||
#lua
|
||||
''
|
||||
if vim.g.neovide then
|
||||
vim.o.guifont = [[Maple Mono NF CN,Noto Color Emoji:h16]]
|
||||
vim.g.neovide_opacity = 0.9
|
||||
vim.g.linespace = 0.2
|
||||
vim.g.neovide_text_gamma = 0.8
|
||||
vim.g.neovide_text_contrast = 0.1
|
||||
|
||||
vim.g.neovide_floating_shadow = true
|
||||
vim.g.neovide_floating_z_height = 10
|
||||
vim.g.neovide_light_angle_degrees = 45
|
||||
vim.g.neovide_light_radius = 5
|
||||
|
||||
vim.g.neovide_position_animation_length = 0.1
|
||||
vim.g.neovide_scroll_animation_length = 0.2
|
||||
vim.g.neovide_scroll_animation_far_lines = 5
|
||||
vim.g.neovide_hide_mouse_when_typing = true
|
||||
vim.g.neovide_refresh_rate = 120
|
||||
vim.g.neovide_confirm_quit = true
|
||||
vim.g.neovide_input_ime = true
|
||||
|
||||
vim.g.neovide_cursor_animation_length = 0.1
|
||||
vim.g.neovide_cursor_short_animation_length = 0.04
|
||||
vim.g.neovide_cursor_antialiasing = true
|
||||
vim.g.neovide_cursor_animate_in_insert_mode = true
|
||||
vim.g.neovide_cursor_animate_command_line = true
|
||||
vim.g.neovide_cursor_unfocused_outline_width = 0.125
|
||||
end
|
||||
'';
|
||||
}
|
||||
77
pkgs/nixvim/options.nix
Normal file
77
pkgs/nixvim/options.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{...}: {
|
||||
globals = {
|
||||
mapleader = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
vim.keycode("<Space>")
|
||||
'';
|
||||
};
|
||||
};
|
||||
opts = {
|
||||
autoindent = true;
|
||||
autoread = true;
|
||||
backspace = ["indent" "eol" "start"];
|
||||
backup = false;
|
||||
|
||||
breakindent = true;
|
||||
breakindentopt = "sbr";
|
||||
showbreak = "↪";
|
||||
|
||||
cdhome = true;
|
||||
cedit = "<C-F>";
|
||||
cmdheight = 1;
|
||||
completeopt = ["fuzzy" "menuone" "noselect" "popup"];
|
||||
concealcursor = "v";
|
||||
confirm = true;
|
||||
cursorline = true;
|
||||
diffopt = ["algorithm:minimal" "closeoff" "context:20" "followwrap" "internal" "linematch:40"];
|
||||
errorbells = true;
|
||||
expandtab = true;
|
||||
exrc = true;
|
||||
foldcolumn = "auto";
|
||||
fsync = true;
|
||||
gdefault = false;
|
||||
helplang = ["zh" "en"];
|
||||
history = 10000;
|
||||
hlsearch = true;
|
||||
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
|
||||
inccommand = "split";
|
||||
list = true;
|
||||
listchars = "tab:--→,trail:·,multispace: ,nbsp:⍽,space:·"; # eol:⏎
|
||||
magic = true;
|
||||
more = true;
|
||||
mouse = "a";
|
||||
|
||||
number = true;
|
||||
numberwidth = 4;
|
||||
relativenumber = true;
|
||||
|
||||
scrollback = 100000;
|
||||
scrolloff = 5;
|
||||
shiftround = true;
|
||||
shiftwidth = 2;
|
||||
showmode = false;
|
||||
signcolumn = "auto";
|
||||
smoothscroll = true;
|
||||
splitbelow = true;
|
||||
splitright = true;
|
||||
startofline = true;
|
||||
swapfile = false;
|
||||
tabclose = "uselast";
|
||||
tabstop = 2;
|
||||
termguicolors = true;
|
||||
undofile = true;
|
||||
undolevels = 100000;
|
||||
virtualedit = ["block" "onemore"];
|
||||
whichwrap = "b,s,<,>";
|
||||
wildmenu = true;
|
||||
wildmode = ["full"];
|
||||
wildoptions = ["fuzzy" "pum"];
|
||||
winborder = "rounded";
|
||||
wrap = true;
|
||||
};
|
||||
}
|
||||
35
pkgs/nixvim/package.nix
Normal file
35
pkgs/nixvim/package.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
makeNixvimWithModule,
|
||||
pkgs,
|
||||
lib,
|
||||
nixvimPlugins,
|
||||
neovim_git,
|
||||
}:
|
||||
makeNixvimWithModule {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit nixvimPlugins;
|
||||
};
|
||||
module = {
|
||||
imports = with lib; youthlic.loadImports' ./. (filter (name: !hasSuffix "/package.nix" (toString name)));
|
||||
enableMan = true;
|
||||
enablePrintInit = true;
|
||||
package = neovim_git;
|
||||
performance = {
|
||||
# combinePlugins = {
|
||||
# enable = true;
|
||||
# standalonePlugins = [];
|
||||
# };
|
||||
byteCompileLua = {
|
||||
enable = true;
|
||||
configs = true;
|
||||
initLua = true;
|
||||
luaLib = true;
|
||||
nvimRuntime = true;
|
||||
plugins = true;
|
||||
};
|
||||
};
|
||||
wrapRc = true;
|
||||
luaLoader.enable = true;
|
||||
};
|
||||
}
|
||||
16
pkgs/nixvim/treesitter.nix
Normal file
16
pkgs/nixvim/treesitter.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{...}: {
|
||||
youthlic.plugins = {
|
||||
treesitter = {
|
||||
enable = true;
|
||||
# folding = true;
|
||||
nixvimInjections = true;
|
||||
settings = {
|
||||
highlight = {
|
||||
enable = true;
|
||||
additional_vim_regex_highlighting = true;
|
||||
};
|
||||
indent.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
69
pkgs/nixvim/ui/bufferline.nix
Normal file
69
pkgs/nixvim/ui/bufferline.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{...}: {
|
||||
youthlic.plugins.bufferline = {
|
||||
enable = true;
|
||||
settings = {
|
||||
options = {
|
||||
close_command = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(n)
|
||||
Snacks.bufdelete(n)
|
||||
end
|
||||
'';
|
||||
};
|
||||
right_mouse_command = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(n)
|
||||
Snacks.bufdelete(n)
|
||||
end
|
||||
'';
|
||||
};
|
||||
diagnostics = "nvim_lsp";
|
||||
always_show_bufferline = false;
|
||||
diagnostics_indicator = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(_, _, diag)
|
||||
local icons = {
|
||||
Error = " ",
|
||||
Warn = " ",
|
||||
Hint = " ",
|
||||
Info = " ",
|
||||
}
|
||||
local ret = (diag.error and icons.Error .. diag.error .. " " or "")
|
||||
.. (diag.warning and icons.Warn .. diag.warning or "")
|
||||
return vim.trim(ret)
|
||||
end
|
||||
'';
|
||||
};
|
||||
offsets = [
|
||||
{
|
||||
filetype = "neo-tree";
|
||||
text = "Neo-tree";
|
||||
highlight = "Directory";
|
||||
text_align = "left";
|
||||
}
|
||||
{
|
||||
filetype = "snacks_layout_box";
|
||||
}
|
||||
];
|
||||
get_element_icon = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(opts)
|
||||
local icons = {
|
||||
octo = "",
|
||||
}
|
||||
return icons[opts.filetype]
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
7
pkgs/nixvim/ui/colorschemes.nix
Normal file
7
pkgs/nixvim/ui/colorschemes.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{...}: {
|
||||
colorschemes.gruvbox = {
|
||||
enable = true;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
}
|
||||
21
pkgs/nixvim/ui/lualine.nix
Normal file
21
pkgs/nixvim/ui/lualine.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{...}: {
|
||||
youthlic.plugins.lualine = {
|
||||
enable = true;
|
||||
luaConfig.pre =
|
||||
#lua
|
||||
''
|
||||
do
|
||||
vim.g.lualine_laststatus = vim.o.laststatus
|
||||
if vim.fn.argc(-1) > 0 then
|
||||
vim.o.statusline = " "
|
||||
else
|
||||
vim.o.laststatus = 0
|
||||
end
|
||||
end
|
||||
do
|
||||
vim.o.laststatus = vim.g.lualine_laststatus
|
||||
end
|
||||
'';
|
||||
settings = {};
|
||||
};
|
||||
}
|
||||
38
pkgs/nixvim/util/lazy-load.nix
Normal file
38
pkgs/nixvim/util/lazy-load.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{...}: {
|
||||
extraConfigLuaPre =
|
||||
#lua
|
||||
''
|
||||
do
|
||||
_M.plugins = {}
|
||||
_M.load = function(name)
|
||||
_M.plugins = vim.tbl_deep_extend("force", _M.plugins, {
|
||||
name = {
|
||||
loaded = true,
|
||||
},
|
||||
})
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_exec_autocmds("User", { pattern = "LazyLoad", modeline = false, data = name })
|
||||
end)
|
||||
end
|
||||
_M._is_loaded = function(name)
|
||||
local plugins = _M.plugins
|
||||
return plugins[name] and plugins[name].loaded
|
||||
end
|
||||
_M.on_load = function(name, fn)
|
||||
if _M._is_loaded(name) then
|
||||
fn(name)
|
||||
else
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "LazyLoad",
|
||||
callback = function(event)
|
||||
if event.data == name then
|
||||
fn(name)
|
||||
return true
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
'';
|
||||
}
|
||||
85
pkgs/nixvim/util/snacks.nix
Normal file
85
pkgs/nixvim/util/snacks.nix
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
{...}: {
|
||||
youthlic.plugins.snacks = {
|
||||
enable = true;
|
||||
luaConfig.content =
|
||||
#lua
|
||||
''
|
||||
-- Terminal Mappings
|
||||
_M.__util_plugin_snacks_term_nav = function(direction)
|
||||
---@param self snacks.terminal
|
||||
return function(self)
|
||||
return self:is_floating() and "<c-" .. direction .. ">"
|
||||
or vim.schedule(function()
|
||||
vim.cmd.wincmd(direction)
|
||||
end)
|
||||
end
|
||||
end
|
||||
'';
|
||||
settings = {
|
||||
bigfile = {
|
||||
enabled = true;
|
||||
};
|
||||
quickfile = {
|
||||
enabled = true;
|
||||
};
|
||||
terminal = {
|
||||
win = {
|
||||
keys = {
|
||||
nav_h = {
|
||||
__unkeyed-1 = "<C-w>h";
|
||||
__unkeyed-2 = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
_M.__util_plugin_snacks_term_nav("h")
|
||||
'';
|
||||
};
|
||||
desc = "Go to Left Window";
|
||||
expr = true;
|
||||
mode = "t";
|
||||
};
|
||||
nav_j = {
|
||||
__unkeyed-1 = "<C-w>j";
|
||||
__unkeyed-2 = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
_M.__util_plugin_snacks_term_nav("j")
|
||||
'';
|
||||
};
|
||||
desc = "Go to Lower Window";
|
||||
expr = true;
|
||||
mode = "t";
|
||||
};
|
||||
nav_k = {
|
||||
__unkeyed-1 = "<C-w>k";
|
||||
__unkeyed-2 = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
_M.__util_plugin_snacks_term_nav("k")
|
||||
'';
|
||||
};
|
||||
desc = "Go to Upper Window";
|
||||
expr = true;
|
||||
mode = "t";
|
||||
};
|
||||
nav_l = {
|
||||
__unkeyed-1 = "<C-w>l";
|
||||
__unkeyed-2 = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
_M.__util_plugin_snacks_term_nav("l")
|
||||
'';
|
||||
};
|
||||
desc = "Go to Right Window";
|
||||
expr = true;
|
||||
mode = "t";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
pkgs/nixvim/util/vim-startuptime.nix
Normal file
13
pkgs/nixvim/util/vim-startuptime.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{nixvimPlugins, ...}: {
|
||||
extraPlugins = [
|
||||
{
|
||||
config =
|
||||
#vim
|
||||
''
|
||||
lua << EOF
|
||||
EOF
|
||||
'';
|
||||
plugin = nixvimPlugins.vim-startuptime;
|
||||
}
|
||||
];
|
||||
}
|
||||
11
pkgs/nixvimPlugins/vim-startuptime.nix
Normal file
11
pkgs/nixvimPlugins/vim-startuptime.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
srcs,
|
||||
vimUtils,
|
||||
}: let
|
||||
inherit (srcs.nvim_vim-startuptime) src version date;
|
||||
in
|
||||
vimUtils.buildVimPlugin {
|
||||
pname = "vim-startuptime";
|
||||
version = "0-unstable-${date}-git${version}";
|
||||
inherit src;
|
||||
}
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
[project]
|
||||
name = "python"
|
||||
version = "0.1.0"
|
||||
dependencies = ["numpy>=2.2.6"]
|
||||
description = "Add your description here"
|
||||
name = "python"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = ["numpy>=2.2.6"]
|
||||
version = "0.1.0"
|
||||
|
||||
[dependency-groups]
|
||||
dev = ["ipython>=9.2.0", "ptpython>=3.0.30"]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
requires = ["hatchling"]
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["app"]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[toolchain]
|
||||
channel = "stable"
|
||||
profile = "default"
|
||||
components = ["rust-src"]
|
||||
profile = "default"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue