diff --git a/script/core/hint.lua b/script/core/hint.lua index 4050ccf97f55b0424b746b3d56fd15908cb73081..accb814921732b9d2de0d58341a879fc0e173648 100644 --- a/script/core/hint.lua +++ b/script/core/hint.lua @@ -4,6 +4,7 @@ local vm = require 'vm' local config = require 'config' local guide = require 'parser.guide' local await = require 'await' +local define = require 'proto.define' local function typeHint(uri, edits, start, finish) local ast = files.getState(uri) @@ -58,9 +59,9 @@ local function typeHint(uri, edits, start, finish) end mark[src] = true edits[#edits+1] = { - newText = (':%s'):format(view), - start = src.finish, - finish = src.finish, + text = view, + offset = src.finish, + kind = define.InlayHintKind.Type, } end) end @@ -145,9 +146,9 @@ local function paramName(uri, edits, start, finish) mark[arg] = true if args[i] and args[i] ~= '' then edits[#edits+1] = { - newText = ('%s:'):format(args[i]), - start = arg.start, - finish = arg.start - 1, + text = args[i], + offset = arg.start, + kind = define.InlayHintKind.Parameter, } end end diff --git a/script/proto/define.lua b/script/proto/define.lua index 9fbbea354f5b6c262392bb2c5e40eb0c30d3b191..2e61bc3ea77ef3d2adac46b01c91116711a3cd32 100644 --- a/script/proto/define.lua +++ b/script/proto/define.lua @@ -301,4 +301,10 @@ m.BuiltinClass = { ['Function'] = true, } +m.InlayHintKind = { + Other = 0, + Type = 1, + Parameter = 2, +} + return m diff --git a/script/provider/provider.lua b/script/provider/provider.lua index 6ffb0837308795c92d100eb46ca87ceb2d690523..4734686b703f7ebcf2a44700a67e8a8747b2016a 100644 --- a/script/provider/provider.lua +++ b/script/provider/provider.lua @@ -821,8 +821,8 @@ do if piece then for _, edit in ipairs(piece) do edits[#edits+1] = { - newText = edit.newText, - range = files.range(uri, edit.start, edit.finish) + newText = ':' .. edit.text, + range = files.range(uri, edit.offset, edit.offset) } end end