fix(lsp): do not clear the codelens on the last line #38226

Problem
The logic that clears codelenses beyond the buffer also removes the codelenses on the last line.

Solution
Do not clear the codelens on the last line.
This commit is contained in:
Yi Ming
2026-03-10 19:36:29 +08:00
committed by GitHub
parent 5b5b7eb8d4
commit 0cc4f53b40
2 changed files with 21 additions and 2 deletions

View File

@@ -278,9 +278,10 @@ function Provider:on_win(toprow, botrow)
end
end
-- Clear extmarks beyond the bottom of the buffer.
if botrow == api.nvim_buf_line_count(self.bufnr) - 1 then
for _, state in pairs(self.client_state) do
api.nvim_buf_clear_namespace(self.bufnr, state.namespace, botrow, -1)
api.nvim_buf_clear_namespace(self.bufnr, state.namespace, botrow + 1, -1)
end
end
end

View File

@@ -392,8 +392,26 @@ describe('vim.lsp.codelens', function()
} |
} |
|
{1: ▶︎ Run } |
^ |
{1:~ }|*6
{1:~ }|*5
4 fewer lines |
]])
feed('dd')
screen:expect([[
{1: 1 implementation} |
struct S { |
a: i32, |
b: String, |
} |
|
impl S { |
fn new(a: i32, b: String) -> Self { |
S { a, b } |
} |
} |
^ |
{1:~ }|*7
4 fewer lines |
]])
end)