ioeric added inline comments.

================
Comment at: clangd/index/IndexAction.h:33
+    std::function<void(RefSlab)> RefsCallback,
+    std::function<void(FileDigests)> FileDigestsCallback);
 
----------------
sammccall wrote:
> thinking about what we eventually want here:
>  - the index action needs to tell the auto-indexer what the file content or 
> digests are
>  - the auto-indexer needs to tell the index action which files to index 
> symbols from
>  - this decision is in turn based on the digests
> 
> What about this design:
>  - `createStaticIndexingAction` accepts a filter-function: "should we index 
> symbols from file X"?
>  - `SymbolCollector` invokes this once per file and caches the result.
>  - the signature is something like `bool(SourceManager&, FileEntry*)`
>  - auto-index passes a function that reads the contents from the FileEntry, 
> checks whether the hash is up-to-date to return true/false, and **stores the 
> resulting hashes** for later
> 
> That way the caching/hash stuff never actually leaks outside auto-index that 
> needs it, and we get the interface we need to precisely avoid generating 
> Symbols we don't want.
> 
> (That function could just always return true in this patch, if the filtering 
> isn't trivial).
> 
> It would mean that auto-index would need to redundantly compute the URI once 
> per file, I don't think that matters.
This indeed sounds like a better design for the long term use. Thanks!


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D53433



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to