@@ -14,79 +14,21 @@ function M.clear_suggestion(bufnr, ns_id)
14
14
vim .b [bufnr ].nes_jump = false
15
15
return
16
16
end
17
- vim . api . nvim_buf_clear_namespace (bufnr , ns_id , 0 , - 1 )
17
+ _dismiss_suggestion (bufnr , ns_id )
18
18
--- @type copilotlsp.InlineEdit
19
19
local state = vim .b [bufnr ].nes_state
20
20
if not state then
21
21
return
22
22
end
23
23
24
- _dismiss_suggestion (bufnr , ns_id )
25
24
vim .b [bufnr ].nes_state = nil
26
25
end
27
26
28
- local function trim_end (s )
29
- return s :gsub (" %s+$" , " " )
30
- end
31
-
32
27
--- @private
33
- --- @param suggestion copilotlsp.InlineEdit
34
- --- @return copilotlsp.nes.LineCalculationResult
35
- function M ._calculate_lines (suggestion )
36
- local deleted_lines_count = suggestion .range [" end" ].line - suggestion .range .start .line
37
- local added_lines = vim .split (trim_end (suggestion .newText ), " \n " )
38
- local added_lines_count = suggestion .newText == " " and 0 or # added_lines
39
- local same_line = false
40
-
41
- if deleted_lines_count == 0 and added_lines_count == 1 then
42
- --- changing within line
43
- deleted_lines_count = 1
44
- same_line = true
45
- end
46
-
47
- -- if
48
- -- suggestion.range.start.line == suggestion.range["end"].line
49
- -- and suggestion.range.start.character == suggestion.range["end"].character
50
- -- then
51
- -- --add only
52
- -- TODO: Do we need to position specifically for add only?
53
- -- UI tests seem to say no
54
- -- end
55
-
56
- -- Calculate positions for delete highlight extmark
57
- --- @type copilotlsp.nes.DeleteExtmark
58
- local delete_extmark = {
59
- row = suggestion .range .start .line ,
60
- end_row = (
61
- suggestion .range [" end" ].character ~= 0 and suggestion .range [" end" ].line + 1
62
- or suggestion .range [" end" ].line
63
- ),
64
- }
65
-
66
- -- Calculate positions for virtual lines extmark
67
- --- @type copilotlsp.nes.AddExtmark
68
- local virt_lines_extmark = {
69
- row = (
70
- suggestion .range [" end" ].character ~= 0 and suggestion .range [" end" ].line
71
- or suggestion .range [" end" ].line - 1
72
- ),
73
- virt_lines_count = added_lines_count ,
74
- }
75
-
76
- return {
77
- deleted_lines_count = deleted_lines_count ,
78
- added_lines = added_lines ,
79
- added_lines_count = added_lines_count ,
80
- same_line = same_line ,
81
- delete_extmark = delete_extmark ,
82
- virt_lines_extmark = virt_lines_extmark ,
83
- }
84
- end
85
-
86
28
--- @param bufnr integer
87
29
--- @param edit lsp.TextEdit
88
30
--- @return copilotlsp.nes.InlineEditPreview
89
- function M .caculate_preview (bufnr , edit )
31
+ function M ._calculate_preview (bufnr , edit )
90
32
local text = edit .newText
91
33
local range = edit .range
92
34
local start_line = range .start .line
@@ -175,10 +117,11 @@ function M.caculate_preview(bufnr, edit)
175
117
}
176
118
end
177
119
120
+ --- @private
178
121
--- @param bufnr integer
179
122
--- @param ns_id integer
180
123
--- @param preview copilotlsp.nes.InlineEditPreview
181
- function M .display_inline_edit_preview (bufnr , ns_id , preview )
124
+ function M ._display_preview (bufnr , ns_id , preview )
182
125
if preview .deletion then
183
126
local range = preview .deletion .range
184
127
vim .api .nvim_buf_set_extmark (bufnr , ns_id , range .start .line , range .start .character , {
@@ -222,8 +165,8 @@ function M._display_next_suggestion(bufnr, ns_id, edits)
222
165
223
166
local suggestion = edits [1 ]
224
167
225
- local preview = M .caculate_preview (bufnr , suggestion )
226
- M .display_inline_edit_preview (bufnr , ns_id , preview )
168
+ local preview = M ._calculate_preview (bufnr , suggestion )
169
+ M ._display_preview (bufnr , ns_id , preview )
227
170
228
171
vim .b [bufnr ].nes_state = suggestion
229
172
0 commit comments