gruvbox.nvim icon indicating copy to clipboard operation
gruvbox.nvim copied to clipboard

[BUG] Should popups be transparent with transparent_mode = true ?

Open timsofteng opened this issue 2 months ago • 4 comments

Describe the bug

  1. With active transparent mode popups looks weird.

Expected behaviour

We need to mark popups somehow (to keep background or add borders)

Screenshots

изображение изображение

timsofteng avatar May 03 '24 20:05 timsofteng

gruvbox.nvim is a colorscheme and it does not configure the floating window. If you are using language servers from lspconfig, you can set up borders in your own config like this:

local lsp = vim.lsp

vim.api.nvim_create_autocmd("LspAttach", {
  group = vim.api.nvim_create_augroup("UserLspConfig", {}),
  callback = function(event)
    lsp.handlers["textDocument/hover"] = lsp.with(lsp.handlers.hover, { border = "rounded" })
    lsp.handlers["textDocument/signatureHelp"] = lsp.with(lsp.handlers.signature_help, { border = "rounded" })

    local opts = { buffer = event.buf }
    local map = vim.keymap.set
    local lsp_buf = lsp.buf

    map("n", "K", lsp_buf.hover, opts)
    map("n", "gs", lsp_buf.signature_help, opts)
    -- more keymaps
  end,
})

xudyang1 avatar May 07 '24 00:05 xudyang1

@xudyang1 this issue is related to all popup windows. Here is how which-key looks without and with transparent mode image image

timsofteng avatar May 07 '24 12:05 timsofteng

@timsofteng For whichkey, you can set up border style by calling require('which-key').setup({ window = { border = "single" }).

Generally, if you want to configure all these plugin popup windows, you have to refer to the plugin's github page. Most configuration options are available in the README, so updating your config may not take too long.

Again, gruvbox.nvim is only a colorscheme and it does not have the capability to set up the border style (you can find details about border styles from :help nvim_open_win()). gruvbox.nvim only sets some plugins' border highlight or links them into existing highlight groups (see :h 'highlight', :h highlight-groups, and :h :highlight-link).

If you want to customize the popup border:

  1. enable the plugin popup window border in the your config

  2. then, if you want to change the border highlight (e.g., color), you can search for the highlight group of the plugin popup window border. Next, override it in gruvbox.nvim's config. For example:

require("gruvbox").setup({
  overrides = { 
    LspInfoBorder = {
      link = "FloatBorder",
    },
  }
})

xudyang1 avatar May 08 '24 00:05 xudyang1