Use launch target os and cpu arch properties to pick toolchains and
toolchain files. UI to add toolchain files. And build support.
Also some clean up of Qt as I found bugs.
Change-Id: Icd1da43460b5954eea15e95ed8ec27850fc4e54e
Fixed up CMake new project creation. Hooked up the CMake build config
properly.
Introducing the New C/C++ Project Wizard that hold all the new project
types: Arduino, Qt, CMake.
Change-Id: I9f9c8b1f51b136515fe226c15059cdbb99106275
Fixed up content type warning. Hooked up colors for the QMLEditor to
the CEditor preferences. Fixed up tabbing in the main.qml template.
Fixed the GCC toolchain to find compiler on path on windows.
Change-Id: I66a013666d1ab99bfe94a2a558486cc81681c67c
new build configs now support binary parsers which are by default
driven from the toolchains. Ran into problem with new versions of
toolchains. Added versioning info to toolchains to take that into
account.
Change-Id: Ie1fb7755e84239b525dca0ae11759027a0b44574
Creates a single central CBuilder builder which find the C Build
Config and delegates the builds to it. That give configs full control
over the builds. Qt and CMake build configs are adapted to this new
structure.
More features are added to the default super class for configs.
Change-Id: I5ecfc7a4e9b909da6749189a059cdcd4a208fddd
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.
Change-Id: Ic2f50c5b6f3c3a4eae301bb3b40fb6faed235f79
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.
Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.
Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Move the new build system to cdt.core and remove the previous
plugins. Hook the new system into scanner info and environment
variable manager.
Clean up API in preparation for Neon and API lockdown. Hook up
Qt to the new APIs.
Add discovery of MSYS2's toolchain and Qt and Qt's MinGW toolchain.
Change-Id: I85b1a91da4a44e86f0e9da9310f8106c894623e0
This reverts the changes we've made for language settings providers
so that I can start again with a cleaner approach.
Change-Id: Icddd5a465a8f217594af5b07011a56bf1dfdf014
Use IBuildConfiguration instead of ICConfigurationDescription.
Add adapters to convert back and forth between these. Create
IBuildConfiguration objects when configuration descriptors are
created.
Clean up formating of the code involved.
Change-Id: Iec5ca132dddbf990f116f96b4680ef5f7318e28b
From org.eclipse.cdt.debug.gdbjtag.core, constructor
GdbJtagDebugServicesFactory.GdbJtagDebugServicesFactory(String)
has been replaced by
GdbJtagDebugServicesFactory.GdbJtagDebugServicesFactory(String,
ILaunchConfiguration)
From org.eclipse.cdt.dsf.gdb, constructor
GdbDebugServicesFactory.GdbDebugServicesFactory(String)
has been replaced by
GdbDebugServicesFactory.GdbDebugServicesFactory(String,
ILaunchConfiguration)
From org.eclipse.cdt.dsf.gdb, class GdbDebugServicesFactoryNS has been
removed and its logic was merged into class GdbDebugServicesFactory
Change-Id: Ifecba752cfc12da62f1447027b11c0bb1f7c0171
Add support for gdb's "set substitute-path from to" by adding a new
service called GDBSourceLookup that uses GDB to perform the path
mapping.
The new GDBSourceLookup service uses the new GdbSourceLookupDirector to
get the set of paths that need mapping using GDB's "set
substitute-path" and the director resolves compilation path differently
so as to leave the GDB backend to handle the local path to compile path
resolution.
The MappingSourceContainer has been enhanced to allow a per mapping
container override of the new behaviour. This is a fallback as the
default behaviour when using GDB is to use "set substitute-path".
The MappingSourceContainerDialog exposes the new option in
MappingSourceContainer as a checkbox at the bottom of the path mapping
dialog in a backend agnostic way.
The new code is tested in methods called "sourceSubstitute*" and
mirror the same tests for the now non-backend handled version
which are "sourceMapping*". Note that
doMappingAndLaunch/doSubstituteAndLaunch have been updated to explicitly
check or uncheck the setIsMappingWithBackendEnabled setting
Change-Id: I122d7c597cd461d8e38c4f82522ccfdf9e51a5ba
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
The New Class Wizard asks scanner info for include paths for a project.
Need to decide whether that's a good thing or not but for now, add
support in the Qt config and GCC toolchain for it.
Change-Id: I5f037deb13db41fc0a083ea9fdc30ac1f61557e6
Clean up cases when Qt installs aren't registered for a given
config. Fix bug on first scanner info request in build config.
Clean up the Qt Run launch delegate in extension.
Also added a method to GDBLaunch to allow subclasses to override
what the default gdb path is.
Change-Id: Icf158633e1c1327cc87ce59c1605bb26258f8708
Qt builds now clear the scanner info cache so that it reloads.
Also added Environment tab for Qt Local launch so that you can
override the environment. Supported for 'run'.
Change-Id: Id6a04a564587411b6a5846f00045f79f5696bfb8
We reuse GDBLaunch but need to override some settings that are
normally in the launch configuration. These things are calculated
at launch time.
Note there is also an added dependency to the launch bar core
to make GDBLaunch a targeted launch so we can set the target properly.
At some point we'll move this launch target stuff lower down, maybe
to the debug platform.
Change-Id: Ibbf6b794a9ecf25b79d46093cc624ea69dc04641
The tern deps were in node_modules which is gitignored. Created a
Makefile to copy those deps to a new directory and we check that in.
Also removed some files that were used to get ANTLR which we aren't
using. And cleaned out the commented out reload button from the
plugin.xml.
Change-Id: I09a5ecb298bbdd9272f9b4a7540d525edb55c4fa
Make the build folder common for build configs. Makes things
consistent.
Also make it clear that we are caching scanner info with the
names of the API calls.
Change-Id: I1da0d90b3358065e28e437d0dfeea730e13c9aef
getTypeOrFunctionSet() is an unwieldy name, and since the return type
is IType, it seems reasonable to call the function getType().
Change-Id: I7e3211fdd3b474cc8e33da3e1f398b58122fe89d
Signed-off-by: Nathan Ridge <zeratul976@hotmail.com>
Added several classes that can be used to aggregate all of the
information from within a .qmltypes file as defined by
http://doc.qt.io/qt-5/qtqml-modules-qmldir.html#writing-a-qmltypes-file
Change-Id: Ia36c3bb1a4a0254c4125733d6faabbb5a4606133
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
Added the class QmlASTNodeHandler that creates and manages Proxy
instances of the QML AST node interfaces. The proxies are created
dynamically based on what methods are called on the interface. That
way, the AST is loaded as needed rather than all at once. Added a few
tests to verify behavior (however, they are not comprehensive; there are
a lot more cases that should be verified in the future).
Change-Id: I64038f9668942a67e1f1b7dceac6c7dbed2d46d7
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
Created a set of Interfaces to represent the JavaScript and QML Ast in
plain Java. Updated acorn-qml to be able to parse the entirety of QML
syntax as specified by the QML grammar. Also modified the QML AST to
represent the added syntax and modified tern-qml to handle the new AST
elements.
Changed the way that the QMLAnalyzer handles path resolution. Paths are
now relative to the local file system.
Note: the normal acorn-qml parser cannot parse the full range of QML
syntax due to ambiguities. However, the loose parser can. We're still
waiting on Acorn to bring lookahead to the normal parser in order to
resolve this.
Change-Id: I77c820ad46301975b2a91969a656d428ad9409c1
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>