ccls.nvim
vim-ccls
ccls.nvim | vim-ccls | |
---|---|---|
5 | 6 | |
63 | 92 | |
- | - | |
2.4 | 0.0 | |
6 months ago | over 1 year ago | |
Lua | Vim Script | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ccls.nvim
-
C++ dev environment in pure lua based plugins.
The starting point for this is probably here. After that, you might want to look at ccls.nvim.
-
Getting neovim setup for C++ dev - CCLS
Thank you so much for responding! The screengrab of your setup here is super!
-
Type Hierarchy - Find child methods
I used a similar (but existing) concept for a plugin I created called ccls.nvim that deals with hierarchy for types, member functions, call stacks, inheritance etc..
- New plugin - ccls.nvim - Calling for testers (almost production ready)
vim-ccls
- Vim-ccls: Vim plugin for the ccls language server
-
Getting neovim setup for C++ dev - CCLS
I've tried ccls.nvim and vim-ccls - any other recommendations?
-
State of the call hierarchy functionality
There is Litee's Calltree but I couldn't make it work. For C/C++, there is the Vim-Ccls plugin that adds those functionalities (although I don't like the UI). But in order to use it I had to switch from Clangd to Ccls and it broke the symbol tree of 2 plugins I had : Sidebar.nvim (which I actively used) and symbols-outline.nvim (an old plugin I tried to use again, but is broken by the change as well).
-
Extension like rust-tools.nvim, but for clangd (C & C++)
First I strip down ccls like this lua local cinit = function(client) require("mappings").nvim_lsp() local rc = client.resolved_capabilities rc.document_formatting = false rc.document_range_formatting = false rc.document_highlight = false rc.document_symbol = false rc.workspace_symbol = false rc.rename = false rc.hover = false rc.completion = false rc.code_action = false end require('lspconfig').ccls.setup{ on_init = cinit, handlers = { ["textDocument/publishDiagnostics"] = function(...) return nil end, ["textDocument/signatureHelp"] = function(...) return nil end, }, single_file_support = true, root_dir = Lsp.util.root_pattern("compile_commands.json", "compile_flags.txt", ".git"), } and then use vim-ccls for the AST extensions, config it with mappings.
-
GitHub - ldelossa/calltree.nvim: Neovim's missing call-hierarchy UI. (Help Test!!)
I use https://github.com/m-pilia/vim-ccls, and was hoping to find something more general. Thank you for making this.
-
Switching to nvim-lsp
you could go the route of writing your on handlers. I was incredibly lazy. there exists Martin Pilla' amazing plugin that does just that. All the hierarchy based jumps provided by ccls are inside that plugin.
What are some alternatives?
hierarchy.nvim - Neovim plugin providing an attempt to « hack around » the lack of support (in clients & servers) for the type hierarchy LSP protocol.
ale - Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support
ccls - C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
litee-calltree.nvim - Neovim's missing call hierarchy UI
clangd - clangd language server
litee.nvim - A framework for building Neovim plugins
kickstart.nvim - A launch point for your personal nvim configuration
symbols-outline.nvim - A tree like view for symbols in Neovim using the Language Server Protocol. Supports all your favourite languages.
nvim-config - Generalized and Personalized
vim-yggdrasil - Vim library to generate tree-like views
dotfiles
vim-lsp - async language server protocol plugin for vim and neovim