As mentioned in
https://devblogs.microsoft.com/oldnewthing/20180103-00/?p=97705,
Microsoft has stopped using the _IMAGE_FILE_HEADER.TimeDateStamp as a
time stamp and rather as a hash of the source files to make the build
result predictable.
Change-Id: I4f4a7b9557330e4c478ef7fb25653144c5b2d4ad
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
Mark "org.eclipse.cdt.lsp.core" contribution as singleton
Change-Id: If39a3b769f11d0cfda94857cc4d5b7bc6fff0df5
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
Do not pretty-format *.language.settings.xml files in the workspace
plugin state area. These are not meant to be shared and looked by users
so they do not really need to be pretty-formatted. This saves a lot of
time for large projects with per-file language settings. For example, I
have seen this save 30 sec on a test project during serialization.
Change-Id: I27f8e0cfdc593f084d95bbed7aedb707570f1f6d
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
- modify ProcessFactory to prefix commands with flatpak-spawn
when running under Eclipse flatpak
- add new FlatpakLaunch class to dsf.gdb to do a prelaunch
of gdbserver and set up remote port settings when debugging
local C/C++ application under Eclipse flatpak
- add new tab to gdb when running under Eclipse flatpak
to allow user to specify gdbserver and port number
- add new org.eclipse.cdt.flatpak.launcher plug-in which
contains a FlatpakCommandLauncherFactory to handle copying
header files from host to workspace when developing under
Eclipse flatpak
- add new FlatpakCommandLauncher class which simply extends
CommandLauncher and can be used for debugging purposes to
distinguish from regular command launcher
- also add new FlatpakHeaderPreferencePage to allow C/C++ users
to delete copied headers if needed
- dynamically add the headers preference page from
FlatpakCommandLaunchFactory
if running under Eclipse flatpak
- add new ICommandLaunchFactory3 to add an interface to check if
headers have been modified/removed and scanner info refresh
is required
- add new org.eclipse.cdt.flatpak.launcher-feature
- give higher priority to ContainerCommandLauncherFactory so if
running on Eclipse flatpak, the flatpak factory won't be chosen
if both apply (i.e. building in a container but running on
Eclipse flatpak)
Change-Id: Id68e60c4dd37c4494af10440231ac7b7bbec8d17
These were lost accidentally in commit 2bd07a89ca
In the restore version use the core PDE way of including bundles,
rather than Tycho's <iu> extension as we don't need the extended
capabilities and having an editor that works is nicer. See Bug 566340
Change-Id: If78d34737957c322b1d068840fc6f17883857070
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>
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>
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>
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>
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>
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>
Part 13:
Add about.html and align headers.
Change-Id: I6c3fdfdbea65fbcc1e60a653ff6619afee916212
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
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>
Part 11:
Move cquery code to org.eclipse.cdt.lsp.cquery bundle.
Change-Id: I079f08c1aa1c177abdc291402931f7547ab325bf
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
Part 10:
Move clangd code to org.eclipse.cdt.lsp.clangd bundle.
Change-Id: Ib2938ea34a4996a535658decc61a725f4626c649
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
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>
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>
Part 5:
Extract CQuery protocol methods to separate types.
Change-Id: I14f48ff4f374bd257adec67708bf58150993db21
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
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>
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>
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>
Part 1: rework "$cquery/progress" notification handling to be reusable
Change-Id: I6995594e51289e7f8a516ffc2cc2ec8bda88f919
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
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
Remove all equalIgnoreCase and equal with uppercasing for environment
variables
Change-Id: Ic15974b5fb62413c7b1826ced544ff6d4a8eba2f
Signed-off-by: jantje <eclipse@baeyens.it>
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>