summaryrefslogtreecommitdiff
path: root/lua/lvim/core/comment.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2022-08-29 14:35:15 +0200
committerkylo252 <[email protected]>2022-08-29 14:35:15 +0200
commit439e0c205a4c09545f08816ab5100fb5d9a93d3b (patch)
tree4d3767b7e921dd707fe859b98bbaa5081fce205c /lua/lvim/core/comment.lua
parent47e4e5b83808f784010aa480753beaaef16ac579 (diff)
parentdf84e4ecce5a7c8838fd21d5de939128f3214ef4 (diff)
Merge remote-tracking branch 'origin/rolling'
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 = {