aboutsummaryrefslogtreecommitdiff
path: root/lua/startuptools.lua
blob: 0d95c016602afff37d910250d5402815d3800342 (plain)
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
local M = {}
local nb = vim.api.nvim_create_namespace('noiceboard')

local settings = {
  header = {
"                                          /$$              ",
"                                         |__/              ",
" /$$$$$$$   /$$$$$$   /$$$$$$  /$$    /$$ /$$ /$$$$$$/$$$$ ",
"| $$__  $$ /$$__  $$ /$$__  $$|  $$  /$$/| $$| $$_  $$_  $$",
"| $$  \\ $$| $$$$$$$$| $$  \\ $$ \\  $$/$$/ | $$| $$ \\ $$ \\ $$",
"| $$  | $$| $$_____/| $$  | $$  \\  $$$/  | $$| $$ | $$ | $$",
"| $$  | $$|  $$$$$$$|  $$$$$$/   \\  $/   | $$| $$ | $$ | $$",
"|__/  |__/ \\_______/ \\______/     \\_/    |__/|__/ |__/ |__/",
  }
}


local function center(dict)
  local centered = {}
  local space_left = vim.o.columns - string.len(dict[1])
  for _, line in ipairs(dict) do
    table.insert(centered, string.rep(" ", space_left/2) .. line)
  end
  return centered
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

return M