nix-config/modules/home-manager/coding/neovim/default.nix

88 lines
1.7 KiB
Nix

{
config,
inputs,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.coding.neovim;
in
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
];
options.coding.neovim.enable = mkEnableOption "Enable neovim";
config = mkIf cfg.enable {
programs.nixvim = {
enable = true;
# TODO: re-add DAP.
# TODO: re-add snippets.
# TODO: re-configure spell.
viAlias = true;
vimAlias = true;
imports = [
./keymaps.nix
./options.nix
./plugins/cmp.nix
./plugins/conform.nix
./plugins/fidget.nix
./plugins/fugitive.nix
./plugins/gitsigns.nix
./plugins/harpoon.nix
./plugins/lint.nix
./plugins/lsp.nix
./plugins/lualine.nix
./plugins/luasnip.nix
./plugins/mini.nix
./plugins/nvim-autopairs.nix
./plugins/oil.nix
./plugins/phpactor.nix
./plugins/refactoring.nix
./plugins/telescope.nix
./plugins/treesitter.nix
./plugins/undotree.nix
./plugins/vim-dadbod.nix
./plugins/vim-highlightedyank.nix
./plugins/vim-test.nix
./plugins/web-devicons.nix
];
colorschemes.catppuccin = {
enable = true;
settings.flavour = "mocha";
};
extraPackages = with pkgs; [
nixfmt-rfc-style
stylua
];
filetype = {
extension = {
"neon.dist" = "yaml";
inc = "php";
install = "php";
module = "php";
neon = "yaml";
pcss = "scss";
theme = "php";
};
filename = {
"composer.lock" = "json";
};
};
globals.mapleader = " ";
};
};
}