[all-commits] [llvm/llvm-project] 83411b: [clangd] Support for standard type hierarchy

kadir ├žetinkaya via All-commits all-commits at lists.llvm.org
Wed Aug 17 00:33:21 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 83411bf06f34ae06731008eeabfc53553c1a1f86
  Author: Kadir Cetinkaya <kadircet at google.com>
  Date:   2022-08-17 (Wed, 17 Aug 2022)

  Changed paths:
    M clang-tools-extra/clangd/ClangdLSPServer.cpp
    M clang-tools-extra/clangd/ClangdLSPServer.h
    M clang-tools-extra/clangd/ClangdServer.cpp
    M clang-tools-extra/clangd/ClangdServer.h
    M clang-tools-extra/clangd/Protocol.cpp
    M clang-tools-extra/clangd/Protocol.h
    M clang-tools-extra/clangd/XRefs.cpp
    M clang-tools-extra/clangd/XRefs.h
    M clang-tools-extra/clangd/test/initialize-params.test
    A clang-tools-extra/clangd/test/type-hierarchy-ext.test
    M clang-tools-extra/clangd/test/type-hierarchy.test
    M clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp

  Log Message:
  [clangd] Support for standard type hierarchy

This is mostly a mechanical change to adapt standard type hierarchy
support proposed in LSP 3.17 on top of clangd's existing extension support.

This does mainly two things:
- Incorporate symbolids for all the parents inside resolution parameters, so
  that they can be retrieved from index later on. This is a new code path, as
  extension always resolved them eagerly.
- Propogate parent information when resolving children, so that at least one
  branch of parents is always preserved. This is to address a shortcoming in the

This doesn't drop support for the extension, but it's deprecated from now on and
will be deleted in upcoming releases. Currently we use the same struct
internally but don't serialize extra fields.

Fixes https://github.com/clangd/clangd/issues/826.

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

More information about the All-commits mailing list