126 lines
3.0 KiB
Nix
126 lines
3.0 KiB
Nix
{ self, inputs, ... }: {
|
|
flake-file.inputs = {
|
|
nvf = {
|
|
url = "github:notashelf/nvf";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
perSystem = { system, pkgs, ... }: {
|
|
packages.my-neovim = ((inputs.nvf.lib.neovimConfiguration {
|
|
inherit pkgs;
|
|
modules = [
|
|
{
|
|
# https://nvf.notashelf.dev/search.html
|
|
config.vim = {
|
|
options = {
|
|
number = true;
|
|
relativenumber = true;
|
|
expandtab = true;
|
|
shiftwidth = 4;
|
|
tabstop = 4;
|
|
softtabstop = 4;
|
|
|
|
wrap = true;
|
|
linebreak = true;
|
|
};
|
|
|
|
syntaxHighlighting = true;
|
|
|
|
# Enable custom theming options
|
|
theme.enable = true;
|
|
theme.name = "catppuccin";
|
|
theme.style = "mocha";
|
|
|
|
git = {
|
|
enable = true;
|
|
};
|
|
|
|
filetree.neo-tree = {
|
|
enable = true;
|
|
};
|
|
|
|
lazy = {
|
|
enable = true;
|
|
};
|
|
|
|
# globals = {
|
|
# SimpylFold_docstring_preview = 1;
|
|
# SimpylFold_fold_blank = 0;
|
|
# };
|
|
|
|
# extraPlugins = with pkgs.vimPlugins; {
|
|
# SimpylFold.package = SimpylFold;
|
|
# };
|
|
|
|
telescope = {
|
|
enable = true;
|
|
extensions = [
|
|
{
|
|
name = "fzf";
|
|
packages = [pkgs.vimPlugins.telescope-fzf-native-nvim];
|
|
setup = {fzf = {fuzzy = true;};};
|
|
}
|
|
];
|
|
};
|
|
|
|
# Enable Treesitter
|
|
treesitter = {
|
|
enable = true;
|
|
grammars = with pkgs.vimPlugins.nvim-treesitter-parsers; [ python ];
|
|
};
|
|
|
|
lsp.enable = true;
|
|
|
|
languages = {
|
|
enableTreesitter = true;
|
|
enableFormat = true;
|
|
|
|
markdown = {
|
|
enable = true;
|
|
extensions = {
|
|
# render-markdown-nvim.enable = true;
|
|
markview-nvim.enable = true;
|
|
};
|
|
};
|
|
|
|
bash.enable = true;
|
|
css.enable = true;
|
|
yaml.enable = true;
|
|
toml.enable = true;
|
|
|
|
nix = {
|
|
enable = true;
|
|
};
|
|
|
|
python = {
|
|
enable = true;
|
|
dap.enable = true;
|
|
format.type = [ "ruff" ];
|
|
};
|
|
};
|
|
|
|
keymaps = [
|
|
{
|
|
key = "<leader>fd";
|
|
mode = "n";
|
|
silent = false;
|
|
action = ":Telescope find_files";
|
|
}
|
|
{
|
|
key = "<C-b>";
|
|
mode = "n";
|
|
silent = true;
|
|
action = ":Neotree";
|
|
}
|
|
];
|
|
};
|
|
}
|
|
];
|
|
}).neovim).overrideAttrs (old: {
|
|
pname = "my-neovim";
|
|
version = "custom";
|
|
});
|
|
};
|
|
}
|