Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nvim_get_hl_by_name("Group", true) doesn't always return colors #18024

Closed
adrian5 opened this issue Apr 7, 2022 · 10 comments
Closed

nvim_get_hl_by_name("Group", true) doesn't always return colors #18024

adrian5 opened this issue Apr 7, 2022 · 10 comments
Labels
api libnvim, Nvim RPC API bug issues reporting wrong behavior has:repro issue contains minimal reproducing steps

Comments

@adrian5
Copy link
Contributor

adrian5 commented Apr 7, 2022

Neovim version (nvim -v)

NVIM v0.7.0-dev+1392-gdaa8ac051

Installation

GitHub nightly builds

How to reproduce the issue

nvim --clean
  1. :lua =vim.api.nvim_get_hl_by_name("Normal", true) prints:
{                                                                                                             
  [true] = 6
}
  1. Set highlight via lua vim.api.nvim_set_hl(0, "Normal", { fg = "#ff0000", bg = "#202020" }). 1) prints:
{                                                                                                             
  [true] = 6
}
  1. Set highlight via :hi Normal guifg=#ff0000 guibg=#202020. 1) prints:
{
  background = 2105376,
  foreground = 16711680
}

Note: This behavior might be specific to the Normal group.

Expected behavior

nvim_get_hl_by_name("Normal", true) returns the group's colors.

Actual behavior

It only does so when the highlights are set the vimscript way.

@adrian5 adrian5 added the bug issues reporting wrong behavior label Apr 7, 2022
@zeertzjq zeertzjq added the api libnvim, Nvim RPC API label Apr 7, 2022
@dundargoc
Copy link
Member

dundargoc commented Apr 7, 2022

Using nvim --clean -S minimal.vim, where minimal.vim is:

:lua vim.api.nvim_get_hl_by_name("Normal", true)

doesn't print anything for me. Am I missing something?

@dundargoc dundargoc added the needs:repro We need minimal steps to reproduce the issue label Apr 7, 2022
@adrian5
Copy link
Contributor Author

adrian5 commented Apr 7, 2022

My bad, that should've been :lua =vim.api.nvim_get_hl_by_name("Normal", true) to print the table.

Here as a file:

:echo "Clean:"
:lua =vim.api.nvim_get_hl_by_name("Normal", true)

:echo "\nnvim_set_hl(Normal):"
:lua vim.api.nvim_set_hl(0, "Normal", { fg = "#ff0000", bg = "#202020"})
:lua =vim.api.nvim_get_hl_by_name("Normal", true)

:echo "\nhighlight Normal:"
:hi Normal guifg=#ff0000 guibg=#202020
:lua =vim.api.nvim_get_hl_by_name("Normal", true)

@dundargoc dundargoc added has:repro issue contains minimal reproducing steps and removed needs:repro We need minimal steps to reproduce the issue labels Apr 7, 2022
@rktjmp
Copy link
Contributor

rktjmp commented May 31, 2022

I think it's correct to say this is specific to Normal.

Was checking due to above linked issue, so the check involves a Lush theme, to get a list of valid group names but that's the only Lush involvement

local rb = require("rosebones")
local api_get = vim.api.nvim_get_hl_by_name
local c = 0
for name, _ in pairs(rb) do
  c = (c + 1)
  local val = api_get(name, true)
  if val[true] then
    print(name, "had 'true' key: ", vim.inspect(val))
  else
  end
end
return print("checked", c, "groups")
Normal had 'true' key:  {
  [true] = 6
}
checked 205 groups

rktjmp added a commit to rktjmp/neovim that referenced this issue Jun 1, 2022
@rktjmp
Copy link
Contributor

rktjmp commented Jun 1, 2022

sg_attr is zero for Normal which results in an empty dict being returned, non-zero for other groups.

// vim.c
Dictionary nvim_get_hl_by_id(Integer hl_id, Boolean rgb, Error *err)
  FUNC_API_SINCE(3)
{
  //// listing 1.1
  //// at this point hl_id is some +int, valid.
  Dictionary dic = ARRAY_DICT_INIT;
  if (syn_get_final_id((int)hl_id) == 0) {
    api_set_error(err, kErrorTypeException,
                  "Invalid highlight id: %" PRId64, hl_id);
    return dic;
  }

  //// kicks down to syn_id2attr, see listing 2.1
  //// listing 1.2
  int attrcode = syn_id2attr((int)hl_id);
  //// attrcode will be zero for Normal (because sg_attr was zero)
  //// see listing 3.1
  return hl_get_attr_by_id(attrcode, rgb, err);
}
// highlight_group.c
int syn_id2attr(int hl_id)
{
  //// listing 2.1
  hl_id = syn_get_final_id(hl_id);
  HlGroup *sgp = &HL_TABLE()[hl_id - 1];  // index is ID minus one

  //// sgp is mostly good, contains good data but for one field:
  //// (gdb) print *sgp                                                                          │
  //// $19 = {sg_name = 0x55eb36ab7350 "Normal", sg_name_u = 0x55eb36ab7370 "NORMAL",            │
  ////   sg_cleared = false, sg_attr = 0, sg_link = 0, sg_deflink = 0, sg_set = 0,               │
  ////   sg_deflink_sctx = {sc_sid = 0, sc_seq = 0, sc_lnum = 0}, sg_script_ctx = {              │
  ////     sc_sid = 115, sc_seq = 119, sc_lnum = 8}, sg_cterm = 0, sg_cterm_fg = 0,              │
  ////   sg_cterm_bg = 0, sg_cterm_bold = false, sg_gui = 0, sg_rgb_fg = 14800084,               │
  ////   sg_rgb_bg = 1710117, sg_rgb_sp = -1, sg_rgb_fg_name = 0x55eb36ae3b90 "#E1D4D4",         │
  ////   sg_rgb_bg_name = 0x55eb36adf570 "#1A1825", sg_rgb_sp_name = 0x0, sg_blend = -1}

  //// attr will be -1, so we dont return here
  int attr = ns_get_hl(-1, hl_id, false, sgp->sg_set);
  if (attr >= 0) {
    return attr;
  }

  /// here we return 0 back to listing 1.2
  return sgp->sg_attr;
}
// highlight.c
Dictionary hl_get_attr_by_id(Integer attr_id, Boolean rgb, Error *err)
{
  //// listing 3.1
  //// attr_id is 0
  Dictionary dic = ARRAY_DICT_INIT;

  if (attr_id == 0) {
    //// returns what looks like {[true] = 6} to lua
    return dic;
  }

For reference here is a working sgp value:

/// $23 = {sg_name = 0x55eb36ae1370 "Constant", sg_name_u = 0x55eb36ae1390 "CONSTANT",
///   sg_cleared = false, sg_attr = 218, sg_link = 0, sg_deflink = 0, sg_set = 0,
///   sg_deflink_sctx = {sc_sid = 0, sc_seq = 0, sc_lnum = 0}, sg_script_ctx = {
///     sc_sid = 115, sc_seq = 119, sc_lnum = 8}, sg_cterm = 4, sg_cterm_fg = 0,
///   sg_cterm_bg = 0, sg_cterm_bold = false, sg_gui = 4, sg_rgb_fg = 12358803,
///   sg_rgb_bg = -1, sg_rgb_sp = -1, sg_rgb_fg_name = 0x55eb36e39bd0 "#BC9493",
///   sg_rgb_bg_name = 0x0, sg_rgb_sp_name = 0x0, sg_blend = -1}

And the definition of sg_attr says @see ATTR_ENTRY but this is the only reference to ATTR_ENTRY in the codebase.

typedef struct {
  char_u *sg_name;         ///< highlight group name
  char *sg_name_u;       ///< uppercase of sg_name
  bool sg_cleared;              ///< "hi clear" was used
  int sg_attr;                  ///< Screen attr @see ATTR_ENTRY
  int sg_link;                  ///< link to this highlight group ID
  int sg_deflink;               ///< default link; restored in highlight_clear()

I am assuming this is the bug:

// highlight_group.c
void set_hl_group(int id, HlAttrs attrs, Dict(highlight) *dict, int link_id)
/// snip

  if (STRCMP(g->sg_name_u, "NORMAL") == 0) {
    cterm_normal_fg_color = g->sg_cterm_fg;
    cterm_normal_bg_color = g->sg_cterm_bg;
    normal_fg = g->sg_rgb_fg;
    normal_bg = g->sg_rgb_bg;
    normal_sp = g->sg_rgb_sp;
    ui_default_colors_set();
    //// sg_attr never set!
  } else {
    g->sg_attr = hl_get_syn_attr(0, id, attrs);

Setting sg_attr via the same means certainly "fixes" the listed issue, but I cant speak to the repercussions, whether it should be if; then vs if&else.

@Iron-E
Copy link

Iron-E commented Jun 15, 2022

Seems like this issue still happens when running nvim_get_hl_by_name('Normal', false):

nvim --clean -c 'lua vim.pretty_print(vim.api.nvim_get_hl_by_name("Normal", false))'

It outputs {[true] = 6} just like before 9aba204.

@akinsho
Copy link
Sponsor Contributor

akinsho commented Jun 15, 2022

This behaviour is the present for the MsgArea and CurSearch highlight groups

@rktjmp
Copy link
Contributor

rktjmp commented Jun 16, 2022

Do your groups have any data besides colors on those groups?

nvim_get_hl_by_name({name}, {rgb})                     *nvim_get_hl_by_name()*
                Gets a highlight definition by name.

                Parameters: ~
                    {name}  Highlight group name
                 => {rgb}   Export RGB colors <=

                Return: ~
                    Highlight definition map

                See also: ~
                    nvim_get_hl_by_id
-- edit: sorry, code pulled from the test file but should be pretty understandable

-- set group with colours and gui attrs
set_hl(0, 'Normal', {fg='#000083', bg='#0000F3', bold = true})
-- request group data *without* RGB color export, returns gui attrs
nvim("get_hl_by_name", 'Normal', false)) -- => {bold = true}

-- set group with colours and NO gui attrs
set_hl(0, 'Normal', {fg='#000083', bg='#0000F3'})
-- request group data *without* RGB color export, returns "empty" dict
nvim("get_hl_by_name", 'Normal', false)) -- => {[true] = 6}

Empty dict value looks "not empty" once it gets back to nvim, Dictionary dic = ARRAY_DICT_INIT; translates out to {[true] = 6}, perhaps this value can be fiddled before its finally sent back to the user or lua state? To be explicit, this would effect much more than just this function.

The normal group has no colours by default:

nvim --clean -c 'lua vim.pretty_print(vim.api.nvim_get_hl_by_name("Normal", false))'
:hi Normal
Normal         xxx cleared

If you try something else you will get a the cterm values, which is why this looks ok even without gui attrs.

nvim --clean -c 'lua vim.pretty_print(vim.api.nvim_get_hl_by_name("Comment", false))'
{
  foreground = 14
}

@Iron-E
Copy link

Iron-E commented Jun 16, 2022

I expect it to not return anything if Normal has no cterm definition, like in this example:

-- set group with colours and gui attrs
set_hl(0, 'Normal', {fg='#000083', bg='#0000F3', bold = true})
-- request group data without color export, returns gui attrs
nvim("get_hl_by_name", 'Normal', false)) -- => {bold = true}

-- set group with colours and NO gui attrs
set_hl(0, 'Normal', {fg='#000083', bg='#0000F3'})
-- request group data without color export, returns "empty" dict
nvim("get_hl_by_name", 'Normal', false)) -- => {[true] = 6}

However when using e.g. the builtin "shine" colorscheme with notermguicolors, Normal does have a definition for cterm:

:hi Normal
Normal         xxx ctermfg=0 ctermbg=15 guifg=Black
                   guibg=White

However running nvim_get_hl_by_name('Normal', false) still just returns {[true] = 6}.

Edit: So I guess the true MVCE is this

nvim --clean -c 'colorscheme shine' -c 'lua vim.pretty_print(vim.api.nvim_get_hl_by_name("Normal", false))'

@rktjmp
Copy link
Contributor

rktjmp commented Jun 16, 2022

A small test gives me this:

-- cterm value tests

-- Set Normal via lua api, get value
vim.api.nvim_set_hl(0, "Normal", {ctermfg = 16, ctermbg = 231})
vim.pretty_print("nvim_set_hl normal", vim.api.nvim_get_hl_by_name("Normal", false))
-- FAIL => {true = 6}

-- Normal group has some special handling sometimes, so check another group
-- but set the values = Normal
vim.api.nvim_set_hl(0, "NotNormal", {ctermfg = 16, ctermbg = 231})
vim.pretty_print("nvim_set_hl not-normal = normal", vim.api.nvim_get_hl_by_name("NotNormal", false))
-- FAIL => {true = 6}

-- Check another group but set values to NOT normal
vim.api.nvim_set_hl(0, "NotNormal", {ctermfg = 61, ctermbg = 132})
vim.pretty_print("nvim_set_hl not-normal", vim.api.nvim_get_hl_by_name("NotNormal", false))
-- OK => {background = 132, foreground = 61}

-- set via classic method
vim.cmd("hi Normal ctermfg=16 ctermbg=231")
vim.pretty_print("hi normal", vim.api.nvim_get_hl_by_name("Normal", false))
-- FAIL => {true = 6}
--
vim.cmd("hi NotNormal ctermfg=16 ctermbg=231")
vim.pretty_print("hi not-normal = normal", vim.api.nvim_get_hl_by_name("NotNormal", false))
-- FAIL => {true = 6}

vim.cmd("hi NotNormal ctermfg=17 ctermbg=18")
vim.pretty_print("hi not-normal", vim.api.nvim_get_hl_by_name("NotNormal", false))
-- OK => {background = 18, foreground = 17}

vim.pretty_print("default comment", vim.api.nvim_get_hl_by_name("Comment", false))
-- OK => {foreground = 14}

I think I have a fix for the Normal group, which propagate the issue to other groups if they share the same highlight data.

github-actions bot pushed a commit that referenced this issue Jun 18, 2022
justinmk added a commit to justinmk/neovim that referenced this issue Jun 26, 2022
BREAKING CHANGES:
fdd5178 neovim#18986 introduce $NVIM, unset $NVIM_LISTEN_ADDRESS

VIM PATCHES:
git log --oneline --grep "vim-patch" v0.7.0..v0.7.1

FEATURES:
0b8facc neovim#18440 feat(api): add `group_name` to `nvim_get_autocmds`
b7a5278 neovim#18440 feat(api): add `group_name` to `nvim_get_autocmds`
9e5cef9 neovim#18264 feat(tui): query terminal for CSI u support

FIXES:
b477afa neovim#19088
    71e2c49 refactor(tests): introduce testprg()
    175892f neovim#15913 fix: make_filter_cmd for :! powershell
f2b4652 neovim#18331 fix(lsp): make sure to always reset active codelens refreshes
b3d754c neovim#18869 fix(lsp): fix multi client handling in code action
e820c6d neovim#19069
    cf9c097 fix(api): check for inclusive buffer line index out of bounds correctly
a05da1c neovim#19053
    17299b3 fix(input): use correct grid when restoring cursor for <expr> mapping
7266150 neovim#19025
    40e13c8 neovim#19010 fix(decorations): nvim_buf_set_extmark breaks conceal
38928b5 neovim#19023
    18e0d64 fix(tui): fix piping output make nvim unusable
cd7ac0e neovim#19014
    433f306 fix: use ctermbg/fg instead of bg/fg when use_rgb is false
30ae06c neovim#19009
    777d415 fix(highlight): let winhighlight use cursor
    f70e083 neovim#18981 fix(hl): return cterm fg/bg even if they match Normal
    ee210b0 fix(hl): DRY set_hl_group() sg_attr set
    512a819 test(hl): Add Normal group set_hl/get_hl_by_name check
    79ca64a neovim#18024) fix(hl): set Normal hl group sg_attr value (fixes
2ebc76b neovim#19001
    4170983 fix(startup): nvim with --clean should not load user rplugins
ed9e6d1 neovim#18990 fix(treesitter): new iter if folded
05ce04e neovim#18984
    fe42dea neovim#18976 fix(lua): highlight.on_yank can close timer in twice
    f15d609 neovim#18824 fix(lua): stop pending highlight.on_yank timer, if any
5243cb8 neovim#18975
    bf4df2a fix(ui): do not call showmode() when setting window height
3cea4d6 neovim#18942
    05f6883 fix(buffer): disable buffer-updates before removing buffer from window
1dba6cf neovim#18918
    0c9d666 fix(input): fix macro recording with ALT and special key
fc4e4b3 neovim#18905
    bd3bb12 test(ts): skip test if C parser is not available
d317cb2 neovim#18886
    1496f42 fix(input): allow Ctrl-C to interrupt a recursive mapping even if mapped
0dc5bcd neovim#18680
    3a1e8ef neovim#18617 fix(autocmds): separate command from desc
cb1b4bb neovim#18655 fix(lsp): only send diagnostics from current buffer in code_action()
01d0d2c neovim#18517 build(deps): bump Luv to HEAD - c51e7052e
f3ffb73 neovim#18612 fix(health): return 0 if file not exists
496e786 neovim#18534
    0377973 fix(runtime/genvimvim): omit s[ubstitute] from vimCommand
35075dc neovim#18469 fix(lsp): fix unnecessary buffers being added on empty diagnostics
9e040ac neovim#18468 fix(lsp): unify progress message handling
e28799f neovim#18436 fix: display global statusline correctly with ext_messages
1e28068 neovim#18415 fix: ensure has() does not change v:shell_error
203b088 neovim#18411 build(deps): bump LuaJIT to HEAD - 91bc6b8ad
e502e81 neovim#18400 fix(treesitter): bump match limit up
7567d21 neovim#18390
    d165289 fix(lsp): add missing bufnr argument
f3587ba neovim#18367
    631393a fix(filetype.lua): escape expansion of ~ when used as a pattern
08cd391 neovim#18360 fix(shared): avoid indexing unindexable values in vim.tbl_get()
508c8a5 neovim#18362 fix(ftdetect): source plugins in autogroup
ffd46b7 neovim#18351
    2a61983 fix(mac): use same $LANG fallback mechanism as Vim
8d4fbcb neovim#18324
    b80ef0d fix(tui): disable extended keys before exiting alternate screen
14a5b6b neovim#18312
    89260ea fix(input): only disable mapped CTRL-C interrupts when getting input
ef43e7d neovim#18298 fix: suppress "is a directory" messages with shortmess 'F'
aff05c5 neovim#18256 fix: show autocmd output when F is in shortmess
fa7d8c3 neovim#18229
    d916d2f neovim#18227 fix(lua): don't mutate opts parameter of vim.keymap.del
f7e2ad7 neovim#18220 fix(treesitter): create new parser if language is not the same as cached parser
7f8faac neovim#18205 fix(diagnostic): use nvim_exec_autocmds to trigger DiagnosticChanged
3ee089e neovim#18167
    0f811af fix(tui): update modifyOtherKeys reporting
justinmk added a commit that referenced this issue Jun 26, 2022
BREAKING CHANGES:
fdd5178 #18986 introduce $NVIM, unset $NVIM_LISTEN_ADDRESS

VIM PATCHES:
git log --oneline --grep "vim-patch" v0.7.0..v0.7.1

FEATURES:
0b8facc #18440 feat(api): add `group_name` to `nvim_get_autocmds`
b7a5278 #18440 feat(api): add `group_name` to `nvim_get_autocmds`
9e5cef9 #18264 feat(tui): query terminal for CSI u support

FIXES:
b477afa #19088
    71e2c49 refactor(tests): introduce testprg()
    175892f #15913 fix: make_filter_cmd for :! powershell
f2b4652 #18331 fix(lsp): make sure to always reset active codelens refreshes
b3d754c #18869 fix(lsp): fix multi client handling in code action
e820c6d #19069
    cf9c097 fix(api): check for inclusive buffer line index out of bounds correctly
a05da1c #19053
    17299b3 fix(input): use correct grid when restoring cursor for <expr> mapping
7266150 #19025
    40e13c8 #19010 fix(decorations): nvim_buf_set_extmark breaks conceal
38928b5 #19023
    18e0d64 fix(tui): fix piping output make nvim unusable
cd7ac0e #19014
    433f306 fix: use ctermbg/fg instead of bg/fg when use_rgb is false
30ae06c #19009
    777d415 fix(highlight): let winhighlight use cursor
    f70e083 #18981 fix(hl): return cterm fg/bg even if they match Normal
    ee210b0 fix(hl): DRY set_hl_group() sg_attr set
    512a819 test(hl): Add Normal group set_hl/get_hl_by_name check
    79ca64a #18024) fix(hl): set Normal hl group sg_attr value (fixes
2ebc76b #19001
    4170983 fix(startup): nvim with --clean should not load user rplugins
ed9e6d1 #18990 fix(treesitter): new iter if folded
05ce04e #18984
    fe42dea #18976 fix(lua): highlight.on_yank can close timer in twice
    f15d609 #18824 fix(lua): stop pending highlight.on_yank timer, if any
5243cb8 #18975
    bf4df2a fix(ui): do not call showmode() when setting window height
3cea4d6 #18942
    05f6883 fix(buffer): disable buffer-updates before removing buffer from window
1dba6cf #18918
    0c9d666 fix(input): fix macro recording with ALT and special key
fc4e4b3 #18905
    bd3bb12 test(ts): skip test if C parser is not available
d317cb2 #18886
    1496f42 fix(input): allow Ctrl-C to interrupt a recursive mapping even if mapped
0dc5bcd #18680
    3a1e8ef #18617 fix(autocmds): separate command from desc
cb1b4bb #18655 fix(lsp): only send diagnostics from current buffer in code_action()
01d0d2c #18517 build(deps): bump Luv to HEAD - c51e7052e
f3ffb73 #18612 fix(health): return 0 if file not exists
496e786 #18534
    0377973 fix(runtime/genvimvim): omit s[ubstitute] from vimCommand
35075dc #18469 fix(lsp): fix unnecessary buffers being added on empty diagnostics
9e040ac #18468 fix(lsp): unify progress message handling
e28799f #18436 fix: display global statusline correctly with ext_messages
1e28068 #18415 fix: ensure has() does not change v:shell_error
203b088 #18411 build(deps): bump LuaJIT to HEAD - 91bc6b8ad
e502e81 #18400 fix(treesitter): bump match limit up
7567d21 #18390
    d165289 fix(lsp): add missing bufnr argument
f3587ba #18367
    631393a fix(filetype.lua): escape expansion of ~ when used as a pattern
08cd391 #18360 fix(shared): avoid indexing unindexable values in vim.tbl_get()
508c8a5 #18362 fix(ftdetect): source plugins in autogroup
ffd46b7 #18351
    2a61983 fix(mac): use same $LANG fallback mechanism as Vim
8d4fbcb #18324
    b80ef0d fix(tui): disable extended keys before exiting alternate screen
14a5b6b #18312
    89260ea fix(input): only disable mapped CTRL-C interrupts when getting input
ef43e7d #18298 fix: suppress "is a directory" messages with shortmess 'F'
aff05c5 #18256 fix: show autocmd output when F is in shortmess
fa7d8c3 #18229
    d916d2f #18227 fix(lua): don't mutate opts parameter of vim.keymap.del
f7e2ad7 #18220 fix(treesitter): create new parser if language is not the same as cached parser
7f8faac #18205 fix(diagnostic): use nvim_exec_autocmds to trigger DiagnosticChanged
3ee089e #18167
    0f811af fix(tui): update modifyOtherKeys reporting

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 769a93aa2901..9b5563be0d1b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,7 +136,7 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
 set(NVIM_VERSION_MAJOR 0)
 set(NVIM_VERSION_MINOR 7)
 set(NVIM_VERSION_PATCH 1)
-set(NVIM_VERSION_PRERELEASE "-dev") # for package maintainers
+set(NVIM_VERSION_PRERELEASE "") # for package maintainers

 # API level
 set(NVIM_API_LEVEL 9)         # Bump this after any API change.
diff --git a/runtime/nvim.appdata.xml b/runtime/nvim.appdata.xml
index 1464c2769443..893023db8298 100644
--- a/runtime/nvim.appdata.xml
+++ b/runtime/nvim.appdata.xml
@@ -26,6 +26,7 @@
   </screenshots>

   <releases>
+    <release date="2022-06-26" version="0.7.1"/>
     <release date="2022-04-15" version="0.7.0"/>
     <release date="2021-12-31" version="0.6.1"/>
     <release date="2021-11-30" version="0.6.0"/>
kraftwerk28 pushed a commit to kraftwerk28/neovim that referenced this issue Jul 6, 2022
@nyngwang
Copy link

I just experienced that same thing. I don't think this is fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api libnvim, Nvim RPC API bug issues reporting wrong behavior has:repro issue contains minimal reproducing steps
Projects
None yet
Development

No branches or pull requests

7 participants