diff options
Diffstat (limited to 'nvim/lua/user/comment.lua')
-rw-r--r-- | nvim/lua/user/comment.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/nvim/lua/user/comment.lua b/nvim/lua/user/comment.lua new file mode 100644 index 0000000..27e8fd5 --- /dev/null +++ b/nvim/lua/user/comment.lua @@ -0,0 +1,39 @@ +local M = { + "numToStr/Comment.nvim", + commit = "eab2c83a0207369900e92783f56990808082eac2", + event = "BufRead", + dependencies = { + { + "JoosepAlviste/nvim-ts-context-commentstring", + event = "VeryLazy", + commit = "a0f89563ba36b3bacd62cf967b46beb4c2c29e52", + }, + }, +} + +function M.config() + pre_hook = function(ctx) + -- Only calculate commentstring for tsx filetypes + if vim.bo.filetype == "typescriptreact" then + local U = require "Comment.utils" + + -- Determine whether to use linewise or blockwise commentstring + local type = ctx.ctype == U.ctype.linewise and "__default" or "__multiline" + + -- Determine the location where to calculate commentstring from + local location = nil + if ctx.ctype == U.ctype.blockwise 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 +end + +return M |