1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
return {
{
"cameron-wags/rainbow_csv.nvim",
config = function()
require("rainbow_csv").setup()
-- vim.g.rcsv_colorpairs = {
-- { "red", "red" },
-- { "blue", "blue" },
-- { "green", "green" },
-- { "magenta", "magenta" },
-- { "NONE", "NONE" },
-- { "darkred", "darkred" },
-- { "darkblue", "darkblue" },
-- { "darkgreen", "darkgreen" },
-- { "darkmagenta", "darkmagenta" },
-- { "darkcyan", "darkcyan" },
-- }
end,
ft = {
"csv",
"tsv",
"csv_semicolon",
"csv_whitespace",
"csv_pipe",
"rfc_csv",
"rfc_semicolon",
},
cmd = {
"RainbowDelim",
"RainbowDelimSimple",
"RainbowDelimQuoted",
"RainbowMultiDelim",
},
},
{
"hat0uma/csvview.nvim",
cmd = { "CsvViewEnable", "CsvViewDisable", "CsvViewToggle" },
event = { "BufReadPre *.csv" }, -- Lazy-load the plugin when a CSV file is about to be read
init = function()
local wk = require("which-key")
wk.add({
mode = { "n", "v", "x" },
{ "<leader>cs", group = "csv" },
})
end,
config = function()
require("csvview").setup()
vim.api.nvim_create_autocmd("BufRead", {
pattern = "*.csv",
callback = function()
vim.cmd("CsvViewEnable")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "csv",
callback = function()
vim.keymap.set(
"n",
"<leader>zv",
"<cmd>CsvViewToggle<cr>",
{ desc = "Toggle CSV view", buffer = true }
)
end,
})
end,
keys = {
{
"<leader>csv",
function()
local delimiter = vim.fn.input("Delimiter (e.g., ,): ")
local quote_char = vim.fn.input("Quote char (e.g., '): ")
local comment = vim.fn.input("Comment char (e.g., #): ")
local command = string.format(
":CsvViewToggle delimiter=%s quote_char=%s comment=%s<CR>",
delimiter,
quote_char,
comment
)
vim.cmd(command)
end,
desc = "Toggle CSV view",
},
},
},
}
|