diff options
Diffstat (limited to 'util.lua')
| -rw-r--r-- | util.lua | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -242,6 +242,18 @@ function util.vis_sorted_selections_to_pos(file, sorted_selections) pos = pos + #line + 1 end + + -- Some language servers (pylsp) send ranges including the first character after the last line. + -- e.g. [{"line":1, "col":1}, {"line":#lines+1, "col":1}] + -- But this selection can not be handled by iterating all lines. + -- Special case ranges ensing after the last line. + -- Additionaly the start and end can overlap. + -- Gopls sends the range [{"line":1, "col":1}, {"line":1, "col":1}] when editing an empty file. + while sel and sel.line == line_count + 1 and sel.col == 1 do + table.insert(positions, pos) + sel_i = sel_i + 1 + sel = sorted_selections[sel_i] + end return positions end |
