echasnovski / mini.nvim

Library of 40+ independent Lua modules improving overall Neovim (version 0.8 and higher) experience with minimal effort
MIT License
4.84k stars 183 forks source link

mini.map: `builtin_search` highlight not working #628

Closed JeanMertz closed 8 months ago

JeanMertz commented 8 months ago

Contributing guidelines

Module(s)

mini.map

Description

Highlighting for builtin_search does not seem to work. The other highlight I use (git) does work.

I can see the integration number change when searching if I set window.show_integration_count and search for a word that is repeated multiple times in close proximity.

Here is my config:

  local map = require('mini/map')

  local search_integration = map.gen_integration.builtin_search('IncSearch')
  local git_integration = map.gen_integration.gitsigns({
    add = 'MiniMapGitSignsAdd',
    change = 'MiniMapGitSignsChange',
    delete = 'MiniMapGitSignsDelete',
  })
  local diagnostic_integration = map.gen_integration.diagnostic({
    error = 'DiagnosticFloatingError',
    warn  = 'DiagnosticFloatingWarn',
    info  = 'DiagnosticFloatingInfo',
    hint  = 'DiagnosticFloatingHint',
  })

  map.setup({
    symbols = {
      encode = map.gen_encode_symbols.dot('3x2'),
    },
    window = {
      show_integration_count = true,
      winblend = 0, -- To prevent `:h 'cursorline'` bleeding through.
    },
    integrations = {
      search_integration,
      git_integration,
      diagnostic_integration,
    }
  })

  vim.api.nvim_set_hl(0, "MiniMapNormal", { link = "NonText" })
  vim.api.nvim_set_hl(0, "MiniMapSymbolLine", { link = "NonText" })
  vim.api.nvim_set_hl(0, "MiniMapSymbolView", { link = "NonText" })

  vim.api.nvim_set_hl(0, "MiniMapGitSignsAdd", { fg = Color.blend(Color.hl_fg("GitSignsAdd"), Color.hl_fg("EndOfBuffer"), 70) })
  vim.api.nvim_set_hl(0, "MiniMapGitSignsChange", { fg = Color.blend(Color.hl_fg("GitSignsChange"), Color.hl_fg("EndOfBuffer"), 70) })
  vim.api.nvim_set_hl(0, "MiniMapGitSignsDelete", { fg = Color.blend(Color.hl_fg("GitSignsDelete"), Color.hl_fg("EndOfBuffer"), 70) })

  -- Make sure search higlighting updates as expected.
  --
  -- See: `:h MiniMap.gen_integration.builtin_search`
  for _, key in ipairs({ 'n', 'N', '*', '#' }) do
    vim.keymap.set(
      'n',
      key,
      key ..
        '<Cmd>lua MiniMap.refresh({}, {lines = false, scrollbar = false})<CR>'
    )
  end

And here is :hi IncSearch (it has an orange fg, so it should be visible):

:hi IncSearch
IncSearch      xxx guifg=#223249 guibg=#ff9e3b

Neovim version

0.9.4

Steps to reproduce

  1. nvim -nu minimal.lua
  2. ...

Expected behavior

No response

Actual behavior

Minimap coloring does not change for found highlights, but window.show_integration_count does change when expected.

echasnovski commented 8 months ago

The gen_integration.builtin_search() takes a table map of highlight groups, in the same way as other entries of gen_integration.

Replacing this line:

local search_integration = map.gen_integration.builtin_search('IncSearch')

... with this line:

local search_integration = map.gen_integration.builtin_search({ search = 'IncSearch' })

... should make it work.

JeanMertz commented 8 months ago

Ah, so sorry, I totally missed that. Thank you for the prompt reply.