Commit Graph

37 Commits

Author SHA1 Message Date
Marco Bubke
5ad44318eb Clang: Improve caching of file path ids
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>
2017-08-29 16:37:49 +00:00
Marco Bubke
f49a1d721c Clang: Add symbol storage
Extend file path cache to 64 bit integer.

Change-Id: I5627f13d59a3214f389087038482cbcc8d0eb484
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-29 16:37:24 +00:00
Marco Bubke
81d43b8a11 Clang: Add symbol indexer
Change-Id: I8ff879631ae022bc870431628be002903360369c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-29 16:37:17 +00:00
Marco Bubke
f0e00a8c25 Clang: Add symbols collector
Change-Id: I64c25eef8eaa6cc6c3ff09d41866972b6c7248d0
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-29 16:37:09 +00:00
Marco Bubke
8640ef1927 Utils: Convert to SmallStringView for comparison
Change-Id: I38d9716225b81091e8e75b26c9c2258a2aefa987
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-29 16:36:57 +00:00
Marco Bubke
b725018e9e Clang: Cleanup interface hierarchy
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>
2017-08-24 13:28:47 +00:00
Marco Bubke
9428624fc1 Clang: Tool tips for clang query diagnostics
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>
2017-07-24 13:37:18 +00:00
Marco Bubke
a31eae4d0a Clang: Add clang query pane
We now support highlighting for an example text and for the query.

Change-Id: I88c415ff871cf3e4c2d4fc83d60a8555bf0ce08a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-20 13:32:39 +00:00
Tim Jenssen
23cae9a9e0 Clang: Filter duplicates in clang query output
Because we can visit headers many times, we get results many times too.

Change-Id: I3bbe7d7a5d01c2580a4569bfe115f14a69edc8a7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-03 09:57:57 +00:00
Tim Jenssen
dae4477cd3 Clang: Make file ids unique
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>
2017-07-03 09:27:05 +00:00
Nikolai Kosjar
202d4a52a0 Clang: Fix build with QTC_NO_CLANG_LIBTOOLING
...caused by

  commit f5d68398d5
  Clang: Fix canceling of clang query

Change-Id: Ic48485aed1d23e1ddd2f7bc1e37a797d2c2498c6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-29 09:00:07 +00:00
Marco Bubke
f5d68398d5 Clang: Fix canceling of clang query
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>
2017-06-28 09:15:51 +00:00
Tim Jenssen
637034c318 Clang: fix SEH exception
against the documentation nullptr is not working here

Change-Id: I6b5329ef97289370715faba8046724d5e42662ed
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-03-23 11:34:36 +00:00
Nikolai Kosjar
5455a45784 Clang: Compile against llvm/clang 4.0
Task-number: QTCREATORBUG-17692
Change-Id: I2781129543c09aa64938c9570896d592b57a753c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-03-10 08:48:45 +00:00
Marco Bubke
68afbbce75 UnitTest: Fix compilation for different configurations
Change-Id: I20d4217d1c33002f7e1ac084af4b0982b2f04971
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-02-06 10:23:29 +00:00
Marco Bubke
01a96537a8 Utils: Move forward declaration of SmallString in an extra header
Change-Id: I6da1cc60d425f654a31570373eb3b4f660d5f975
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-02-02 12:46:44 +00:00
Marco Bubke
b860d46579 Clang: Handle generated files
We don't handled generated files so we got internal parse errors.

Change-Id: If75e202f93fe3f71f43e3b1d15c0fb77e20c2248
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-02-01 13:11:15 +00:00
Marco Bubke
8624e3c97d Clang: Remove unused files
Change-Id: If100138459665a11812ed5977ca15b79c0836b93
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-01-09 13:21:33 +00:00
Marco Bubke
1ae34549b1 Clang: Remove useless move
Temporary values are already rvalue references.

Change-Id: Iae3122cc04f6adb23fdf9986b9cdfe6575e906ee
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-12-08 14:13:04 +00:00
Marco Bubke
1f7694135d Clang: Workaround bug in clang for multithreading
We have to fix that but people want to try it now.

Change-Id: I957215c7ec05ec0b0632179b538f5fac41f77dab
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-08 11:57:43 +00:00
Marco Bubke
542c730b33 Clang: Suppress unused parameter warnings in clang headers
Change-Id: I8b2d50be5bda75b6759b7ce73b9d37b2500f3efc
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-08 11:57:35 +00:00
Marco Bubke
8c701f620a Clang: Fix warning
We can add it later again.

Change-Id: Ic75d05623cec0f9b0558495be5e1856ccf639c97
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-12-07 14:43:32 +00:00
Marco Bubke
cf885a138c Clang: Clean up SourceRangeExtractor::findStartOfLineInBuffer
Change-Id: Ic0b5e44756f0364f583c72b5b05795764718a6e8
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-07 11:40:47 +00:00
Marco Bubke
6f362072d6 Clang: Workaround missing std::make_reverse_iterator
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>
2016-12-07 11:40:30 +00:00
Marco Bubke
15de02ea0c Clang: Add refactoring support for unsaved content
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>
2016-12-07 11:39:11 +00:00
Tim Jenssen
7f757884c5 Clang: Extend clang query
It's a first step to introduce clang query.

Change-Id: I4d001a8883f56066765ce6bc561fa3f49611c0a4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-23 12:16:04 +00:00
Eike Ziller
4026864f38 Merge remote-tracking branch 'origin/4.2'
Conflicts:
	src/plugins/clangrefactoring/refactoringengine.cpp
	src/tools/clangrefactoringbackend/source/symbolfinder.cpp

Change-Id: I7c1c87f3b8ade43a07f6668565501042e967fa8b
2016-11-16 16:04:59 +01:00
Tim Jenssen
9c7ff5199f Clang: Add clang query
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>
2016-11-15 15:30:33 +00:00
Kai Koehne
e5becbdfb9 Replace WIN32 define with _WIN32
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>
2016-11-14 10:36:31 +00:00
Marco Bubke
f0bf6211be Clang: Remove useless namespace usage
Change-Id: Ia153798c3b770ff7c586584d4de2d7cd0cd191cd
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-01 15:37:32 +00:00
Marco Bubke
cf6b5dd5ef Clang: Remove unused variable
Change-Id: Ib59fa1cba5ada10338fb10c49e7314047cd474f8
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-10 14:13:01 +00:00
Marco Bubke
6d577f5520 Clang: Remove useless semicolon
Change-Id: Idc030832a73caca3f5c4a234abf082ad6bfc86d7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-10 14:12:50 +00:00
Marco Bubke
f56ec53fa1 Clang: Test for file path RequestSourceLocationsForRenamingMessage
Change-Id: Ia384deb60e644d8894d7c56f81b3deb8b7706c11
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-08 14:19:02 +00:00
Marco Bubke
98a167c0d5 Clang: Fix template renaming
Change-Id: I8040fe8dfc99d66e242ce2ff8589aa914838bfc9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-08 13:50:25 +00:00
Marco Bubke
ec06fd0e84 Clang: Use std::replace instead of std::transform
Change-Id: I60e42577631dee5cf05b1129a49ea36c391e8923
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-08 13:27:38 +00:00
Marco Bubke
a2bf47266a Clang: Fix naming
Change-Id: Ibf82e92d2c29395e739afcdbe181595e0a3ed012
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-08 13:27:31 +00:00
Marco Bubke
4cdb5bab15 Clang: Add clang refactoring
Change-Id: I2e3f36f810276da3f8dc7dcc587b06f8edb586d3
GPush-Base: d02f51b48fc752fddcdef6dcb32b3f7f6c0195a3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-04 14:37:19 +00:00