summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelog.md7
-rw-r--r--script/library.lua19
2 files changed, 10 insertions, 16 deletions
diff --git a/changelog.md b/changelog.md
index 67e24e88..a82efdab 100644
--- a/changelog.md
+++ b/changelog.md
@@ -4,9 +4,10 @@
<!-- Add all new changes here. They will be moved under a version at release -->
* `NEW` Add postfix snippet for `unpack`
* `FIX` `diagnostics.severity` defaulting to "Warning" when run using `--check` [#2730](https://github.com/LuaLS/lua-language-server/issues/2730)
-* `NEW` Add support for lambda style functions, `|paramList| expr` is syntactic sugar for `function(paramList) return expr end`
-* `FIX` Respect `completion.showParams` config for local function completion
+* `NEW` Add support for lambda style functions, `|paramList| expr` is syntactic sugar for `function(paramList) return expr end`
+* `FIX` Respect `completion.showParams` config for local function completion
* `CHG` Improve performance of multithreaded `--check` and `undefined-field` diagnostic
+* `FIX` Addons can now self-recommend as expected. Fixed by correcting the `wholeMatch` function
* `FIX` Now correctly evaluates the visibility of fields in a class when they are defined directly in the object. use for completion and invisible dianostic. [#2752](https://github.com/LuaLS/lua-language-server/issues/2752)
* `NEW` added lua regular expression support for Lua.doc.<scope>Name [#2753](https://github.com/LuaLS/lua-language-server/pull/2753)
* `FIX` Bad triggering of the `inject-field` diagnostic, when the fields are declared at the creation of the object [#2746](https://github.com/LuaLS/lua-language-server/issues/2746)
@@ -149,7 +150,7 @@
Cat = 1,
Dog = 2,
}
-
+
---@param animal userdata
---@param atp AnimalType
---@return boolean
diff --git a/script/library.lua b/script/library.lua
index 2e925e8d..cfc7e328 100644
--- a/script/library.lua
+++ b/script/library.lua
@@ -360,7 +360,7 @@ local function loadSingle3rdConfig(libraryDir)
if cfg.words then
for i, word in ipairs(cfg.words) do
- cfg.words[i] = '()' .. word .. '()'
+ cfg.words[i] = '([%w_]?)' .. word .. '([%w_]?)'
end
end
if cfg.files then
@@ -370,7 +370,7 @@ local function loadSingle3rdConfig(libraryDir)
else
filename = filename:gsub('\\', '/')
end
- cfg.files[i] = '()' .. filename .. '()'
+ cfg.files[i] = '([%w_]?)' .. filename .. '([%w_]?)'
end
end
@@ -515,17 +515,10 @@ end
---@param b string
---@return boolean
local function wholeMatch(a, b)
- local pos1, pos2 = a:match(b)
- if not pos1 then
- return false
- end
- local left = a:sub(pos1 - 1, pos1 - 1)
- local right = a:sub(pos2, pos2)
- if left:match '[%w_]'
- or right:match '[%w_]' then
- return false
- end
- return true
+ local captures = {
+ a:match(b),
+ }
+ return captures[1] == '' and captures[#captures] == ''
end
local function check3rdByWords(uri, configs, checkThirdParty)