1 -- A simple popup display that provides breadcrumbs feature using LSP server
 
   2 -- https://github.com/hasansujon786/nvim-navbuddy
 
   8                 local navbuddy = require("nvim-navbuddy")
 
   9                 local actions = require("nvim-navbuddy.actions")
 
  12                                 border = "single", -- "rounded", "double", "solid", "none"
 
  13                                 -- or an array with eight chars building up the border in a clockwise fashion
 
  14                                 -- starting with the top-left corner. eg: { "╔", "═" ,"╗", "║", "╝", "═", "╚", "║" }.
 
  15                                 size = "60%", -- Or table format example: { height = "40%", width = "100%"}
 
  16                                 position = "50%", -- Or table format example: { row = "100%", col = "0%"}
 
  17                                 scrolloff = nil, -- scrolloff value within navbuddy window
 
  21                                                 border = nil, -- You can set border style for each section individually as well.
 
  28                                                 -- No size option for right most section. It fills to
 
  31                                                 preview = "leaf", -- Right section can show previews too.
 
  32                                                 -- Options: "leaf", "always" or "never"
 
  40                                         leaf_selected = " → ",
 
  72                         -- If set to false, only mappings set by user are set.
 
  73                         -- Else default mappings are used for keys that are not set by user
 
  74                         use_default_mappings = true,
 
  76                                 ["<esc>"] = actions.close(), -- Close and cursor to original location
 
  77                                 ["q"] = actions.close(),
 
  79                                 ["j"] = actions.next_sibling(), -- down
 
  80                                 ["k"] = actions.previous_sibling(), -- up
 
  82                                 ["h"] = actions.parent(), -- Move to left panel
 
  83                                 ["l"] = actions.children(), -- Move to right panel
 
  84                                 ["0"] = actions.root(), -- Move to first panel
 
  86                                 ["v"] = actions.visual_name(), -- Visual selection of name
 
  87                                 ["V"] = actions.visual_scope(), -- Visual selection of scope
 
  89                                 ["y"] = actions.yank_name(), -- Yank the name to system clipboard "+
 
  90                                 ["Y"] = actions.yank_scope(), -- Yank the scope to system clipboard "+
 
  92                                 ["i"] = actions.insert_name(), -- Insert at start of name
 
  93                                 ["I"] = actions.insert_scope(), -- Insert at start of scope
 
  95                                 ["a"] = actions.append_name(), -- Insert at end of name
 
  96                                 ["A"] = actions.append_scope(), -- Insert at end of scope
 
  98                                 ["r"] = actions.rename(), -- Rename currently focused symbol
 
 100                                 ["d"] = actions.delete(), -- Delete scope
 
 102                                 ["f"] = actions.fold_create(), -- Create fold of current scope
 
 103                                 ["F"] = actions.fold_delete(), -- Delete fold of current scope
 
 105                                 ["c"] = actions.comment(), -- Comment out current scope
 
 107                                 ["<enter>"] = actions.select(), -- Goto selected symbol
 
 108                                 ["o"] = actions.select(),
 
 110                                 ["J"] = actions.move_down(), -- Move focused node down
 
 111                                 ["K"] = actions.move_up(), -- Move focused node up
 
 113                                 ["s"] = actions.toggle_preview(), -- Show preview of current node
 
 115                                 ["<C-v>"] = actions.vsplit(), -- Open selected node in a vertical split
 
 116                                 ["<C-s>"] = actions.hsplit(), -- Open selected node in a horizontal split
 
 118                                 ["t"] = actions.telescope({ -- Fuzzy finder at current level.
 
 119                                         layout_config = { -- All options that can be
 
 120                                                 height = 0.60, -- passed to telescope.nvim's
 
 121                                                 width = 0.60, -- default can be passed here.
 
 122                                                 prompt_position = "top",
 
 123                                                 preview_width = 0.50,
 
 125                                         layout_strategy = "horizontal",
 
 128                                 ["g?"] = actions.help(), -- Open mappings help window
 
 131                                 auto_attach = true, -- If set to true, you don't need to manually use attach function
 
 132                                 preference = nil, -- list of lsp server names in order of preference
 
 135                                 follow_node = true, -- Keep the current node in focus on the source buffer
 
 136                                 highlight = true, -- Highlight the currently focused node
 
 137                                 reorient = "smart", -- "smart", "top", "mid" or "none"
 
 138                                 scrolloff = nil, -- scrolloff value when navbuddy is open
 
 140                         custom_hl_group = nil, -- "Visual" or any other hl group to use instead of inverted colors