From 7876fabd7c5c625194ee723972e63105eca4b505 Mon Sep 17 00:00:00 2001 From: Ibrahim Muftee Date: Thu, 3 Oct 2024 17:54:22 -0500 Subject: feat(nvim): neovim config rewrite --- dot_config/nvim/lua/ibrahim/icons.lua | 62 ---------------- dot_config/nvim/lua/ibrahim/keys.lua | 124 ------------------------------- dot_config/nvim/lua/ibrahim/set.lua.tmpl | 87 ---------------------- 3 files changed, 273 deletions(-) delete mode 100644 dot_config/nvim/lua/ibrahim/icons.lua delete mode 100644 dot_config/nvim/lua/ibrahim/keys.lua delete mode 100644 dot_config/nvim/lua/ibrahim/set.lua.tmpl (limited to 'dot_config/nvim/lua/ibrahim') diff --git a/dot_config/nvim/lua/ibrahim/icons.lua b/dot_config/nvim/lua/ibrahim/icons.lua deleted file mode 100644 index d6573ab..0000000 --- a/dot_config/nvim/lua/ibrahim/icons.lua +++ /dev/null @@ -1,62 +0,0 @@ -return { - diagnostics = { - -- Error = " ", - -- Warn = " ", - -- Hint = " ", - -- Info = " ", - Error = " ", - Warn = " ", - -- Hint = " ", - Hint = "󰌵 ", - Info = " ", - }, - git = { - -- Change type - added = " ", - -- added = "✚" - modified = " ", - -- modified = "" - removed = " ", - deleted = "󱂑", - renamed = "󰑕", - -- Status type - untracked = "", - ignored = "", - unstaged = "", - staged = "", - conflict = "", - }, - gitsigns = { - -- Signs that will appear in the statusline column - added = "✚", - modified = "", - deleted = "", - }, - lsp = { - Text = "", - Method = "", - Function = "󰡱", - Constructor = "", - Field = "", - Variable = "󰫧", - Class = "", - Interface = "", - Module = "", - Property = "", - Unit = "", - Value = "", - Enum = "", - Keyword = "", - Snippet = "", - Color = "", - File = "", - Reference = "", - Folder = "", - EnumMember = "", - Constant = "", - Struct = "", - Event = "", - Operator = "", - TypeParameter = "", - }, -} diff --git a/dot_config/nvim/lua/ibrahim/keys.lua b/dot_config/nvim/lua/ibrahim/keys.lua deleted file mode 100644 index 9fa423f..0000000 --- a/dot_config/nvim/lua/ibrahim/keys.lua +++ /dev/null @@ -1,124 +0,0 @@ --- Set leader key as Space -vim.g.mapleader = " " - -local function map(mode, left, right, opts) - local default_opts = { - noremap = true, - silent = true, - } - opts = opts or {} - -- "keep" mode preserves the values from the leftmost table, - -- so prioritize any options provided over the defaults - local full_opts = vim.tbl_extend("keep", opts, default_opts) - vim.keymap.set(mode, left, right, full_opts) -end - --- Clear any highlighted searches when pressing Esc --- This lets me leave hlsearch on by default while having an easy way to clear --- it again. -map({ "i", "n" }, "", "noh", { desc = "Escape and clear hlsearch" }) - --- Move lines while in visual mode with J and K -map("v", "J", ":m '>+1gv=gv") -map("v", "K", ":m '<-2gv=gv") - --- Keep cursor in the same place when using J to join lines -map("n", "J", "mzJ`z") - --- Center the screen when jumping around with C-d and C-u -map("n", "", "zz") -map("n", "", "zz") - --- Center the screen when jumping to next / previous search terms -map("n", "n", "nzzzv") -map("n", "N", "Nzzzv") - --- Quick maps to paste/delete without overwriting the current buffer -map("x", "p", '"_dP') -map({ "n", "v" }, "d", '"_dP') - --- Easier quickfix naviagion -map("n", "", "cprev", { desc = "Quickfix previous item" }) -map("n", "", "cnext", { desc = "Quickfix next item" }) - --- System clipboard -map({ "n", "v" }, "cd", '"+d', { desc = "Clipboard delete" }) -map({ "n", "v" }, "cp", '"+p', { desc = "Clipboard paste" }) -map({ "n", "v" }, "cy", '"+y', { desc = "Clipboard yank" }) - --- Map g- to netrw (temporary placeholder for oil) --- map("n", "g-", vim.cmd.Ex, { desc = "Open netrw" }) - --- LSP specific keybindings -vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("IbrahimLspConfig", {}), - callback = function(evt) - local function lsp_map(mode, lhs, rhs, desc) - local opts = { buffer = evt.buf, desc = "LSP: " .. (desc or "") } - map(mode, lhs, rhs, opts) - end - - local has_telescope, _ = pcall(require, "telescope") - local function lsp_telescope_map(mode, lhs, with_telescope_rhs, no_telescope_rhs, desc) - if has_telescope then - desc = desc .. " (Telescope)" - lsp_map(mode, lhs, with_telescope_rhs, desc) - else - lsp_map(mode, lhs, no_telescope_rhs, desc) - end - end - local function tele_builtin(name, opts) - return function() - require("telescope.builtin")[name](opts) - end - end - - -- Navigation - lsp_map("n", "gd", vim.lsp.buf.definition, "[G]oto [D]efinition") - lsp_map("n", "gt", vim.lsp.buf.type_definition, "[G]oto [t]ype Definition") - lsp_map("n", "gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") - lsp_map("n", "gr", vim.lsp.buf.references, "[G]oto [R]eferences") - lsp_map("n", "gI", vim.lsp.buf.implementation, "[G]oto [I]mplementation") - - lsp_telescope_map("n", "gr", tele_builtin("lsp_references"), vim.lsp.buf.references, "Go to references") - lsp_telescope_map( - "n", - "sn", - tele_builtin("lsp_document_symbols"), - vim.lsp.buf.document_symbol, - "Search document symbols" - ) - lsp_telescope_map( - "n", - "sN", - tele_builtin("lsp_dynamic_workspace_symbols"), - vim.lsp.buf.workspace_symbol, - "Search workspace symbols" - ) - - -- Code changes - lsp_map("n", "cr", vim.lsp.buf.rename, "Rename") - -- ca is being overwritten by the 'actions-preview' plugin - -- lsp_map("n", "ca", vim.lsp.buf.code_action, "Code actions") - - -- Diagnostics - lsp_map("n", "ds", vim.diagnostic.open_float, "[s]how [d]iagnostic window") - lsp_map("n", "dn", function() - vim.diagnostic.goto_next({ float = true }) - end, "Go to [n]ext [d]iagnostic") - lsp_map("n", "dp", function() - vim.diagnostic.goto_prev({ float = true }) - end, "Go to [p]revious [d]iagnostic") - - -- See `:help K` for why this keymap - lsp_map("n", "K", vim.lsp.buf.hover, "Hover Documentation") - lsp_map("n", "", vim.lsp.buf.signature_help, "Signature Documentation") - - -- Workspace - lsp_map("n", "wa", vim.lsp.buf.add_workspace_folder, "[W]orkspace [A]dd Folder") - lsp_map("n", "wr", vim.lsp.buf.remove_workspace_folder, "[W]orkspace [R]emove Folder") - lsp_map("n", "wl", function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, "[W]orkspace [L]ist Folders") - end, -}) diff --git a/dot_config/nvim/lua/ibrahim/set.lua.tmpl b/dot_config/nvim/lua/ibrahim/set.lua.tmpl deleted file mode 100644 index 019fa4f..0000000 --- a/dot_config/nvim/lua/ibrahim/set.lua.tmpl +++ /dev/null @@ -1,87 +0,0 @@ --- vim:ft=lua ----@diagnostic disable: undefined-global - -local opt = vim.opt - --- Set default shell -{{- if eq .chezmoi.os "windows" }} -opt.shell = "pwsh" -{{ else }} -opt.shell = "zsh" -{{ end }} - --- Begin searching as I type a search string instead of waiting for me to press Enter -opt.incsearch = true - --- Make line numbers default -opt.number = true -opt.relativenumber = true - --- Highlight only the line number for the current line. --- Disable the second line here to highlight the entire line where the --- cursor is. -opt.cursorline = true -opt.cursorlineopt = "number" - --- Try to keep this many lines visible above and below the cursor. --- This makes the window scroll sooner if mashing j / k. -opt.scrolloff = 8 - --- Folds -vim.o.foldtext = '' - --- Don't fold absolutely everything when opening a new file -opt.foldlevelstart = 1 - --- Enable mouse mode -opt.mouse = "a" - --- Set the conceal level (mainly for obsidian md formatting) -opt.conceallevel = 2 - --- Tab settings -opt.tabstop = 4 -opt.softtabstop = 4 -opt.shiftwidth = 0 -opt.expandtab = true - --- Automatically set the same indent level on a new line -opt.autoindent = true - --- Increase or decrease indent based on braces or language keywords -opt.smartindent = true - --- Enable break indent -opt.breakindent = true - --- Don't make local backup files. Instead, write undo history to disk. --- This works especially well with the undotree plugin. -opt.swapfile = false -opt.backup = false -opt.undodir = vim.fn.expand("~/.vim/undodir") -opt.undofile = true - --- Case insensitive searching UNLESS /C or capital in search -opt.ignorecase = true -opt.smartcase = true - --- Decrease update time -opt.updatetime = 250 - --- Enable signcolumn (used for diagnostics and gitsigns) -opt.signcolumn = "yes" - --- Column at line 80 -opt.colorcolumn = "80" - --- Set completeopt to have a better completion experience -opt.completeopt = "menuone,noselect" - --- Highlight when yanking text -vim.api.nvim_create_autocmd('TextYankPost', { - desc = 'Highlight when yanking text', - group = vim.api.nvim_create_augroup('IbrahimHighlightYank', { clear = true }), - callback = function() - vim.highlight.on_yank() - end, -}) -- cgit v1.2.3