@@ -105,6 +105,14 @@ function lsp:get_completions(context, callback)
105
105
106
106
-- convert full response to our internal format
107
107
else
108
+ local defaults = response .result and response .result .itemDefaults or {}
109
+ for _ , item in ipairs (response .result .items ) do
110
+ -- add defaults to the item
111
+ for key , value in pairs (defaults ) do
112
+ item [key ] = value
113
+ end
114
+ end
115
+
108
116
responses [client_id ] = {
109
117
is_incomplete_forward = response .result .isIncomplete ,
110
118
is_incomplete_backward = true ,
@@ -115,7 +123,6 @@ function lsp:get_completions(context, callback)
115
123
116
124
-- add client_id and defaults to the items
117
125
for client_id , response in pairs (responses ) do
118
- local defaults = response .result and response .result .itemDefaults or {}
119
126
for _ , item in ipairs (response .items ) do
120
127
-- todo: terraform lsp doesn't return a .kind in situations like `toset`, is there a default value we need to grab?
121
128
-- it doesn't seem to return itemDefaults either
@@ -124,11 +131,6 @@ function lsp:get_completions(context, callback)
124
131
125
132
-- todo: make configurable
126
133
if item .deprecated or (item .tags and vim .tbl_contains (item .tags , 1 )) then item .score_offset = - 2 end
127
-
128
- -- add defaults to the item
129
- for key , value in pairs (defaults ) do
130
- item [key ] = value
131
- end
132
134
end
133
135
end
134
136
@@ -159,10 +161,13 @@ function lsp:resolve(item, callback)
159
161
end
160
162
161
163
-- strip blink specific fields to avoid decoding errors on some LSPs (i.e. fsautocomplete)
164
+ vim .print (item )
162
165
item = require (' blink.cmp.sources.lib.utils' ).blink_item_to_lsp_item (item )
166
+ vim .print (item )
163
167
164
168
local _ , request_id = client .request (' completionItem/resolve' , item , function (error , resolved_item )
165
169
if error or resolved_item == nil then callback (item ) end
170
+ vim .print (resolved_item )
166
171
callback (resolved_item )
167
172
end )
168
173
if request_id ~= nil then return function () client .cancel_request (request_id ) end end
0 commit comments