Compare commits

...

3 Commits

Author SHA1 Message Date
Moritz Böhme 1aa1714237
feat(nvim): add avante and split up plugins 2024-09-14 11:05:12 +02:00
Moritz Böhme 44bcf963b2
feat: add more plugins 2024-09-01 22:05:20 +02:00
Moritz Böhme f1890f15be
feat: use nixvim 2024-08-31 10:14:44 +02:00
13 changed files with 650 additions and 197 deletions

View File

@ -1,21 +1,5 @@
{
"nodes": {
"actions-preview-nvim": {
"flake": false,
"locked": {
"lastModified": 1718540350,
"narHash": "sha256-lYjsv8y1fMuTGpBF/iG7cm/a7tLdh748vJhVsSp/Iz8=",
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"rev": "9f52a01c374318e91337697ebed51c6fae57f8a4",
"type": "github"
},
"original": {
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"type": "github"
}
},
"agenix": {
"inputs": {
"darwin": "darwin",
@ -105,19 +89,19 @@
"type": "github"
}
},
"cmp-vimtex": {
"avante-nvim": {
"flake": false,
"locked": {
"lastModified": 1722941837,
"narHash": "sha256-pD2dPdpyn5A/uwonDdAxCX138yBeDqbXDdlG/IKjVTU=",
"owner": "micangl",
"repo": "cmp-vimtex",
"rev": "5283bf9108ef33d41e704027b9ef22437ce7a15b",
"lastModified": 1725237964,
"narHash": "sha256-3jwSkCHr5iaeEIjt2lz/SQl7gbrkFiJ0FjspX6Ufa88=",
"owner": "yetone",
"repo": "avante.nvim",
"rev": "d520f0933323ba982c9665d8e4fe91000ff14e99",
"type": "github"
},
"original": {
"owner": "micangl",
"repo": "cmp-vimtex",
"owner": "yetone",
"repo": "avante.nvim",
"type": "github"
}
},
@ -228,6 +212,20 @@
}
},
"flake-compat_4": {
"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_5": {
"flake": false,
"locked": {
"lastModified": 1696426674,
@ -342,19 +340,21 @@
"type": "github"
}
},
"gen-nvim": {
"flake": false,
"flake-utils_2": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1723301200,
"narHash": "sha256-Yp7HrDMOyR929AfM7IjEz4dP3RhIx9kXZ1Z3zRr5yJg=",
"owner": "David-Kunz",
"repo": "gen.nvim",
"rev": "c9a73d8c0d462333da6d2191806ff98f2884d706",
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "David-Kunz",
"repo": "gen.nvim",
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
@ -416,6 +416,36 @@
"type": "github"
}
},
"git-hooks_2": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724857454,
"narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -441,7 +471,8 @@
"gitignore_2": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixvim",
"git-hooks",
"nixpkgs"
]
},
@ -459,19 +490,24 @@
"type": "github"
}
},
"hawtkeys-nvim": {
"flake": false,
"gitignore_3": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715069568,
"narHash": "sha256-oVpWh5pVU/OMnQ8ZRgW3iNG8I0xsLJnRBvt67yPWLQ0=",
"owner": "tris203",
"repo": "hawtkeys.nvim",
"rev": "261cc311d4abdc88decceca6dc1013faa14c56ea",
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "tris203",
"repo": "hawtkeys.nvim",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
@ -787,23 +823,6 @@
"type": "github"
}
},
"neotest-python": {
"flake": false,
"locked": {
"lastModified": 1698425037,
"narHash": "sha256-C3Dw+fl1QNYU9tg0fE52EzOqeGXxu1vq5SPmDnv2LD8=",
"owner": "MoritzBoehme",
"repo": "neotest-python",
"rev": "3c09dbafb0a1e3ac8b19eabc7157ec312cc2f2ee",
"type": "github"
},
"original": {
"owner": "MoritzBoehme",
"ref": "fix-runtimepath-search",
"repo": "neotest-python",
"type": "github"
}
},
"neovim-nightly-overlay": {
"inputs": {
"flake-compat": "flake-compat",
@ -843,6 +862,27 @@
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724561770,
"narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": [
@ -863,21 +903,6 @@
"type": "github"
}
},
"nix-lazy-nvim": {
"locked": {
"lastModified": 1698421129,
"narHash": "sha256-pwpLc6SS3c4s6i2+MZa8y+JigFwAbFw69bwN8S1CYwQ=",
"ref": "refs/heads/main",
"rev": "408ab5cad386453e3cce8233b377fc95320e4637",
"revCount": 5,
"type": "git",
"url": "https://git.moritzboeh.me/moritz/NixLazy.nvim"
},
"original": {
"type": "git",
"url": "https://git.moritzboeh.me/moritz/NixLazy.nvim"
}
},
"nix-monitored": {
"inputs": {
"nixpkgs": [
@ -998,6 +1023,22 @@
"type": "github"
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1692934111,
"narHash": "sha256-9EEE59v/esKNMR5zKbLRV9NoRPYvERw5jHQOnfr47bk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1e44a037bbf4fcaba041436e65e87be88f3f495b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1723603349,
@ -1095,6 +1136,22 @@
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1724819573,
"narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1719082008,
"narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=",
@ -1110,35 +1167,35 @@
"type": "github"
}
},
"nixpkgs_9": {
"nixvim": {
"inputs": {
"devshell": [
"devshell"
],
"flake-compat": "flake-compat_4",
"flake-parts": [
"flake-parts"
],
"git-hooks": "git-hooks_2",
"home-manager": [
"home-manager"
],
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_8",
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1692934111,
"narHash": "sha256-9EEE59v/esKNMR5zKbLRV9NoRPYvERw5jHQOnfr47bk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1e44a037bbf4fcaba041436e65e87be88f3f495b",
"lastModified": 1724968633,
"narHash": "sha256-eb2NCdLwfXL1MuTAkoDncSl2lCJwyylV5/NM1Ws2P/U=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "2704133fe3ca616b22ed6685cc67180456eb4160",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"none-ls-shellcheck-nvim": {
"flake": false,
"locked": {
"lastModified": 1710845791,
"narHash": "sha256-t06Nu7wVEGoJtaaZh/psvuC9kdYhwh6JeOd0cg3WVHY=",
"owner": "gbprod",
"repo": "none-ls-shellcheck.nvim",
"rev": "0f84461241e76e376a95fb7391deac82dc3efdbf",
"type": "github"
},
"original": {
"owner": "gbprod",
"repo": "none-ls-shellcheck.nvim",
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
@ -1157,27 +1214,33 @@
"type": "github"
}
},
"nvim-lspconfig": {
"flake": false,
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1723788573,
"narHash": "sha256-y64E6q6bB0kzJzxHnOYWjCZW5tpBTzhAVs/lvpmOpU0=",
"owner": "neovim",
"repo": "nvim-lspconfig",
"rev": "a89de2e049b5f89a0ee55029d5a31213bd4de6f8",
"lastModified": 1724584782,
"narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=",
"owner": "NuschtOS",
"repo": "search",
"rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087",
"type": "github"
},
"original": {
"owner": "neovim",
"repo": "nvim-lspconfig",
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore_2",
"nixpkgs": "nixpkgs_8",
"flake-compat": "flake-compat_5",
"gitignore": "gitignore_3",
"nixpkgs": "nixpkgs_9",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
@ -1214,56 +1277,32 @@
},
"root": {
"inputs": {
"actions-preview-nvim": "actions-preview-nvim",
"agenix": "agenix",
"arkenfox-userjs": "arkenfox-userjs",
"asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver",
"cmp-vimtex": "cmp-vimtex",
"avante-nvim": "avante-nvim",
"devshell": "devshell",
"disko": "disko",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils",
"gen-nvim": "gen-nvim",
"hawtkeys-nvim": "hawtkeys-nvim",
"home-manager": "home-manager_2",
"hypr-contrib": "hypr-contrib",
"hyprland": "hyprland",
"impermanence": "impermanence",
"master": "master",
"neotest-python": "neotest-python",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nix-index-database": "nix-index-database",
"nix-lazy-nvim": "nix-lazy-nvim",
"nix-monitored": "nix-monitored",
"nix-super": "nix-super",
"nixpkgs": "nixpkgs_7",
"none-ls-shellcheck-nvim": "none-ls-shellcheck-nvim",
"nixvim": "nixvim",
"nur": "nur",
"nvim-lspconfig": "nvim-lspconfig",
"pre-commit-hooks": "pre-commit-hooks",
"river": "river",
"smartcolumn-nvim": "smartcolumn-nvim",
"stable": "stable",
"telekasten-nvim": "telekasten-nvim",
"timers": "timers"
}
},
"smartcolumn-nvim": {
"flake": false,
"locked": {
"lastModified": 1710067624,
"narHash": "sha256-DHIeDNUF9n9s14GVeojIwc5QUPwJMYYl3gRvhvO/rdE=",
"owner": "m4xshen",
"repo": "smartcolumn.nvim",
"rev": "cefb17be095ad5526030a21bb2a80553cae09127",
"type": "github"
},
"original": {
"owner": "m4xshen",
"repo": "smartcolumn.nvim",
"type": "github"
}
},
"stable": {
"locked": {
"lastModified": 1723688146,
@ -1340,26 +1379,25 @@
"type": "github"
}
},
"telekasten-nvim": {
"flake": false,
"systems_5": {
"locked": {
"lastModified": 1713773667,
"narHash": "sha256-RsxzOa9bQMKB6LRyo4Vc9hxIJGJ35NSBrLdEi2BSaBU=",
"owner": "renerocksai",
"repo": "telekasten.nvim",
"rev": "319276a7853ff996b7bb1ed4250d8047c84ad29d",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "renerocksai",
"repo": "telekasten.nvim",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"timers": {
"inputs": {
"naersk": "naersk",
"nixpkgs": "nixpkgs_9",
"nixpkgs": "nixpkgs_10",
"utils": "utils"
},
"locked": {
@ -1376,9 +1414,30 @@
"url": "https://gitea.moritzboeh.me/moritz/timers.git"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724833132,
"narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "3ffd842a5f50f435d3e603312eefa4790db46af5",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_4"
"systems": "systems_5"
},
"locked": {
"lastModified": 1692799911,

View File

@ -27,26 +27,14 @@
timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git";
# Neovim
actions-preview-nvim.flake = false;
actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim";
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
nix-lazy-nvim.url = "git+https://git.moritzboeh.me/moritz/NixLazy.nvim";
nvim-lspconfig.flake = false;
nvim-lspconfig.url = "github:neovim/nvim-lspconfig";
smartcolumn-nvim.flake = false;
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim";
telekasten-nvim.flake = false;
telekasten-nvim.url = "github:renerocksai/telekasten.nvim";
neotest-python.flake = false;
neotest-python.url = "github:MoritzBoehme/neotest-python/fix-runtimepath-search";
gen-nvim.flake = false;
gen-nvim.url = "github:David-Kunz/gen.nvim";
hawtkeys-nvim.flake = false;
hawtkeys-nvim.url = "github:tris203/hawtkeys.nvim";
none-ls-shellcheck-nvim.flake = false;
none-ls-shellcheck-nvim.url = "github:gbprod/none-ls-shellcheck.nvim";
cmp-vimtex.flake = false;
cmp-vimtex.url = "github:micangl/cmp-vimtex";
avante-nvim.flake = false;
avante-nvim.url = "github:yetone/avante.nvim";
nixvim.url = "github:nix-community/nixvim";
nixvim.inputs.devshell.follows = "devshell";
nixvim.inputs.flake-parts.follows = "flake-parts";
nixvim.inputs.home-manager.follows = "home-manager";
# river
river.url = "git+https://github.com/riverwm/river?submodules=1";
@ -116,6 +104,7 @@
packages = with pkgs; [
stylua
sumneko-lua-language-server
nixpkgs-fmt
];
};
@ -153,7 +142,9 @@
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = { inherit inputs self; };
sharedModules = [ inputs.nix-lazy-nvim.homeManagerModules.default ];
sharedModules = [
inputs.nixvim.homeManagerModules.nixvim
];
};
}
inputs.agenix.nixosModules.age

View File

@ -6,7 +6,7 @@ let
cfg = config.my.programs.nvim;
in
{
imports = lib.my.listModulesRec ./plugins;
imports = lib.my.listModulesRec ./new_plugins;
options.my.programs.nvim.enable = mkEnableOption "nvim";
@ -21,36 +21,45 @@ in
xdotool # for vimtex
];
programs.neovim = {
# programs.neovim = {
# extraPackages = with pkgs;
# [
# alejandra
# checkmake
# codespell
# deadnix
# dotenv-linter
# fish
# jq
# nil
# nixd
# nixpkgs-fmt
# nodePackages.bash-language-server
# python3Packages.python-lsp-server
# shellcheck
# shfmt
# stable.yamlfix
# statix
# taplo
# yamllint
# ];
# };
programs.nixvim = {
enable = true;
package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
withPython3 = true;
extraPackages = with pkgs;
[
alejandra
checkmake
codespell
deadnix
dotenv-linter
fish
jq
nil
nixd
nixpkgs-fmt
nodePackages.bash-language-server
python3Packages.python-lsp-server
shellcheck
shfmt
stable.yamlfix
statix
taplo
yamllint
];
extraLuaConfig = readFile ./options.lua;
lazy.enable = true;
extraConfigLuaPre = readFile ./options.lua;
performance = {
byteCompileLua = {
enable = true;
configs = true;
initLua = true;
nvimRuntime = true;
plugins = true;
};
combinePlugins.enable = true;
};
};
};
};

View File

@ -0,0 +1,15 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
colorschemes.catppuccin = {
enable = true;
settings.flavour = "macchiato";
};
};
}

View File

@ -0,0 +1,68 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.cmp = {
autoEnableSources = true;
enable = true;
settings.sources = [
{ priority = 1; name = "async_path"; }
{ priority = 1; name = "buffer"; }
{ priority = 2; name = "nvim_lsp"; }
{ priority = 3; name = "nvim_lsp_signature_help"; }
{ priority = 4; name = "luasnip"; }
{ priority = 4; name = "vimtex"; }
];
settings.mapping = {
__raw = ''
cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
elseif require("luasnip").locally_jumpable(1) then
require("luasnip").jump(1)
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select })
elseif require("luasnip").locally_jumpable(-1) then
require("luasnip").jump(-1)
else
fallback()
end
end, { "i", "s" }),
["<C-n>"] = cmp.mapping(function(fallback)
if require("luasnip").choice_active() then
require("luasnip").change_choice(1)
elseif require("luasnip").locally_jumpable(1) then
require("luasnip").jump(1)
else
fallback()
end
end, { "i", "s" }),
["<C-p>"] = cmp.mapping(function(fallback)
if require("luasnip").choice_active() then
require("luasnip").change_choice(-1)
elseif require("luasnip").locally_jumpable(-1) then
require("luasnip").jump(-1)
else
fallback()
end
end, { "i", "s" }),
})
'';
};
};
};
}

View File

@ -0,0 +1,31 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.lsp = {
enable = true;
inlayHints = true;
servers.nil-ls.enable = true;
servers.nixd.enable = true;
servers.nixd.extraOptions.settings.nixd = {
nixpkgs = {
expr = "import <nixpkgs> { }";
};
options = {
nixos = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.nixos-desktop.options'';
};
"flake-parts" = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options'';
};
"flake-parts2" = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).currentSystem.options'';
};
};
};
};
};
}

View File

@ -0,0 +1,42 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.lspsaga = {
enable = true;
codeAction.keys.quit = "<esc>";
lightbulb.virtualText = false;
};
keymapsOnEvents = {
LspAttach = [
{
key = "<leader>cc";
action = "<cmd>Lspsaga code_action<cr>";
options.desc = "Code Action";
options.buffer = true;
}
{
key = "gd";
action = "<cmd>Lspsaga goto_definition<cr>";
options.desc = "Goto Definition";
options.buffer = true;
}
{
key = "<leader>cr";
action = "<cmd>Lspsaga rename<cr>";
options.desc = "Rename";
options.buffer = true;
}
{
key = "K";
action = "<cmd>Lspsaga hover_doc<cr>";
options.desc = "Hover";
options.buffer = true;
}
];
};
};
}

View File

@ -0,0 +1,10 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.lualine.enable = true;
};
}

View File

@ -0,0 +1,27 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.luasnip = {
enable = true;
settings = {
history = true;
update_events = "TextChanged,TextChangedI";
delete_check_events = "TextChanged";
ext_opts.__raw = ''
{
[require("luasnip.util.types").choiceNode] = {
active = {
virt_text = { { "<--", "Error" } },
},
},
}
'';
ft_func.__raw = ''require("luasnip.extras.filetype_functions").from_pos_or_filetype'';
};
};
};
}

View File

@ -0,0 +1,10 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.nvim-ufo.enable = true;
};
}

View File

@ -0,0 +1,171 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz = {
programs.nixvim = lib.mkMerge [
{ plugins.which-key.enable = true; }
{ plugins.lastplace.enable = true; }
{ plugins.comment.enable = true; }
{ plugins.ts-context-commentstring.enable = true; }
{
plugins.vimtex = {
enable = true;
settings.view_method = "zathura";
};
}
{
plugins.todo-comments = {
enable = true;
keymaps.todoTelescope.key = "<leader>fc";
};
}
{
plugins.conform-nvim = {
enable = true;
settings.formatters_by_ft = {
"*" = [ "codespell" "trim_whitespace" ];
elixir = [ "mix" ];
gleam = [ "gleam" ];
go = [ "gofmt" ];
json = [ "jq" ];
lua = [ "stylua" ];
nix.__raw = ''{ "nixpkgs_fmt", "alejandra", stop_after_first=true }'';
python.__raw = ''
function(bufnr)
return { first("ruff_organize_imports", "isort"), first("ruff_format", "black")}
end
'';
rust = [ "rustfmt" ];
sh = [ "shfmt" ];
tex = [ "latexindent" ];
toml = [ "taplo" ];
yaml = [ "yamlfix" ];
};
};
opts.formatexpr = "v:lua.require'conform'.formatexpr()";
extraConfigLuaPre = ''
---@param bufnr integer
---@param ... string
---@return string
local function first(bufnr, ...)
local conform = require("conform")
for i = 1, select("#", ...) do
local formatter = select(i, ...)
if conform.get_formatter_info(formatter, bufnr).available then
return formatter
end
end
return select(1, ...)
end
vim.api.nvim_create_user_command("Format", function(opts)
require("conform").format({ formatters = opts.fargs })
end, {
nargs = "+",
complete = function()
local formatters_by_ft = require("conform").formatters_by_ft
local names = formatters_by_ft[vim.bo.filetype] or formatters_by_ft["_"] or {}
names = vim.list_extend(names, formatters_by_ft["*"] or {})
names = vim.tbl_flatten(names)
local formatters = vim.tbl_map(require("conform").get_formatter_info, names)
formatters = vim.tbl_filter(function(formatter)
return formatter.available
end, formatters)
return vim.tbl_map(function(formatter_info)
return formatter_info.name
end, formatters)
end,
})
'';
performance.combinePlugins.standalonePlugins = [
"conform.nvim"
];
keymaps = [
{ key = "<leader>cf"; action.__raw = ''function() require("conform").format() end''; options.desc = "Format current file"; }
];
}
{
keymaps = [
{ key = "<esc>"; action = "<cmd>noh<cr><esc>"; options.desc = "Escape and clear hlsearch"; mode = [ "i" "n" ]; }
];
}
{ plugins.oil.enable = true; }
{
plugins.telescope = {
enable = true;
extensions.fzf-native.enable = true;
keymaps = {
"<leader>ff" = {
action = "find_files";
options.desc = "Find files";
};
"<leader>fb" = {
action = "buffers";
options.desc = "Find buffers";
};
"<leader>fl" = {
action = "current_buffer_fuzzy_find";
options.desc = "Search lines";
};
"<leader>fg" = {
action = "live_grep";
options.desc = "Live grep";
};
"<leader>fh" = {
action = "help_tags";
options.desc = "Help tags";
};
"<leader>fr" = {
action = "oldfiles";
options.desc = "Recent files";
};
};
};
}
{ plugins.nvim-autopairs.enable = true; }
{ plugins.surround.enable = true; }
{
plugins.lint.enable = true;
# TODO: add linters
plugins.lint.lintersByFt = { };
}
{
plugins.marks.enable = true;
plugins.marks.defaultMappings = false;
}
{
plugins.hmts.enable = true;
performance.combinePlugins.standalonePlugins = [ "hmts.nvim" ];
}
{ plugins.gitsigns.enable = true; }
{ plugins.fugitive.enable = true; }
{ plugins.friendly-snippets.enable = true; }
{ plugins.direnv.enable = true; }
{ plugins.crates-nvim.enable = true; }
{
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {
pname = "avante.nvim";
src = inputs.avante-nvim;
version = lib.my.mkVersionInput inputs.avante-nvim;
})
pkgs.vimPlugins.nui-nvim
];
extraConfigLuaPost = ''
require("avante").setup({
provider = "copilot",
auto_suggestions_provider = "copilot",
})
'';
plugins.copilot-lua.enable = true;
plugins.copilot-lua.suggestion.enabled = false;
plugins.copilot-lua.panel.enabled = false;
plugins.dressing.enable = true;
performance.combinePlugins.standalonePlugins = [ "copilot.lua" ];
}
];
};
}

View File

@ -0,0 +1,19 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.treesitter = {
enable = true;
folding = true;
nixvimInjections = true;
settings.indent.enable = true;
settings.highlight.enable = true;
};
performance.combinePlugins.standalonePlugins = [
"nvim-treesitter"
];
};
}

View File

@ -23,6 +23,7 @@ vim.opt.termguicolors = true
vim.opt.undofile = true
vim.opt.undolevels = 10000
vim.opt.updatetime = 300
vim.opt.foldlevel = 99
vim.opt_local.spell = true
vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling