diff --git a/src/main.lua b/src/main.lua index bdd1982..e196d4e 100644 --- a/src/main.lua +++ b/src/main.lua @@ -759,7 +759,7 @@ end local function add_param_items(items, params, prefix_filter) for _, inp in ipairs(params.inputs or {}) do local label = inp.name .. " := " - if prefix_filter == "" or inp.name:upper():find("^" .. prefix_filter:upper(), 1, true) then + if prefix_filter == "" or inp.name:upper():sub(1, #prefix_filter) == prefix_filter:upper() then table.insert(items, { label = label, kind = 13, @@ -771,7 +771,7 @@ local function add_param_items(items, params, prefix_filter) end for _, out in ipairs(params.outputs or {}) do local label = out.name .. " => " - if prefix_filter == "" or out.name:upper():find("^" .. prefix_filter:upper(), 1, true) then + if prefix_filter == "" or out.name:upper():sub(1, #prefix_filter) == prefix_filter:upper() then table.insert(items, { label = label, kind = 13, @@ -835,7 +835,7 @@ function handlers.textDocument_completion(params) if doc.variables then local prefix = has_hash_prefix and line_before:match("#([%w_]*)$") or word_prefix for name, info in pairs(doc.variables) do - if prefix == "" or name:upper():find("^" .. prefix:upper(), 1, true) then + if prefix == "" or name:upper():sub(1, #prefix) == prefix:upper() then table.insert(items, { label = "#" .. name, filterText = "#" .. name, @@ -972,7 +972,7 @@ function handlers.textDocument_completion(params) -- Add declared variables (label without # so client-side matching works) if doc.variables then for name, info in pairs(doc.variables) do - if word_prefix == "" or name:upper():find("^" .. word_prefix:upper(), 1, true) then + if word_prefix == "" or name:upper():sub(1, #word_prefix) == word_prefix:upper() then table.insert(items, { label = name, filterText = name, @@ -1006,7 +1006,7 @@ function handlers.textDocument_completion(params) -- Add declared variables in general context too if doc.variables then for name, info in pairs(doc.variables) do - if word_prefix == "" or name:upper():find("^" .. word_prefix:upper(), 1, true) then + if word_prefix == "" or name:upper():sub(1, #word_prefix) == word_prefix:upper() then table.insert(items, { label = name, filterText = name,