ilya-biryukov added a comment. A few go-by comments from me, Haojian should have better context here!
================ Comment at: clang-tools-extra/clangd/SourceCode.cpp:655 +lex(llvm::StringRef Code, const format::FormatStyle &Style, + llvm::function_ref<void(const clang::Token &, const Position)> A) { // FIXME: InMemoryFileAdapter crashes unless the buffer is null terminated! ---------------- Yay! Thanks! Less templates, more type-checking! Could you rename 'A' to something more specific, though? Not that there is no nice type name to guide the readers, `A` feels a bit confusing. ================ Comment at: clang-tools-extra/clangd/SourceCode.cpp:655 +lex(llvm::StringRef Code, const format::FormatStyle &Style, + llvm::function_ref<void(const clang::Token &, const Position)> A) { // FIXME: InMemoryFileAdapter crashes unless the buffer is null terminated! ---------------- ilya-biryukov wrote: > Yay! Thanks! Less templates, more type-checking! > > Could you rename 'A' to something more specific, though? > Not that there is no nice type name to guide the readers, `A` feels a bit > confusing. why `const Position` and not `const Position&`? top-level const in function parameters is weird, it's basically ignored (except at the definition site) ================ Comment at: clang-tools-extra/clangd/SourceCode.cpp:674 llvm::StringMap<unsigned> Identifiers; - lex(Content, Style, [&](const clang::Token &Tok) { + lex(Content, Style, [&](const clang::Token &Tok, const Position) { switch (Tok.getKind()) { ---------------- Should this be `const Position&` or `Position`? ================ Comment at: clang-tools-extra/clangd/SourceCode.cpp:996 + std::vector<std::string> Enclosing = {""}; + // FIXME: In addition to namespaces try to generate events for function + // definitions as well. One might use a closing parantheses(")" followed by an ---------------- If we were to do this, I'd rather try matching brace structure and only report `closing brace that is probably end of the top-level decl(function, struct, etc)` events. Everything else seems super hard to get right. ================ Comment at: clang-tools-extra/clangd/SourceCode.h:270 + /// It will be “a::b” for both carrot locations. + std::string CurrentNamespace; + /// Offsets into the code marking eligible points to insert a function ---------------- Do we ever name anonymous namespace here? How do we represent them? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D68024/new/ https://reviews.llvm.org/D68024 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits