Initial commit
This commit is contained in:
246
modules/nvf.nix
Normal file
246
modules/nvf.nix
Normal file
@@ -0,0 +1,246 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
flake-file.inputs.nvf.url = "github:notashelf/nvf";
|
||||
|
||||
lux.nvf = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [ inputs.nvf.homeManagerModules.default ];
|
||||
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
settings.vim = {
|
||||
# extraPlugins.kanagawa = {
|
||||
# package = pkgs.vimPlugins.kanagawa-nvim;
|
||||
# setup = ''vim.cmd("colorscheme kanagawa")'';
|
||||
# };
|
||||
|
||||
augroups = [
|
||||
{
|
||||
clear = true;
|
||||
name = "highlight-yank";
|
||||
}
|
||||
];
|
||||
|
||||
autocmds = [
|
||||
{
|
||||
desc = "Highlight when yanking text";
|
||||
event = [ "TextYankPost" ];
|
||||
group = "highlight-yank";
|
||||
callback = inputs.nixpkgs.lib.generators.mkLuaInline /* lua */ ''
|
||||
function()
|
||||
vim.hl.on_yank()
|
||||
end
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
diagnostics = {
|
||||
enable = true;
|
||||
config = {
|
||||
signs = true;
|
||||
underline = true;
|
||||
virtual_text = true;
|
||||
};
|
||||
};
|
||||
|
||||
options = {
|
||||
cursorline = true;
|
||||
cursorlineopt = "both";
|
||||
splitright = true;
|
||||
splitbelow = true;
|
||||
scrolloff = 5;
|
||||
number = true;
|
||||
relativenumber = false;
|
||||
|
||||
signcolumn = "yes";
|
||||
|
||||
list = true;
|
||||
listchars = "tab:» ,trail:·,nbsp:␣";
|
||||
updatetime = 250;
|
||||
timeoutlen = 300;
|
||||
undofile = true;
|
||||
confirm = true;
|
||||
inccommand = "split";
|
||||
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
};
|
||||
|
||||
startPlugins = [ pkgs.vimPlugins.kanagawa-nvim ];
|
||||
luaConfigRC.theme-config = inputs.nvf.lib.nvim.dag.entryBefore [ "pluginConfigs" ] /* lua */ ''
|
||||
require('kanagawa').setup({
|
||||
dimInactive = true,
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme kanagawa")
|
||||
'';
|
||||
|
||||
extraPlugins.hmts = {
|
||||
package = pkgs.vimPlugins.hmts-nvim;
|
||||
};
|
||||
|
||||
languages = {
|
||||
nix = {
|
||||
enable = true;
|
||||
format.enable = true;
|
||||
treesitter.enable = true;
|
||||
extraDiagnostics.enable = true;
|
||||
|
||||
lsp.enable = true;
|
||||
lsp.servers = [ "nixd" ];
|
||||
format.type = [ "nixfmt" ];
|
||||
};
|
||||
|
||||
qml = {
|
||||
enable = true;
|
||||
format.enable = true;
|
||||
lsp.enable = true;
|
||||
treesitter.enable = true;
|
||||
};
|
||||
|
||||
python = {
|
||||
enable = true;
|
||||
format.enable = true;
|
||||
lsp.enable = true;
|
||||
treesitter.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
formatter.conform-nvim.enable = true;
|
||||
|
||||
lsp = {
|
||||
enable = true;
|
||||
formatOnSave = true;
|
||||
inlayHints.enable = true;
|
||||
lspconfig.enable = true;
|
||||
lspkind.enable = true;
|
||||
trouble.enable = true;
|
||||
|
||||
servers.nixd.settings =
|
||||
let
|
||||
flake = ''(builtins.getFlake "/home/kiri/.config/nixos")'';
|
||||
in
|
||||
{
|
||||
nixd = {
|
||||
formatting.command = [ "nixfmt" ];
|
||||
nixpkgs.expr = "import ${flake}.inputs.nixpkgs {}";
|
||||
options = {
|
||||
nixos.expr = "${flake}.nixosConfigurations.polaris.options";
|
||||
home-manager.expr = "${flake}.nixosConfigurations.polaris.options.home-manager.users.type.getSubOptions []";
|
||||
flake-parts.expr = "${flake}.debug.options";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
projects.project-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
manual_mode = false;
|
||||
};
|
||||
};
|
||||
|
||||
utility.sleuth.enable = true;
|
||||
|
||||
telescope = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
defaults = {
|
||||
color_devicons = true;
|
||||
};
|
||||
};
|
||||
extensions = [
|
||||
{
|
||||
name = "fzf";
|
||||
packages = [ pkgs.vimPlugins.telescope-fzf-native-nvim ];
|
||||
setup = {
|
||||
fzf = {
|
||||
fuzzy = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
mini = {
|
||||
ai.enable = true;
|
||||
surround.enable = true;
|
||||
files.enable = true;
|
||||
hipatterns = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
highlighters = {
|
||||
fixme = {
|
||||
pattern = "%f[%w]()FIXME()%f[%W]";
|
||||
group = "MiniHipatternsFixme";
|
||||
};
|
||||
hack = {
|
||||
pattern = "%f[%w]()HACK()%f[%W]";
|
||||
group = "MiniHipatternsHack";
|
||||
};
|
||||
todo = {
|
||||
pattern = "%f[%w]()TODO()%f[%W]";
|
||||
group = "MiniHipatternsTodo";
|
||||
};
|
||||
note = {
|
||||
pattern = "%f[%w]()NOTE()%f[%W]";
|
||||
group = "MiniHipatternsNote";
|
||||
};
|
||||
|
||||
hex_color =
|
||||
inputs.nixpkgs.lib.mkLuaInline
|
||||
/* lua */ "require('mini.hipatterns').gen_highlighter.hex_color()";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
icons.enable = true;
|
||||
indentscope.enable = true;
|
||||
indentscope.setupOpts = {
|
||||
symbol = "│";
|
||||
};
|
||||
};
|
||||
|
||||
autopairs.nvim-autopairs.enable = true;
|
||||
|
||||
ui = {
|
||||
colorful-menu-nvim.enable = true;
|
||||
};
|
||||
|
||||
luaConfigRC.mini-icons-mock = inputs.nvf.lib.nvim.dag.entryAfter [ "pluginConfigs" ] /* lua */ ''
|
||||
require('mini.icons').mock_nvim_web_devicons()
|
||||
'';
|
||||
|
||||
statusline.lualine.enable = true;
|
||||
|
||||
binds.whichKey = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
autocomplete.blink-cmp = {
|
||||
enable = true;
|
||||
mappings = {
|
||||
confirm = "<C-l>";
|
||||
next = "<C-j>";
|
||||
previous = "<C-k>";
|
||||
};
|
||||
setupOpts = {
|
||||
cmdline.keymap.preset = "inherit";
|
||||
cmdline.completion.menu.auto_show = true;
|
||||
|
||||
sources.default = [
|
||||
"lsp"
|
||||
"path"
|
||||
"snippets"
|
||||
];
|
||||
|
||||
signature.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user