Commit 6c78e62

Eric Bower  ·  2026-07-28 10:14:43 -0400 EDT
parent 32efe6e
chore(nvim): :salute:
1 files changed,  +0, -126
+0, -126
  1@@ -1,126 +0,0 @@
  2---[[
  3-  erock's minimal config
  4-  ======================
  5-
  6-  design goals:
  7-    - single file
  8-    - use native nvim features (>= v0.12)
  9-    - use default keybindings unless painful otherwise
 10-    - use built-ins unless painful otherwise
 11-    - use default colorschemes
 12-    - plugins must be integral to workflow
 13-]]
 14-local vim = vim -- suppress lsp warnings
 15-local o = vim.opt
 16-o.tabstop = 2
 17-o.shiftwidth = 2
 18-o.softtabstop = 2
 19-o.expandtab = true
 20-o.wrap = false
 21-o.autoread = true
 22-o.list = true
 23-o.signcolumn = "yes"
 24-o.backspace = "indent,eol,start"
 25-o.shell = "/bin/bash"
 26-o.colorcolumn = "100"
 27-o.completeopt = { "menuone", "noselect", "popup" }
 28-o.wildmode = { "lastused", "full" }
 29-o.pumheight = 15
 30-o.laststatus = 0
 31-o.winborder = "rounded"
 32-o.undofile = true
 33-o.ignorecase = true
 34-o.smartcase = true
 35-o.swapfile = false
 36-o.foldmethod = "indent"
 37-o.foldlevelstart = 99
 38-local g = vim.g
 39-g.mapleader = " "
 40-g.maplocalleader = " "
 41-
 42-local opts = { silent = true }
 43-local map = vim.keymap.set
 44-map("t", "<Esc>", [[<C-\><C-n>]], opts) -- exit terminal mode
 45-map("n", "Q", "<nop>", opts) -- disable "Q"
 46-map("n", "<C-k>", "<cmd>wincmd k<cr>", opts) -- navigate splits
 47-map("n", "<C-j>", "<cmd>wincmd j<cr>", opts)
 48-map("n", "<C-h>", "<cmd>wincmd h<cr>", opts)
 49-map("n", "<C-l>", "<cmd>wincmd l<cr>", opts)
 50-map("n", "<leader>q", "<cmd>bd!<cr>", opts)
 51-map("n", "<leader>t", "<cmd>term fish<cr>", opts)
 52-map({ "n", "v" }, "<leader>u", "<cmd>GitLink<cr>", opts)
 53-map("n", "<leader>e", vim.diagnostic.open_float, opts)
 54-map("n", "<leader>y", function() -- copy relative filepath to clipboard
 55-  vim.fn.setreg("+", vim.fn.expand("%"))
 56-end)
 57-map("n", "<leader>r", function() -- toggle lsp loclist
 58-  local loclist_win = vim.fn.getloclist(0, { winid = 0 }).winid
 59-  if loclist_win > 0 then
 60-    vim.cmd("lclose")
 61-  else
 62-    vim.diagnostic.setloclist({ open = true })
 63-  end
 64-end, opts)
 65-map("n", "<leader>s", function() -- toggle quickfix
 66-  for _, win in ipairs(vim.fn.getwininfo()) do
 67-    if win.quickfix == 1 then
 68-      vim.cmd("cclose")
 69-      return
 70-    end
 71-  end
 72-  vim.cmd("copen")
 73-end)
 74-map("n", "<leader>d", ":DiffviewOpen ")
 75-map("n", "<leader>a", "<cmd>lua MiniFiles.open()<cr>")
 76-map("n", "<leader>f", "<cmd>Pick files<cr>")
 77-map("n", "<leader>g", "<cmd>Pick grep_live<cr>")
 78-map("n", "<leader>b", ":b ")
 79-
 80-local augroup = vim.api.nvim_create_augroup("erock.cfg", { clear = true })
 81-local autocmd = vim.api.nvim_create_autocmd
 82-autocmd("Filetype", { group = augroup, pattern = "make", command = "setlocal noexpandtab tabstop=4 shiftwidth=4" })
 83-autocmd("BufEnter", { -- disable automatic newline comment continuation
 84-  callback = function()
 85-    o.formatoptions = vim.opt.formatoptions:remove({ "c", "r", "o" })
 86-  end,
 87-})
 88-
 89-local function setup_lsp()
 90-  vim.lsp.enable({
 91-    "gopls", -- os package mgr: gopls
 92-    "pyright", -- npm i -g pyright
 93-    "tsgo", -- npm i -g @typescript/native-preview
 94-    "zls", -- os package mgr: zls
 95-  })
 96-
 97-  autocmd("LspAttach", {
 98-    group = augroup,
 99-    callback = function(ev)
100-      local bufopts = { noremap = true, silent = true, buffer = ev.buf }
101-      map("n", "grd", vim.lsp.buf.definition, bufopts)
102-      map("i", "<C-k>", vim.lsp.completion.get, bufopts) -- open completion menu manually
103-      local client = assert(vim.lsp.get_client_by_id(ev.data.client_id))
104-      local methods = vim.lsp.protocol.Methods
105-      if client:supports_method(methods.textDocument_completion) then
106-        vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true })
107-      end
108-    end,
109-  })
110-end
111-
112-vim.pack.add({
113-  "https://github.com/neovim/nvim-lspconfig",
114-  "https://github.com/nvim-mini/mini.pick",
115-  "https://github.com/karb94/neoscroll.nvim",
116-  "https://github.com/linrongbin16/gitlinker.nvim",
117-  "https://github.com/nvim-mini/mini.files",
118-})
119-
120-vim.cmd("colorscheme default")
121-
122-require("vim._extui").enable({}) -- https://github.com/neovim/neovim/pull/27855
123-setup_lsp()
124-require("neoscroll").setup({ duration_multiplier = 0.3 })
125-require("gitlinker").setup()
126-require("mini.pick").setup()
127-require("mini.files").setup()