[clangd] Support for standard inlayHint protocol
authorKadir Cetinkaya <kadircet@google.com>
Mon, 9 May 2022 09:25:29 +0000 (11:25 +0200)
committerKadir Cetinkaya <kadircet@google.com>
Tue, 10 May 2022 16:59:15 +0000 (18:59 +0200)
commit3137ca80b9ef99359a4adf77512925c2edc461b9
tree9113eeb14c3b2af8ac49ac7f83ddfc29ea8b2954
parent1a02519bc504a12a12ba875db29c9e5901ed9bef
[clangd] Support for standard inlayHint protocol

- Make clangd's internal representation more aligned with the standard.
  We keep range and extra inlayhint kinds around, but don't serialize
  them on standard version.
- Have custom serialization for extension (ugly, but going to go away).
- Support both versions until clangd-17.
- Don't advertise extension if client has support for standard
  implementation.
- Log a warning at startup about extension being deprecated, if client
  doesn't have support.

Differential Revision: https://reviews.llvm.org/D125228
clang-tools-extra/clangd/ClangdLSPServer.cpp
clang-tools-extra/clangd/ClangdLSPServer.h
clang-tools-extra/clangd/InlayHints.cpp
clang-tools-extra/clangd/Protocol.cpp
clang-tools-extra/clangd/Protocol.h
clang-tools-extra/clangd/test/initialize-params.test
clang-tools-extra/clangd/test/inlayHints.test
clang-tools-extra/clangd/unittests/InlayHintTests.cpp