HomePhabricator

[clangd] Make our printing policies for Hover more consistent, especially tags

Authored by sammccall on Dec 18 2020, 9:39 AM.

Description

[clangd] Make our printing policies for Hover more consistent, especially tags

Different cases were using a bunch of different variants of the printing policy.
Each of these had something going for it, but the result was inconsistent.

Goals:

  • single printing policy used (almost) everywhere
  • avoid unidiomatic tags like class vector<class X>
  • be informative and easy to understand

For tags, the solution I wound up with is: we print only the outer tag and only
in the simplest cases where this elaboration won't cause confusion.

For example:

  • class X
  • enum Foo
  • vector<int>
  • X*

This seems to strike a nice balance of providing plenty of info/context in common
cases while never being confusing.

Differential Revision: https://reviews.llvm.org/D93553