###############################################################################
# Copyright (c) 2000, 2013 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
#     John-Mason P. Shackelford - bug 40255
###############################################################################

#The following messages are used indirectly via text operation actions - DO NOT REMOVE
ContentAssistProposal.label=Content &Assist@Ctrl+Space
ContentAssistProposal.tooltip=Content Assist
ContentAssistProposal.image=
ContentAssistProposal.description=Content Assist

ContentFormat.label=&Format
ContentFormat.tooltip=Format build file source
ContentFormat.image=
ContentFormat.description=Format build file source
# end indirect use list

AntEditorCompletionProcessor.Required___4=Required:
AntEditorCompletionProcessor.28=No attribute completions available
AntEditorCompletionProcessor.29=No task completions available
AntEditorCompletionProcessor.30=No task closing completions available
AntEditorCompletionProcessor.31=No attribute value completions available
AntEditorCompletionProcessor.32=No property completions available
AntEditorCompletionProcessor.33=No completions available
AntEditorCompletionProcessor.39=Closing tag
AntEditorCompletionProcessor.59=Default: {0}
AntEditorCompletionProcessor.60=No Template Proposals
AntEditorCompletionProcessor.61=Template Proposals
AntEditorCompletionProcessor.62=No Default Proposals
AntEditorCompletionProcessor.63=Press ''{0}'' to show {1}
AntEditorCompletionProcessor.64=Click to show {0}
AntEditorCompletionProcessor.1=Not required
AntEditorCompletionProcessor.2=Required
AntEditorCompletionProcessor.0=Default Proposals

AntAnnotationHover.multipleMarkersAtThisLine=Multiple markers at this line

AntEditor.3=Current text selection does not resolve to an Ant reference
