###############################################################################
# Copyright (c) 2003, 2014 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Anton Leherbauer (Wind River Systems)
#     Martin Oberhuber (Wind River) - [303083] Split out the Spawner
###############################################################################
pluginName=C/C++ Development Tools Core
providerName=Eclipse CDT

cnature.name=C Nature
ccnature.name=C++ Nature
CProblemMarker.name=C/C++ Problem
PathEntryProblemMarker.name=Path Entry Problem
CBuildCommand.name=C Builder Command
CBuilder.name=CDT Core Builder

#names of extension points
CProject.name=C Project
CBuildConsole.name=C Builder Console
ProcessList.name=Process List
ErrorParser.name=Error Parser
BinaryParser.name=Binary Parser
PathEntryStore.name=Path Entry Store
ScannerInfoProvider.name=Scanner Information Provider
LanguageSettingsProvider.name=Language Settings Provider
CIndexer.name= C/C++ Indexer
language.name= CDT Language

CodeFormatter.name=C/C++ Code Formatter

CTaskName=C/C++ Task

IndexerMarker=Indexer Marker

ElfParser.name=Elf Parser
GNUElfParser.name=GNU Elf Parser
PEWindowsParser.name=PE Windows Parser (Deprecated)
PE64WindowsParser.name=PE64 Windows Parser
CygwinPEParser.name=Cygwin PE Parser (Deprecated)
CygwinPE64Parser.name=Cygwin PE64 Parser
XCOFF32Parser.name=AIX XCOFF32 Parser
MachOParser.name=Mach-O Parser (Deprecated)
MachOParser64.name=Mach-O 64 Parser
SOMParser.name=HP-UX SOM Parser

CDTGNUCErrorParser.name=GNU gcc/g++ Error Parser
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.*
CDTGNUCErrorParser.regex.InstantiatedFromHere=(.*?):(\\d+):(\\d+:)?\\s*(.*((instantiated)|(required)) from .*)
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+:)? (.*)

CDTGNULinkerErrorParser.name=GNU Linker Error Parser
CDTGNULinkerErrorParser.regex.InFunction=(.*?):?(\\(\\.[^\\s+]+\\+.*\\))?:\\s*(In function [`'"](.*)['"]:)
CDTGNULinkerErrorParser.regex.WarningDangerousFunction=(.*?):(\\d+):(\\d+:)? ([Ww]arning:)?\\s*(the use of [`'"](.*)['"] is dangerous, better use [`'"](.*)['"].*)
CDTGNULinkerErrorParser.regex.TextWarning=(.*?):?\\(\\.[^\\s+]+\\+.*\\): [Ww]arning:? (.*)
CDTGNULinkerErrorParser.regex.TextError=(.*?):?\\(\\.[^\\s+]+\\+.*\\): (.*)
CDTGNULinkerErrorParser.regex.ldInfo=(.*[/\\\\])?ld(\\.exe)?: ((mode|Removing unused section) .*)
CDTGNULinkerErrorParser.regex.ldWarning=(.*[/\\\\])?ld(\\.exe)?: [Ww]arning:? (.*)
CDTGNULinkerErrorParser.regex.ldError=(.*[/\\\\])?ld(\\.exe)?: (.*)

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

PathEntryContainerInitializer=Path Entry Container Initializer

fileTypeMapping.AssemblyLanguage=Assembly
fileTypeMapping.cSourceFile=C Source File
fileTypeMapping.cppSourceFile=C++ Source File
fileTypeMapping.assemblySourceFile=Assembly Source File
fileTypeMapping.cHeaderFile=C Header File
fileTypeMapping.cppHeaderFile=C++ Header File

cSourceName=C Source File
cHeaderName=C Header File
cxxSourceName=C++ Source File
cxxHeaderName=C++ Header File
asmSourceName=Assembly Source File
binaryFileName=Binary File

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
core_build_dir.description=The build directory for the active Core Build configuration for the given project

PDOMProviderName=PDOM Provider

fastIndexer.name=Fast Indexer

# Built-in languages
language.name.gcc= GNU C
language.name.gpp= GNU C++
language.name.asm= Assembly

CConfigurationDataProvider.name = CConfigurationData provider
projectConverter.name = Project converter
CIndex.name = C/C++ Index
externalSettingsProvider.name = External Settings provider
tagger.name = Parser Node Tagger Extension Point
PDOMASTProcessor.name = PDOM AST Processor Extension Point
GeneratePDOMApplication.name = GeneratePDOM
defaultProvider.name = Default Provider
templatesExtensionPoint.name = Templates Extension point
templateProcessTypes.name = Process Types Extension point
templateAssociations.name = Template Associations
CProjectDescriptionStorage.name = Project Description Storage Extension point
CProjectStorageType.singlefile.name = XML Storage (single file)
CProjectStorageType.separatefile.name = XML Storage (Separate Files)
scannerInfoProvider2.name = Scanner Info Provider
efsExtensionProvider.name = EFS Extension Provider
refreshExclusionFactory.name = Refresh Exclusion Factory
uncPathConverter.name = UNC Path Converter
ScannerInfoExtensionLanguageSettingsProvider.name=Contributed ScannerInfo Entries
PathEntryScannerInfoLanguageSettingsProvider.name=Contributed PathEntry Containers
ReferencedProjectsLanguageSettingsProvider.name=Exported Entries from Referenced Projects

problemMarkerFilter.name=Problem Marker Filter
