Compare commits

...

4 commits

Author SHA1 Message Date
8e03a31999
set backspace as local leader 2025-06-26 19:27:45 +08:00
1ea8f94094
fix multiplexer integration 2025-06-26 19:27:16 +08:00
e9e7399c04
Setup neorg plugin 2025-06-26 19:26:50 +08:00
f42c1c8fdf
refactor + add some QoL plugins 2025-06-26 11:03:40 +08:00
19 changed files with 174 additions and 140 deletions

View file

@ -1,54 +1,58 @@
{...}: {
imports = [
# General configuration.
# General Configuration
./keymaps.nix
./options.nix
# Themes
# Themes & Appearance
./plugins/themes/default.nix
# Completion
# Plugin Collections
./plugins/collections/mini.nix
./plugins/collections/snacks.nix
# Completion & AI Assistancee
./plugins/cmp/cmp.nix
./plugins/cmp/copilot.nix
./plugins/cmp/copilot-chat.nix
# Debug Adapter Protocol
# Debugging (DAP)
./plugins/dap/dap.nix
./plugins/dap/dap-ui.nix
./plugins/dap/dap-virtual-text.nix
./plugins/dap/dap-python.nix
# Editor plugins and configurations
./plugins/editor/buffers.nix
# Editor Enhancements
./plugins/editor/commentary.nix
./plugins/editor/harpoon.nix
./plugins/editor/mini.nix
./plugins/editor/sessions.nix
./plugins/editor/smart-splits.nix
./plugins/editor/surround.nix
./plugins/editor/treesitter.nix
# UI plugins
# User Interface Plugins
./plugins/ui/lualine.nix
./plugins/ui/nvim-tree.nix
./plugins/ui/web-devicons.nix
./plugins/ui/whichkey.nix
# LSP and formatting
# LSP and Formatting
./plugins/lsp/conform.nix
./plugins/lsp/lsp.nix
# Git
# Git Integration
./plugins/git/fugitive.nix
./plugins/git/gitsigns.nix
# Utils
./plugins/utils/copilot-chat.nix
./plugins/utils/markdown-preview.nix
./plugins/utils/render-markdown.nix
# Markdown, Notes & Productivity
./plugins/notes/markdown-preview.nix
./plugins/notes/neorg.nix
./plugins/notes/render-markdown.nix
./plugins/notes/todo-comments.nix
# Utilities
./plugins/utils/oil.nix
./plugins/utils/telescope.nix
./plugins/utils/todo-comments.nix
./plugins/utils/vimtex.nix
./plugins/utils/vimwiki.nix
];
}

View file

@ -1,5 +1,8 @@
{...}: {
globals.mapleader = " ";
globals.maplocalleader = {
__raw = "vim.api.nvim_replace_termcodes('<BS>', false, false, true)";
};
keymaps = [
{
@ -11,7 +14,7 @@
};
}
{ # prefix: find
{
mode = ["n"];
key = "<leader>f";
action = "<NOP>";
@ -19,5 +22,32 @@
desc = "+find";
};
}
{
mode = ["n"];
key = "<PageUp>";
action = "<C-u>";
options = {
silent = true;
};
}
{
mode = ["n"];
key = "<PageDown>";
action = "<C-d>";
options = {
silent = true;
};
}
{
mode = ["n"];
key = "<Del>";
action = "zz";
options = {
silent = true;
};
}
];
}

View file

@ -6,7 +6,6 @@
showmode = false;
swapfile = false;
clipboard = "unnamedplus";
conceallevel = 1;
updatetime=100;
undofile = true;
splitright = true;
@ -17,6 +16,10 @@
shiftwidth = 2;
expandtab = true;
# Required for neorg
conceallevel = 2;
foldlevel = 99;
# Using this config for sessionoptions is recommended:
sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions";
};

View file

@ -27,6 +27,10 @@
{ # VimTex
name = "vimtex";
}
{ # Neorg
name = "neorg";
}
];
# Key mappings for the completion menu.

View file

@ -0,0 +1,19 @@
{...}:{
plugins.mini = {
enable = true;
# Extend and create a/i textobjects.
modules.ai = {
# Number of lines within which textobject is searched
n_lines = 50;
# How to search for object
search_method = "cover_or_next";
};
# Go forward/backward with square brackets.
modules.bracketed = { };
modules.align = { };
};
}

View file

@ -0,0 +1,41 @@
{...}:{
plugins.snacks = {
enable = true;
settings = {
bufdelete = {
enabled = true;
};
scroll = {
enabled = true;
};
};
};
keymaps = [
{
mode = ["n"];
key = "<leader>q";
action = {
__raw = "function() require('snacks').bufdelete() end";
};
options = {
desc = "Close current buffer";
silent = true;
};
}
{
mode = ["n"];
key = "<leader>Q";
action = {
__raw = "function() require('snacks').bufdelete.other() end";
};
options = {
desc = "Close other buffers";
silent = true;
};
}
];
}

View file

@ -1,59 +0,0 @@
{...}: {
plugins.bufdelete = {
enable = true;
};
keymaps = [
{
# buffer prefix
mode = "n";
key = "<leader>b";
action = "<Nop>";
options = {
desc = "+buffer";
};
}
{
# goto next buffer
mode = ["n"];
key = "]b";
action = ":bnext<cr>";
options = {
silent = true;
};
}
{
# goto previous buffer
mode = ["n"];
key = "[b";
action = ":bprevious<cr>";
options = {
silent = true;
};
}
{
# delete buffer
mode = ["n"];
key = "<leader>bd";
action = ":Bdelete<cr>";
options = {
desc = "bdelete";
silent = true;
};
}
{
# wipeout buffer
mode = ["n"];
key = "<leader>bw";
action = ":Bwipeout<cr>";
options = {
desc = "bwipeout";
silent = true;
};
}
];
}

View file

@ -1,31 +0,0 @@
{...}:{
plugins.mini = {
enable = true;
# Extend and create a/i textobjects.
modules.ai = {
# Module mappings.
mappings = {
# Main textobject prefixes
around = "a";
inside = "i";
# Next/last variants
around_next = "an";
inside_next = "in";
around_last = "al";
inside_last = "il";
# Move cursor to corresponding edge of `a` textobject
goto_left = "g[";
goto_right = "g]";
};
# Number of lines within which textobject is searched
n_lines = 50;
# How to search for object
search_method = "cover_or_next";
};
};
}

View file

@ -3,7 +3,7 @@
enable = true;
settings = {
multiplexer_integration = "WezTerm";
multiplexer_integration = "wezterm";
};
};

View file

@ -18,25 +18,4 @@
# Install all grammar packages.
grammarPackages = pkgs.vimPlugins.nvim-treesitter.allGrammars;
};
# Refactor modules for nvim-treesitter
plugins.treesitter-refactor = {
enable = true;
# Highlights definitions and usages.
highlightDefinitions = {
enable = true;
};
# Provides "go to usage"
navigation = {
enable = true;
# Go to the next / previous usage.
keymaps = {
gotoNextUsage = "]u";
gotoPreviousUsage = "[u";
};
};
};
}

View file

@ -49,8 +49,6 @@
# Configure keymaps for our diagnostics.
diagnostic = {
"<C-W>d" = "open_float"; # Show diagnostics in floating window.
"[d" = "goto_prev"; # Jump to previous diagnostic.
"]d" = "goto_next"; # Jump to next diagnostic.
};
# Configure keymaps for our lspbuf.
lspBuf = {
@ -65,7 +63,7 @@
# Renames all references to the symbol under the cursor.
"<leader>r" = {
action = "rename";
desc = "Rename";
desc = "Rename reference";
};
};

View file

@ -0,0 +1,48 @@
{...}:{
plugins.neorg = {
enable = true;
# Settings for the Neorg plugin
settings = {
load = {
# Load the core modules for Neorg
"core.defaults" = {
__empty = null;
};
# Display markup as icons, not text
"core.concealer" = {
__empty = null;
};
# Handle collections of notes
"core.dirman" = {
config = {
workspaces = {
notes = "~/Notes";
};
default_workspace = "notes";
};
};
# Treesitter integration
"core.integrations.treesitter" = {
config = {
install_parsers = true;
configure_parsers = true;
};
};
# Enable completions with nvim-cmp
"core.completion" = {
config = {
engine = "nvim-cmp";
};
};
"core.integrations.nvim-cmp" = {
__empty = null;
};
};
};
};
}

View file

@ -31,7 +31,7 @@
key = "<leader>n";
action = "<cmd>NvimTreeToggle<cr>";
options = {
desc = "Toggle NvimTree";
desc = "Toggle file explorer";
};
}
@ -40,7 +40,7 @@
key = "<leader>e";
action = "<cmd>NvimTreeFocus<cr>";
options = {
desc = "Focus NvimTree";
desc = "Focus file explorer";
};
}
];

View file

@ -3,6 +3,9 @@
enable = true;
settings = {
preset = "modern";
icons = {
mappings = false;
};
};
};

View file

@ -1,5 +0,0 @@
{...}: {
plugins.vimwiki = {
enable = true;
};
}