Commit Graph

5028 Commits

Author SHA1 Message Date
Marco Bubke
0e3dc045a1 Utils: Fix replace crash
The bug was that we returned the new end() but not the old reallocated
after a reallocation of the memory. The return value is used to move the
string after the found sub string to the next found sub string to the
new position of after the replaced sub string. Because the new end moved
more to the right we moved a much bigger chunk of memory. So we
accessed memory outside of the allocated memory.

Change-Id: I9ac276e201eabee896190da0cf0ee1d86860777d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-04 09:05:33 +00:00
Andre Hartmann
3480579943 Extract CamelHumpMatcher for use in the C++/QML locator filters
Started-by: David Kaspar <dkaspar@blackberry.com>
Change-Id: I928ccdc4084f8d07826746c771e7fca6994f95ab
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-08-04 08:19:10 +00:00
Vikas Pachdha
95d34c9277 Squish: Fix Start debugging button identification
The tooltip on start debugging button may not contain project
name and thus no trailing space

Change-Id: Ibc934770feb8b2f7d5fff553b91e3803c222bdad
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-08-03 12:42:44 +00:00
Christian Kandeler
8b8a32ba0e qbs build: Do not access the bundle module unconditionally
We should not rely on its presence on non-Darwin platforms.

Change-Id: I3fa722038f9c2d1139f6e1dc8c49d1c4d2fe0bee
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-08-03 11:09:55 +00:00
Nikolai Kosjar
2d27c55310 Clang: Suspend least recently used translation units
...to free some memory.

The translation units of the 7 most recently used documents ("hot
documents", tracked by document visibility) are kept in memory.
Translation units of other documents are suspended and will be resumed
once they become visible again.

The resumption of a translation unit needs the same time as reparse
(since it is a reparse effectively).

The number of hot documents can be modified by the run time environment
variable QTC_CLANG_HOT_DOCUMENTS=N. Visible documents are always hot.

Task-number: QTCREATORBUG-11640
Change-Id: I68ecd2b1373e303372300203e42d90f65a4b39b3
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-08-03 08:27:32 +00:00
Nikolai Kosjar
c2cfc62f08 Clang: Use document visibility as jobrequest conditions
This is in preparation for a follow-up change that will add jobs that
also operate on invisible documents.

Change-Id: I2a0fc3b95cc5ab2e267429134a534df64c901376
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-08-03 08:26:53 +00:00
Nikolai Kosjar
643854cb8b Clang: Fix incomplete JobRequest in tests
Change-Id: Ibbe8f2722c81393d997efb33e6b29e01fde5eee7
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-08-03 08:26:49 +00:00
Marco Bubke
98035954c9 Sqlite: Add Read and ReadWrite mode to database
We want open databases in read only mode too.

Change-Id: I3b20602d4bd7841c9fca3260edce082d21022052
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:50:26 +00:00
Marco Bubke
52a911b972 Sqlite: Cleanup table and column handling
Using values instead of pointers makes the handling much easier. We can
remove ColumnDefinition too, and use SqliteColumn instead.

Change-Id: I224db9cc569c4dfb6e2746179b02096904bfbccb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:50:18 +00:00
Marco Bubke
a41183f6c7 Sqlite: Add variadic bind and write functions
You can now write

SqliteWriteStatement statement("UPDATE test SET name=?, number=?
                                WHERE rowid=?", database);

statement.write("see", 7.23, 1);

and

SqliteWriteStatement statement("UPDATE test SET name=@name, number=@number
                                WHERE rowid=@id", database);

statement.writeNamed("@name", "see", "@number", 7.23, "@id", 1);

This is more type safe than using variants and performant too.

Change-Id: Ie1ed2a6d326b956be5c4ec056214f3f5b1531f45
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:50:12 +00:00
Marco Bubke
71e1f66284 Sqlite: Add excute to the database
To execute some simple pragmas etc..

Change-Id: Iaa74406a182897dd55ee3ee8dc4d4b94bb8a8e11
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:50:07 +00:00
Christian Stenger
4ad12a2b60 Squish: Add some hints for the setup on macOS
Change-Id: I7aaaee9f32b22f632bdd80c2bcfb1f0cc19f1c8d
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2017-08-02 06:42:33 +00:00
Marco Bubke
2fed425cd3 Clang: Cleanup string interface of sqlite
We only will need the utf8 optimized SmallString for the indexer database.
So we remove all other string bindings, QByteArray and QVariant.

Change-Id: I4a77901a80b26bf292fc85df535c2ccf3a8ab52f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-01 13:44:50 +00:00
Marco Bubke
daa3aad651 Utils: Add startWith to string view
We will add more function if they are needed.

Change-Id: Iac6b432327be32a0778a82c23ed2de5996c555a1
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-01 12:40:28 +00:00
Marco Bubke
3b46c09520 Utils: Add isEmpty to string view
Change-Id: Ib7e77602dcdcdf481f6ab690bacef53c5dd92580
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-01 12:40:14 +00:00
Marco Bubke
01e1f13bb9 Utils: Add + operator to SmallString
It should not be used for chained concatenation. Use initializer list
instead.

auto text = in + 'x';

auto text = Utils::SmallString{in, "x", other, ", "};

Change-Id: I453d986913eae89fd5e1f525b9f4e0c4bd089467
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-01 12:40:08 +00:00
Marco Bubke
1b14ec5056 Utils: Add number to string conversion
We use std::to_string except for integer where we want a low overhead
solution.

Change-Id: I16ce7d575d83ff56e61a5038aa7f9a1febfaf34f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-08-01 12:40:02 +00:00
Christian Stenger
b7c8818eb9 Squish: Update expected texts
Change-Id: I0959635cdfe92335c0a5582119e145c8e7ea88b2
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2017-08-01 09:33:54 +00:00
Robert Loehning
d93f17466a Squish: Update expected completions
Change-Id: I0df3f777cb04e0609be01f5f0acf8b909f64ebd3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-08-01 09:06:54 +00:00
Robert Loehning
11abd8edf7 Squish: Replace Qt4 SDK by self-built Qt 4.8.7
Change-Id: If990367afb01aae94755930c02c81ae82b23bb8f
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-31 14:04:00 +00:00
Marco Bubke
ebd675013f Clang: Fix highlightingmark test
Change-Id: I2c25e06e29e9024e8d3c38536e0e1f93ef65b7e8
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-31 12:04:05 +00:00
Eike Ziller
c01ddc4660 Merge remote-tracking branch 'origin/4.4'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/qbsprojectmanager/qbsproject.h

Change-Id: I6b9cdf704be95ade02488c8b19582b6621282fb8
2017-07-28 15:24:14 +02:00
Marco Bubke
5ab729ea10 Clang: Fix tests for output arguments
Change-Id: I9aeef5758c6291f19efc3d72d5d985adad4c13ab
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-07-27 14:04:32 +00:00
Marco Bubke
400da9def8 Sqlite: Remove static database handle
Change-Id: Ic31f61a477ad681652eeccdaa39f82970c57eb5a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-27 09:14:48 +00:00
Marco Bubke
3dcce060b2 Sqlite: Cleanup Sqlite
We don't need the threading anymore, so we removed it. The indexer
will be run in its thread anyway, so an extra thread makes the code
only more complicated. And we added namespaces.

Change-Id: Ibcba306324763285cf653c28bb08122345e5f8da
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-27 09:14:30 +00:00
Nikolai Kosjar
ba6939fa90 Unit tests: Fix ProjectInfoGenerator.* tests
...by adapting to recent mime type changes:

    commit e8e46ab553
    Plugins: Fix that mimetype definition was not valid JSON

Change-Id: Iac416ab481814e4488fac4d818c51c647c1ec349
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-07-27 08:44:12 +00:00
Marco Bubke
a39d0e6fe1 UnitTests: Fix printer
Fix recursion for QVariant printers.

Change-Id: I1473a94102d0f4446e8033f4c1828735614cdfa3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-26 14:10:39 +00:00
Nikolai Kosjar
8ca2f9d3fa Clang: Tests: Sort files in unittest.pro
Change-Id: I5473230ba9bc1b6c1a9520971d66918d545c9e5b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-07-24 15:58:38 +00:00
Marco Bubke
99af4ae8e6 Clang: Show all tokens of a getter as output argument
f(x.get()); -> x.get() should be shown as a output argument

Task-number: QTCREATORBUG-18591
Change-Id: I99f5637660bcd0a889338ebfa6737d79de226f87
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-07-24 14:31:23 +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
9b5d6546b8 Clang: Remove pointer arguments from output argument
Non constant pointers are used many times as non output arguments, so you
get misleading information.

Task-number: QTCREATORBUG-18591
Change-Id: Ic5f987db44ad63a0b1a38fd59cd807db5f2acc8f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-07-24 13:27:29 +00:00
Nikolai Kosjar
a6aa287720 C++: Fine-tune auto insertion of '}'
Do not insert for these cases:
 * <Cursor>{
 * namespace X <Cursor>
 * if the next block is indented, like e.g.:
     if (e) <Cursor>
        g();
 * on empty line if text before looks like a finished statement or
   scope opening/end

Change-Id: Id9decc1e964a775724a929c2a3e79b5283105560
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-07-21 11:42:46 +00:00
Nikolai Kosjar
2c9feb1f4b C++: Add tests for MatchingText::contextAllowsAutoParentheses
Change-Id: I4c2bdf55112f473770db1515bd412215685bfe04
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-07-21 11:39:32 +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
Robert Loehning
19cdb75a8a Squish: Use all lowercase when searching in locator
As soon as an uppercase letter is being
used, the locator becomes case-sensitive.

Change-Id: Id392a762282f824c51a19c26721f820dc3dd3b8e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-19 09:13:22 +00:00
Robert Loehning
f35fd5d79a Squish: Update configuration check in tst_cli_output_console
Change-Id: I0890ce54b76ec8d01095e8ed0c5bbb4dc4f18390
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-19 09:13:05 +00:00
Robert Loehning
6906ee0dbb Squish: Update menu in tst_session_handling
Change-Id: Ia9d05a89fe8e7eb6028c9f69e77fa3f7dc001168
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-17 14:12:39 +00:00
Tim Jenssen
d5342eff77 fix property spelling
Change-Id: I00f84ec8d2c83d7f3937d2e21a24e02ba28991b3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-17 10:38:08 +00:00
hjk
5e3a2b5b89 Debugger: Add a version check for GNU gdb (GDB) Fedora 8.0-13.fc26
Change-Id: Id2ccd3712370609e2d6a0b126ba2d4934ff1f763
Reviewed-by: Niels Weber <niels.weber@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-12 12:34:37 +00:00
Robert Loehning
8637d04c1d Squish: Update expected text in tst_git_local
Change-Id: I97a532f80b9dc2b40ec5931116b207cfaeef8f4b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-11 09:20:27 +00:00
Robert Loehning
8c66ecfaa3 Squish: Expect wrong popups to be fixed
Task-number: QTCREATORBUG-15710
Change-Id: Id4a0e3e42249cdd281ed79b0914faacfb3450e37
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-11 09:20:06 +00:00
Robert Loehning
29504197d7 Squish: Handle "Fixed" status in workarounds
Change-Id: I0df22407e19a71a4ab216d413ce682a793287aa3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-11 09:19:26 +00:00
Orgad Shaneh
c841dc551c Introduce and use Utils::stripAccelerator
Change-Id: I8c37728ca5de20e2b68e6d0ac7fc120baa696040
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-07-07 12:17:40 +00:00
Nikolai Kosjar
f257e3fe95 Clang: Fix ReferencesCollector tests on Windows
This is supposed to fix

  [  FAILED  ] ReferencesCollector.VariableInTemplate
  [  FAILED  ] ReferencesCollector.MemberInTemplate

on Windows.

Change-Id: I1a6486e524069c83da183e3e68df2dea8ba415ff
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-04 14:40:30 +00:00
Nikolai Kosjar
82e1e44c9d Clang: Tests: Fix setFuture/connect order for QFutureWatacher
Change-Id: Iab177c17049451cb41ec8df16f9d47006b873e6a
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-07-04 13:02:49 +00:00
Tim Jenssen
72d2003082 Clang: fix double file entry
Change-Id: I3add0999df472c09a96db929fab25c1e1201d6f7
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-07-03 18:17:45 +00:00
Tim Jenssen
86b6b71937 Clang: fix separators for tests
Change-Id: I951603294f2cf0a044463ddb431b80370b393bb6
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-07-03 18:17:29 +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
hjk
8678117572 Valgrind: Merge ValgrindRunner and ValgrindProcess
There was a 1:1 matching remaining.

Change-Id: I619bedcda867b642eab37396a0bd48bcb3a5829a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-06-30 10:33:51 +00:00