Changed isApplicable to not retrieve the TU from the editor if it is not
open. Applying the quick fix will still open the editor.
Change-Id: Ib328ffa2054145eda8b2e72fe646fca2e7fc7905
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
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
and provide quickfix for adding fallthrough attribute
and add JUnit Tests
and add StandardAttributes class
Change-Id: I8cf0238771dc92bd1784b9dfb35a680d078b1db6
Depends-On: Ic09aa96f896b0a5dd998156e05930704775f695b
Signed-off-by: Rolf Bislin <romibi@bluewin.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
- 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
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds
One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.
- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
- One for UI tests (UI present and start in UI thread)
- One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations
Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
- change codanMarkerResolution schema to support translatable
regex statements for matching
- bump cdt.codan.ui version
- add additional codanMarkerResolution extensions to codan.checkers.ui
to handle some basic gcc error messages with quick fixes
- add QuickFixAddSemicolon, QuickFixRenameMember,
QuickFixUseDotOperator, and QuickFixUsePointer classes
- add new QuickFixMessages
- add plugin.properties to cdt.codan.checkers.ui to allow the quick
fix regex matchers to be translated in the future
- change the generic error message for gcc error parser so that the
column is reported as the problem variable (useful for certain
quick fix resolutions)
- bump up cdt.core
Change-Id: Ibb24c1a79c4d91ead3fc629ea3d4e7425b4e7f23
- Reuse the TU from the open editor if present, otherwise load it from
workspace
- Added test plugin org.eclipse.cdt.codan.checkers.ui.test
Change-Id: I725b7b8e462ffba39dd6c9a828ab72dd58f86b1f
Signed-off-by: Dominic Scharfe <dominic.scharfe@coseda-tech.com>
Build Console needs to be started before
OutputStream and ErrorStream are retrieved for the Sniffer.
Change-Id: I1aea84ca9fa2e6806cb07513bb2c9cad47c11617
Signed-off-by: Dan Crosscup <tunzis@gmail.com>
When using a `StringBuilder` or `StringBuffer` to create a string message,
using implicit string concatenation inside an `.append()` call will
create a nested StringBuilder for the purposes of creating the arguments,
which will subsequently be converted to a String and then passed to
the outer StringBuilder.
Skip the creation of the intermediate object and String by simply
replacing such calls with `buffer.append(a).append(b)`.
Where values are compile time String constants, leave as is so
that the javac compiler can perform compile-time String concatenation.
Ensure that NEWLINE isn't appended in such a way since it is not
a compile time constant `System.getProperty("line.separator")`
Change-Id: I4126aefb2272f06b08332e004d7ea76b6f02cdba
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
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>
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.
Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.
Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
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>
Every time we report a problem in a declaration/expression that occupies more
than one line, the codan marks the entire line as a problem - including
everything before the node. This patch solves this inconvenient behavior.
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=486610 for a complete
explanation.
Change-Id: I742cbaac8a1392676695d574355597b0cfc87385
Signed-off-by: Alisson Linhares de Carvalho <arescarv@gmail.com>