summaryrefslogtreecommitdiff
path: root/ar/.config/TheSiahxyz/lua/thesiahxyz/utils/cheatsheet/grid.lua
diff options
context:
space:
mode:
Diffstat (limited to 'ar/.config/TheSiahxyz/lua/thesiahxyz/utils/cheatsheet/grid.lua')
-rw-r--r--ar/.config/TheSiahxyz/lua/thesiahxyz/utils/cheatsheet/grid.lua105
1 files changed, 0 insertions, 105 deletions
diff --git a/ar/.config/TheSiahxyz/lua/thesiahxyz/utils/cheatsheet/grid.lua b/ar/.config/TheSiahxyz/lua/thesiahxyz/utils/cheatsheet/grid.lua
deleted file mode 100644
index ced539b..0000000
--- a/ar/.config/TheSiahxyz/lua/thesiahxyz/utils/cheatsheet/grid.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local api = vim.api
-local ch = require("thesiahxyz.utils.cheatsheet.init")
-local state = ch.state
-
-local ascii = {
- " ",
- " ",
- "█▀▀ █░█ █▀▀ ▄▀█ ▀█▀ █▀ █░█ █▀▀ █▀▀ ▀█▀",
- "█▄▄ █▀█ ██▄ █▀█ ░█░ ▄█ █▀█ ██▄ ██▄ ░█░",
- " ",
- " ",
-}
-
-return function(buf, win, action)
- action = action or "open"
-
- local ns = api.nvim_create_namespace("thesiah_cheatsheet")
-
- if action == "open" then
- state.mappings_tb = ch.organize_mappings()
-
- buf = buf or api.nvim_create_buf(false, true)
- win = win or api.nvim_get_current_win()
-
- api.nvim_set_current_win(win)
-
- -- Calculate maximum widths for lhs and rhs
- local lhs_max_width, rhs_max_width = 0, 0
- for _, section in pairs(state.mappings_tb) do
- for _, mapping in ipairs(section) do
- lhs_max_width = math.max(lhs_max_width, vim.fn.strdisplaywidth(mapping[1]))
- rhs_max_width = math.max(rhs_max_width, vim.fn.strdisplaywidth(mapping[2]))
- end
- end
-
- local total_width = lhs_max_width + rhs_max_width + 6 -- Add spacing for readability
- local center_offset = math.floor((total_width - vim.fn.strdisplaywidth(ascii[1])) / 2)
-
- -- Align ASCII art to the center
- local ascii_header = vim.tbl_values(ascii)
- for i, line in ipairs(ascii_header) do
- ascii_header[i] = string.rep(" ", center_offset) .. line
- end
-
- -- Center-align the title
- local title = "Cheatsheet"
- local title_padding = math.floor((total_width - vim.fn.strdisplaywidth(title)) / 2)
- local title_line = string.rep(" ", title_padding) .. title
-
- -- Prepare buffer lines
- local lines = {}
- for _, line in ipairs(ascii_header) do
- table.insert(lines, line)
- end
- table.insert(lines, "") -- Blank line after ASCII art
- table.insert(lines, title_line)
- table.insert(lines, "") -- Blank line after title
-
- -- Add mappings grouped by section
- for section_name, mappings in pairs(state.mappings_tb) do
- -- Center-align the section name
- local section_padding = math.floor((total_width - vim.fn.strdisplaywidth(section_name)) / 2)
- table.insert(lines, string.rep(" ", section_padding) .. section_name) -- Section header
-
- -- Add mappings aligned to lhs and rhs
- for _, mapping in ipairs(mappings) do
- local lhs = mapping[1]
- local rhs = mapping[2]
- local lhs_padding = string.rep(" ", lhs_max_width - vim.fn.strdisplaywidth(lhs))
- local rhs_padding = string.rep(" ", rhs_max_width - vim.fn.strdisplaywidth(rhs))
- table.insert(lines, lhs .. lhs_padding .. " " .. rhs_padding .. rhs)
- end
- table.insert(lines, "") -- Blank line after each section
- end
-
- -- Set lines into the buffer
- api.nvim_buf_set_lines(buf, 0, -1, false, lines)
-
- -- Highlight ASCII art and title
- for i = 1, #ascii_header do
- vim.hl.range(buf, ns, "ThesiahAsciiHeader", { i - 1, 0 }, { i - 1, -1 }, {})
- end
- vim.hl.range(buf, ns, "Title", { #ascii + 1, 0 }, { #ascii + 1, -1 }, {})
-
- -- Highlight section headers
- local current_line = #ascii + 3 -- Adjust for blank lines and title
- for section_name, mappings in pairs(state.mappings_tb) do
- vim.hl.range(buf, ns, "TheSiahSection", { current_line, 0 }, { current_line, -1 }, {})
- current_line = current_line + #mappings + 2 -- Count section header, mappings, and blank line
- end
-
- -- Configure the buffer
- vim.bo[buf].modifiable = false
- vim.bo[buf].readonly = false
- vim.bo[buf].buftype = ""
- vim.bo[buf].buflisted = true
- vim.bo[buf].filetype = "cheatsheet"
-
- -- Set up autocmds for the cheatsheet
- ch.autocmds(buf, win)
-
- -- Focus on the cheatsheet buffer
- api.nvim_set_current_buf(buf)
- end
-end