]> git.rmz.io Git - dotfiles.git/blobdiff - nvim/lua/plugins/coding.lua
nvim/coding: switch to comments.nvim
[dotfiles.git] / nvim / lua / plugins / coding.lua
index 6e8adc99e7e8c08c5e32beb558b393a3556d7176..c1b1c39a8e3b61301105fed7e2d8911e91ce0dd0 100644 (file)
@@ -4,6 +4,14 @@ return {
   {
     "L3MON4D3/LuaSnip",
     -- disable luasnip bindings for <tab> and <s-tab>
+    dependencies = {
+      {
+        "honza/vim-snippets",
+        config = function()
+          require("luasnip.loaders.from_snipmate").lazy_load()
+        end,
+      },
+    },
     keys = function()
       return {}
     end,
@@ -12,6 +20,7 @@ return {
   -- auto completion
   {
     "hrsh7th/nvim-cmp",
+    ---@param opts cmp.ConfigSchema
     opts = function(_, opts)
       local has_words_before = function()
         unpack = unpack or table.unpack
@@ -23,7 +32,7 @@ return {
       local luasnip = require("luasnip")
 
       opts.completion = vim.tbl_extend("force", opts.completion, {
-        completeopt = "menu,menuone,noinsert",
+        completeopt = "menu,menuone,noselect",
       })
       --TODO: review if I want to keep any of LazyVim's mappings
       opts.mapping = vim.tbl_extend("force", opts.mapping, {
@@ -50,4 +59,47 @@ return {
       })
     end,
   },
+
+  -- auto pairs
+  {
+    "echasnovski/mini.pairs",
+  },
+
+  -- surround
+  {
+    "echasnovski/mini.surround",
+    keys = {
+      { "S", "<cmd><C-u>lua MiniSurround.add('visual')<cr>", "x" },
+      { "yss", "ys_", remap = true },
+    },
+    opts = {
+      mappings = {
+        -- TODO: this is tpope/surround like, but should consider using vim-sandwich mappings
+        -- see: :h MiniSurround-vim-surround-config
+        add = "ys",
+        delete = "ds",
+        find = "",
+        find_left = "",
+        highlight = "",
+        replace = "cs",
+        update_n_lines = "",
+      },
+    },
+  },
+  -- comments
+  {
+    "numToStr/Comment.nvim",
+    opts = {
+      toggler = {
+        line = "gcc",
+        block = "gbb",
+      },
+      mappings = {
+        basic = true,
+        extra = true,
+      },
+    },
+  },
+  { "JoosepAlviste/nvim-ts-context-commentstring", enabled = false },
+  { "echasnovski/mini.comment", enabled = false },
 }