You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
4.8 KiB
Nix
172 lines
4.8 KiB
Nix
{ ... }:
|
|
|
|
{
|
|
programs.nixvim = {
|
|
enable = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
withNodeJs = true;
|
|
withRuby = true;
|
|
|
|
colorschemes.catppuccin.enable = true;
|
|
colorschemes.catppuccin.settings.transparent_background = true;
|
|
colorschemes.catppuccin.settings.flavour = "auto";
|
|
|
|
opts = {
|
|
number = true;
|
|
ignorecase = true;
|
|
smartcase = true;
|
|
|
|
tabstop = 4;
|
|
shiftwidth = 4;
|
|
softtabstop = 0;
|
|
expandtab = true;
|
|
smarttab = true;
|
|
|
|
clipboard = "unnamedplus";
|
|
};
|
|
|
|
globals = {
|
|
mapleader = " ";
|
|
maplocalleader = " ";
|
|
};
|
|
|
|
autoCmd = [
|
|
{
|
|
event = [ "BufRead" "BufNewFile" ];
|
|
pattern = [ "*.cg" ];
|
|
command = "setlocal tabstop=2 shiftwidth=2";
|
|
}
|
|
];
|
|
|
|
keymaps = [
|
|
{ key = "<leader>e"; action = "<cmd>Neotree toggle<cr>"; }
|
|
{ key = "<leader>f"; action = "<cmd>Tv files<cr>"; }
|
|
{ key = "<leader>/"; action = "<cmd>Tv text<cr>"; }
|
|
{ key = "<leader>bd"; action = "<cmd>bdelete<cr>"; }
|
|
{ key = "<leader>nd"; action = "<cmd>NoiceDismiss<cr>"; }
|
|
{ key = "<leader>xx"; action = "<cmd>Trouble diagnostics toggle<cr>"; }
|
|
{ key = "<S-l>"; action = "<cmd>bnext<cr>"; }
|
|
{ key = "<S-h>"; action = "<cmd>bprev<cr>"; }
|
|
{ key = "s"; mode = [ "n" "x" "o" ]; action.__raw = "function() require('flash').jump() end"; options.desc = "Flash"; }
|
|
{ key = "S"; mode = [ "n" "x" "o" ]; action.__raw = "function() require('flash').treesitter() end"; options.desc = "Flash Treesitter"; }
|
|
];
|
|
|
|
plugins = {
|
|
# avante.enable = true;
|
|
bufferline.enable = true;
|
|
cmp = {
|
|
enable = true;
|
|
autoEnableSources = true;
|
|
settings = {
|
|
sources = [
|
|
{ name = "nvim_lsp"; }
|
|
{ name = "path"; }
|
|
{ name = "buffer"; }
|
|
];
|
|
mapping = {
|
|
"<Tab>" = "cmp.mapping.select_next_item()";
|
|
"<S-Tab>" = "cmp.mapping.select_prev_item()";
|
|
"<CR>" = "cmp.mapping.confirm({ select = false })";
|
|
"<C-e>" = "cmp.mapping.abort()";
|
|
};
|
|
};
|
|
};
|
|
cmp-nvim-lsp.enable = true;
|
|
cmp-buffer.enable = true;
|
|
cmp-path.enable = true;
|
|
codecompanion = {
|
|
enable = true;
|
|
settings = {
|
|
strategies = {
|
|
chat = { adapter = "claude_code"; };
|
|
inline = { adapter = "claude_code"; };
|
|
};
|
|
};
|
|
};
|
|
commentary.enable = true;
|
|
csvview.enable = true;
|
|
dashboard.enable = true;
|
|
emmet.enable = true;
|
|
flash = {
|
|
enable = true;
|
|
settings.jump.autojump = true;
|
|
settings.modes.search.enabled = true;
|
|
};
|
|
gitsigns.enable = true;
|
|
lazygit.enable = true;
|
|
lint.enable = true;
|
|
lualine.enable = true;
|
|
luasnip.enable = true;
|
|
lsp = {
|
|
enable = true;
|
|
inlayHints = true;
|
|
servers = {
|
|
eslint.enable = true;
|
|
elixirls.enable = true;
|
|
html.enable = true;
|
|
lua_ls.enable = true;
|
|
nil_ls.enable = true;
|
|
# phpactor.enable = true;
|
|
intelephense.enable = true;
|
|
intelephense.package = null;
|
|
# rust-analyzer.enable = true;
|
|
ts_ls.enable = true;
|
|
roc_ls.enable = true;
|
|
roc_ls.package = null;
|
|
};
|
|
};
|
|
none-ls = {
|
|
enable = true;
|
|
sources.formatting.blade_formatter.enable = true;
|
|
sources.formatting.blade_formatter.package = null;
|
|
};
|
|
# lsp-format.enable = true;
|
|
lsp-lines.enable = true;
|
|
# markview.enable = true;
|
|
neo-tree.enable = true;
|
|
notify.enable = true;
|
|
nix.enable = true;
|
|
noice.enable = true;
|
|
nvim-autopairs.enable = true;
|
|
orgmode = {
|
|
enable = true;
|
|
settings.org_agenda_files = "~/Sync/Notes/*";
|
|
settings.org_default_notes_file = "~/Sync/Notes/Main.org";
|
|
};
|
|
persistence.enable = true;
|
|
vim-surround.enable = true;
|
|
tmux-navigator.enable = true;
|
|
todo-comments.enable = true;
|
|
treesitter.enable = true;
|
|
trim = {
|
|
enable = true;
|
|
settings = {
|
|
highlight = true;
|
|
trim_on_write = false;
|
|
};
|
|
};
|
|
trouble.enable = true;
|
|
ts-autotag.enable = true;
|
|
tv.enable = true;
|
|
web-devicons.enable = true;
|
|
which-key.enable = true;
|
|
};
|
|
|
|
# extraPlugins = [(pkgs.vimUtils.buildVimPlugin {
|
|
# name = "vim-lumen";
|
|
# src = pkgs.fetchFromGitHub {
|
|
# owner = "f-person";
|
|
# repo = "auto-dark-mode.nvim";
|
|
# rev = "4531f8b2b09ed8f0b8875a706419f9cecda1d969";
|
|
# hash = "sha256-JPoyRRwDJ9KOGWnqOEG4VkEX4rJHFhFYV3bwS9F2f9E=";
|
|
# };
|
|
# })];
|
|
|
|
# extraConfigLua = ''
|
|
# local auto_dark_mode = require('auto-dark-mode')
|
|
# auto_dark_mode.setup()
|
|
# '';
|
|
};
|
|
}
|