HomePhabricator

[clangd] Introduce a "Symbol" class.

Description

[clangd] Introduce a "Symbol" class.

Summary:

  • The "Symbol" class represents a C++ symbol in the codebase, containing all the information of a C++ symbol needed by clangd. clangd will use it in clangd's AST/dynamic index and global/static index (code completion and code navigation).
  • The SymbolCollector (another IndexAction) will be used to recollect the symbols when the source file is changed (for ASTIndex), or to generate all C++ symbols for the whole project.

In the long term (when index-while-building is ready), clangd should share a
same "Symbol" structure and IndexAction with index-while-building, but
for now we want to have some stuff working in clangd.

Reviewers: ioeric, sammccall, ilya-biryukov, malaperle

Reviewed By: sammccall

Subscribers: malaperle, klimek, mgorny, cfe-commits

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

Details

Committed
hokeinDec 12 2017, 7:42 AM
Reviewer
sammccall
Differential Revision
D40897: [clangd] Introduce a "Symbol" class.
Parents
rL320485: Revert "[InstCombine] Fix PR35618: Instcombine hangs on single minmax load…
Branches
Unknown
Tags
Unknown