2004-06-23 20:31:49 +00:00
###############################################################################
2014-05-17 23:53:07 +02:00
# Copyright (c) 2003, 2014 IBM Corporation and others.
2018-11-20 13:02:15 +00:00
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
2004-06-23 20:31:49 +00:00
# which accompanies this distribution, and is available at
2018-11-20 13:02:15 +00:00
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
2005-06-23 16:02:46 +00:00
#
2004-06-23 20:31:49 +00:00
# Contributors:
# IBM Corporation - initial API and implementation
2007-04-24 12:39:32 +00:00
# Anton Leherbauer (Wind River Systems)
2014-05-17 23:53:07 +02:00
# Martin Oberhuber (Wind River) - [303083] Split out the Spawner
2004-06-23 20:31:49 +00:00
###############################################################################
2002-08-26 17:43:52 +00:00
pluginName = C/C++ Development Tools Core
2009-05-26 14:48:10 +00:00
providerName = Eclipse CDT
2002-06-26 20:39:58 +00:00
cnature.name = C Nature
ccnature.name = C++ Nature
2004-06-08 15:55:37 +00:00
CProblemMarker.name = C/C++ Problem
2004-05-17 12:30:43 +00:00
PathEntryProblemMarker.name = Path Entry Problem
2002-06-26 20:39:58 +00:00
CBuildCommand.name = C Builder Command
2018-02-16 10:11:15 +00:00
CBuilder.name = CDT Core Builder
2007-02-13 09:39:20 +00:00
#names of extension points
2002-09-23 17:08:16 +00:00
CProject.name = C Project
2007-02-13 09:39:20 +00:00
CBuildConsole.name = C Builder Console
2002-09-17 19:08:38 +00:00
ProcessList.name = Process List
2003-08-31 04:42:14 +00:00
ErrorParser.name = Error Parser
2007-02-13 09:39:20 +00:00
BinaryParser.name = Binary Parser
PathEntryStore.name = Path Entry Store
ScannerInfoProvider.name = Scanner Information Provider
2012-01-26 15:09:13 -05:00
LanguageSettingsProvider.name = Language Settings Provider
2007-02-13 09:39:20 +00:00
CIndexer.name = C/C++ Indexer
2007-04-24 11:36:40 +00:00
language.name = CDT Language
2007-02-13 09:39:20 +00:00
2004-09-07 20:23:30 +00:00
CodeFormatter.name = C/C++ Code Formatter
2002-09-06 20:16:04 +00:00
2003-06-28 19:48:12 +00:00
CTaskName = C/C++ Task
2004-03-23 20:46:26 +00:00
2004-03-31 07:57:18 +00:00
IndexerMarker = Indexer Marker
2004-03-23 20:46:26 +00:00
ElfParser.name = Elf Parser
GNUElfParser.name = GNU Elf Parser
2019-08-14 12:33:36 -04:00
PEWindowsParser.name = PE Windows Parser (Deprecated)
PE64WindowsParser.name = PE64 Windows Parser
CygwinPEParser.name = Cygwin PE Parser (Deprecated)
CygwinPE64Parser.name = Cygwin PE64 Parser
2004-06-21 22:08:09 +00:00
XCOFF32Parser.name = AIX XCOFF32 Parser
2009-11-04 14:47:43 +00:00
MachOParser.name = Mach-O Parser (Deprecated)
MachOParser64.name = Mach-O 64 Parser
2004-07-16 18:03:28 +00:00
SOMParser.name = HP-UX SOM Parser
2004-03-23 20:46:26 +00:00
2013-03-18 20:14:26 -04:00
CDTGNUCErrorParser.name = GNU gcc/g++ Error Parser
2010-02-05 03:46:44 +00:00
CDTGNUCErrorParser.regex.ReportedOnlyOnce = (.*?):(\\d+):(\\d+:)? .*\\(Each undeclared identifier is reported only once.*
CDTGNUCErrorParser.regex.ForEachFunctionItAppearsIn = (.*?):(\\d+):(\\d+:)? .*for each function it appears in.\\).*
CDTGNUCErrorParser.regex.ReportedOnlyOncePerInputFile = (.*?):(\\d+):(\\d+:)? .*this will be reported only once per input file.*
2013-06-04 22:19:41 -04:00
CDTGNUCErrorParser.regex.InstantiatedFromHere = (.*?):(\\d+):(\\d+:)?\\s*(.*((instantiated)|(required)) from .*)
2010-02-05 03:46:44 +00:00
CDTGNUCErrorParser.regex.GenericInfo = (.*?):(\\d+):(\\d+:)?\\s*(([Nn]ote)|(NOTE)|([Ii]nfo)|(INFO)): (.*)
CDTGNUCErrorParser.regex.ParseErrorBefore = (.*?):(\\d+):(\\d+:)? (parse error before.*[`'"](.*)['"].*)
CDTGNUCErrorParser.regex.ErrorUndeclared = (.*?):(\\d+):(\\d+:)? [Ee]rror: ([`'"](.*)['"] undeclared .*)
CDTGNUCErrorParser.regex.ErrorConflictingTypesFor = (.*?):(\\d+):(\\d+:)? [Ee]rror: (conflicting types for .*[`'"](.*)['"].*)
CDTGNUCErrorParser.regex.GenericError = (.*?):(\\d+):(\\d+:)?\\s*(([Ee]rror)|(ERROR)): (.*)
CDTGNUCErrorParser.regex.DefinedButNotUsed = (.*?):(\\d+):(\\d+:)? [Ww]arning: ([`'"](.*)['"] defined but not used.*)
CDTGNUCErrorParser.regex.WarningConflictingTypesFor = (.*?):(\\d+):(\\d+:)? [Ww]arning: (conflicting types for .*[`'"](.*)['"].*)
CDTGNUCErrorParser.regex.GenericWarning = (.*?):(\\d+):(\\d+:)?\\s*(([Ww]arning)|(WARNING)): (.*)
CDTGNUCErrorParser.regex.OtherError = (.*?):(\\d+):(\\d+:)? (.*)
2013-03-18 20:14:26 -04:00
CDTGNULinkerErrorParser.name = GNU Linker Error Parser
2020-03-12 19:20:06 +01:00
CDTGNULinkerErrorParser.regex.InFunction = (.*?):?(\\(\\.[^\\s+]+\\+.*\\))?:\\s*(In function [`'"](.*)['"]:)
2010-02-05 03:46:44 +00:00
CDTGNULinkerErrorParser.regex.WarningDangerousFunction = (.*?):(\\d+):(\\d+:)? ([Ww]arning:)?\\s*(the use of [`'"](.*)['"] is dangerous, better use [`'"](.*)['"].*)
2020-03-12 19:20:06 +01:00
CDTGNULinkerErrorParser.regex.TextWarning = (.*?):?\\(\\.[^\\s+]+\\+.*\\): [Ww]arning:? (.*)
CDTGNULinkerErrorParser.regex.TextError = (.*?):?\\(\\.[^\\s+]+\\+.*\\): (.*)
2010-05-27 01:26:17 +00:00
CDTGNULinkerErrorParser.regex.ldWarning = (.*[/\\\\])?ld(\\.exe)?: [Ww]arning:? (.*)
CDTGNULinkerErrorParser.regex.ldError = (.*[/\\\\])?ld(\\.exe)?: (.*)
2010-02-05 03:46:44 +00:00
2013-03-18 20:14:26 -04:00
CDTGNUAssemblerErrorParser.name = GNU Assembler Error Parser
CDTWorkingDirLocator.name = pushd/popd CWD Locator
CDTGNUMakeErrorParser.name = GNU gmake Error Parser 7.0
CDTGNUMakeErrorParser.name.deprecated = GNU gmake Error Parser 6.0 (Deprecated)
CDTVisualCErrorParser.name = Microsoft Visual C Error Parser
2004-04-19 15:51:31 +00:00
2004-06-09 12:37:56 +00:00
PathEntryContainerInitializer = Path Entry Container Initializer
2004-07-28 21:54:46 +00:00
fileTypeMapping.AssemblyLanguage = Assembly
2004-06-09 12:37:56 +00:00
fileTypeMapping.cSourceFile = C Source File
fileTypeMapping.cppSourceFile = C++ Source File
fileTypeMapping.assemblySourceFile = Assembly Source File
fileTypeMapping.cHeaderFile = C Header File
2004-06-21 15:34:49 +00:00
fileTypeMapping.cppHeaderFile = C++ Header File
2004-10-06 01:39:00 +00:00
cSourceName = C Source File
2005-02-24 18:29:34 +00:00
cHeaderName = C Header File
2004-10-06 01:39:00 +00:00
cxxSourceName = C++ Source File
cxxHeaderName = C++ Header File
2005-02-24 18:29:34 +00:00
asmSourceName = Assembly Source File
2007-04-17 22:57:42 +00:00
binaryFileName = Binary File
2005-03-18 20:25:58 +00:00
2012-04-02 10:23:31 -07:00
cdt_pathentry_var.description = CDT PathEntry variable
config_name_var.description = The name of the active configuration for the project specified as an argument
config_description_var.description = The description of the active configuration for the project specified as an argument
2018-05-03 14:35:47 -04:00
core_build_dir.description = The build directory for the active Core Build configuration for the given project
2005-09-28 20:50:11 +00:00
2005-11-25 22:01:48 +00:00
PDOMProviderName = PDOM Provider
2006-03-30 21:59:22 +00:00
fastIndexer.name = Fast Indexer
2013-10-21 20:01:16 -07:00
# Built-in languages
2007-04-24 12:39:32 +00:00
language.name.gcc = GNU C
language.name.gpp = GNU C++
2007-05-14 14:34:48 +00:00
language.name.asm = Assembly
2008-04-09 14:12:46 +00:00
CConfigurationDataProvider.name = CConfigurationData provider
2013-10-21 20:01:16 -07:00
projectConverter.name = Project converter
CIndex.name = C/C++ Index
2008-04-09 14:12:46 +00:00
externalSettingsProvider.name = External Settings provider
Bug 400020: Allow tagging of IBindings
This new extension point allows contributors to put their own
information into the PDOM and to later retrieve it for their own
purposes.
There are many details in the bug. The idea is that contributors
provide an implementation of IBindingTagger, which is given a chance to
examine IBindings when they are created. The ITagWriter interface
allows the contributor to create a new tag which can then have data
written to it.
The ITagService interface (accessible from CCorePlugin.getTagService()
provides a way for the contributor to later get an instance of
ITagReader to retrieve tags from bindings.
ITags are copied to the PDOM when the associated binding is persisteed.
Contributors use a unique id (based on their plugin id), so that
multiple contributors are able to independently tag a given binding.
In-memory tags are not cached. I've done some timing tests using my
sample implementation and found no measurable difference. The full log
lines look like:
!MESSAGE Indexed 'simple-01' (2 sources, 184 headers) in <see below>
sec: 21,550 declarations; 35,394 references; 0 unresolved inclusions; 1
syntax errors; 0 unresolved names (0.00%)
I did 5 tests using the current master (no tagging-related code), the
times were:
18.86 sec
9.17 sec
5.91 sec
4.79 sec
4.83 sec
And then I ran the same sequence of tests using the code in this
commit:
18.73 sec
9.39 sec
6.50 sec
4.78 sec
5.27 sec
If performance does become a problem, then caching could be introduced
with a new implementation of ITaggableService. The two problems are
finding a key other than the identity of the IBinding (since IBindings
are re-created often) and properly evicting stale entries when the
binding is no longer valid.
The process of copying tags from an in-memory IBinding to a PDOMBinding,
is a synchronization. This means that tags that are no longer
applicable, will be removed from the persistent store.
While developing this I found that PDOMBindings are not deleted from the
Database (only the names that reference them are deleted), so there is
no provision for deleting all tags at once.
New database locks are not needed. By the time the persistent tags are
accessed, higher levels of code have already taken a read or write lock
as appropriate.
There are new unit tests covering the changes to the PDOM.
Change-Id: I8da1bf5eeba7e1fc2ca7ec308ed8e212629986a4
Reviewed-on: https://git.eclipse.org/r/10407
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
2013-02-19 20:40:15 -05:00
tagger.name = Parser Node Tagger Extension Point
2013-11-28 15:23:42 -05:00
PDOMASTProcessor.name = PDOM AST Processor Extension Point
2008-04-09 14:12:46 +00:00
GeneratePDOMApplication.name = GeneratePDOM
defaultProvider.name = Default Provider
templatesExtensionPoint.name = Templates Extension point
templateProcessTypes.name = Process Types Extension point
2009-01-21 15:51:07 +00:00
templateAssociations.name = Template Associations
2009-01-22 14:08:34 +00:00
CProjectDescriptionStorage.name = Project Description Storage Extension point
2013-10-21 20:01:16 -07:00
CProjectStorageType.singlefile.name = XML Storage (single file)
CProjectStorageType.separatefile.name = XML Storage (Separate Files)
2011-04-28 14:10:29 +00:00
scannerInfoProvider2.name = Scanner Info Provider
2013-10-21 20:01:16 -07:00
efsExtensionProvider.name = EFS Extension Provider
2011-04-28 14:10:29 +00:00
refreshExclusionFactory.name = Refresh Exclusion Factory
2013-02-07 17:22:40 -05:00
uncPathConverter.name = UNC Path Converter
ScannerInfoExtensionLanguageSettingsProvider.name = Contributed ScannerInfo Entries
2013-03-30 07:17:37 -04:00
PathEntryScannerInfoLanguageSettingsProvider.name = Contributed PathEntry Containers
2013-09-07 06:14:09 -04:00
ReferencedProjectsLanguageSettingsProvider.name = Exported Entries from Referenced Projects
2014-01-16 09:39:12 +01:00
problemMarkerFilter.name = Problem Marker Filter