###############################################################################
# Copyright (c) 2016, 2017 Red Hat Inc. and others
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     Sopot Cela & Mickael Istria (Red Hat Inc.) - initial implementation
#     Lucas Bullen (Red Hat Inc.) - Bug 508829 custom reconciler support
#                                 - Bug 521382 default highlighter
#     Simon Scholz <simon.scholz@vogella.com> - Bug 527830
###############################################################################
genericEditor_name=Generic Text Editor
ExtPoint.reconciliers=Reconciliers
ExtPoint.presentationReconciliers=Presentation Reconciliers
ExtPoint.hoverProviders= Hover Providers
ExtPoint.contentAssistProcessors=Content Assist Providers
ExtPoint.autoEditStrategies=Auto Edit Strategies
ExtPoint.highlightReconcilers=Highlight Reconcilers
ExtPoint.hyperlinkDetectorTarget=Generic Text Editor
openDeclarationCommand_name=Open Declaration
context_name=in Generic Code Editor
context_description=When editing in the Generic Code Editor
findReferencesCommand_name=Find References
findReferencesCommand_description=Find other code items referencing the current selected item.
Bundle-Vendor=Eclipse.org
Bundle-Name=Generic and Extensible Text Editor
command.toggle.highlight.label = Toggle Mark Occurences
command.toggle.highlight.name = Toggle Highlight