refactor: restructure

This commit is contained in:
2025-06-20 17:11:43 +02:00
parent 05b437dbf8
commit d3de8874bc
41 changed files with 212 additions and 172 deletions

View File

@@ -1,7 +1,6 @@
{
username,
osConfig,
inputs,
...
}:
{
@@ -11,9 +10,9 @@
homeDirectory = "/home/${username}";
};
imports = [
inputs.nixvim.homeManagerModules.nixvim
./programs/nixvim/presets
./programs/neovide.nix
./programs/nixvim.nix
./programs/git.nix
./packages
./programs
./services

View File

@@ -40,6 +40,13 @@ in
action.__raw = # lua
"function() vim.diagnostic.open_float(nil) end";
}
{
key = "<leader>sa";
mode = "n";
options.silent = true;
action.__raw = # lua
"require('actions-preview').code_actions";
}
{
key = "<leader>sx";
mode = "n";
@@ -67,6 +74,7 @@ in
}
];
plugins = {
actions-preview.enable = true;
lsp = {
enable = true;
inlayHints = false;
@@ -79,7 +87,6 @@ in
"<leader>si" = "lsp_implementations";
"<leader>sw" = "lsp_workspace_symbols";
"<leader>st" = "lsp_type_definitions";
"<leader>sa" = "quickfix";
};
};
inc-rename.enable = true;

View File

@@ -1,9 +1,15 @@
{ lib, pkgs, ... }:
{
lib,
pkgs,
hostname,
username,
...
}:
{
options.programs.nixvim = lib.mkOption {
type = pkgs.lib.types.submoduleWith {
specialArgs = {
inherit pkgs;
inherit pkgs hostname username;
};
modules = [
./aerial.nix

View File

@@ -0,0 +1,48 @@
{
lib,
pkgs,
hostname,
config,
...
}:
let
cfg = config.presets.languages.nix;
in
{
options.presets.languages.nix = {
enable = lib.mkEnableOption "Nix";
};
config = lib.mkIf cfg.enable {
plugins = {
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
lsp.servers = {
nixd = {
enable = true;
settings = {
nixpkgs.expr = # nix
"import (builtins.getFlake (builtins.toString ./.)).inputs.nixpkgs { }";
formatting.command = [ "nixfmt" ];
options = {
nixos.expr = # nix
"(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${hostname}.options";
home-manager.expr = # nix
"(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${hostname}.options.home-manager.users.type.getSubOptions []";
};
};
};
nil_ls = {
enable = false;
settings = {
formatting.command = [ "nixfmt" ];
nix = {
maxMemoryMB = 8192;
flake.autoEvalInputs = true;
};
};
};
};
};
extraPackages = [ pkgs.nixfmt-rfc-style ];
};
}

View File

@@ -14,8 +14,6 @@
pinentry = pkgs.pinentry-gnome3;
};
};
git = import ./git.nix;
nixvim = import ./nixvim { inherit pkgs; };
gpg.enable = true;
btop = {
enable = true;

View File

@@ -1,23 +1,26 @@
{ ... }:
{
enable = true;
userName = "Thea Schöbl";
userEmail = "dev@theaninova.de";
signing = {
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
signByDefault = true;
};
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
merge = {
tool = "nvim-mergetool";
conflictstyle = "diff3";
programs.git = {
enable = true;
userName = "Thea Schöbl";
userEmail = "dev@theaninova.de";
signing = {
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
signByDefault = true;
};
mergetool.nvim-mergetool = {
cmd = # sh
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
trustExitCode = true;
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
merge = {
tool = "nvim-mergetool";
conflictstyle = "diff3";
};
mergetool.nvim-mergetool = {
cmd = # sh
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
trustExitCode = true;
};
mergetool.prompt = false;
};
mergetool.prompt = false;
};
}

View File

@@ -0,0 +1,116 @@
{ ... }:
{
programs.nixvim = {
enable = true;
defaultEditor = true;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
expandtab = true;
smartindent = true;
signcolumn = "yes";
scrolloff = 12;
hlsearch = false;
incsearch = true;
updatetime = 50;
fillchars.eob = " ";
};
clipboard = {
register = "unnamedplus";
providers.wl-copy.enable = true;
};
globals.mapleader = ";";
presets = {
auto-save.enable = true;
auto-format.enable = true;
harpoon.enable = false;
lazygit.enable = true;
mergetool.enable = true;
trouble.enable = false;
undotree.enable = true;
aerial.enable = true;
base = {
completion = {
enable = true;
copilot = true;
};
diagnostics.enable = true;
coverage.enable = true;
find.enable = true;
formatting = {
enable = true;
prettier = true;
};
spellcheck.enable = true;
status-line.enable = true;
syntax.enable = true;
tree.enable = true;
};
languages = {
angular.enable = true;
c = {
enable = true;
};
css = {
enable = true;
stylelint = true;
};
dart.enable = true;
js = {
enable = true;
eslint = true;
npm = true;
};
lua.enable = true;
nix.enable = true;
python.enable = true;
rust.enable = true;
shell.enable = true;
svelte.enable = true;
};
remaps = {
half-page-scroll.enable = true;
no-accidental-macro.enable = true;
paste-keep-buffer.enable = true;
wrapped-line-nav.enable = true;
};
};
plugins = {
vim-surround.enable = true;
which-key.enable = true;
schemastore.enable = true;
comment.enable = true;
debugprint.enable = true;
todo-comments.enable = true;
treesitter-context = {
enable = false; # TODO: looks weird with Neovide
settings = {
line_numbers = false;
};
};
lsp.servers = {
html.enable = true;
svelte.enable = true;
dockerls.enable = true;
yamlls.enable = true;
jsonls.enable = true;
taplo.enable = true;
};
};
};
}

View File

@@ -1,115 +0,0 @@
{ pkgs }:
{
enable = true;
defaultEditor = true;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
expandtab = true;
smartindent = true;
signcolumn = "yes";
scrolloff = 12;
hlsearch = false;
incsearch = true;
updatetime = 50;
fillchars.eob = " ";
};
clipboard = {
register = "unnamedplus";
providers.wl-copy.enable = true;
};
globals.mapleader = ";";
presets = {
auto-save.enable = true;
auto-format.enable = true;
# harpoon.enable = true;
lazygit.enable = true;
mergetool.enable = true;
trouble.enable = true;
undotree.enable = true;
aerial.enable = true;
base = {
completion = {
enable = true;
copilot = true;
};
diagnostics.enable = true;
coverage.enable = true;
find.enable = true;
formatting = {
enable = true;
prettier = true;
};
spellcheck.enable = false;
status-line.enable = true;
syntax.enable = true;
tree.enable = true;
};
languages = {
angular.enable = true;
c = {
enable = true;
# cppcheck = true;
};
css = {
enable = true;
stylelint = true;
};
dart.enable = true;
js = {
enable = true;
eslint = true;
npm = true;
};
lua.enable = true;
nix.enable = true;
python.enable = true;
rust.enable = true;
shell.enable = true;
svelte.enable = true;
};
remaps = {
half-page-scroll.enable = true;
no-accidental-macro.enable = true;
paste-keep-buffer.enable = true;
wrapped-line-nav.enable = true;
};
};
plugins = {
vim-surround.enable = true;
which-key.enable = true;
schemastore.enable = true;
comment.enable = true;
debugprint.enable = true;
todo-comments.enable = true;
treesitter-context = {
enable = false; # TODO: looks weird with Neovide
settings = {
line_numbers = false;
};
};
lsp.servers = {
html.enable = true;
svelte.enable = true;
dockerls.enable = true;
yamlls.enable = true;
jsonls.enable = true;
taplo.enable = true;
};
};
}

View File

@@ -1,27 +0,0 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.presets.languages.nix;
in
{
options.presets.languages.nix = {
enable = lib.mkEnableOption "Nix";
};
config = lib.mkIf cfg.enable {
plugins = {
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
none-ls = {
enable = true;
sources.diagnostics.statix.enable = true;
};
lsp.servers.nil_ls.enable = true;
nix.enable = true;
};
extraPackages = [ pkgs.nixfmt-rfc-style ];
};
}