xeluxee / competitest.nvim

CompetiTest.nvim is a Neovim plugin for Competitive Programming: it can manage and check testcases, download problems and contests from online judges and much more
GNU Lesser General Public License v3.0
381 stars 15 forks source link

Bug: reopening viewer window with split ui throws error #17

Closed shadmansaleh closed 1 year ago

shadmansaleh commented 1 year ago

Rerproduction Steps:

E5108: Error executing lua: ...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:143: Vim(append):Error executing lua callback: ...m/site/pack/packer/start/nui.nvim/lua/nui/split/init.lua:196: invalid augroup: nui_3_hide
stack traceback:
        [C]: in function 'create'
        ...m/site/pack/packer/start/nui.nvim/lua/nui/split/init.lua:196: in function <...m/site/pack/packer/start/nui.nvim/lua/nui/split/init.lua:195>
        [C]: in function 'nvim_exec_autocmds'
        ...ite/pack/packer/start/nui.nvim/lua/nui/utils/autocmd.lua:376: in function 'exec'
        ...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:144: in function <...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:143>
        [C]: in function 'nvim_win_call'
        ...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:143: in function '_open_window'
        ...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:255: in function 'show'
        ...tart/competitest.nvim/lua/competitest/runner_ui/init.lua:303: in function 'show_viewer_popup'
        ...tart/competitest.nvim/lua/competitest/runner_ui/init.lua:156: in function <...tart/competitest.nvim/lua/competitest/runner_ui/init.lua:155>
stack traceback:
        [C]: in function 'nvim_win_call'
        ...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:143: in function '_open_window'
        ...m/site/pack/packer/start/nui.nvim/lua/nui/popup/init.lua:255: in function 'show'
        ...tart/competitest.nvim/lua/competitest/runner_ui/init.lua:303: in function 'show_viewer_popup'
        ...tart/competitest.nvim/lua/competitest/runner_ui/init.lua:156: in function <...tart/competitest.nvim/lua/competitest/runner_ui/init.lua:155>

It looks like viewer window gets uninitialized when competitest UI gets closed not really sure why. Not sure if it's desirable or not.

An easy fix is deleting the UI instead of hiding it when closing competitest UI.

diff --git a/lua/competitest/runner_ui/init.lua b/lua/competitest/runner_ui/init.lua
index 202422d..e6bf2a2 100644
--- a/lua/competitest/runner_ui/init.lua
+++ b/lua/competitest/runner_ui/init.lua
@@ -97,7 +97,7 @@ function RunnerUI:show_ui()
                api.nvim_set_current_win(self.windows.tc.winid)
                self.viewer_visible = false
            else
-               self:hide_ui()
+               self:delete()
            end
        end
xeluxee commented 1 year ago

A similar issue happened some time ago (#14). I'll look into it, that could be related to recent nui updates.

xeluxee commented 1 year ago

Fixed in 0029d6a03f434a99bc565fb5fd03f6c19ec02f36 Sorry for the late fix