oxidizing

This commit is contained in:
maxstrb 2026-03-14 21:45:57 +01:00
parent a46356a178
commit a9eadc52f3
35 changed files with 726 additions and 1223 deletions

View file

@ -1,191 +1,222 @@
{
pkgs,
inputs,
...
}: {
imports = [
inputs.nvf.homeManagerModules.default
];
programs.nvf = {
{pkgs, ...}: {
programs.helix = {
enable = true;
enableManpages = true;
settings.vim = {
extraPackages = [pkgs.netcoredbg];
settings = {
theme = "catppuccin_mocha";
luaConfigRC.netcoredbg = ''
local dap = require("dap")
dap.adapters.coreclr = {
type = "executable",
command = "${pkgs.netcoredbg}/bin/netcoredbg",
args = {"--interpreter=vscode"}
}
dap.configurations.cs = {
{
type = "coreclr",
name = "Launch",
request = "launch",
program = function()
return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/bin/Debug/", "file")
end,
},
}
'';
editor = {
# options
indent-guides.render = true;
cursorline = true;
color-modes = true;
theme = {
enable = true;
transparent = true;
name = "catppuccin";
style = "mocha";
};
lsp = {
enable = true;
null-ls.enable = false;
inlayHints.enable = true;
formatOnSave = true;
lspkind.enable = true;
lspsaga.enable = true;
trouble.enable = true;
lightbulb.enable = false;
};
debugger = {
nvim-dap = {
enable = true;
ui.enable = true;
};
};
options = {
tabstop = 2;
expandtab = false;
autoindent = true;
shiftwidth = 2;
};
clipboard = {
enable = true;
registers = "unnamedplus";
providers = {
wl-copy = {
enable = true;
package = pkgs.wl-clipboard;
};
};
};
languages = {
enableFormat = true;
enableTreesitter = true;
enableExtraDiagnostics = true;
nix.enable = true;
markdown.enable = true;
toml.enable = true;
nu.enable = true;
bash.enable = true;
typst.enable = true;
css.enable = true;
html = {
enable = true;
format.enable = true;
lsp.servers = [
"emmet-ls"
"superhtml"
];
indent = {
tab-width = 2;
unit = "\t";
};
python.enable = true;
sql.enable = false;
ts.enable = true;
zig.enable = true;
csharp = {
enable = true;
lsp.servers = ["omnisharp"];
lsp = {
display-inlay-hints = true;
display-messages = true;
};
clang.enable = true;
rust = {
enable = true;
extensions.crates-nvim.enable = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
};
visuals = {
nvim-web-devicons.enable = true;
nvim-cursorline.enable = true;
cinnamon-nvim.enable = true;
fidget-nvim.enable = true;
clipboard-provider = "wayland";
highlight-undo.enable = true;
indent-blankline.enable = true;
};
statusline = {
lualine = {
enable = true;
statusline = {
left = ["mode" "spinner" "file-name" "file-modification-indicator"];
right = ["diagnostics" "selections" "position" "file-encoding" "file-type"];
center = ["workspace-diagnostics"];
};
};
autopairs.nvim-autopairs.enable = true;
auto-pairs = true;
autocomplete = {
nvim-cmp.enable = true;
blink-cmp.enable = false;
};
snippets.luasnip.enable = true;
telescope.enable = true;
git = {
enable = true;
};
dashboard.alpha.enable = true;
notify.nvim-notify.enable = true;
projects.project-nvim.enable = true;
utility = {
ccc.enable = true;
diffview-nvim.enable = true;
icon-picker.enable = true;
surround.enable = true;
motion = {
hop.enable = true;
leap.enable = true;
};
};
comments.comment-nvim.enable = true;
ui = {
noice.enable = true;
colorizer.enable = true;
illuminate.enable = true;
fastaction.enable = true;
file-picker.hidden = false;
};
};
};
xdg.desktopEntries.nvim-foot = {
name = "Neovim (foot)";
comment = "Edit text files with Neovim in foot terminal";
icon = "nvim";
exec = "foot -e nvim %F";
categories = ["Utility" "TextEditor" "Development"];
mimeType = ["text/plain" "text/x-makefile" "application/x-shellscript"];
languages = {
language-server = {
nil = {
command = "nil";
config.nil.formatting.command = ["nixfmt"];
};
marksman = {command = "marksman";};
taplo = {
command = "taplo";
args = ["lsp" "stdio"];
};
bash-ls = {
command = "bash-language-server";
args = ["start"];
};
tinymist = {command = "tinymist";}; # typst
vscode-css = {
command = "vscode-css-language-server";
args = ["--stdio"];
};
vscode-html = {
command = "vscode-html-language-server";
args = ["--stdio"];
};
emmet-ls = {
command = "emmet-ls";
args = ["--stdio"];
};
pyright = {
command = "pyright-langserver";
args = ["--stdio"];
};
ts-ls = {
command = "typescript-language-server";
args = ["--stdio"];
};
zls = {command = "zls";};
omnisharp = {
command = "OmniSharp";
args = ["--languageserver"];
};
clangd = {command = "clangd";};
rust-analyzer = {
command = "rust-analyzer";
config.rust-analyzer = {
check.command = "clippy";
cargo.allFeatures = true;
};
};
nu = {
command = "nu";
args = ["--lsp"];
};
};
language = [
{
name = "nix";
auto-format = true;
language-servers = ["nil"];
formatter.command = "nixfmt";
}
{
name = "markdown";
auto-format = true;
language-servers = ["marksman"];
}
{
name = "toml";
auto-format = true;
language-servers = ["taplo"];
}
{
name = "nu";
language-servers = ["nu"];
}
{
name = "bash";
auto-format = true;
language-servers = ["bash-ls"];
}
{
name = "typst";
auto-format = true;
language-servers = ["tinymist"];
}
{
name = "css";
auto-format = true;
language-servers = ["vscode-css"];
}
{
name = "html";
auto-format = true;
language-servers = ["vscode-html" "emmet-ls"];
}
{
name = "python";
auto-format = true;
language-servers = ["pyright"];
}
{
name = "typescript";
auto-format = true;
language-servers = ["ts-ls"];
}
{
name = "tsx";
auto-format = true;
language-servers = ["ts-ls"];
}
{
name = "zig";
auto-format = true;
language-servers = ["zls"];
}
{
name = "c-sharp";
auto-format = true;
language-servers = ["omnisharp"];
debugger = {
name = "netcoredbg";
transport = "tcp";
command = "netcoredbg";
port-arg = "--server={port}";
templates = [
{
name = "launch";
request = "launch";
completion = [
{
name = "DLL path";
completion = "filename";
default = "bin/Debug/net8.0/App.dll";
}
];
args = {
type = "coreclr";
request = "launch";
program = "{0}";
};
}
{
name = "attach";
request = "attach";
completion = [
{
name = "PID";
completion = "pid";
}
];
args = {
type = "coreclr";
request = "attach";
processId = "{0}";
};
}
];
};
}
{
name = "c";
auto-format = true;
language-servers = ["clangd"];
}
{
name = "cpp";
auto-format = true;
language-servers = ["clangd"];
}
{
name = "rust";
auto-format = true;
language-servers = ["rust-analyzer"];
}
];
};
};
}