247 lines
6.9 KiB
Nix
247 lines
6.9 KiB
Nix
{ 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;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|