diff options
Diffstat (limited to 'lua/lvim')
| -rw-r--r-- | lua/lvim/core/comment.lua | 20 | 
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 = { | 
