summaryrefslogtreecommitdiffstats
path: root/nvim/lua/user/comment.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/user/comment.lua')
-rw-r--r--nvim/lua/user/comment.lua39
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