ellisonleao / gruvbox.nvim

Lua port of the most famous vim colorscheme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

timsofteng opened this issue · comments

commented

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

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

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,
})
commented

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

@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",
    },
  }
})

hey @timsofteng not sure if that's a bug, and honestly I don't use transparent mode so I am a little biased on how to process with this. If you think you have a good suggestion using an override that can be the default color please open a PR, add some screenshots and we can discuss. How about that?

I recently moved from the older gruvbox plugin to this one, and while it's nice that this has a built-in transparent mode unlike the stuff I hacked together with the other one, it does basically break popups. Popups should not use transparent backgrounds, they should keep whatever their existing backgrounds are for basic readability.