Commit Graph

4400 Commits

Author SHA1 Message Date
Marco Bubke
eb55c1a4e4 Clang: Fix highlightingmarks include test
Change-Id: I3e3f34a7155149a4a12fb8cea3102aba10bb5fc7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2016-10-11 10:55:01 +00:00
Nikolai Kosjar
bf5c1cc4fb Clang: Avoid duplicate jobs without changes in-between
This could happen, e.g. with this message order:

  >>> updateTranslationUnitsForEditor()
  add job<1>
  run job<1>
  >>> updateVisibleTranslationUnits(Utf8String(), {})
  >>> updateVisibleTranslationUnits(path, {path})
  add job<2>
  finish job<1>
  run job<2> -- Ops, nothing is changed but job<2> is started

This led to an outdated translation unit (e.g. wrong highlighting).

Now JobQueue checks for duplicates in the queue and checks all the
currently running jobs.

Change-Id: I05843fddcbd21ce0489681c283227c0027ded428
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:37:20 +00:00
Nikolai Kosjar
380d756a03 Clang: Hook up supportive translation unit on first edit
Parsing happens rotationally on the translation units.

The recently parsed translation unit is used for completion jobs while
the older version is used for parse jobs.

Advantages:
  A1. A completion job cannot be blocked anymore by currently running
      parse job.
  A2. Faster triggering of parse jobs. A reparse was triggered about
      1650ms after the last keystroke. This is down to 500ms now since we
      do not have a blocking translation unit for the completion anymore.

Disadvantages:
  D1. Memory consumption is doubled for an edited document.
      This could be addressed by suspending the second translation unit
      after some time of inactivity.
  D2. Setup of the supportive translation unit takes some time.

Change-Id: I958c883c01f274530f5482c788c15cd38d6f4c3e
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:36:59 +00:00
Nikolai Kosjar
a85d5c7222 Clang: Return updated documents
Change-Id: Id4b1267914019ac56cdd132c6d597167a1f2b9a9
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:36:48 +00:00
Nikolai Kosjar
c8cec2dd0d Clang: Base JobQueue on translation unit
This enables a job per translation unit instead of per document.

This does not change any behavior yet.

Change-Id: Iafb8dab5da32b53dbb3010c16241bf89cbb81b38
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:36:33 +00:00
Nikolai Kosjar
8d443b40b7 Clang: Extract long clock/time_point references
Change-Id: If2790263e9a314f27762c57cf6bf4ef67f93a84b
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:36:24 +00:00
Nikolai Kosjar
1a426d9f01 Clang: Support second translation unit
A TranslationUnit is owned by TranslationUnits now. TranslationUnits
allows to add another TranslationUnit and to update/query the recently
and previously parsed translation unit.

This does not change any behavior yet.

Change-Id: I8a2f0cc05d3e51bf739dd5d7c4da14b54147f3ab
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:35:48 +00:00
Nikolai Kosjar
c12d01fb41 Clang: Add job queue for each document
...in preparation for follow-up changes. This will enable e.g. a timer
per document.

This does not change any behavior yet.

Change-Id: Ic1dc06de602373c666d47ce7a95ab99e56d389d5
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-10 12:35:35 +00:00
Robert Loehning
816d0010c2 Squish: Update tst_session_handling for numbered sessions
Change-Id: I2821f55440e13eeb9ca81589ffd746e713ae0e16
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-10 10:36:19 +00:00
Christian Stenger
f7e4c2fb4c Tests: Fix compilation
Introduced with c1e3fd9f3e.

Change-Id: I5a760efa5c6e300ad5a4b5951492e57b03d0b50c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-10-10 05:19:30 +00:00
Robert Loehning
54a7188c27 Squish: Cloning installer-framework instead of jom in tst_git_clone
jom's repository can be cloned quicker than Squish can cancel the
procedure, making the test instable. Cloning installer-framework
takes a couple of seconds longer.

Change-Id: I032a4bf60cfd3b070e4c311fbd1dae5b81e8fcd1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-07 10:17:20 +00:00
hjk
e234bbd88b Debugger: Add dumper for Nim's string and sequence types
... and make the auto test infrastructure able to handle
a test. To pass the test, some Nim compiler must be
accessible.

Change-Id: I707aa72c0f3a2ea35c7131cba490cafb41617f6c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-06 13:39:02 +00:00
hjk
d4ef385d59 Debugger: Improve QJSValue dumper on 32 bit
Change-Id: I18937a92d5202a58d9f3d786c6cc37f8176b2692
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-06 09:18:10 +00:00
Eike Ziller
90cf4487a5 Merge remote-tracking branch 'origin/4.1'
Conflicts:
	src/plugins/autotest/qtest/qttestoutputreader.cpp

Change-Id: I4b323f2f3041d015fa04b9a25ec925f3b3e2411f
2016-10-05 15:28:04 +02:00
Nikolai Kosjar
ae92b68154 Clang: Remove some needless bools
Change-Id: Ia845c803fce85ad0e29e2cf6b64820b86599bac6
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-05 07:25:45 +00:00
hjk
da00b0202e Debugger: Use types instead of type names in dumper array handling
Change-Id: I5c4b6e0e0de077fbead467dd1b042c379c9a0dd3
Reviewed-by: hjk <hjk@qt.io>
2016-09-30 15:06:37 +00:00
hjk
fad7be6caa Debugger: Make QLocale dumper test pass on Qt 5.6 again
QLocale::DefaultNumberOptions is new in 5.7

Change-Id: Iaf55dcacd8ca5a0bbb92f25df4983aed276cda7f
Reviewed-by: hjk <hjk@qt.io>
2016-09-30 14:30:50 +00:00
hjk
ffe85ff5a2 Debugger: Adjust StdList dumper test expectation to reality
Change-Id: I366bba71ae122635d8159085396df80a2ae301db
Reviewed-by: hjk <hjk@qt.io>
2016-09-30 13:56:21 +00:00
Christian Stenger
3adef3cc7c Squish: Remove OSX specific workaround
Change-Id: I9e43c47c5ef2422d46e10b9f2fd88454b4352c30
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2016-09-30 10:09:10 +00:00
Orgad Shaneh
ed12120bf2 QmlDesigner: Fix test compilation
Change-Id: I092b28d10af15edff77a6806cd71554cc5be0d73
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-09-29 23:58:48 +00:00
hjk
a71fb44404 Debugger: Re-enable two std::map test cases
Whatever the problem was seems to be fixed by now.

Change-Id: I0990614f5ed5b4f61f0e7d1017603fc317ada6d1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 13:26:34 +00:00
hjk
856c347300 Debugger: Use now-standard mechanism for std::unordered_map dumper
Change-Id: Iceea7d369e53220622edb6272e72750b6512148f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 12:49:25 +00:00
hjk
cbcc556614 Debugger: Make the 'use last value for short display' trick permanent
Change-Id: I4c8b50751ed4ad605bbd02287147a904d8aec58b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 08:48:43 +00:00
hjk
a2c83874d3 Debugger: Some dumper improvements for QV4 types
Start displaying QV4::Value again for numeric values
and QJSValue for ints, doubles and strings.

Change-Id: I18ce226c21168087ce280cb05aa0e250bd3187d9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2016-09-27 15:20:25 +00:00
Christian Stenger
d1c8c5ded3 Squish: Disable gcc compile check on OSX
Change-Id: I6537bb9e20c9d16689cea520a01b28da8f2ed468
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2016-09-27 04:43:17 +00:00
hjk
5efa84830b Debugger: Remove use of native values in dumper.py
Lowers the barrier for other debugger backends.

Change-Id: I09e0ad09548b6b4220175245cc0d845ac5aa29d0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2016-09-26 14:07:00 +00:00
hjk
e08b1a070b Debugger: Add a dumper of QStaticStringData
Change-Id: I5e4ebc31eaf7cce76b8cfd1a5c9635441eccc797
Reviewed-by: hjk <hjk@qt.io>
2016-09-22 13:39:12 +00:00
Thomas Hartmann
325f63c732 QmlDesigner: Implementing dynamic node properties
The model now supports dynamic node properties. e.g.:
Item {
    property Item item: Item {
    }
}


In this case Property::dynamicpropertyType() is Item and
Property::isDynamic() is true.

To create such a property I added:
NodeProperty::setDynamicTypeNameAndsetModelNode().

It is not supported to reparent nodes in an out of
dynamic node properties. The model throws an exception in this case.
This is currently not required on the application level and not
supported by the rewriter.

Change-Id: Ie05325663c481d8583dc45bee38b559c190fbb30
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-09-22 10:57:29 +00:00
Marco Bubke
381bee1434 Clang: fix llvm lib linking on windows
If we use paths with spaces we cannot split them anymore so we have to
handle unix and windows differently.

Change-Id: Ibfc8c51cfe2ecd68e913ad84e0e1269eb7eeda02
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-09-19 15:27:25 +00:00
Marco Bubke
47c01daeb2 UnitTest: Cleanup
Improve naming and introduce googletest.h.

Change-Id: I445c13db4c23d6dd5682ce0db3b83055cc6b8a89
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-09-19 15:17:54 +00:00
hjk
1a9919a208 Debugger: Reduce number of function calls in QLocale display
Change-Id: Ib186dafbee148b9c4aaf69124a3642404e16c002
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-16 11:22:17 +00:00
hjk
845feec543 Debugger: Fix QFixed dumper and add an auto test
Change-Id: I9895d1dec4a6db9fa93e6ca0d6d30bdd92a4c3c6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-15 06:33:32 +00:00
hjk
53f6e6b8a9 Debugger: Add display of captures to QRegExp dumper
Change-Id: I345c72091002fad16af4549332bb7d8a1fb88155
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-14 13:53:07 +00:00
Nikolai Kosjar
cb0e730bb5 Clang: Clean up exceptions
* Extract common stuff into the base class ClangException
* Remove unused exceptions TranslationUnitParseErrorException and
  TranslationUnitReparseErrorException
* Do not send error messages to the Qt Creator side. The messages were
  only generated when the backend crashed and while it was not yet fully
  re-initialized (e.g. do code completion right after crash where the
  document was not yet registered at the backend).

Change-Id: I91d98d5ef681ad487f7a2fd66f78fa7cd1e958df
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-09-14 13:08:08 +00:00
Nikolai Kosjar
26cb17bb65 Clang: More renaming fixes
Change-Id: If796869b26fc6faf5919041368fb26e8a42ae8a2
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-09-14 13:08:04 +00:00
Nikolai Kosjar
9606988989 Clang: Move exception classes into single header/source unit
Change-Id: I60b4ce61e46d6f4ba87a2be49e6bbc219508c471
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-09-14 13:07:56 +00:00
hjk
2244e2b26c Debugger: Use direct memory instead of member access
This introduces a dumper types abstraction layer with classes
Dumper.{Value,Type,Field} wrapping either gdb.{Value,Type,Field}
or lldb.{SBValue,SBType,SBField} and uses it to move
to more direct memory accesses in the dumper implementation.

This way we can use duck typing for artificial intermediate
objects eliminating the need for {gdb.Value,lldb.SBValue}.cast()
in some case which are flaky in general and typically not
available in release builds.

As consequence QRegion and QVariant dumper work without debug
info now.

Change-Id: Iea2411175ef67f2bf651ee7eaade9879ed5ceba1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-14 12:38:45 +00:00
Christian Stenger
6f963fd56e Utils: Fix logic in TemplateEngine and adjust auto test
Broke with 8641277121.

Change-Id: I49174428bf940ef4c3fa7f6ebd3124a907a555b8
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-09-14 12:34:31 +00:00
Eike Ziller
c635c6b50a Merge remote-tracking branch 'origin/4.1'
Conflicts:
	share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ExtendedFunctionButton.qml
	src/plugins/android/androidrunner.cpp
	src/plugins/debugger/debuggerruncontrol.cpp
	src/plugins/qmlprofiler/qmlprofilerstatisticsmodel.cpp
	src/plugins/qmlprofiler/qmlprofilerstatisticsmodel.h
	tests/system/suite_WELP/tst_WELP03/test.py

Change-Id: Ibac4d71d4f4dbe1e4f05052d2f8a2dcfd82edd4c
2016-09-13 12:15:09 +02:00
Nikolai Kosjar
985e4436f2 Clang: Rename TranslationUnitCore to TranslationUnit
Change-Id: I03a59ae5d5073c812ad40c7623cfb1fdb80aad80
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-09-07 13:36:43 +00:00
Nikolai Kosjar
14b27183ce Clang: Rename TranslationUnit(s) to Document(s)
The "TranslationUnit parts" moved already to TranslationUnitCore.

Change-Id: I2bea7847e2b3e84fbfacc3d2dc43f180873349ac
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-09-07 12:36:19 +00:00
Orgad Shaneh
39aff55d8a C++: Enable showEnclosingTemplate also for function type
Do not require directly passing the enclosing template.

Change-Id: Ie03bc58338fe003677a5f5311d86d70f499373ee
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2016-09-06 09:33:48 +00:00
Marco Bubke
2e062552eb Clang: Report an error if the unit test are linked with LLVM without RTTI
We don't want to disable RTTI in unittest so we require to compile them
with RTTI. You can disable yourself RTTI if you don't want them for some
reasons.

Change-Id: I76d05a36442305f379ce3d88b3f6ed4372127002
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2016-09-05 10:01:14 +00:00
Marco Benelli
11dea636a0 QmlJs code model test cases
Change-Id: If9ee9a946fc973a6dcc47625f5b26ca0a203be42
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
2016-09-05 07:13:36 +00:00
Robert Loehning
b252733e63 Squish: Use examples and docs from Qt 5 in suite_WELP
Change-Id: Iddfa426e9c6133bd1f12ec8e119816c2d38ba55a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-05 06:46:25 +00:00
Robert Loehning
309be8277d Squish: Use example from Qt 5 in tst_rename_file
Change-Id: Ibf436af685897de730826927f746fc1de0c8f12e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-05 05:30:33 +00:00
Nikolai Kosjar
435d631266 Clang: Fixes for unittest.pro
Change-Id: I356ccdec0eaa403e5ec7364fb54de39f24695b4b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2016-08-31 13:43:05 +00:00
Eike Ziller
c56aa52b80 Merge remote-tracking branch 'origin/4.1'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/qmakeprojectmanager/makestep.cpp
	src/shared/qbs

Change-Id: If1787ed23afa786ed2cef57f53c1db642559cbe0
2016-08-31 14:40:38 +02:00
Robert Loehning
06ac9f00c0 Squish: Improve probabilty of dirseparator in generateRandomFilePath
With up to 43 characters it's more probable to
not have a dirseparator in the generated string.

Change-Id: Ib59fc55eb0b78c9796e19006c057571d7d494e40
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-30 09:41:46 +00:00
Robert Loehning
96a9b2bb5b Squish: Strip final newline from expected text
Change-Id: Icc10f3f0efad5a5d803f556037ecbc08fb6503f1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-30 09:41:08 +00:00