tamago324 / lir.nvim

Neovim file explorer
MIT License
355 stars 27 forks source link

New lir buffer is opened and floating window remains on cd #62

Open ten3roberts opened 2 years ago

ten3roberts commented 2 years ago

When using the floating window and entering a directory, either through actions.up or actions.edit the directory is opened in a new non floating buffer behind the floating window, which remains but loses focus.

The floating window needs to be manually focused and closed and navigation can not continue in a floating window

tamago324 commented 2 years ago

Thanks for the report. Please indicate the version of neovim and the detailed reproduction procedure.

ten3roberts commented 2 years ago

image Use lir.float.init

Use actions.up through keybind and a new window will open behind.

I think the issue is due to this

https://github.com/tamago324/lir.nvim/blob/eaa706a38bdf889103806d10ccbe0be1983ca746/lua/lir/actions.lua#L29-L30

The expected behaviour is to open in the floating window

ten3roberts commented 2 years ago

NVIM v0.7.0-dev+997-g21cdecc8e, but is present in newer versions on another computer

tamago324 commented 2 years ago

I have performed the following steps and it is working fine, can you please try?

  1. nvim -u minvimrc -i NONE
  2. :lua require'lir.float'.init()
  3. press l, press h

Neovim version: NVIM v0.7.0-dev+1115-g5cb45dffb

minvimrc
```vim set encoding=utf-8 filetype plugin indent on if has('vim_starting') let s:pluin_manager_dir='~/.config/nvim/.plugged/vim-plug' execute 'set runtimepath+=' . s:pluin_manager_dir endif call plug#begin('~/.config/nvim/.plugged') Plug 'kyazdani42/nvim-web-devicons' Plug 'nvim-lua/plenary.nvim' Plug 'tamago324/lir.nvim' call plug#end() set nobackup set nowritebackup set noswapfile set updatecount=0 set backspace=indent,eol,start language messages en_US.utf8 " nvim -u ~/ghq/github.com/tamago324/sandbox-vim/nvim/lir.vim -i NONE lua << EOF local actions = require'lir.actions' local mark_actions = require 'lir.mark.actions' local clipboard_actions = require'lir.clipboard.actions' require'lir'.setup { show_hidden_files = false, devicons_enable = true, mappings = { ['l'] = actions.edit, [''] = actions.split, [''] = actions.vsplit, [''] = actions.tabedit, ['h'] = actions.up, ['q'] = actions.quit, ['K'] = actions.mkdir, ['N'] = actions.newfile, ['R'] = actions.rename, ['@'] = actions.cd, ['Y'] = actions.yank_path, ['.'] = actions.toggle_show_hidden, ['D'] = actions.delete, ['J'] = function() mark_actions.toggle_mark() vim.cmd('normal! j') end, ['C'] = clipboard_actions.copy, ['X'] = clipboard_actions.cut, ['P'] = clipboard_actions.paste, }, float = { winblend = 0, curdir_window = { enable = false, highlight_dirname = false }, -- -- You can define a function that returns a table to be passed as the third -- -- argument of nvim_open_win(). -- win_opts = function() -- local width = math.floor(vim.o.columns * 0.8) -- local height = math.floor(vim.o.lines * 0.8) -- return { -- border = require("lir.float.helper").make_border_opts({ -- "+", "─", "+", "│", "+", "─", "+", "│", -- }, "Normal"), -- width = width, -- height = height, -- row = 1, -- col = math.floor((vim.o.columns - width) / 2), -- } -- end, }, hide_cursor = true, on_init = function() -- use visual mode vim.api.nvim_buf_set_keymap( 0, "x", "J", ':lua require"lir.mark.actions".toggle_mark("v")', { noremap = true, silent = true } ) -- echo cwd vim.api.nvim_echo({ { vim.fn.expand("%:p"), "Normal" } }, false, {}) end, } -- custom folder icon require'nvim-web-devicons'.set_icon({ lir_folder_icon = { icon = "", color = "#7ebae4", name = "LirFolderNode" } }) EOF ```
ten3roberts commented 2 years ago

I am sorry for taking such a while to respond, hectic week with exams.

Anyways, I found the culprit

The plugin stickybuf prevented the new buffer from opening. The plugins purpose is to prevent files from opening in tree view buffers.

Removing the plugin fixes the issue, though it enables one to open files inside tree windows, which isn't such a big issue.

Just out of curiosity: Is it possible to set the ctx.dir and have it update without reloading the file manager using edit dir. I didn't get the first method to work in my small attempts, maybe something like that could be used to prevent firing more autocommands from other plugins