From 4c9d2e90c3fdbf8e016a15a75d95b4792dd7e8a0 Mon Sep 17 00:00:00 2001 From: Drew Haven Date: Mon, 5 May 2025 14:29:26 -0700 Subject: [PATCH] [neovim] Sets up surround, emoji auto-complete, indentation --- .../neovim/config/lua/config/autocmds.lua | 6 ++-- .../neovim/config/lua/config/lazy.lua | 4 +++ .../neovim/config/lua/plugins/blink.lua | 23 +++++++++++++ .../neovim/config/lua/plugins/surround.lua | 32 +++++++++++++++++++ 4 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 home-manager/features/neovim/config/lua/plugins/surround.lua diff --git a/home-manager/features/neovim/config/lua/config/autocmds.lua b/home-manager/features/neovim/config/lua/config/autocmds.lua index 6919084..97f2a02 100644 --- a/home-manager/features/neovim/config/lua/config/autocmds.lua +++ b/home-manager/features/neovim/config/lua/config/autocmds.lua @@ -10,8 +10,8 @@ vim.api.nvim_create_autocmd("FileType", { pattern = { "markdown" }, callback = function() - vim.bo.shiftwidth = 4 - vim.bo.tabstop = 4 - vim.bo.softtabstop = 4 + vim.o.shiftwidth = 2 + vim.o.tabstop = 2 + vim.o.softtabstop = 2 end, }) diff --git a/home-manager/features/neovim/config/lua/config/lazy.lua b/home-manager/features/neovim/config/lua/config/lazy.lua index d73bfa1..ccc8353 100644 --- a/home-manager/features/neovim/config/lua/config/lazy.lua +++ b/home-manager/features/neovim/config/lua/config/lazy.lua @@ -18,6 +18,10 @@ require("lazy").setup({ spec = { -- add LazyVim and import its plugins { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- Integrate ESlint for fixes and prettier for formatting + -- See: https://www.lazyvim.org/configuration/recipes + { import = "lazyvim.plugins.extras.linting.eslint" }, + { import = "lazyvim.plugins.extras.formatting.prettier" }, -- import/override with your plugins { import = "plugins" }, }, diff --git a/home-manager/features/neovim/config/lua/plugins/blink.lua b/home-manager/features/neovim/config/lua/plugins/blink.lua index 1dec96d..d6fd042 100644 --- a/home-manager/features/neovim/config/lua/plugins/blink.lua +++ b/home-manager/features/neovim/config/lua/plugins/blink.lua @@ -1,6 +1,29 @@ return { "saghen/blink.cmp", + dependencies = { + "moyiz/blink-emoji.nvim", + }, opts = { + sources = { + default = { "lsp", "buffer", "snippets", "path", "emoji" }, + providers = { + -- https://github.com/moyiz/blink-emoji.nvim + emoji = { + module = "blink-emoji", + name = "Emoji", + score_offset = 15, -- Tune by preference + opts = { insert = true }, -- Insert emoji (default) or complete its name + should_show_items = function() + return vim.tbl_contains( + -- Enable emoji completion only for git commits and markdown. + -- By default, enabled for all file-types. + { "gitcommit", "markdown" }, + vim.o.filetype + ) + end, + }, + }, + }, keymap = { preset = "default", [""] = { diff --git a/home-manager/features/neovim/config/lua/plugins/surround.lua b/home-manager/features/neovim/config/lua/plugins/surround.lua new file mode 100644 index 0000000..36310ea --- /dev/null +++ b/home-manager/features/neovim/config/lua/plugins/surround.lua @@ -0,0 +1,32 @@ +-- https://www.lazyvim.org/extras/coding/mini-surround#minisurround +return { + "echasnovski/mini.surround", + keys = function(_, keys) + -- Populate the keys based on the user's options + local opts = LazyVim.opts("mini.surround") + local mappings = { + { opts.mappings.add, desc = "Add Surrounding", mode = { "n", "v" } }, + { opts.mappings.delete, desc = "Delete Surrounding" }, + { opts.mappings.find, desc = "Find Right Surrounding" }, + { opts.mappings.find_left, desc = "Find Left Surrounding" }, + { opts.mappings.highlight, desc = "Highlight Surrounding" }, + { opts.mappings.replace, desc = "Replace Surrounding" }, + { opts.mappings.update_n_lines, desc = "Update `MiniSurround.config.n_lines`" }, + } + mappings = vim.tbl_filter(function(m) + return m[1] and #m[1] > 0 + end, mappings) + return vim.list_extend(mappings, keys) + end, + opts = { + mappings = { + add = "gsa", -- Add surrounding in Normal and Visual modes + delete = "gsd", -- Delete surrounding + find = "gsf", -- Find surrounding (to the right) + find_left = "gsF", -- Find surrounding (to the left) + highlight = "gsh", -- Highlight surrounding + replace = "gsr", -- Replace surrounding + update_n_lines = "gsn", -- Update `n_lines` + }, + }, +}