From ee571505f3566f84fd252e76c4ce6df6eaf2fb94 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Sat, 19 Aug 2023 21:52:31 +0000 Subject: [PATCH] feat: add highlight group for builtin select index (#113) --- lua/dressing/select/builtin.lua | 10 +++++++++- plugin/dressing.lua | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lua/dressing/select/builtin.lua b/lua/dressing/select/builtin.lua index 7ead567..dfb9cfa 100644 --- a/lua/dressing/select/builtin.lua +++ b/lua/dressing/select/builtin.lua @@ -54,9 +54,12 @@ M.select = function(config, items, opts, on_choice) vim.bo[bufnr][k] = v end local lines = {} + local highlights = {} local max_width = 1 for idx, item in ipairs(items) do - local line = "[" .. idx .. "] " .. opts.format_item(item) + local prefix = "[" .. idx .. "] " + table.insert(highlights, { #lines, prefix:len() }) + local line = prefix .. opts.format_item(item) max_width = math.max(max_width, vim.api.nvim_strwidth(line)) table.insert(lines, line) @@ -70,6 +73,11 @@ M.select = function(config, items, opts, on_choice) end vim.api.nvim_buf_set_lines(bufnr, 0, -1, true, lines) vim.bo[bufnr].modifiable = false + local ns = vim.api.nvim_create_namespace("DressingSelect") + for _, hl in ipairs(highlights) do + local lnum, end_col = unpack(hl) + vim.api.nvim_buf_add_highlight(bufnr, ns, "DressingSelectIdx", lnum, 0, end_col) + end local width = util.calculate_width(config.relative, max_width, config, 0) local height = util.calculate_height(config.relative, #lines, config, 0) local row = util.calculate_row(config.relative, height, 0) diff --git a/plugin/dressing.lua b/plugin/dressing.lua index 618a316..8b76505 100644 --- a/plugin/dressing.lua +++ b/plugin/dressing.lua @@ -1,2 +1,4 @@ require("dressing").patch() -vim.cmd([[highlight default link FloatTitle FloatBorder]]) +vim.api.nvim_set_hl(0, "DressingSelectIdx", { + link = "Special", +})