emacs-lsp / lsp-ui

UI integrations for lsp-mode
https://emacs-lsp.github.io/lsp-ui
GNU General Public License v3.0
1.03k stars 141 forks source link

lsp-ui-imenu displays C++ namespace in reverse order and is messed up with first class definition #632

Closed fperies closed 2 years ago

fperies commented 3 years ago

Thank you for the bug report

Bug description

When I edit a C++ file and I activate lsp-ui-imenu, I get some lines related to namespaces but in reverse order:

NamespaceReverseOrder

In addition the very first line is related to one of the class definition, while it should be the very first namespace definition (sct in this example)

Steps to reproduce

To make simple to describe steps to reproduce, simply edit a C++ file with content as in picture above:

namespace sct::common::interface
{
 class Sequence
 {...};
 class CompositeSequence : public Composite<Sequence>, public BreakPolicy
 {...};
 template <class TemplatedSequence, class TemplatedCollection>
 class LoopableSequence : public Sequence, public BreakPolicy
 {...};
}

and then invoke lsp-ui-imenu.

Expected behavior

Namespace order observed: CompositeSequence sct::common::interface sct::common sct ...

Expected order: sct sct::common sct::common::interface CompositeSequence ...

Which Language Server did you use?

lsp-ccls

OS

Linux

Error callstack

No response

Anything else?

No response

brotzeit commented 2 years ago

Hopefully fixed.