231 lines
5.1 KiB
Nix
231 lines
5.1 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
programs.nixvim = {
|
|
enable = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
defaultEditor = true;
|
|
|
|
withPython3 = true;
|
|
extraPython3Packages = ps: [ ps.pylatexenc ];
|
|
|
|
extraPackages = with pkgs; [
|
|
wl-clipboard
|
|
xclip
|
|
ripgrep
|
|
tree-sitter
|
|
imagemagick
|
|
];
|
|
|
|
globals.mapleader = " ";
|
|
|
|
opts = {
|
|
number = true;
|
|
relativenumber = true;
|
|
tabstop = 4;
|
|
softtabstop = 0;
|
|
shiftwidth = 4;
|
|
expandtab = true;
|
|
smarttab = true;
|
|
autoindent = true;
|
|
backspace = [
|
|
"indent"
|
|
"eol"
|
|
"start"
|
|
];
|
|
mouse = "a";
|
|
clipboard = "unnamedplus";
|
|
};
|
|
|
|
userCommands = {
|
|
E = {
|
|
command = "Oil";
|
|
desc = "Open oil file explorer";
|
|
};
|
|
};
|
|
|
|
plugins = {
|
|
web-devicons.enable = true;
|
|
|
|
treesitter = {
|
|
enable = true;
|
|
settings = {
|
|
highlight.enable = true;
|
|
indent.enable = true;
|
|
ensure_installed = [
|
|
"markdown"
|
|
"markdown_inline"
|
|
"latex"
|
|
"yaml"
|
|
"bash"
|
|
"rust"
|
|
"nix"
|
|
"lua"
|
|
];
|
|
};
|
|
};
|
|
|
|
lsp = {
|
|
enable = true;
|
|
servers = {
|
|
rust_analyzer = {
|
|
enable = true;
|
|
installCargo = true;
|
|
installRustc = true;
|
|
};
|
|
nil_ls.enable = true;
|
|
lua_ls.enable = true;
|
|
yamlls.enable = true;
|
|
};
|
|
};
|
|
|
|
cmp-nvim-lsp.enable = true;
|
|
cmp-buffer.enable = true;
|
|
cmp-path.enable = true;
|
|
|
|
cmp = {
|
|
enable = true;
|
|
autoEnableSources = true;
|
|
settings = {
|
|
mapping = {
|
|
"<Tab>" = "cmp.mapping.select_next_item()";
|
|
"<S-Tab>" = "cmp.mapping.select_prev_item()";
|
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
"<C-Space>" = "cmp.mapping.complete()";
|
|
"<C-e>" = "cmp.mapping.abort()";
|
|
};
|
|
sources = [
|
|
{ name = "nvim_lsp"; }
|
|
{ name = "path"; }
|
|
{ name = "buffer"; }
|
|
];
|
|
};
|
|
};
|
|
|
|
telescope = {
|
|
enable = true;
|
|
keymaps = {
|
|
"<leader>ff" = "find_files";
|
|
"<leader>fg" = "live_grep";
|
|
"<leader>fb" = "buffers";
|
|
};
|
|
};
|
|
|
|
oil = {
|
|
enable = true;
|
|
settings = {
|
|
default_file_explorer = true;
|
|
columns = [ "icon" ];
|
|
view_options.show_hidden = false;
|
|
preview_win = {
|
|
update_on_cursor_moved = true;
|
|
};
|
|
keymaps = {
|
|
"<C-p>" = "actions.preview";
|
|
"-" = "actions.parent";
|
|
};
|
|
};
|
|
};
|
|
|
|
render-markdown = {
|
|
enable = true;
|
|
settings = {
|
|
latex = {
|
|
enabled = true;
|
|
converter = "latex2text";
|
|
highlight = "RenderMarkdownMath";
|
|
top_pad = 0;
|
|
bottom_pad = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
markdown-preview.enable = true;
|
|
vimtex.enable = true;
|
|
typst-vim.enable = true;
|
|
typst-preview.enable = true;
|
|
lastplace.enable = true;
|
|
indent-blankline.enable = true;
|
|
nix.enable = true;
|
|
|
|
clipboard-image = {
|
|
enable = true;
|
|
clipboardPackage = pkgs.wl-clipboard;
|
|
settings = {
|
|
default = {
|
|
img_dir = "assets";
|
|
img_dir_txt = "assets";
|
|
affix = "";
|
|
};
|
|
};
|
|
};
|
|
|
|
image.enable = true;
|
|
};
|
|
|
|
extraConfigLua = ''
|
|
require("image").setup({
|
|
backend = "sixel",
|
|
processor = "magick_cli",
|
|
integrations = {
|
|
markdown = {
|
|
enabled = true,
|
|
only_render_image_at_cursor = true,
|
|
only_render_image_at_cursor_mode = "popup",
|
|
},
|
|
typst = {
|
|
enabled = true,
|
|
},
|
|
},
|
|
max_height_window_percentage = 50,
|
|
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" },
|
|
})
|
|
'';
|
|
|
|
keymaps = [
|
|
{
|
|
mode = "n";
|
|
key = "<leader>e";
|
|
action = "<cmd>Oil<CR>";
|
|
options.desc = "Open oil file explorer";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>m";
|
|
action = "<cmd>MarkdownPreviewToggle<CR>";
|
|
options.desc = "Toggle markdown preview";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>fm";
|
|
action = "<cmd>lua vim.lsp.buf.format()<CR>";
|
|
options.desc = "Format with LSP";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bn";
|
|
action = "<cmd>bnext<CR>";
|
|
options.desc = "Next buffer";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bp";
|
|
action = "<cmd>bprev<CR>";
|
|
options.desc = "Previous buffer";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bd";
|
|
action = "<cmd>bdelete<CR>";
|
|
options.desc = "Delete buffer";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bN";
|
|
action = "<cmd>enew<CR>";
|
|
options.desc = "New buffer";
|
|
}
|
|
];
|
|
};
|
|
}
|