@@ -4,60 +4,6 @@ local pickers = require("zettelkasten.pickers")
44
55local M = {}
66
7- --- Inserts the string `s` at position.
8- --- @param position zettelkasten.utils.nvim.position.Position
9- --- @param s string
10- local function insert_at_position (position , s )
11- local line_pre = vim .api .nvim_buf_get_lines (0 , position .row - 1 , position .row , true )[1 ]
12- local left = line_pre :sub (1 , position .column - 1 )
13- local right = line_pre :sub (position .column )
14- local line_post = left .. s .. right
15- vim .api .nvim_buf_set_lines (0 , position .row - 1 , position .row , true , { line_post })
16- end
17-
18- --- Surrounds the text of a single-line visual range.
19- --- @param visual_range VisualRange
20- --- @param prefix string
21- --- @param suffix string
22- local function surround_single_line (visual_range , prefix , suffix )
23- assert (visual_range :is_single_line ())
24-
25- local row = visual_range .from .row
26- local line = vim .api .nvim_buf_get_lines (0 , row - 1 , row , true )[1 ]
27-
28- local left = line :sub (1 , visual_range .from .column - 1 )
29- local center = line :sub (visual_range .from .column , visual_range .to .column )
30- local right = line :sub (visual_range .to .column + 1 )
31-
32- local surrounded = left .. prefix .. center .. suffix .. right
33- vim .api .nvim_buf_set_lines (0 , row - 1 , row , true , { surrounded })
34- end
35-
36- --- Surrounds the text of a multi-line visual range.
37- --- @param visual_range VisualRange
38- --- @param prefix string
39- --- @param suffix string
40- local function surround_multi_line (visual_range , prefix , suffix )
41- assert (not visual_range :is_single_line ())
42-
43- insert_at_position (visual_range .from , prefix )
44- vim .notify (vim .inspect (visual_range .to ))
45- insert_at_position (visual_range .to :offset_column (1 ), suffix )
46- end
47-
48- --- Surrounds a range within the buffer with the `left` and `right` srings.
49- ---
50- --- @param visual_range VisualRange
51- --- @param left string
52- --- @param right string
53- function M .surround (visual_range , left , right )
54- if visual_range :is_single_line () then
55- surround_single_line (visual_range , left , right )
56- else
57- surround_multi_line (visual_range , left , right )
58- end
59- end
60-
617M .surround_visual_selection_with_link_to_note = function ()
628 nvim_utils .assert_visual_mode ()
639
0 commit comments