1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-13 03:55:22 +02:00
Commit graph

136 commits

Author SHA1 Message Date
Matthew Bastien
d6bba126d8 Bug 481126 - QML Parse Query Type
Added two new query types to tern-qml: 'parseFile' and 'parseString'
which will return an AST for the given file or string respectively.

Change-Id: I4608866c002d43defb4d462c4a981282ed97e1c6
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-12-07 12:08:33 -05:00
Matthew Bastien
42e3859b68 Bug 481126 - QML Imports Working in Editor
Hooked up the extra logic needed to get Tern-QML's imports to work in
the QML File Editor.

Change-Id: I6fa222223ca8b6b177e4004e48f2f1863ab4d7b4
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-12-06 15:05:41 -05:00
Matthew Bastien
dd3815bb91 Bug 481126 - Tern-QML Directory Imports
Added functionality to tern-qml that allows it to recognize directory
imports of the form:  import "<directory>" [as <Qualifier>].  Content
assist and find definitions also work for these new imports.  Moreover,
fixed the QML Scoping to be easier to handle in the future by defining
new Scope Objects specifically for QML.  Finally, used JS Hint and
Beautify to have a more uniform coding style between all the files of
acorn-qml and tern-qml.

Also fixed up the HTML Demo to allow editing of multiple files to show
the new imports.

Change-Id: I2cdd18b1b8765400f6b24145f0677127a221fe10
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-12-04 11:18:00 -05:00
Doug Schaefer
3ec33023c3 Hide the exception on QML load from the UI.
Change-Id: Ib4bb21f5e7ec7e4d53d6dfe4f9098dd45575089a
2015-12-04 10:03:56 -05:00
Doug Schaefer
f1a21f5c64 Bug 481126 - Hook up QML content assist to tern.js-based analyzer
Also renames Activator.

Change-Id: I58161a40b0caa2930e4fb2a5b2a70748fbe552ae
2015-12-02 22:23:16 -05:00
Doug Schaefer
68b8c98473 Start to hook up tern-qml to Java and port some tests.
Change-Id: Ibee411855ffc78e1c183a6c845072ab1eac2b7df
2015-12-01 10:53:43 -05:00
Matthew Bastien
31150e4af1 Bug 481126 - QML Scoping Issues
Fixed the following issues with QML:
  -The parent scope of a QML Object is the file's root Object scope
  -Content assist for an Object Property should only display the
immediate Object's properties, not it's parent(s)
  -Content assist for an incomplete property binding should display
JavaScript hints as well

Added missing license headers and new tests.  Had to modify the
acorn-qml parser plugin in order to make some of the changes.  Added
tests for those as well.

Change-Id: I289167cbaacd8088f87dfafc689e67c0110d942f
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-11-30 16:29:58 -05:00
Doug Schaefer
3dd8f57dcf Bug 481978 - Lots of clean-up to the Qt Build and Launch.
Especially launch. Now have local and QNX launches (which are 
in our internal repo) working.

Change-Id: I97bacc520cc6806fe9622700b2bb3f544e4aad94
2015-11-27 09:41:40 -05:00
Doug Schaefer
e3496e1246 Bug 481978 - Big overhaul of new build system to work with Qt.
Moved new build system to it's own plug-ins. Cleaned up the root
build configuration and toolchain classes and use them for Qt local
run builds. Also hooks Qt local run launch delegate to launch target
manager and associated delegate interface.

Change-Id: I0c0f711ee53005edd399f6d24ba96658d606e1e5
2015-11-24 22:11:33 -05:00
Matthew Bastien
b5606e115f Bug 481126 - Tern QML Tests
Added a testing framework similar to acorn-qml's for tern-qml and began
adding tests.  Updated acorn-qml and tern-qml to use acorn v2.6.4 which
includes the changes to acorn_loose that enable loose parser plugins.

Change-Id: Ib6af4b476321fde4b3f15aac8342764a45985dfa
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-11-17 10:23:31 -05:00
Doug Schaefer
2e6c6216fb Bug 481978 - UI to add Qt installs. Installs are now persisted.
Change-Id: I1fa75b71615959df314a9aaca5f01e17069ec35f
2015-11-12 10:18:37 -05:00
Matthew Bastien
2d6e4f4b8a Bug 481850 - QML Error Tolerant Parser
Added the loose plugin to acorn-qml which is error-tolerant in its
parsing approach.  Switched the main parser to automatically use strict
mode and to complain if the ECMA Script version is set to anything
higher than 5.  This simplifies the parsing a little bit and keeps us in
sync with Qt which currently uses ECMA Script 5 in its JavaScript
runtime environment.

Updated the test framework to accommodate the loose parser and be less
'magic' in how it runs the tests.  Added new tests to make sure the
loose parser is, in fact, error tolerant.

Change-Id: I670fc01853198d2261fbf9d8b017d225c4612182
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-11-12 10:04:21 -05:00
Doug Schaefer
67f78c8094 Remove the ANTLR based QML parser. We're planning on tern.js instead.
The prototyping of a tern.js based QML parser and semantic analyzer
is working out well. We are proceeding with that for now and are
removing the ANTLR based QML parser we were thinking of to clean
things up.

Change-Id: I5b9894ade1904d017709542ef23d1f80c4886e45
2015-11-06 15:26:37 -05:00
Matthew Bastien
894c74be7e Bug 481126 - QML Static Analysis based on Tern.js
Tern can now perform static analysis on the following QML constructs:
  - QML Property Declarations
  - QML Property Bindings
  - QML Signals
  - QML Signal Handlers

Added basic support for the 'id' property that can be assigned to any
QML Object.  Fixed acorn-qml's member function parsing and added tests.
The 'demo' folder contains an html demo of the qml tern implementation
using codemirror as the editor.

Change-Id: I9e4d3837b194ff92a36a8d62bef288f61743e4ce
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-11-06 14:39:28 -05:00
Doug Schaefer
790f90ee55 Bug 481352 - Adapt Qt and Arduino providers to ILaunchTargets
ILaunchTarget replaces IRemoteConnection.

Change-Id: I77825ae1347cec7095655548e06cb6dbc5c2aaf4
2015-11-04 23:59:46 -05:00
Matthew Bastien
19cd53ec10 Bug 480238 - Clean Up Acorn QML Parser
Fixed the AST elements so that they more closely match the format used
by acorn (i.e. using 'id' instead of 'identifier' and 'name' instead of
'raw' for the identifier name).  Resolved one of the ambiguities dealing
with using 'signal', 'property', and 'readonly' as identifiers for
properties and QML Objects.   Added a bunch of new tests and fixed the
old ones to match the new AST.

Change-Id: I5a8bbd14b3e6f8531268740dd9e57cb48a0e22b3
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-11-04 09:51:34 -05:00
Matthew Bastien
f9143ebfdc Bug 481126 - QML Static Analysis based on Tern.js
Moved the Tern.js work and acorn-qml into the Qt Core plugin rather than
in a separate plugin.  Added walk.js in order to facilitate walking the
QML AST by acorn-qml.  Changed a few things in index.js and inject.js
for acorn-qml in order to get it working in a browser environment.
Added a tern-qml webpage demo which doesn't do much for now.

Change-Id: I3c8a3d57c98a4936d0e038774b410bb2a68afb6c
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-10-30 17:48:01 -04:00
Doug Schaefer
7cf2a14cc9 Move QML stuff to qt.core plug-in. Add deps for ANTLR, FreeMarker.
Moves to the cdt 4.6 platform where the new ANTLR and Freemarker deps
will be. Also properly names the qt test plug-ins.

Change-Id: I026873583c6e6ca7602cb983ab04f99acd700a4b
2015-09-30 08:22:59 -04:00
Doug Schaefer
34378cb163 Hack in Windows support for Qt build and launch.
Only supports Qt 5.5 and mingw492_32 and only if installed into
C:/Qt or %HOME%/Qt.

Change-Id: I10e293fe5c7a72430a624dcf74fd8fc9a806c34c
2015-09-28 14:46:38 -04:00
Doug Schaefer
64bf3c4f69 Starting to put Qt onto the new build system and launch.
Change-Id: I3e65f5d69bfb35d16b2d1135f99517c7a2b2c437
2015-09-28 13:24:41 -04:00
Matthew Bastien
74c21f5427 Bug 478231 - Hook up .qrc files to the XML Editor
Change-Id: I41b8e07474b608d8311fbc3f117f9386e73b5305
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
2015-09-23 20:39:38 -04:00
Doug Schaefer
6e6156e42f Add missing copyright notices. 2015-08-31 15:32:43 -04:00
Doug Schaefer
64c5782589 Bug 321443 - First implementation of new build model.
Includes adaptation of the Arduino build model where many of these
ideas started to the new model. And start of the Qt build system which
uses it.

Change-Id: Icb212185773ebc4d415e8a9862101744703ff80b
2015-08-31 14:14:21 -04:00
Doug Schaefer
eb8d3cad86 Start of work on doing Qt the new way.
Change-Id: Icc891538549485f9ad99614f36262ed218fb0609
2015-08-27 00:20:55 -04:00
Richard Eames
795c418f10 Bug 379684 Support for User Defined Literals
This patch adds preliminary support for C++11 user defined literals:
* Syntax support
* Type deduction in expressions
* Template literal operators
* String literal concatenation

Change-Id: I8a9760036a2c8428295f0e1ffb4b519a0a2577c9
Signed-off-by: Richard Eames <eclipse@naddiseo.ca>
2015-07-07 00:38:55 -04:00
Sergey Prigogin
fda80f2275 Cosmetics. 2015-06-26 15:10:49 -07:00
Marc Khouzam
bb61124897 Incremented CDT feature version to 8.8.0
Change-Id: Ib1189a08a5f0225fd676b682dc8a10477ad3acc5
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
2015-06-10 09:33:49 -04:00
Marc Khouzam
e820f872ad Incremented CDT feature version to 8.7.0
Change-Id: Ife0feaaa9263d2b7797e31d628250bd26caff1b5
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
2015-05-04 21:07:13 -04:00
Alena Laskavaia
dcc9de7b0e fixed schema validation error on Mars
- more errors...

Change-Id: Iab24ae4f7e95bd674765855b54eeb7de019b2162
2015-03-16 20:10:53 -04:00
Sergey Prigogin
03e69933b1 Bug 459179 - ClassCastException in CPPSemantics.getParentScope
Return proper global scope in QtPDOMLinkage.getGlobalScope() method.
2015-02-04 21:38:28 -08:00
Sergey Prigogin
b465383510 Bug 459179 - ClassCastException in CPPSemantics.getParentScope
Fixed compilation error in QtPDOMLinkage.java.
2015-02-04 21:34:53 -08:00
Sergey Prigogin
252eaf4c0f Incremented CDT feature version to 8.6.0.
Change-Id: Ic90c8e6a68d21e5b90ec3fac997da6a95a29bedf
Signed-off-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Reviewed-on: https://git.eclipse.org/r/39066
Tested-by: Hudson CI
2015-01-06 19:40:38 -05:00
Doug Schaefer
1681eb8676 Revert "Bug 451929 - Leverage p2 ability to express native packages"
This is breaking downstream builds.

This reverts commit 18e6101a53.

Change-Id: I5dd2ee129518757866ab832c683b648d13b07b83
Reviewed-on: https://git.eclipse.org/r/38594
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
2014-12-23 00:05:47 -05:00
Pascal Rapicault
18e6101a53 Bug 451929 - Leverage p2 ability to express native packages
Change-Id: I0d2d4b5088a0148d3f0dc7690448fe231ae45103
Signed-off-by: Pascal Rapicault <pascal@rapicorp.com>
Reviewed-on: https://git.eclipse.org/r/38272
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2014-12-16 17:28:33 -05:00
Doug Schaefer
c8ba1b6c3a Get rid of the extra schema includes to expressions.
This causes build errors when using Mars.

Change-Id: I5b7aaa261e252b7aa7a2afe5a86398c4f24af0aa
Reviewed-on: https://git.eclipse.org/r/38174
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2014-12-14 17:42:12 -05:00
Alena Laskavaia
b53246227a Optimzed Qt codan checker not to lock the ask if not running
Change-Id: Iff6749ea46f9c6970b4e96e47d8554846feb0dfe
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
Reviewed-on: https://git.eclipse.org/r/37304
2014-12-01 17:00:12 -05:00
Teodor Madan
660fa3fdfe Include expressionLanguage.exsd - fix occasional PDE errors
"referenced element 'enablement' is not defined"


  
Change-Id: I40a84a249e0e2488e4600a67a9eab935298048e4
Reviewed-on: https://git.eclipse.org/r/33499
Tested-by: Hudson CI
Reviewed-by: Teodor Madan <teodor.madan@freescale.com>
Tested-by: Teodor Madan <teodor.madan@freescale.com>
2014-09-22 02:26:34 -04:00
Sergey Prigogin
d8154bd340 Inremented branding plugin version to 8.5 2014-07-21 17:39:01 -07:00
Andrew Eidsness
da09460352 Bug 437525: NPE in QMakeProjectInfoManager
This fixes the NPE but not the underlying reason for the Qt plugin to be
activated.  I think that might be happening because of the Codan checker
-- from what I recall, that extension point doesn't have a way to
prevent plugin activation.

The NPE is fixed by checking CACHE for null before using it.  The #stop
method unregisters and sets CACHE to null.  However, unregistering
doesn't prevent notifications that are already in flight.  I suspect
that notification arrives, and then CACHE is null.

My test workspace would throw the NPE on every exit, with this change it
never does.

Change-Id: I01360a4c19c85fba53269d265948daf6d083c8d1
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/28751
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
2014-07-07 10:23:45 -04:00
David Kaspar
82853c889d Bug 433869: IQMakeProjectInfo is not updating on active conf. changed
Fixing incorrect eventTypes used for registering
CProjectDescriptionListener in QMakeProjectInfo.start() method.

Change-Id: Ieb602a38999868e3da8487a1757c69bd50cb5837
Signed-off-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-on: https://git.eclipse.org/r/25808
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
2014-04-30 15:34:21 -04:00
Doug Schaefer
e907795125 Bug 432839 - Fix out of memory condition with Qt projects.
Turn the cache in QtPDOMLinkage into a WeahHashMap.

Change-Id: I261d3aec5ee6b7537c4bfaa204dadd85b686140c
Reviewed-on: https://git.eclipse.org/r/25064
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
(cherry picked from commit b12b65bfb8)
Reviewed-on: https://git.eclipse.org/r/25069
2014-04-15 12:06:40 -04:00
David Kaspar
698788ea71 Bug 431012: Missing IQMakeProjectInfo.updateQMakeInfo()
Adding IQMakeProjectInfo.updateQMakeInfo():QMakeInfo method to allow
explicit calculation of QMakeInfo at the time of the method call.

Change-Id: I665bedd5e095d1968f0c39ff2abb19c60aac9e14
Signed-off-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-on: https://git.eclipse.org/r/23800
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2014-03-24 15:01:26 -04:00
David Kaspar
73a912f95b Bug 429488: Fix for deadlock in QMakeProjectInfo.updateActiveConfiguration
To prevent a deadlock between two the workspace and QMakeProjectInfo.sync
locks, QMakeProjectInfo class has been rewritten to not call any method
under sync-lock except for IQMakeEnv.init/destroy method.

All methods should allow calling under workspace lock.

Added a new IQMakeEnv2 interface to provide an explicit init method.

Original QMakeProjectInfo has been split to
QMakeProjectInfo and QMakeProjectInfoManager.

This change is fully backward compatible.

Change-Id: I880f22dd9bd999af1d3f47e4a3c4c0ab216b4ad2
Signed-off-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-on: https://git.eclipse.org/r/23270
Tested-by: Hudson CI
Reviewed-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
2014-03-12 20:50:01 -04:00
Andrew Eidsness
71fa7cf819 Bug 426784: Qt Codan checker uses wrong type
view.connect( view.engine(), SIGNAL( quit() ), ...

The return type of view.engine() should be checked for the quit()
signal.  The implementation was actually checking the type of view.

I've fixed a copy/paste error in a utility function.

Change-Id: Id483015214f04951fb30e3271d43499f31614446
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/21189
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2014-01-29 16:12:49 -05:00
Andrew Eidsness
d613b149a0 Bug 426781: Qt content assist is too aggressive
In Content Assist cases like:

    q->

(when the cursor is to the right of the arrow operator) the name that is
returned by the content assist context is the empty string.  This was
used to check if the QObject::connect function applied.  Since the empt
string matches all bindings the Qt assistant incorrectly continued.

I've added a check to stop processing when the current name is the empty
string.

Change-Id: I4e5bf52f4ca1ddc33d88a48917213adbbeb81836
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/21188
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2014-01-28 11:06:40 -05:00
Sergey Prigogin
5d7a19fa6c Enabled JDK 1.7.
Change-Id: Ic2a161ea3c318dc1e8ba01c271c936bf5ed8763d
Reviewed-on: https://git.eclipse.org/r/21020
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2014-01-24 13:38:55 -05:00
Sergey Prigogin
1d166260a8 Bumped up CDT version to 8.4.
Change-Id: I1229344feaaed4a3551ceb7b1ef1410545048b55
Reviewed-on: https://git.eclipse.org/r/20908
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2014-01-21 17:35:29 -05:00
Andrew Eidsness
fd074ab029 Bug 425102 QObject::connect content assist still broken
The content assistant was treating all function calls in the same way.
Here is an example showing the two cases that should be handled:

    qobj.connect( qobj.func(), SIGNAL( sig() ), SLOT( slot() ) );

In this case sig() applies to the return type of qobj::func() and slot()
applies to qobj (the same instance that connect is called upon).

The previous implementation of the assistant was not making a
distinction between these two cases.

I've added another test case to confirm behaviour in this area.

Change-Id: I8f76a5d5ae7384ea5162c5d36abeebb4c79c394b
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/20848
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
2014-01-20 22:40:56 -05:00
Andrew Eidsness
25a0992a63 Bug 425787: Reindex projects when Qt nature is added
If a project description is changed to add the Qt nature then the PDOM
needs to be rebuilt.

Since index rebuilds are potentially expensive, this first checks to
make sure the PDOM does not already contain the QtLinkage.  If the
linkage already exists, then it will be updated by the normal triggers.

The reindex operation should only be needed to add the linkage the first
time the nature is added.

This does not trigger a reindex if the nature is removed.  Without the
nature, the extra linkage will be safely ignored.  The C++ linkage is
(proportionally) much larger than the Qt linkage, so it doesn't make
sense to spend significant time rebuilding the index just for the small
space savings.

Change-Id: I263b05e4de407775979843f5d6a9c8c172948d72
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/20680
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
2014-01-20 12:11:46 -05:00
Doug Schaefer
801c10d789 Bug 425938 - Make Qt5 template work with 5.2. Remove Qt4 template.
Change-Id: I422a907e9db51be26acd0857d3e9e409bbd3ba2e
Reviewed-on: https://git.eclipse.org/r/20728
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
2014-01-17 10:06:53 -05:00