Преглед на файлове

fix(ts_context_commentstring): block comment match new api (#2948)

zenVentzi преди 2 години
родител
ревизия
68e8132b90
променени са 1 файла, в които са добавени 18 реда и са изтрити 2 реда
  1. 18 2
      lua/lvim/core/comment.lua

+ 18 - 2
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 = {