1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00
Commit graph

35106 commits

Author SHA1 Message Date
Jonah Graham
0c5093d6ff Bug 566334: Turn on API Tooling & Analysis for all bundles
Change-Id: I3cb5645eba52b0cd0e9a71069264d9c589159107
2020-08-24 17:50:56 -04:00
Jonah Graham
fd9382d8a9 Bug 562494: Update BREE to Java 11
Change-Id: I0c91aafc0cb1b179936acbd4c9df2d961899e3fa
2020-08-24 17:50:56 -04:00
Marc-Andre Laperle
e933f46289 Bug 565553 - Improve performance of build command parsers with large number of files
Compile a pattern ahead of time and early return.

The first pattern is used to trim extra characters that are not
contained within the actual option pattern. If this first pattern
doesn't match, there is no point in continuing because it is a superset.

Times before/after, only counting AbstractOptionParser.parseOption
LLVM before: 4289ms, after: 622ms

Change-Id: Id40fc9a35359c39aea00ba14813ffe6c343158fc
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-08-23 23:21:14 -04:00
Marc-Andre Laperle
a9b67d0828 Bug 565553 - Improve performance of build command parsers with large number of files
Optimize MSVCBuildCommandParser.unescapeString.
Instead of running a Matcher/replaceAll every time, check first if the
string contains the characters to unescape first. Finding a substring in
a string is much faster than matching a pattern so this saves quite a
bit of time on large MSVC projects since many options will not have the
characters needed to be unescaped.

Change-Id: If2ad7892c29374458d5de446d4492ce3ba576c9c
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-08-23 23:18:40 -04:00
Marc-Andre Laperle
68c9b53de0 Bug 566107 - Option parsers can fail to trim extra characters when using patterns with numbered back-references
Clarify in the javadoc that numbered back-references should not be used
in order for option pattern to safely work.  Add a unit test
demonstrating the flaw when numbered back-references are used.  Update
GCC parser as an example for not using numbered back-references.

Change-Id: I008b3589486dc9fb0d9d9aa41f7cc2443bf4351e
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-08-23 21:33:05 -04:00
Alexander Fedorov
4f9d96f207 Bug 566286 - Rework CDT LSP Activator
Switch logging code to platform facilities

Change-Id: Iff6654ab6a55af898be8360ec0208ec7a0ddf977
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-23 10:16:33 -04:00
Jonah Graham
fbc117fd59 [releng] Update target platform Eclipse 4.17 M3
Change-Id: I5538eaa97b655137730f03a3be03af2e920e7b2e
2020-08-23 07:52:12 -04:00
Alexander Fedorov
147ff5a482 Bug 566093 - CDT LSP: null-free functions to retrieve URL from IDocument
Rework usages of Java 11 Optional#isEmpty() to Java 8
Optional#isPresent()

Change-Id: I9c0788414e7752efe87bf50eafadb6f3ab9a76be
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-23 05:32:41 -04:00
Torbjörn Svensson
e4e1f6780d Bug 565628: Unify line endings for memory block configuration
As the memory browser configuration is preserved in the launch
configuration file as an indented serialized XML string, the string will
contain the result of System.lineSeparator(). As the launch
configuration file can be shared among developers with different
platforms, there is a risk that the launch configuration file is always
modified although there is no real modification, just line endings.
To avoid this scenario, always save the XML string without any
indentation or line endings.

Change-Id: I94497a924f7aa5a881ac6a32f146d2cbceb6324f
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-22 11:33:02 -04:00
Alexander Fedorov
416a7f4f30 Bug 558592 - Rework access to PresentationReconcilerCPP
Move UI code to LSP UI bundle. Remove unused UI dependencies from LSP
Core bundle.
The Activator rework will follow with another Gerrit.

Change-Id: Ifb7e4d153dab6dcc7d50fdf60c2f22333abbb8ed
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-21 14:16:34 -04:00
Marc-Andre Laperle
2effd41b14 Mark Visual C++ Support feature as experimental
This feature was never really fully mature. It lacks important things
like proper built-in detection, ability to select VS version, target
architecture, Windows SDK, etc.  And now the supported VS versions are
quite behind. I have the intention to improve it over time but I think
it is better to set more reasonable expectations by flagging it as
experimental and it will also allow more ambitious but possibly
incompatible changes workspace-wise.

Change-Id: Iceaa316fb5cf17dde9a6f056d5ced1b3ce496c7f
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-08-21 12:40:35 -04:00
Alexander Fedorov
581eb9eb6d Bug 566237 - Remove CQuery support from CDT LSP feature
Removed "org.eclipse.cdt.lsp.cquery" bundle from "org.eclipse.cdt.lsp"
feature.

Change-Id: I076ce122bb612949f9e8efe7d868eb3a083ea4a0
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 21:12:42 +03:00
Alexander Fedorov
0bf22a2103 Bug 558664 - cquery and clangd: registered each LS from its own bundle
Part 13:
Add about.html and align headers.

Change-Id: I6c3fdfdbea65fbcc1e60a653ff6619afee916212
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
df0e1d62b1 Bug 558664 - cquery and clangd: registered each LS from its own bundle
Part 12:
Extract cquery tests to org.eclipse.cdt.lsp.cquery.tests bundle.

Change-Id: I188fc5a0b06bccfeb0884c054c0d972226857b78
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
fa03b9225b Bug 558664 - cquery and clangd: registered each LS from its own bundle
Part 11:
Move cquery code to org.eclipse.cdt.lsp.cquery bundle.

Change-Id: I079f08c1aa1c177abdc291402931f7547ab325bf
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
b8427cb54a Bug 558664 - cquery and clangd: registered each LS from its own bundle
Part 10:
Move clangd code to org.eclipse.cdt.lsp.clangd bundle.

Change-Id: Ib2938ea34a4996a535658decc61a725f4626c649
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
1fb6efa9c3 Bug 558664 - cquery and clangd: registered each LS from its own bundle
Part 9:
Add LSP clangd bundle.

Change-Id: I9274f56e7e2692f58b2a469007b1853b3e9c1d48
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
8da8e068a5 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 8:
Add LSP CQuery bundle.

Change-Id: Ie728716916b4d4ee854faec50925957f7d9436b5
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
58e1b69c80 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 7:
Extract CQuery protocol extension to its package and declare it as a
LanguageProtocolExtension component.
Remove custom "clientImpl" from LSP extension point, as we can use
standard one.
Declare DelegatingLauncherBuilder to collect and register language
extensions for the preferred language server.

Change-Id: I88be0456bbb53d24a6a0df2578c145649268b028
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
3efcecf379 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 6:
Declare SupportedProtocolExtensions interface to access contributed
LanguageProtocolExtension for a given language server.
Extract ResolvePreferredServer class.
Add ContributedProtocolExtensions OSGi component with tests.

Change-Id: Iecb1fff5a29a559e3c9d8703cc7d8fa71bb18042
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
c609416622 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 5:
Extract CQuery protocol methods to separate types.

Change-Id: I14f48ff4f374bd257adec67708bf58150993db21
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
8abfaab458 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 4:
Switch C/C++ LSP preferences to LanguageServerConfiguration and remove
constants with server identifiers. Align i18n accordingly.

Change-Id: I4dcd9ea57a2c4577bb6763bb859afbd339eb66e0
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
3705069ef2 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 3:
Convert ContributedLanguageServers to OSGi component and switch usages
to its interface.
Convert LanguageServerConfiguration implementations to OSGi components.

Change-Id: Ic22fa26a7abfd40a959ae0189a63b9a04d1ac4e0
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
05ae2a8185 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 2:
Introduce SupportedLanguageServers interface and remove knowledge about
specific language server from CPPStreamConnectionProvider. Replace
ICPPLanguageServer with LanguageServerConfiguration.
Move Clangd and Cquery server configurations to its packages.

Change-Id: I825c39bc6f8004616e639fda28660d3c98d08057
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Alexander Fedorov
afaa593d34 Bug 558664 - Cquery integration should be extracted from LSP Core
Part 1: rework "$cquery/progress" notification handling to be reusable

Change-Id: I6995594e51289e7f8a516ffc2cc2ec8bda88f919
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-20 13:43:59 -04:00
Moritz 'Morty' Strübe
240ca9085c Bug 538147 Fix mounting folders using windows
Removing unnecessary code fixes things, as paths are corectly handled
in the docker code.

Change-Id: If8b6b8877d5664c6692f58b0646cd0a93857a379
2020-08-20 13:13:29 +02:00
Jonah Graham
a588063b23 Bug 521515: Automatically check .so, .dll, .exe files for valid deps
Because we build cross platform, we want to make sure no unexpected
dependencies are introduced on newer or non-universal libraries
in the native code.

Change-Id: Ib8ffeb5f374bcd04514c31dca9d8297fed70343a
2020-08-18 21:43:21 -04:00
Torbjörn Svensson
5a3d2e744b Bug 521515: Also build pty.dll if host is Windows
Change-Id: Idb991b8c641a6fd7a38ef32cce04c63f15f8f57d
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-18 20:16:49 -04:00
jantje
2a62d58621 Bug 564123 Treat environment and build variable case sensitively
Remove all equalIgnoreCase and equal with uppercasing for environment
variables

Change-Id: Ic15974b5fb62413c7b1826ced544ff6d4a8eba2f
Signed-off-by: jantje <eclipse@baeyens.it>
2020-08-18 18:11:48 -04:00
Torbjörn Svensson
09582630d7 Bug 521515: Do not log every failed access attempt
The Windows registry can be checked for keys that may not exist.
In order to avoid logging an exception that the entry is missing when
it's not critical that the entry do exist, the method should just return
null and let the caller handle if it's critical or not that the entry
exists. To easily debug situations where the entry is supposed to always
exist, the trace symbol
"org.eclipse.cdt.core.native/debug/win32/registry" can be set to "true"
and the exceptions will be logged in any case.

Change-Id: I6603cbe363ebecd357fa44c41fb1a26c6345dd70
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-18 14:52:26 -04:00
Jonah Graham
a708a1dcc9 Bug 564123 Remove deprecated PathUtil that has a replacement
Change-Id: Ie2fd4ed201a2bc0c490df9b0deb43cb6d53b1876
2020-08-18 12:33:13 -04:00
Jonah Graham
ef79d15071 Bug 564123 Remove long commented out and dead test code
Change-Id: I0022463409db4de701b3ad18e1309f894d499e2a
2020-08-18 12:26:40 -04:00
Jonah Graham
8c1be591ff Bug 521515: Build pty.dll in docker (fixup)
Fixes for items identified by Torbjörn in my changes to commit
2d03236339

Change-Id: I51f289f731062b4a43bb041d25cd08467014151e
2020-08-18 08:20:12 -04:00
Alexander Fedorov
786ae3ce2b Bug 566093 - CDT LSP: null-free functions to retrieve URL from IDocument
make ResolveDocumentUri final

Change-Id: I06169d98f6af3b49595e4e8f6308c6aad790eaf7
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-18 14:46:44 +03:00
Alexander Fedorov
f555015183 Bug 566093 - CDT LSP: null-free functions to retrieve URL from IDocument
Remove Server2ClientProtocolExtension::getUri

Change-Id: Iee7e4808e40160e456f3db85c4dc98d04632a92a
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-18 10:03:58 +03:00
Torbjörn Svensson
2d03236339 Bug 521515: Build pty.dll in docker
Change-Id: I370327489b6c18ac6ba9f36a8da9e94b078ffe1e
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-17 21:42:25 -04:00
Alexander Fedorov
baddefe9cf Bug 566093 - CDT LSP: null-free functions to retrieve URL from IDocument
Introduced org.eclipse.cdt.lsp.internal.text.ResolveDocumentUri
implements
Function<IDocument, Optional<URI>>
Reworked usages of Server2ClientProtocolExtension#getUri(IDocument)

Change-Id: I7ccbe4e1c2016fdd3ef618e4fbdf80f3a67c8ac5
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-17 13:35:37 -04:00
Martin Weber
60e32477d0 Remove unused file.
Unused since bug 559674: Integrate new indexer support into CDT build

Change-Id: Ifd4878f944eff6f12e3ab2df399c619abfa47f59
Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
2020-08-16 16:09:59 -04:00
Alexander Fedorov
7cccb6ba3a Revert "Bug 566093 - CDT LSP: null-free functions to retrieve URL from IDocument"
This reverts commit 46a799d96d.

Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-15 12:40:17 +03:00
Alexander Fedorov
46a799d96d Bug 566093 - CDT LSP: null-free functions to retrieve URL from IDocument
Introduced org.eclipse.cdt.lsp.internal.text.DocumentUri implements
Function<IDocument, Optional<URI>>
Reworked usages of Server2ClientProtocolExtension#getUri(IDocument)

Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-08-15 11:54:52 +03:00
Martin Weber
9e303185f9 Bug 564002: Restore the default pattern of the surefire-plugin
Sets the pattern to the default of upcoming tycho 2.0 in advance.

Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
Change-Id: I31b3fc733d0cb888fbf6f566995ce2043f6cd621
2020-08-13 14:18:47 -04:00
Torbjörn Svensson
a025f75771 Bug 521515: Generate JNI header files as part of build
Also generate JNI header for serial component. This component does not
really need it since the implementation is in one file only, but this
would at least throw an error if the java part changes and the native
part is not updated accordingly.

Change-Id: Id598410c322580bdda37c905ed08627390c913ba
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-13 10:13:52 +02:00
Jonah Graham
7120731766 Bug 521515: Generate JNI header files as part of build
Change-Id: Ia92da44f964e1934b2c32d2536f3ec27c03d5d59
2020-08-12 21:30:42 -04:00
Jonah Graham
ba24afc3a4 Bug 521515: Save the log file all the time when building natives
Change-Id: I11b149d94f837dcb9537682a55551add289f8924
2020-08-12 21:30:42 -04:00
Torbjörn Svensson
49dc726dd1 Bug 521515: Use channel object for native stream access
On Linux and mac, a simple int will do for accessing streams (file
descriptor).
On Windows, a HANDLE is used. This is in reality a pointer and on 64
bit JVM, the pointer will not fit in an int. To not force a change to
the API everytime a different platform has a different requirement
for accessing streams, use a common interface and specific classes
that is known by the native part. The java part of the function
block should just pass the object back to the native code when
needing to reference an open stream.

Change-Id: Ibc3ff5c85735dac6a0ce8e9a1f25b839d7e9aab9
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-12 11:48:35 -04:00
Dominic Scharfe
0d50385e63 Bug 565771: Allow to extend GdbConnectCommand PID prompting mechanism
- partially refactor connect method to connectToProcesses
- rename variables to match existing ones from other methods
(attachToProcesses and the PromptForPidJob constructor)
- change visibility for attachToProcesses from private -> protected

Change-Id: I62de9e1303895faac61fec011a8cce0d59d81f71
Signed-off-by: Dominic Scharfe <dominic.scharfe@coseda-tech.com>
2020-08-12 11:45:39 -04:00
Torbjörn Svensson
0ede7c7a60 Bug 534105: Only files are allowed to be executed
When searching the PATH environment variable, only accept resources of
type "file" and that are executable. Any directories on the PATH is
silently ignored by shells and so should also CDT do.

Change-Id: Ia7cfd1b0b61d59602994528f0fb2af7fee93d946
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-08-12 10:47:03 -04:00
Jonah Graham
f0235bae94 Bug 565628: Fix typo in variable name
Change-Id: I62a470e6ebe3b3e8369aad5861bab7dc1d5dd6f4
2020-08-12 10:01:00 -04:00
Jonah Graham
e2dd4868ff [releng] Add instructions for updating org.eclipse.cdt.core.win32.x86_64's dlls
(BTW We need a better solution for this!)

Change-Id: Ic163e2504ff62cabc6951de2ec5606646c460937
2020-08-12 09:55:42 -04:00
Jonah Graham
ee0e931b42 Bug 565628: Handle formatting/indentation of XML files with CDT code only
The javax.xml.transform.Transformer as used in CDT did not fully
indent, despite INDENT=yes being set (See Bug 286751).

However in Java 11, INDENT=yes started doing "more", so to maintain
compatibility with how .cproject and others are formatted, turn
off INDENT=yes and rely solely on XmlUtil.prettyFormat and the
related workarounds in xmlutil.

Change-Id: Icec04cfd3f9f1290593cff8b15b398b41c9d932a
2020-08-11 18:20:09 -04:00