Subject: bug#36678: 27.0.50; imenu not working in C++ (maybe because of namespace)

From: Paul Smith <[email-masked]>
Date: Sat, 03 Aug 2019 10:43:21 -0400

On Fri, 2019-08-02 at 22:25 -0400, Richard Stallman wrote:
>   > The future (again IMO) for indexing and code introspection is in LSP:
>   > there are very good LSP servers for C++ that are free (I use ccls
>   > personally) and there are also very good LSP clients for Emacs (I use
>   > lsp-mode).
> 
> Using a server to do your ocmputing job is bad for your freedom
> (unless it's your own server).

Sorry, I guess I should have provided more details.  When I say
"server" I mean in the traditional sense, of a background process
running on your local system.  I don't mean "service", as in Internet
service.

LSP stands for "Language Server Protocol" and is a public protocol
(invented and driven by Microsoft, but a public effort).

The goal is to split the work of indexing source code and the work of
editing source code into two parts, and LSP is the protocol between
those two parts.  The protocol is language agnostic, so if you have a
client that speaks LSP, that same client can work for ANY language for
which you have an LSP server.  There are (free) LSP servers available
for most popular languages.

More info here: https://langserver.org/

An Internet service would be quite untenable since the server is used
to index your source code, and virtually no one would be interested in
uploading all of their source code to some third party for indexing.
Plus it's indexing your particular code so it would have to support
uploading every individual developers workspace, and uploading every
change to that workspace, etc.

There are many free software LSP server implementations.  The one I
mentioned, ccls, supports C and C++ and is licensed via Apache 2.0:

https://github.com/MaskRay/ccls

Of course the Emacs client implementations are all free software
(available on ELPA etc.)