diff options
| author | Kadir Cetinkaya <kadircet@google.com> | 2019-03-19 09:27:04 +0000 |
|---|---|---|
| committer | Kadir Cetinkaya <kadircet@google.com> | 2019-03-19 09:27:04 +0000 |
| commit | 8665802202689b4014bde7f5aa64f0a3c1a045f7 (patch) | |
| tree | 4d71078bd62a9c906c00b6b182c410fd2d4de8f7 /clang-tools-extra/clangd/FindSymbols.cpp | |
| parent | ad78768d5933bfa50009e8b6f84150291a8aba8f (diff) | |
| download | bcm5719-llvm-8665802202689b4014bde7f5aa64f0a3c1a045f7.tar.gz bcm5719-llvm-8665802202689b4014bde7f5aa64f0a3c1a045f7.zip | |
[clangd] Add support for type hierarchy (super types only for now)
Summary:
Patch by Nathan Ridge(@nridge)!
This is an LSP extension proposed here:
https://github.com/Microsoft/vscode-languageserver-node/pull/426
An example client implementation can be found here:
https://github.com/theia-ide/theia/pull/3802
Reviewers: kadircet, sammccall
Reviewed By: kadircet
Subscribers: jdoerfert, sammccall, cfe-commits, mgorny, dschaefer, simark, ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet
Tags: #clang
Differential Revision: https://reviews.llvm.org/D56370
llvm-svn: 356445
Diffstat (limited to 'clang-tools-extra/clangd/FindSymbols.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/FindSymbols.cpp | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/clang-tools-extra/clangd/FindSymbols.cpp b/clang-tools-extra/clangd/FindSymbols.cpp index 008195502ce..76874e4ecaa 100644 --- a/clang-tools-extra/clangd/FindSymbols.cpp +++ b/clang-tools-extra/clangd/FindSymbols.cpp @@ -26,67 +26,8 @@ namespace clang { namespace clangd { -namespace { - -// Convert a index::SymbolKind to clangd::SymbolKind (LSP) -// Note, some are not perfect matches and should be improved when this LSP -// issue is addressed: -// https://github.com/Microsoft/language-server-protocol/issues/344 -SymbolKind indexSymbolKindToSymbolKind(index::SymbolKind Kind) { - switch (Kind) { - case index::SymbolKind::Unknown: - return SymbolKind::Variable; - case index::SymbolKind::Module: - return SymbolKind::Module; - case index::SymbolKind::Namespace: - return SymbolKind::Namespace; - case index::SymbolKind::NamespaceAlias: - return SymbolKind::Namespace; - case index::SymbolKind::Macro: - return SymbolKind::String; - case index::SymbolKind::Enum: - return SymbolKind::Enum; - case index::SymbolKind::Struct: - return SymbolKind::Struct; - case index::SymbolKind::Class: - return SymbolKind::Class; - case index::SymbolKind::Protocol: - return SymbolKind::Interface; - case index::SymbolKind::Extension: - return SymbolKind::Interface; - case index::SymbolKind::Union: - return SymbolKind::Class; - case index::SymbolKind::TypeAlias: - return SymbolKind::Class; - case index::SymbolKind::Function: - return SymbolKind::Function; - case index::SymbolKind::Variable: - return SymbolKind::Variable; - case index::SymbolKind::Field: - return SymbolKind::Field; - case index::SymbolKind::EnumConstant: - return SymbolKind::EnumMember; - case index::SymbolKind::InstanceMethod: - case index::SymbolKind::ClassMethod: - case index::SymbolKind::StaticMethod: - return SymbolKind::Method; - case index::SymbolKind::InstanceProperty: - case index::SymbolKind::ClassProperty: - case index::SymbolKind::StaticProperty: - return SymbolKind::Property; - case index::SymbolKind::Constructor: - case index::SymbolKind::Destructor: - return SymbolKind::Method; - case index::SymbolKind::ConversionFunction: - return SymbolKind::Function; - case index::SymbolKind::Parameter: - return SymbolKind::Variable; - case index::SymbolKind::Using: - return SymbolKind::Namespace; - } - llvm_unreachable("invalid symbol kind"); -} +namespace { using ScoredSymbolInfo = std::pair<float, SymbolInformation>; struct ScoredSymbolGreater { bool operator()(const ScoredSymbolInfo &L, const ScoredSymbolInfo &R) { |

