-
-
Notifications
You must be signed in to change notification settings - Fork 32
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
After closing pop up, cursor not return to the original location #78
Comments
I am also using "kyazdani42/nvim-tree.lua", not able reproduce the issue. Can you provide some minimal config so that I can reproduce this issue? |
I changed nvim-tree to neo-tree a while ago, however the problem persists. I did not have any configuration but default packer install: |
If you could provide a minimal init.lua or init.vim which causes this issue that would be very helpful. I am just not able to reproduce this issue and don't know why this could even happen 🤷🏽♂️ |
I am having the same issue.. Here is my navbuddy config: return {
"SmiteshP/nvim-navbuddy",
dependencies = {
"neovim/nvim-lspconfig",
"SmiteshP/nvim-navic",
"MunifTanjim/nui.nvim",
-- "nvim-telescope/telescope.nvim", -- Optional
},
config = function()
local navbuddy = require("nvim-navbuddy")
require("lspconfig").clangd.setup({
on_attach = function(client, bufnr)
navbuddy.attach(client, bufnr)
end,
})
local actions = require("nvim-navbuddy.actions")
navbuddy.setup({
window = {
border = "single", -- "rounded", "double", "solid", "none"
-- or an array with eight chars building up the border in a clockwise fashion
-- starting with the top-left corner. eg: { "╔", "═" ,"╗", "║", "╝", "═", "╚", "║" }.
size = "60%", -- Or table format example: { height = "40%", width = "100%"}
position = "50%", -- Or table format example: { row = "100%", col = "0%"}
scrolloff = nil, -- scrolloff value within navbuddy window
sections = {
left = {
size = "20%",
border = nil, -- You can set border style for each section individually as well.
},
mid = {
size = "40%",
border = nil,
},
right = {
-- No size option for right most section. It fills to
-- remaining area.
border = nil,
preview = "leaf", -- Right section can show previews too.
-- Options: "leaf", "always" or "never"
},
},
},
node_markers = {
enabled = true,
icons = {
leaf = " ",
leaf_selected = " → ",
branch = " ",
},
},
icons = {
File = " ",
Module = " ",
Namespace = " ",
Package = " ",
Class = " ",
Method = " ",
Property = " ",
Field = " ",
Constructor = " ",
Enum = "",
Interface = "",
Function = " ",
Variable = " ",
Constant = " ",
String = " ",
Number = " ",
Boolean = "◩ ",
Array = " ",
Object = " ",
Key = " ",
Null = " ",
EnumMember = " ",
Struct = " ",
Event = " ",
Operator = " ",
TypeParameter = " ",
},
use_default_mappings = false, -- If set to false, only mappings set
-- by user are set. Else default
-- mappings are used for keys
-- that are not set by user
mappings = {
["<esc>"] = actions.close(), -- Close and cursor to original location
["q"] = actions.close(),
["<Left>"] = actions.parent(), -- Move to left panel
["<Right>"] = actions.children(), -- Move to right panel
["0"] = actions.root(), -- Move to first panel
},
lsp = {
auto_attach = true, -- If set to true, you don't need to manually use attach function
preference = nil, -- list of lsp server names in order of preference
},
source_buffer = {
follow_node = true, -- Keep the current node in focus on the source buffer
highlight = true, -- Highlight the currently focused node
reorient = "smart", -- "smart", "top", "mid" or "none"
scrolloff = nil, -- scrolloff value when navbuddy is open
},
})
end,
} And here is my nvim-tree config: return {
"nvim-tree/nvim-tree.lua",
-- cmd = 'NvimTreeToggle',
-- keys = {
-- { '<Space>e', '<cmd>NvimTreeToggle<cr>', desc = 'File Browser' },
-- },
dependencies = "nvim-tree/nvim-web-devicons",
version = "nightly",
config = function()
-- disable netrw at the very start of your init.lua (strongly advised)
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- set termguicolors to enable highlight groups
vim.opt.termguicolors = true
-- empty setup using defaults
-- require('nvim-tree').setup()
-- OR setup with some options
require("nvim-tree").setup({
sort_by = "case_sensitive",
view = {
width = 20,
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = true,
},
})
-- Close nvim-tree if last buffer in tab is closed
local function tab_win_closed(winnr)
local api = require("nvim-tree.api")
local tabnr = vim.api.nvim_win_get_tabpage(winnr)
local bufnr = vim.api.nvim_win_get_buf(winnr)
local buf_info = vim.fn.getbufinfo(bufnr)[1]
local tab_wins = vim.tbl_filter(function(w)
return w ~= winnr
end, vim.api.nvim_tabpage_list_wins(tabnr))
local tab_bufs = vim.tbl_map(vim.api.nvim_win_get_buf, tab_wins)
if buf_info.name:match(".*NvimTree_%d*$") then -- close buffer was nvim tree
-- Close all nvim tree on :q
if not vim.tbl_isempty(tab_bufs) then -- and was not the last window (not closed automatically by code below)
api.tree.close()
end
else -- else closed buffer was normal buffer
if #tab_bufs == 1 then -- if there is only 1 buffer left in the tab
local last_buf_info = vim.fn.getbufinfo(tab_bufs[1])[1]
if last_buf_info.name:match(".*NvimTree_%d*$") then -- and that buffer is nvim tree
vim.schedule(function()
if #vim.api.nvim_list_wins() == 1 then -- if its the last buffer in vim
vim.cmd("quit") -- then close all of vim
else -- else there are more tabs open
vim.api.nvim_win_close(tab_wins[1], true) -- then close only the tab
end
end)
end
end
end
end
vim.api.nvim_create_autocmd("WinClosed", {
callback = function()
local winnr = tonumber(vim.fn.expand("<amatch>"))
vim.schedule_wrap(tab_win_closed(winnr))
end,
nested = true,
})
-- open in all tabs
local nt_api = require("nvim-tree.api")
local tree_open = false
local function tab_enter()
if tree_open then
nt_api.tree.open()
vim.api.nvim_command("wincmd p")
else
nt_api.tree.close()
end
end
nt_api.events.subscribe(nt_api.events.Event.TreeOpen, function()
tree_open = true
end)
nt_api.events.subscribe(nt_api.events.Event.TreeClose, function()
tree_open = false
end)
vim.api.nvim_create_autocmd("TabEnter,TabNewEnter", { callback = tab_enter })
---
end,
}
|
Thanks to the author's plug-in, this kind of situation also happened to me, but if you select another node (non-current node) and then exit, the current situation will not occur. |
Hi, I love the plugin. However there is a minor issue, as you can see here, when I closed the pop up, the cursor did not return to the original location but focused to the nvimtree instead.
Screen.Recording.2023-08-21.at.00.16.11.mov
This only happens while nvimtree still open, is there anyway to solve this?
The text was updated successfully, but these errors were encountered: