44 lines
1.3 KiB
Lua
44 lines
1.3 KiB
Lua
local status_ok, comment = pcall(require, "Comment")
|
|
if not status_ok then
|
|
return
|
|
end
|
|
|
|
local status_ok_1, _ = pcall(require, "lsp-inlayhints")
|
|
if not status_ok_1 then
|
|
return
|
|
end
|
|
|
|
comment.setup {
|
|
pre_hook = function(ctx)
|
|
-- For inlay hints
|
|
local line_start = (ctx.srow or ctx.range.srow) - 1
|
|
local line_end = ctx.erow or ctx.range.erow
|
|
require("lsp-inlayhints.core").clear(0, line_start, line_end)
|
|
|
|
if
|
|
vim.bo.filetype == "typescriptreact"
|
|
or vim.bo.filetype == "javascriptreact"
|
|
or vim.bo.filetype == "javascript"
|
|
or vim.bo.filetype == "typescript"
|
|
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,
|
|
}
|