<div dir="ltr"><div>Follow-up question: is it even recommended to use Indexing API? (`clang_indexTranslationUnit` and friends)</div><div>Other projects I looked into (e.g. rtags: <a href="https://github.com/Andersbakken/rtags">https://github.com/Andersbakken/rtags</a>) don't use it and rely solely on low-level AST traversal<br></div><div>with `<span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">clang_visitChildren`.</span></div><div><font face="Verdana, Arial, Helvetica, sans-serif"><br></font></div><div><font face="Verdana, Arial, Helvetica, sans-serif"><br clear="all"></font><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px"><div style="margin-top:0px;margin-right:0px;margin-bottom:8px;margin-left:0px"><p style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"></p><div style="margin-top:0px;margin-right:0px;margin-bottom:8px;margin-left:0px"><br></div></div></span></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 30, 2020 at 8:15 AM Andrey Lushnikov <<a href="mailto:aslushnikov@gmail.com">aslushnikov@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div style="margin:0px;padding:0px 0px 20px;width:1004px;font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:medium"><div><div id="gmail-m_-2640813756717513444gmail-:sx" style="font-size:0.875rem;direction:ltr;margin:8px 0px 0px;padding:0px"><div id="gmail-m_-2640813756717513444gmail-:sw" style="overflow:hidden;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:small;line-height:1.5;font-family:Arial,Helvetica,sans-serif"><div dir="ltr"><div dir="ltr"><div dir="ltr"><span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px"><div style="margin:0px 0px 8px"><p style="margin:0px">Hi! </p><p style="margin:0px"><br></p><p style="margin:0px">First of all, thank you for all the work on LLVM. I've been playing with libclang for a while and it's been an enjoyable experience.</p><p style="margin:0px"><br></p><p style="margin:0px">I'm using libclang to build cross-references for a C++ codebase. I use the `clang_indexTranslationUnit` API, which works very well, but unfortunately</p><p style="margin:0px">reports declarations and references that are coming from macro expansions.</p><p style="margin:0px"><br></p><p style="margin:0px">Now, declarations and references from macro expansions don't really have locations in source code, so I'd love to ignore them.</p><p style="margin:0px"><br></p><p style="margin:0px">My questions are:</p><p style="margin:0px">- Is there a way to detect declarations and references from macro expansions?</p><p style="margin:0px">- If not, shall I switch to `clang_visitChildren` API instead?</p><p style="margin:0px">- Alternatively, would it be a good idea for me to try contributing a new `CXIndexOpt_IgnoreMacroExpansions` option to the API?</p><p style="margin:0px"><br></p><p style="margin:0px">Thanks,</p><p style="margin:0px"><a></a>Andrey</p><div></div><div><p></p></div></div></span></div></div></div><div></div></div></div><div style="border-bottom-left-radius:1px;border-bottom-right-radius:1px;padding:0px;width:auto;background:rgb(242,242,242);margin:0px"></div></div></div>P.S. I tried writing to <span style="font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:14px"><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>, but was advised to write here instead. Please let me know if this is not the best list for this type of question.</span></div><div><div dir="ltr"><div dir="ltr"><span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px"><div style="margin:0px 0px 8px"><p></p></div></span></div></div></div></div>
</blockquote></div>