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
|
local M = {}
local nb = vim.api.nvim_create_namespace('noiceboard')
local settings = {
header = {
" ▄▄▄█████▓ ▄▄▄ ▄▄▄██▀▀▀ ",
" ▓ ██▒ ▓▒ ▒████▄ ▒██ ",
" ▒ ▓██░ ▒░ ▒██ ▀█▄ ░██ ",
" ░ ▓██▓ ░ ░██▄▄▄▄██ ▓██▄██▓ ",
" ▒██▒ ░ ▓█ ▓██▒ ▓███▒ ",
" ▒ ░░ ▒▒ ▓▒█░ ▒▓▒▒░ ",
" ░ ▒ ▒▒ ░ ▒ ░▒░ ",
" ░ ░ ▒ ░ ░ ░ ",
" ░ ░ ░ ░ ",
}
}
local function center(dict)
local centered = {}
for _, line in ipairs(dict) do
local space_left = vim.o.columns - string.len(line)
table.insert(centered, string.rep(" ", space_left) .. line)
space_left = 0
end
return centered
end
function M.print_header()
dump(center(settings.header))
end
local count = 1
local function set_lines(len, text, hi, pass)
vim.api.nvim_buf_set_lines(0, count, count+len, false, center(text))
vim.api.nvim_win_set_cursor(0, {count, 0})
if pass then vim.g.section_length = count end
for i=count,count+len do
vim.api.nvim_buf_add_highlight(0, nb, hi, i, 1, -1)
end
count = count + len
end
function M.set_header()
set_lines(#settings.header, settings.header, 'TSString')
end
function M.setup()
vim.cmd("command! -bang -nargs=0 StartuptoolsHeader :lua require('startuptools').set_header()")
end
return M
|