From 2703ef3acbd8f13b47db57a9584259a4cf2c84ba Mon Sep 17 00:00:00 2001 From: Daniil Tsivinsky Date: Thu, 31 Aug 2023 11:10:28 +0300 Subject: [PATCH] neovim: add comment.nvim plugin --- neovim/.config/nvim/after/plugin/comment.lua | 25 ++++++++++++++++++++ neovim/.config/nvim/init.lua | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 neovim/.config/nvim/after/plugin/comment.lua diff --git a/neovim/.config/nvim/after/plugin/comment.lua b/neovim/.config/nvim/after/plugin/comment.lua new file mode 100644 index 0000000..edc4899 --- /dev/null +++ b/neovim/.config/nvim/after/plugin/comment.lua @@ -0,0 +1,25 @@ +require("Comment").setup({ + pre_hook = function(ctx) + -- Only calculate commentstring for tsx filetypes + if vim.bo.filetype == "typescriptreact" or vim.bo.filetype == "javascriptreact" then + local U = require("Comment.utils") + + -- Detemine whether to use linewise or blockwise commentstring + -- local type = ctx.ctype == U.ctype.line and "__default" or "__multiline" + local type = "__default" + + -- Determine the location where to calculate commentstring from + local location = nil + if ctx.ctype == U.ctype.block then + location = require("ts_context_commentstring.utils").get_cursor_location() + elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then + location = require("ts_context_commentstring.utils").get_visual_start_location() + end + + return require("ts_context_commentstring.internal").calculate_commentstring({ + key = type, + location = location, + }) + end + end, +}) diff --git a/neovim/.config/nvim/init.lua b/neovim/.config/nvim/init.lua index 878393a..82714a1 100644 --- a/neovim/.config/nvim/init.lua +++ b/neovim/.config/nvim/init.lua @@ -54,6 +54,8 @@ require("packer").startup(function(use) use({ "windwp/nvim-autopairs" }) + use({ "numToStr/Comment.nvim" }) + if PACKER_BOOTSTRAP then require("packer").sync() end