summaryrefslogtreecommitdiff
path: root/lua/lvim/core/comment.lua
diff options
context:
space:
mode:
authorzenVentzi <[email protected]>2022-08-29 15:13:57 +0300
committerGitHub <[email protected]>2022-08-29 14:13:57 +0200
commit68e8132b909dab6a748340f81c4b3a6ef452079d (patch)
tree18ec1df3e53dafd217a4ceb2ab3df646e29a318a /lua/lvim/core/comment.lua
parent537a192179c1123618489b2faaf58204d899f3a1 (diff)
fix(ts_context_commentstring): block comment match new api (#2948)
Diffstat (limited to 'lua/lvim/core/comment.lua')
-rw-r--r--lua/lvim/core/comment.lua20
1 files changed, 18 insertions, 2 deletions
diff --git a/lua/lvim/core/comment.lua b/lua/lvim/core/comment.lua
index 86a2091a..d07739c6 100644
--- a/lua/lvim/core/comment.lua
+++ b/lua/lvim/core/comment.lua
@@ -3,8 +3,24 @@ local M = {}
function M.config()
local pre_hook = nil
if lvim.builtin.treesitter.context_commentstring.enable then
- pre_hook = function(_ctx)
- return require("ts_context_commentstring.internal").calculate_commentstring()
+ pre_hook = function(ctx)
+ 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
lvim.builtin.comment = {