Skip to content

Commit ecc8c6a

Browse files
committed
Improve logic for JSX detection
1 parent 3040b4f commit ecc8c6a

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

lua/typescript-tools/protocol/utils.lua

+10-7
Original file line numberDiff line numberDiff line change
@@ -242,13 +242,18 @@ end
242242
local function is_completing_jsx(bufnr, position)
243243
local requested_line = vim.api.nvim_buf_get_lines(bufnr, position.line, position.line + 1, false)[1]
244244
local requested_line_until_position = requested_line:sub(1, position.character)
245-
local last_word_before_position = nil
246245

247-
for word in requested_line_until_position:gmatch("%S+") do
248-
last_word_before_position = word
249-
end
246+
local valid_characters_after_start_bracket = "[%w%._$]"
250247

251-
return last_word_before_position ~= nil and last_word_before_position:sub(1, 1) == "<"
248+
for character in requested_line_until_position:reverse():gmatch(".") do
249+
if character == "<" then
250+
return true
251+
end
252+
if not character:match(valid_characters_after_start_bracket) then
253+
return false
254+
end
255+
end
256+
return false
252257
end
253258

254259
---@param position LspPosition
@@ -265,8 +270,6 @@ local function should_omit_function_snippet_in_context(position, file, request)
265270

266271
local body = coroutine.yield()
267272

268-
print(vim.inspect(body))
269-
270273
return vim.tbl_contains({ "var", "let", "const", "alias" }, body.kind)
271274
end
272275

0 commit comments

Comments
 (0)