chore: Reorganize neovim

This commit is contained in:
uttarayan21
2025-01-28 20:43:25 +05:30
parent fd38f95f08
commit 22fafbd513
3 changed files with 151 additions and 152 deletions

View File

@@ -337,6 +337,7 @@ in {
aichat = { aichat = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
enableNushellIntegration = false;
settings = { settings = {
save_session = true; save_session = true;
model = "openai:gpt-4o"; model = "openai:gpt-4o";

View File

@@ -29,7 +29,7 @@ with lib; let
$env.config.keybindings = ($env.config.keybindings | append { $env.config.keybindings = ($env.config.keybindings | append {
name: aichat_integration name: aichat_integration
modifier: control modifier: control
keycode: char_o keycode: char_g
mode: [emacs, vi_insert] mode: [emacs, vi_insert]
event:[ event:[
{ {

View File

@@ -25,6 +25,115 @@
''; '';
}; };
in { in {
opts = {
completeopt = "menu,menuone,popup,noselect";
expandtab = true;
foldenable = true;
foldlevel = 99;
foldlevelstart = 99;
hidden = true;
number = true;
relativenumber = true;
shell = "sh";
shiftwidth = 4;
signcolumn = "yes";
smartcase = true;
softtabstop = 4;
tabstop = 4;
termguicolors = true;
undofile = true;
viewoptions = "cursor,folds";
wrap = true;
};
globals = {
mapleader = " ";
localleader = " ";
};
colorschemes = {
catppuccin = {
enable = true;
settings.flavour = "mocha";
};
};
keymaps = mkMappings {
normal = {
"<C-l>" = "[[<cmd>Outline<cr>]]";
"<C-w>\"" = "[[<cmd>split<cr>]]";
"<C-w>%" = "[[<cmd>vsplit<cr>]]";
"gh" = "[[<cmd>Octo actions<cr>]]";
"<leader>\"" = ''[["+]]'';
"<C-c>" = "[[<cmd>ChatGPT<cr>]]";
"<leader>dr" = "[[<cmd>RustLsp debuggables<cr>]]";
"<leader>ee" = "[[<cmd>Rest run<cr>]]";
"<leader>el" = "[[<cmd>Rest run last<cr>]]";
"<leader>hh" = "[[<cmd>DevdocsOpen<cr>]]";
"<leader>hl" = "[[<cmd>DevdocsToggle<cr>]]";
"<leader><leader>" = "'<c-^>'";
"<leader>n" = "[[<cmd>bnext<cr>]]";
"<leader>o" = "[[<cmd>Trouble diagnostics<cr>]]";
"<leader>p" = "[[<cmd>bprev<cr>]]";
"<leader>q" = "[[<cmd>bw<cr>]]";
"<leader>mm" = "[[<cmd>Neorg<cr>]]";
"vff" = "[[<cmd>vertical Gdiffsplit<cr>]]";
"<leader>rr" = "vim.lsp.buf.rename";
"<C-k>" = "vim.lsp.buf.definition";
"<C-\\>" = "require('FTerm').toggle";
# "F" = "function() vim.lsp.buf.format({ async = true }) end";
"F" = "require('conform').format";
"gi" = "require'telescope.builtin'.lsp_references";
"<leader>a" = "vim.lsp.buf.code_action";
"<leader>bb" = "require'dap'.toggle_breakpoint";
"<leader>du" = "require'dapui'.toggle";
"<leader>fb" = "require'telescope'.extensions.file_browser.file_browser";
"<leader>fg" = "require'yazi'.yazi";
"<leader>ff" = "require'telescope.builtin'.find_files";
"<leader>gg" = "require'telescope.builtin'.live_grep";
"<leader>;" = "require'telescope.builtin'.buffers";
"zR" = "require'ufo'.openAllFolds";
"zM" = "require'ufo'.closeAllFolds";
# Emulate tmux bindings with prefix <C-q> and tabs
"<C-q><C-q>" = "[[g<Tab>]]";
"<C-q>c" = "[[<cmd>tabnew<cr>]]";
"<C-q>x" = "[[<cmd>tabclose<cr>]]";
"<C-q>n" = "[[<cmd>tabnext<cr>]]";
"<C-q>p" = "[[<cmd>tabprevious<cr>]]";
};
terminal = {
"<C-\\>" = "require('FTerm').toggle";
};
insert = {
"<C-\\>" = "require('FTerm').toggle";
};
visual = {
"L" = "[[:'<,'>!sort -u<cr>]]";
};
};
autoCmd = [
{
event = ["BufEnter" "BufWinEnter"];
pattern = "*.norg";
command = "set conceallevel=3";
}
# {
# event = ["BufEnter" "BufWinEnter"];
# pattern = "*.sql";
# command = "nnoremap <buffer> F :Sqlfmt<cr>";
# }
{
event = ["BufWinLeave"];
pattern = "?*";
command = "mkview!";
}
{
event = ["BufWinEnter"];
pattern = "?*";
command = "silent! loadview!";
}
];
plugins = { plugins = {
fugitive.enable = true; fugitive.enable = true;
gitsigns.enable = true; gitsigns.enable = true;
@@ -294,7 +403,7 @@ in {
}; };
}; };
rustaceanvim = { rustaceanvim = {
enable = false; enable = true;
settings = { settings = {
server = { server = {
default_settings = { default_settings = {
@@ -307,12 +416,12 @@ in {
}; };
files = { files = {
excludeDirs = [ excludeDirs = [
".cargo" ".cargo/"
".direnv" ".direnv/"
".git" ".git/"
".vcpkg" ".vcpkg/"
"node_modules" "node_modules/"
"target" "target/"
]; ];
}; };
diagnostics = { diagnostics = {
@@ -379,40 +488,40 @@ in {
sqls.enable = true; sqls.enable = true;
pyright.enable = true; pyright.enable = true;
slint_lsp.enable = true; slint_lsp.enable = true;
rust_analyzer = { # rust_analyzer = {
enable = true; # enable = false;
package = null; # package = null;
installCargo = false; # installCargo = false;
installRustc = false; # installRustc = false;
settings = { # settings = {
inlayHints = { # inlayHints = {
genericParameterHints = { # genericParameterHints = {
lifetime.enable = true; # lifetime.enable = true;
}; # };
# implicitDrops.enable = true; # # implicitDrops.enable = true;
}; # };
files = { # files = {
excludeDirs = [ # excludeDirs = [
".cargo" # ".cargo"
".direnv" # ".direnv"
".git" # ".git"
".vcpkg" # ".vcpkg"
"node_modules" # "node_modules"
"target" # "target"
]; # ];
}; # };
diagnostics = { # diagnostics = {
enable = true; # enable = true;
styleLints.enable = true; # styleLints.enable = true;
}; # };
checkOnSave = true; # checkOnSave = true;
check = { # check = {
command = "check"; # command = "check";
features = "all"; # features = "all";
}; # };
}; # };
}; # };
}; };
onAttach = onAttach =
/* /*
@@ -483,95 +592,6 @@ in {
}; };
}; };
}; };
globals = {
mapleader = " ";
localleader = " ";
};
colorschemes = {
catppuccin = {
enable = true;
settings.flavour = "mocha";
};
};
keymaps = mkMappings {
normal = {
"<C-l>" = "[[<cmd>Outline<cr>]]";
"<C-w>\"" = "[[<cmd>split<cr>]]";
"<C-w>%" = "[[<cmd>vsplit<cr>]]";
"gh" = "[[<cmd>Octo actions<cr>]]";
"<leader>\"" = ''[["+]]'';
"<C-c>" = "[[<cmd>ChatGPT<cr>]]";
"<leader>dr" = "[[<cmd>RustLsp debuggables<cr>]]";
"<leader>ee" = "[[<cmd>Rest run<cr>]]";
"<leader>el" = "[[<cmd>Rest run last<cr>]]";
"<leader>hh" = "[[<cmd>DevdocsOpen<cr>]]";
"<leader>hl" = "[[<cmd>DevdocsToggle<cr>]]";
"<leader><leader>" = "'<c-^>'";
"<leader>n" = "[[<cmd>bnext<cr>]]";
"<leader>o" = "[[<cmd>Trouble diagnostics<cr>]]";
"<leader>p" = "[[<cmd>bprev<cr>]]";
"<leader>q" = "[[<cmd>bw<cr>]]";
"<leader>mm" = "[[<cmd>Neorg<cr>]]";
"vff" = "[[<cmd>vertical Gdiffsplit<cr>]]";
"<leader>rr" = "vim.lsp.buf.rename";
"<C-k>" = "vim.lsp.buf.definition";
"<C-\\>" = "require('FTerm').toggle";
# "F" = "function() vim.lsp.buf.format({ async = true }) end";
"F" = "require('conform').format";
"gi" = "require'telescope.builtin'.lsp_references";
"<leader>a" = "vim.lsp.buf.code_action";
"<leader>bb" = "require'dap'.toggle_breakpoint";
"<leader>du" = "require'dapui'.toggle";
"<leader>fb" = "require'telescope'.extensions.file_browser.file_browser";
"<leader>fg" = "require'yazi'.yazi";
"<leader>ff" = "require'telescope.builtin'.find_files";
"<leader>gg" = "require'telescope.builtin'.live_grep";
"<leader>;" = "require'telescope.builtin'.buffers";
"zR" = "require'ufo'.openAllFolds";
"zM" = "require'ufo'.closeAllFolds";
# Emulate tmux bindings with prefix <C-q> and tabs
"<C-q><C-q>" = "[[g<Tab>]]";
"<C-q>c" = "[[<cmd>tabnew<cr>]]";
"<C-q>x" = "[[<cmd>tabclose<cr>]]";
"<C-q>n" = "[[<cmd>tabnext<cr>]]";
"<C-q>p" = "[[<cmd>tabprevious<cr>]]";
};
terminal = {
"<C-\\>" = "require('FTerm').toggle";
};
insert = {
"<C-\\>" = "require('FTerm').toggle";
};
visual = {
"L" = "[[:'<,'>!sort -u<cr>]]";
};
};
autoCmd = [
{
event = ["BufEnter" "BufWinEnter"];
pattern = "*.norg";
command = "set conceallevel=3";
}
# {
# event = ["BufEnter" "BufWinEnter"];
# pattern = "*.sql";
# command = "nnoremap <buffer> F :Sqlfmt<cr>";
# }
{
event = ["BufWinLeave"];
pattern = "?*";
command = "mkview!";
}
{
event = ["BufWinEnter"];
pattern = "?*";
command = "silent! loadview!";
}
];
extraConfigLua = extraConfigLua =
/* /*
lua lua
@@ -729,28 +749,6 @@ in {
}) })
''; '';
# package = pkgs.neovim-unwrapped;
# pkgs.neovim;
opts = {
completeopt = "menu,menuone,popup,noselect";
expandtab = true;
foldenable = true;
foldlevel = 99;
foldlevelstart = 99;
hidden = true;
number = true;
relativenumber = true;
shell = "sh";
shiftwidth = 4;
signcolumn = "yes";
smartcase = true;
softtabstop = 4;
tabstop = 4;
termguicolors = true;
undofile = true;
viewoptions = "cursor,folds";
wrap = true;
};
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [
FTerm-nvim FTerm-nvim
copilot-lua copilot-lua