We moved the creation of the tables and indices to an extra class which can
be called from other places. So you can be sure that a database is
initialized.
Change-Id: Ief5b30ced7b9011ca94367aa2578098423dcecd9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We use a name space now, so the prefix is not of much use.
Change-Id: I2b077576f94dab778add6ab2e54870f7ca18da78
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
It is a first step and now a database is generated if you start QtCreator.
Some code is now shared with the PchManager which can be improved in the
future.
Change-Id: Ic267fe7960f6c455d91832859a673ce98f269aa2
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Clang is internally using an id to handle files. We add now a mapping from
their AST local id to out global id.
Change-Id: I2d724761287b5e915237175134ec5d3b92099ddb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We already share same classes there which has nothing to do with IPC and
I want to more for sharing. So we should use a name which fits better.
Change-Id: Idfb12b6de714206117b92634ad719c6a0e290e78
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The server and client interfaces was tightly coupled.So it prevented
the introduction of immediate interfaces.
Change-Id: Ie4197ffddb862e076d080b3d2a5ee869fad9e4d0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
If you hover a diagnostics in for a clang query you get now a simple tool
tip.
Change-Id: I6352dd3d4b9a33c183e69037eac903469b90eea4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We now support highlighting for an example text and for the query.
Change-Id: I88c415ff871cf3e4c2d4fc83d60a8555bf0ce08a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Because we can visit headers many times, we get results many times too.
Change-Id: I3bbe7d7a5d01c2580a4569bfe115f14a69edc8a7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Clang file ids are only unique for one query. Because we query in parallel
we have to manage our own unique ids.
Change-Id: I67d57d8b1766cab75ad252a14e57bbf9dc5fdb79
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Every AST unit is created and queried asynchronously, like before, but
we don't wait anymore but use a timer to process new sources. So the server
will not be blocked and can process other messages like cancel.
Change-Id: If0e69466c78f628190f59fd32a03cab1c3a4d0a3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
against the documentation nullptr is not working here
Change-Id: I6b5329ef97289370715faba8046724d5e42662ed
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
We don't handled generated files so we got internal parse errors.
Change-Id: If75e202f93fe3f71f43e3b1d15c0fb77e20c2248
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Because of the ancient compiler support we cannot use
std::make_reverse_iterator. If we support newer compilers we can revert
this patch.
Change-Id: I9b20ab1e53a0e9784b0455eafbbfd966797ad91e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We need the generated UI header but we don't have a build directory. So we
provide clang with in memory represations of the file.
Change-Id: Ie9db97bbea2222b0203a0457baa1f1fc7ad97213
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Using llvm_config --cxxflags can be potential dangerous. We should test
every configuration if it is compiling. It has the advantage that we don't
need to care anymore about incompatible flags to the used clang version.
Change-Id: I3bbddb1935dca9896c64ebafd1fbe72840db8bd4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Clang query is mechanism to use AST matcher to search for code. Think
about regular expression but in the context of AST. So you get a semantic
search tool for C++.
Change-Id: I72e882c5b53a0c52f352a3664847c4c3e4f6fc2e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Only MinGW gcc defines WIN32, MSVC compiler does not. It's
also defined by qmake (msvc-desktop.conf), but not by qbs ...
Let's just use _WIN32, that's defined everywhere.
Change-Id: I8342a70498be54a965dcf7fae63eaf406aaa3c04
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Under windows you cannot mix debug and release builds. So we require that
clang is build as debug if the creator is build in debug.
Change-Id: Ie46a1f13d83a7afbf81129ed75d0519fa9f5268d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
LLVM is normally not compiled with RTTI so we get link errors. We should
use "llvm-config --cxxflags" but before we can use it we should be sure
that we don't break something.
Change-Id: If45afcd625273230960a2c2065877f2512a53209
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Actually we maybe should use llvm-config --cxxflags but before we do
that we should evaluate possible compile breaks.
Change-Id: I534605c6f61217bfe985bef22af7d1dc9ac79637
Reviewed-by: Eike Ziller <eike.ziller@qt.io>