diff --git a/changelog.md b/changelog.md index 83d2681e9..654e4de04 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # changelog +## 3.6.14 +* `FIX` [#1753] + +[#1753]: https://github.com/LuaLS/lua-language-server/issues/1753 + ## 3.6.13 `2023-3-2` * `FIX` setting: `Lua.addonManager.enable` should be `true` by default diff --git a/script/client.lua b/script/client.lua index f39202a69..a8eda9b87 100644 --- a/script/client.lua +++ b/script/client.lua @@ -59,7 +59,7 @@ function m.getAbility(name) end current = current[parent] if not current then - return nil + return current end if nextPos > #name then break diff --git a/script/core/semantic-tokens.lua b/script/core/semantic-tokens.lua index 60a942812..3d322a3ea 100644 --- a/script/core/semantic-tokens.lua +++ b/script/core/semantic-tokens.lua @@ -7,6 +7,7 @@ local guide = require 'parser.guide' local converter = require 'proto.converter' local config = require 'config' local linkedTable = require 'linked-table' +local client = require 'client' local Care = util.switch() : case 'getglobal' @@ -794,7 +795,8 @@ local function solveMultilineAndOverlapping(state, results) for token in tokens:pairs() do local startPos = converter.packPosition(state, token.start) local endPos = converter.packPosition(state, token.finish) - if endPos.line == startPos.line then + if endPos.line == startPos.line + or client.getAbility 'textDocument.semanticTokens.multilineTokenSupport' then new[#new+1] = { start = startPos, finish = endPos,