11local api = vim .api
22local highlight = require (" csvtools.highlight" )
3+ local overflow = require (" csvtools.overflowtext" )
34local M = {
45 winid = nil ,
56 buf = nil ,
67 mainwindowbuf = nil ,
8+ header = {},
79 before = 20 ,
810 after = 20 ,
911 clearafter = true ,
12+ overflowtext = {
13+ markid = nil ,
14+ ns_id = nil ,
15+ id = nil ,
16+ }
1017}
11-
18+ function M .printheader ()
19+ -- for count = 1, #M.header do
20+ -- print(M.header[count])
21+ -- end
22+ return M .header
23+ end
1224function M .NewWindow ()
1325 if M .winid == nil then
1426 M .mainwindowbuf = vim .api .nvim_get_current_buf ()
@@ -26,9 +38,7 @@ function M.NewWindow()
2638 local win = vim .api .nvim_get_current_win ()
2739 api .nvim_buf_set_lines (buf , 0 , - 1 , false , { messages })
2840 api .nvim_win_set_buf (win , buf )
29- highlight .highlighttop (buf , messages )
30- -- api.nvim_buf_add_highlight(buf, -1, 'WhidHeader',0,0,1)
31- -- api.nvim_buf_add_highlight(buf, -1, 'WhidSubHeader', 0, 1, 2)
41+ M .header = highlight .highlighttop (buf , messages )
3242 M .winid = win
3343 M .buf = buf
3444 M .add_mappings ()
@@ -39,7 +49,8 @@ function M.CloseWindow()
3949 if M .winid ~= nil then
4050 vim .api .nvim_win_close (M .winid , true )
4151 M .winid = nil
42- M .buf = nil
52+ M .buf = nil
53+ M .header = {}
4354 end
4455end
4556
@@ -61,13 +72,15 @@ function M.Highlight()
6172 if vim .o .filetype == " csv" then
6273 M .mainwindowbuf = vim .api .nvim_get_current_buf ()
6374 local line , _ = unpack (vim .api .nvim_win_get_cursor (0 ))
75+ -- print(line)
6476 local length = vim .api .nvim_buf_line_count (M .mainwindowbuf )
6577 if M .clearafter then
6678 api .nvim_buf_clear_highlight (M .mainwindowbuf , - 1 , 0 , length )
6779 end
6880 local start , final = getrange (line , length )
6981 -- print(start)
7082 -- print(final)
83+ M .overflowtext = overflow .OverFlow (line ,M .header )
7184 for i = start , line , 1 do
7285 highlight .highlight (M .mainwindowbuf , i )
7386 end
@@ -76,6 +89,13 @@ function M.Highlight()
7689 end
7790 end
7891end
92+ function M .deleteMark ()
93+ vim .api .nvim_buf_del_extmark (
94+ M .overflowtext .markid ,
95+ M .overflowtext .ns_id ,
96+ M .overflowtext .id
97+ )
98+ end
7999function M .add_mappings ()
80100 M .mainwindowbuf = vim .api .nvim_get_current_buf ()
81101 -- print(M.mainwindowbuf)
@@ -84,8 +104,8 @@ function M.add_mappings()
84104 vim .api .nvim_buf_set_keymap (M .mainwindowbuf , " n" , " <leader>tf" , " :lua require'csvtools'.NewWindow()<cr>" , opts )
85105 vim .api .nvim_buf_set_keymap (M .buf , " n" , " <leader>td" , " :lua require'csvtools'.CloseWindow()<cr>" , opts )
86106 vim .api .nvim_buf_set_keymap (M .mainwindowbuf , " n" , " <leader>td" , " :lua require'csvtools'.CloseWindow()<cr>" , opts )
87- vim .api .nvim_buf_set_keymap (M .mainwindowbuf , " n" , " <up>" , " :lua require'csvtools'.Highlight()<cr>:-1 <cr>" , opts )
88- vim .api .nvim_buf_set_keymap (M .mainwindowbuf , " n" , " <down>" , " :lua require'csvtools'.Highlight()<cr>:+1 <cr>" , opts )
107+ vim .api .nvim_buf_set_keymap (M .mainwindowbuf , " n" , " <up>" , " :-1<cr>: lua require'csvtools'.Highlight()<cr>" , opts )
108+ vim .api .nvim_buf_set_keymap (M .mainwindowbuf , " n" , " <down>" , " :+1<cr>: lua require'csvtools'.Highlight()<cr>" , opts )
89109end
90110function M .setup (opts )
91111 M = vim .tbl_deep_extend (" force" , M , opts )
0 commit comments