m-pilia / vim-ccls

Vim plugin for the ccls language server
MIT License
97 stars 7 forks source link

Open all call hierahcy at once #59

Closed windrg closed 2 years ago

windrg commented 2 years ago

Hi, I've increased this value to 3.

let g:ccls_levels = 3

but it still shows only one thing whenever pressing 'o'. What I want is, just show full call path by pressing 'o' only once. Is it possible? Or am I missing something?

m-pilia commented 2 years ago

Hi @windrg

What I want is, just show full call path by pressing 'o' only once. Is it possible? Or am I missing something?

Unfortunately this is not possible at the moment.

I had it in the first draft of the viewer but I decided to leave it out it in the end. A call graph can be very big, so trying to fetch a "full" call tree at once can lead to bad surprises. Also, in general it is not possible to show a "full" call path, because the call path can (and often will) contain loops. So "full" would need to be limited somehow (either down to the first detected loop, or in terms of some pre-fixed maximum depth)

I've increased this value to 3.

let g:ccls_levels = 3

This value does not affect the external behaviour, it only controls the laziness of the tree construction (how many levels under a node are read and cached with each request to the language server) and offers a way to balance between number of LSP requests and size of each request. In retrospective, the name of the variable might be a bit ambiguous. The default value is 1 (fully lazy) and there is rarely a reason to change it.