• Stars
    star
    131
  • Rank 275,963 (Top 6 %)
  • Language
    Lua
  • Created almost 3 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Neovim's missing call hierarchy UI
██╗     ██╗████████╗███████╗███████╗   ███╗   ██╗██╗   ██╗██╗███╗   ███╗
██║     ██║╚══██╔══╝██╔════╝██╔════╝   ████╗  ██║██║   ██║██║████╗ ████║ Lightweight
██║     ██║   ██║   █████╗  █████╗     ██╔██╗ ██║██║   ██║██║██╔████╔██║ Integrated
██║     ██║   ██║   ██╔══╝  ██╔══╝     ██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║ Text
███████╗██║   ██║   ███████╗███████╗██╗██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║ Editing
╚══════╝╚═╝   ╚═╝   ╚══════╝╚══════╝╚═╝╚═╝  ╚═══╝  ╚═══╝  ╚═╝╚═╝     ╚═╝ Environment
====================================================================================

litee screenshot

litee-calltree

litee-calltree utilizes the litee.nvim library to implement a tool analogous to VSCode's "Call Hierarchy" tool.

This tool exposes an explorable tree of incoming or outgoing calls for a given symbol.

Unlike other Neovim plugins, the tree can be expanded and collapsed to discover "callers-of-callers" and "callees-of-callees" until you hit a leaf.

Like all litee.nvim backed plugins the UI will work with other litee.nvim plugins, keeping its appropriate place in a collapsible panel.

Usage

Get it

Plug:

 Plug 'ldelossa/litee.nvim'
 Plug 'ldelossa/litee-calltree.nvim'

Set it

Call the setup function from anywhere you configure your plugins from.

Configuration dictionary is explained in ./doc/litee-calltree.txt (:h litee-calltree-config)

-- configure the litee.nvim library 
require('litee.lib').setup({})
-- configure litee-calltree.nvim
require('litee.calltree').setup({})

Use it

First ensure you also have the litee.nvim (https://github.com/ldelossa/litee.nvim) library installed.

litee-calltree.nvim hooks directly into the LSP infrastructure by hijacking the necessary handlers like so:

vim.lsp.handlers['callHierarchy/incomingCalls'] = vim.lsp.with(
            require('litee.lsp.handlers').ch_lsp_handler("from"), {}
)
vim.lsp.handlers['callHierarchy/outgoingCalls'] = vim.lsp.with(
            require('litee.lsp.handlers').ch_lsp_handler("to"), {}
)

This occurs when require('litee.calltree').setup() is called.

Once require('litee.calltree').setup() is ran, the normal "vim.lsp.buf.incoming_calls" and "vim.lsp.buf.outgoing_calls" functions will open the Calltree UI, respectively.

By default the Calltree will open in a PopOut Panel, however this default is controlled by the "on_open" configuration flag and can be changed to open in a side panel instead. (see h: litee-calltree-config).

Once the Calltree is open checkout (h: litee-calltree-commands) to see all the available actions you can take on a Calltree.

Check out the help file for full details.

More Repositories

1

nvim-ide

A full featured IDE layer for Neovim. Heavily inspired by VSCode.
Lua
828
star
2

gh.nvim

A fully featured GitHub integration for performing code reviews in Neovim.
Lua
546
star
3

litee.nvim

A framework for building Neovim plugins
Lua
409
star
4

way-shell

A Gnome-like shell for wayland compositors
C
158
star
5

sway-fzfify

A set of script to incorporate fzf into your sway desktop
Shell
87
star
6

vimdark

A dark theme for vim based on vim-monotonic and chrome's dark reader
Vim Script
69
star
7

dotfiles

Lua
58
star
8

nvim-dap-projects

Lua
50
star
9

buffertag

Lua
47
star
10

litee-symboltree.nvim

A document outline tool implemented with the litee.nvim library
Lua
45
star
11

litee-bookmarks.nvim

A litee.nvim backed plugin for saving important places in your code.
Lua
28
star
12

litee-filetree.nvim

A file explorer implemented with the litee.nvim library.
Lua
27
star
13

sway-rofi-scripts

A set of scripts which instrument Rofi for Sway usage.
Shell
11
star
14

diskmonitor

Python
6
star
15

SystemsAndPerformance

4
star
16

cluster-tooling

Tooling to help create Cilium clusters in various environments
Makefile
4
star
17

distlock

postgres backed distributed lock
Go
3
star
18

ebpf-net

ebpf-net
C
3
star
19

Yabai.spoon

HammerSpoon Spoon for Yabai
Lua
2
star
20

vim-grpc.vim

Go
2
star
21

bg_deploy

Script for handling blue green deployments in AWS
Python
2
star
22

HtAccessConverter

Converts .htaccess files to nginx server blocks.
Python
1
star
23

pubsub

Tools to abstract google's pubsub usage in Golang.
Go
1
star
24

goframework

various Go packages used between projects
Go
1
star
25

cmds

CLI wrapper for all my shell scripts
Shell
1
star
26

KVM_Helper_Scripts

A set of scripts which slipstreams KVM tasks
Shell
1
star
27

importfinder

A simple go command line tool to recursively find imported go packages
Go
1
star
28

FFproxy

Go
1
star
29

salt-grains-tutorial

Shell
1
star
30

dns

Library for parsing DNS wire format
Go
1
star
31

ldelossa-blog

svelte driven blog
Svelte
1
star
32

haproxy_rest

Python
1
star
33

NitroRestClient

A python rest wrapper for the Netscaler Nitro API
Python
1
star
34

APIclient

Golang scaffolding code for an API client
Go
1
star
35

responserecorder

A ResponseRecorder for production
Go
1
star