1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-24 16:53:50 +02:00
Commit graph

4952 commits

Author SHA1 Message Date
Nathan Ridge
df727d536f Bug 529958 - Semantic highlighting of variable passed by non-const reference in a dependent call
Change-Id: I421bf98cbeff052c39716f1381e9f8930626318b
2018-02-02 23:30:58 -05:00
Jeff Johnston
92c4d05dfb Revert change to LanguageSettingsEntriesTab language column
- revert part of change to LanguageSettingsEntriesTab languages
  column (this was done to get around gerrit issue and is not needed)
- change to entries column is left intact

Change-Id: I1704c18f99d0fe76411783a684da790022eb4643
2018-01-22 12:59:15 -05:00
Jeff Johnston
d84a19cfb9 Bug 529799 - problem with entries tree in LanguageSettingsEntriesTab
- fix provided by Christian Walther
- fix methods to use addTreeListener() instead
  of addPaintListener() to handle resizing
- in TreeListener, define treeExpanded method which uses pack method
  for entries column

Change-Id: I28db2059d3e0561ce9e5e52f569409de9aff9a6d
2018-01-18 15:46:01 -05:00
Davin McCall
a293032938 Bugs 529299 and 491296. Fix indentation after 'noexcept'/'override'.
Change-Id: I3129e5f9fced4a27020f6ca27238bf5faf4df889
Signed-off-by: Davin McCall <davmac@davmac.org>
2018-01-10 00:08:49 -05:00
Doug Schaefer
d6a1c13e5c Cleanup Core Build Preference pages.
Move Toolchains directly under C/C++ and rename to Core
Build Toolchains. Add a label describing what the toolchains
are for in hope of avoiding confusion with managed build.
Also move Qt into C/C++.

Change-Id: Ia1d76087c65b26562d1001243ea355c7ac32365e
2017-12-01 14:04:51 -05:00
Doug Schaefer
68b441c16d Bug 444054 - Make sure we build the right project
The call to CDTBuildAction's super updateSelection method
clears out some state. Make sure we call it even though we
want to always build CDT projects.

Change-Id: Ie5dc1f583bbcc04d85b7254a4b7c18ee50f02997
2017-11-27 11:02:07 -05:00
Doug Schaefer
93a5fcaa2a Bug 444054 - Always enable the build actions.
If you select a non-CDT project then select a CDT one, the
Build Project menu item wouldn't enable. If you select the
CDT project again, it does. Big question is why isn't it enabled
when selected.

This fix just enables it all the time. Much easier for users
to understand.

Change-Id: I674740f2c6998686cade1f910a269a4e9d935d39
2017-11-23 14:41:10 -05:00
Doug Schaefer
d9b8eb3fd0 Hook up the old Include Paths and Symbols page to Makefile projs.
Makefile projects depend on build output parsing to pick up
compiler options to use while indexing. Sometimes, that just
doesn't work. As a back up we've always allowed users to manually
add them to the project. Long ago when we had pure make projects
we had UI for this. This change hooks that old UI up. It was a
time before build configs so they get applied to them all but it
serves it's role as a backup when users run into problems.

Unmarked everything I use here from deprecated until we decide
how to replace these with Core build config aware settings.

Change-Id: I6fc4d48e5315df3c60c7591b026ae0a53a1f505e
2017-11-22 16:40:14 -05:00
Jonah Graham
c9c292982d Bug 519533: Fix scroll lock on build console
Change-Id: Ib7826de6ed26dbd05f2568d097deb52cf3dc4768
2017-11-14 19:04:40 -04:00
Nathan Ridge
301de3d40e Bug 522010 - Completion of non-type template parameter in ambiguous template argument
This works around the fact that the optimization introduced in bug 316704
inteferes with the mechanism for offering completions for both alternatives
in an ambiguous context.

Change-Id: Ibe14c1b4f2f9c9b3394d4635c87424a25fbd7a53
2017-11-13 13:22:26 -05:00
Doug Schaefer
b7b1d41f08 Fixes for scanner info for Makefile projects.
Using ESP-IDF (the ESP32 FreeRTOS SDK) on MSYS2 as a test bed.
Making sure the indexer picks up as much as it can. Removed -j
since that messes up build output parsing. Add UI so you can put
it back if you want.

Change-Id: I767c739dce1412c75fb56d0bb1efceb913883a5f
2017-11-10 14:49:16 -05:00
Christian Walther
bacbb7b3c7 Bug 378302 - Only bring build console to top on problem output.
When the "Bring console to top when building (if present)" was enabled
(which it is by default as of bug 447703), the console would come to the
top on every line of output, i.e. constantly during a busy build. That
made it impossible to reach other views in the same part, in particular
the Progress view in order to stop the build.

Instead, only bring the console to the top at the start of the build and
when output arrives that is associated with a problem marker (error,
warning, info).

Change-Id: Iabda4858b443c330e9209c27ea3635b0485c7d98
Signed-off-by: Christian Walther <walther@indel.ch>
2017-11-09 08:48:21 -05:00
Doug Schaefer
7a9163ba6c Bug 512550 - Hide C and C++ Project Wizards and fix canFinish().
Hides the C Project and C++ Project wizards in the wizard shortcuts
for the CPerspective. Also removes them from the shortcut list
in the project navigator. Adds the C/C++ wizard that was missing
from the project navigator.

Also makes sure we pass along the call to canFinish from the new
wizards to the old ones.

Change-Id: I0a5505542fcf9d0eb34fb5fef790fd1e777524b5
2017-11-08 16:18:18 -05:00
Doug Schaefer
b495a5faae Hook up the clang toolchain now split out from GCC.
Change-Id: I6edba9e689d903546be3a65060c4ac1b9871167f
2017-11-07 13:13:12 -05:00
Doug Schaefer
76e1842644 Implement ordering of toolchains.
Introduce toolchain types independent of providers.

Change-Id: I2cf3145920fcf4e7132468b6e653d7ea3e211127
2017-11-07 11:01:15 -05:00
Jeff Johnston
c96d126b86 Bug 513589 - Add support to build CDT projects in a Docker Container
- add IOptionalBuildObjectPropertiesContainer interface to use for
  objects that supply optional build properties
- add new IOptionalBuildProperties interface that defines
  optional build properties donated by external plug-ins
- add new
- change IConfiguration to an IOptionalBuildObjectPropertiesContainer
- change IManagedProject to be an
  IOptionalBuildObjectPropertiesContainer
- fix ProcessClosure to ensure that readers are not null before
  accessing them
- fix Container launch delegate to look at project optional
  build properties for active configuration to fetch connection
  and image info and use said info to find a matching
  launch or create a new one
- have Container launch delegate use the image name as part of
  the launch config name
- have Container launch short-cut also use the project's
  optional build properties for the active config to get
  connection and image information before any defaulting
- change AutotoolsNewMarkerGenerator to store the command
  launcher as an ICommandLauncher
- add new CommandLauncherFactory extension to cdt.core that
  allows plug-ins to specify a CommandLauncherFactory that
  will return an ICommandLauncher based on the project
- add macros for new extension to CCorePlugin
- add new CommandLauncherManager class that loads
  CommandLauncherFactory extensions and is used to give
  an ICommandLauncher wrapper that will go through the list
  of CommandLauncherFactory extensions until one returns
  non-null ICommandLauncher
- add code to RemoteCommandLauncher so it will use the
  CommandLauncherManager to get the local launcher
- also change RemoteCommandLauncher to check at execution
  time whether the command is local and in that case use
  the local command launcher
- add new ICommandLauncherFactory interface
- add new ContainerCommandLauncher to launch
- add new ContainerCommandLauncherFactory class for returning
  a ContainerCommandLauncher instance to launch commands
  in a Docker Container
- change MakeBuilder to use CommandLauncherManager to get
  its ICommandLauncher
- change CommandBuilder to use CommandLauncherManager too
- ditto for Builder and AbstractBuiltinSpecsDetector and
  ExternalToolInvoker
- change Configuration to load/store optional build properties
  as well as return the properties to get/set
- ditto for MultiConfiguration
- change ManagedProject to implement IOptionalBuildOptionProperties
  interface
- ditto for ProjectType
- create new OptionalBuildProperties class to store optional
  build properties for a configuration
- bump cdt.docker.launcher to 1.1.0
- use CommandLauncherFactory extension to define
  ContainerCommandLauncherFactory
- add optional ContainerPropertyTab which allows the end-user to
  optionally choose to build a C/C++ project in a Container
  and specify the connection/image to use
- in LanguageSettingsSerializableSettings class, call the
  CommandLauncherManager getLanguageSettingEntries method
  to get the massaged language setting entries based on the
  current list
- in LanguageSettingsProviderSerializer, try and get the
  pooled entries using the cfg description so that it will
  have the project and can use the CommandLauncherManager
  to get entries from image
- in ContainerCommandLauncherFactory move cached headers under
  a HEADERS directory in the plug-in area
  - create a sub-directory for the connection and a sub-directory
    for the image based on cleansed names
  - store the real names of the connection and image to use
    later in the DockerHeaderPreferencePage
- modify LanguageSettingsEntriesTab to force the horizontal
  scroll bar to appear (this is a bug in SWT SashForm support
  and the fix here isn't quite correct, but is better)
- add new DockerHeaderPreferencePage that allows user to
  remove cached headers from images
- change C/C++ Docker preferences to be titled: Docker Container
- fix LanguageSettingsWorkspaceProvider.getSettingEntries method
  to use the CommandLauncherManager so entries will be transformed
  to use cached headers
- add BaseDatabindingModel class
- add DataVolumeModel class to model a volume mount
- add ContainerPropertyVolumes model to model volume specification
  and selected volumes
- add properties to ContainerCommandLauncher to represent
  volumes and selected volumes for a configuration
- add ContainerDataVolumeDialog for specifying a volume
  mount by the end-user
- add a null detector for cfgDescription in
  LanguageSettingsSerializableProvider
- fix AutotoolsNewMakeGenerator.getWinOSType to not specify "." for
  working dir
- fix GCCBuiltinSpecsDetectorCygwin to not map paths to Cygwin if
  the current configuration is enabled for container build
- add logic to ContainerCommandLauncher to look for Windows
  file formats and change them to unix format and map
  any "." working dir to be /tmp
- fix ContainerLauncherConfigurationDelegate similarly
- fix AbstractBuiltinSpecsDetector to pass in the current
  configuration description when getting the CommandLauncher
  since the current configuration may not be the active
  configuration
- change ContainerPropertyTab to add Elf and GNU Elf binary parsers
  when build in Container is chosen so that output executables
  are treated as Binaries by the CDT project
- add documentationl for the ContainerPropertyTab in Build Settings and
  the Data Volume dialog pop-up it brings up
- change CommandBuilder to accept a project as an argument
  to its constructor and to pass this as an argument to
  the CommandLauncherManager
- have StepBuilder pass project when creating a CommandBuilder

Change-Id: Ia78488b93056e6ec7ca83a6c87b3a9d2b9424943
2017-10-22 05:38:51 -04:00
Nathan Ridge
1054a38b44 Improve tracking of lookup points
ASTCache now sets the AST as the initial lookup point when invoking
an ASTRunnable.

In addition, OpenDeclarationsJob sets the selected node as a more precise
lookup point.

Change-Id: I9b32fccd80bc1b13e6da49a80a896b595784b868
2017-10-16 13:11:26 -04:00
Nathan Ridge
33d33a8cd6 Bug 525350 - Ensure a lookup point is always set during indexing, code analysis, and code completion
Also push a more accurate lookup point in a few places.

Change-Id: I635569178d8d9afd23f7782aeebdaed714f1a10d
2017-10-03 22:23:09 -04:00
Nathan Ridge
e1b68206ae Bug 524258 - NPE in QuickAssistProcessor.runOnAST()
Change-Id: I65653080a5a8f20567809d0d43126aff5a974a46
2017-10-02 21:26:28 -04:00
Nathan Ridge
20a88df65c Bug 399147 - Make 'Find References' find using-declarations
This is a revised approach for fixing this bug by giving using-
declarations implicit names for each delegate binding.

Change-Id: Ib9695c30258b8cb322ae1548ab022e357318135c
2017-10-02 02:44:02 -04:00
Doug Schaefer
5228d19300 UI for adding toolchains for Core Build. New Generic Target Wizard.
Provide a way to add new toolchains. Also start of UI to allow for
reordering them to help with toolchain selection for targets.

New Generic Target Wizard for the new wizard2 extension point for the
Launch Bar Target UI.

Change-Id: I60635ab27dad5b69df72c339337473183dcf711a
2017-09-28 13:42:58 -04:00
Nathan Ridge
64709c980d Bug 513105 - Store the current lookup point in a thread-local static stack rather than passing it around everywhere
Change-Id: I3da7326d1ce6bede8d4787d98f38fb2064288338
2017-09-25 12:51:22 -04:00
Nathan Ridge
9869cbc9ba Bug 522461 - NPE in ParameterGuesser.createVariable()
Change-Id: I68c2588866c9b4228134643bfa246452ee483c80
2017-09-25 12:49:38 -04:00
Michael Woski
f546a833d6 Bug 520913 - hover / open declaration for decltype and typeof keywords
Change-Id: I15db25080aa476e3e0e6f9c6ce063e9bd1e2b2b4
Signed-off-by: Michael Woski <woskimi@yahoo.de>
2017-09-02 08:35:10 +02:00
Michael Woski
e8bfecea0b Bug 456579 - Improve CSourceHover and OpenDeclaration for TemplateIds
CSourceHover did not know how to handle UnknowMemberClasses

Change-Id: I4ef6a4ad794e670c4d5e9ccc9cea204f8d273f2a
Signed-off-by: Michael Woski <woskimi@yahoo.de>
2017-08-11 23:10:39 -04:00
Michi
e252398ee1 Bug 520783 - wrong AccessContext for heuristically resolved
CPPUnknownMemberClass

Change-Id: I5a24c7df1dc3b4c270c60b93327190c0461c4cd0
Signed-off-by: Michi <woskimi@yahoo.de>
2017-08-10 22:15:21 +02:00
Andreas Sewe
18831f4407 Bug 520846 - Use ArrayContentProvider.getInstance() where possible
As ArrayContentProvider is stateless, re-using the global instance
avoids a few allocations.

Change-Id: Ia378195c2c90e35badcf6e2c1938a93877a442e6
Signed-off-by: Andreas Sewe <andreas.sewe@codetrails.com>
2017-08-10 11:36:45 -04:00
Nathan Ridge
feed18180b Bug 519196 - NullPointerException in IndexUI.getCElementForName
Change-Id: Ia6ad8932056c59f7f818833ba8407dee0e2fcdad
2017-07-17 19:54:01 -04:00
Jonah Graham
679896ec6e Bug 515500: Preserve known line numbers when updating ui
This resolves a significant UI performance regression so
now line numbers don't need to be recalculated for areas
where they are already known.

Change-Id: I4668d620cde24b7cd8c6a22e9c022eaf5b237ff2
2017-07-11 10:53:09 +01:00
Jonah Graham
dd07cba37b Bug 519125: Expose console refresh rate as a preference
Change-Id: I342512ff52887bc34e17185c2aa9faa34893996a
2017-07-04 11:55:45 +01:00
Nathan Ridge
c24e5d17b3 Bug 517954 - ClassCastException in CVisitor.findBindingsForContentAssist()
Change-Id: I0780b422ee727def577f78ed600f66a3ef4728d0
2017-06-08 02:57:45 -04:00
Doug Schaefer
63ff83042b Bug 447703 Build Console on top to true by default.
This matches the behavior of every other console provider
I've seen.

Change-Id: I0f1cdb22401bd7e204988df860854956fc57dde4
2017-05-31 11:26:44 -04:00
Felix Morgner
ca1ab7f52d Bug 491957. Preferences & save action for choosing const alignment
Conflicts:
	core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
	core/org.eclipse.cdt.core/pom.xml
	core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TextTestSuite.java
	core/org.eclipse.cdt.ui/pom.xml

Change-Id: I061fa28d2e0b37f6d00232ad619f23b892e13ce6
Signed-off-by: Mario Meili <mmeili@hsr.ch>
Signed-off-by: Benny Gaechter <benny.gaechter@hsr.ch>
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2017-05-15 02:59:54 -04:00
Jonah Graham
b564575d51 Bug 314428: speedup build console - limit UI thread
Re-wrote the BuildConsolePartitioner to do as many operations as possible
in the non-UI thread and only to update the UI thread in batches.

Key changes:
- The UI thread "pulls" changes when it is ready, this means that many
  lines of output are updated in one go. This compares to the "push" that
  the non-UI thread used to do. The previous code pushed a change to the
  UI thread on every line of build output.
- The limit on console size is now soft, rather than recalcuating the
  entire document on each line (i.e. add line at bottom, remove line
  from top) the document is truncated to the limit size as it reaches
  2x the limit size. This calculation is also done more effeciently by
  tracking the number of lines each partition contains rather than
  recalculating them.
- Folded most of the implementation of BuildConsolePartition into
  BuildConsolePartitioner. This is because the partioner has a global
  view and is much more efficient at determining if adjacent partitions
  can be combined. In addition, rather than having the complexity of
  splitting partitions that were too long, instead make sure we don't
  create such partitions in the first place.

Change-Id: I47543db3fef754e779684cae44d3316982f1bc0a
2017-05-12 11:51:08 -04:00
Nathan Ridge
60503efc58 Bug 512932 - Improve type checking of GCC builtins
Specifically, this patch:

  - Adds support for a new builtin, __builtin_assume_aligned.

  - Models __builtin_constant_p as a function instead of a macro.
    This inhibits constexpr evaluation, but allows for correct
    type-checking.

  - Diagnoses misuses of known builtins, instead of ingoring them like
    unknown builtins.

Change-Id: Ie5a26f2010dc5b19e6f32a8c6a1237fe88da393e
2017-05-08 23:04:17 -04:00
Nathan Ridge
d4841209b5 Bug 515343 - NPE in NamespaceHelper.checkFileNameAndLocation()
Change-Id: Id281e1cd8ec189e214dcfeffb6d238b66c87050e
2017-05-05 23:59:58 -04:00
Marc-Andre Laperle
44067d9115 Bug 514069 - Language Mappings section not shown in file properties if opened from Java's "Package Explorer" view
The Package Explorer's content provider is not extensible the same way
as the CommonNavigator so it does not contain CElement in its tree;
instead it contains IResources (IFile, etc) and Java specific elements.
However, the file language mapping property page is set to be displayed
on selections that adapt to translation units.
So this change allows IFiles to be adapted to ITranslationUnits
therefore the property page can still be shown from the Package Explorer.

Change-Id: Ia52a62c2d8800e2a4f0404bc00e346decbacaa3b
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-04-27 10:51:43 -04:00
Jonah Graham
4a7088a1c1 Bug 515430: Prevent assertion by checking for quick fixable set
Change-Id: Iea8ac8354b104cb272457b78d2bf1304bd69e065
2017-04-20 04:17:08 -04:00
Pierre Sachot
6146025ab7 Bug 515249: Corrected icon display
Change-Id: I2e3ad02421da963ec8c75e4c6071d70c06e9a4ef
Signed-off-by: Pierre Sachot <sachot.pierre@laposte.net>
2017-04-19 13:20:43 +01:00
Felix Morgner
3cc96b5873 Bug 515383: Missing standard headers in file associations
The following standard headers were missing from the file associations:

  - cuchar
  - cstdalign
  - scoped_allocator
  - shared_mutex

Additionally, cinttypes is no longer (since C++11) a GCC extension

Change-Id: I1545257d7d934c970de4f2f45f4e15499cec3fd9
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2017-04-18 15:56:44 +02:00
Jeff Johnston
795a90288b Bug 497670 - Support compiler provided "fix-it" hints
- add new FixitErrorParser that extends RegexErrorParser and is
  used to replace the error parser for GNUCErrorParser
- add new FixManager class to bind a fixit message with its
  problem marker
- modify ProblemMarkerFilterManager to register the last
  accepted ProblemMarkerInfo for a particular resource so
  the FixitErrorParser can find the last error marker for
  the file that precedes the fixit message
- FixitErrorParser looks for fix-it messages and binds them
  via FixitManager to the last error marker for the file
- add new Fixit class to contain the details of a gcc fix-it
- add new QuickFixForFixit which applies the gcc fix-it for the
  file
- add new (.*) regex in codan.ui.checkers patterns that will
  trigger before any other error and will look for the
  fix-it message format
- change cdt.core to expose cdt.internal.errorparsers to
  codan.checkers.ui
- change codan.core to expose codan.internal.core.model to
  codan.checkers.ui
- fix CDocumentProvider.setOverlay method to not overlay
  a CMarkerAnnotation that has a quick fix
- when deleting all C problem markers, also make a call
  to FixManager.deleteAllMarkers() so markers aren't
  left referenced

Change-Id: Ibf8ff7d8addb1bf092dc4ef35de0d92de0309589
2017-04-17 20:01:27 -04:00
Sergey Prigogin
908a609a53 Bug 514950 - NullPointerException running Organize Includes
Change-Id: Ic851d389a28e838775f20879bb88ffe00b9b55c0
2017-04-16 12:33:34 -07:00
Jonah Graham
501fa87934 Bug 515101: Control folding on doc and non-doc comments
Change-Id: I77b5cc2209d52877318182009b4de8e9491a85f7
2017-04-15 01:14:52 +01:00
Jonah Graham
f5aa2f3d65 Bug 515024: Fold adjacent single line doc comment
When the doxygen tool is on, adjacent single line doc comments were
not being folded together.

Change-Id: I88542047cba6c6d400a0b74a2637679cd122a920
2017-04-12 04:56:18 -04:00
Jonah Graham
f708de3801 Delete unreachable code
Remove if block on !singleLine within an if (singleLine) test. The
code has been unreachable since 2006.

Change-Id: Ie720716a58f892371e3ae5b810dae6e77736324f
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2017-04-10 13:22:57 +01:00
Sergey Prigogin
4f70ea542a Bug 514197 - Organize Includes removes an include necessary for
instantiation of the body of a template function

Change-Id: I7a788f5ddcfae039acdec3a7985dcef364c5b8c0
2017-03-27 20:29:15 -04:00
Marc-Andre Laperle
5e1208c12a Remove unused OpenTypeDialog
It's internal and not used anywhere.

Change-Id: I194b4db7f4284bc0820221220301515a12b17ae4
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-03-24 23:23:29 -04:00
Alexander Kurtakov
be16270d15 Generify AsmTextEditor.getAdapter.
Change-Id: Ia98a0a98c0aa12beaa0aa96136adf79e7a8bebab
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2017-03-23 13:57:39 -04:00
Alexander Kurtakov
5bec70f68f Remove unneeded casts.
Change-Id: Ie506aa209db9be9c56ed8d80c0c97634c6f0cecf
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2017-03-23 04:35:03 -04:00
Alexander Kurtakov
93623a1a04 Generify ListenerList.
Generified, some lamnda conversions and some non-javadoc removal.

Change-Id: Ibf0493917ac3da7531de1ca591a9bfdc250ddf2a
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2017-03-23 09:25:24 +02:00