# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

OpenIDE-Module-Name=Editor Actions
OpenIDE-Module-Display-Category=Editing
OpenIDE-Module-Short-Description=Contains editor actions implementations
OpenIDE-Module-Long-Description=Editor Actions module contains default editor actions implementations.

# Actions
toggle-toolbar=Toggle Toolbar
toggle-toolbar_menu_text=S&how Editor Toolbar
toggle-line-numbers=Toggle Line Numbers
toggle-line-numbers_menu_text=&Show Line Numbers
toggle-non-printable-characters=Toggle Non-printable Characters
toggle-non-printable-characters_menu_text=Show &Non-printable Characters
toggle-typing-mode=Toggle Typing Mode
transpose-letters=Transpose Letters
goto-declaration=Go to Declaration
goto-declaration_menu_text=Go to &Declaration
zoom-text-in=Zoom Text In
zoom-text-out=Zoom Text Out
move-code-element-up=Move Code Element Up
move-code-element-up_menu_text=Move Code Element &Up
move-code-element-down=Move Code Element Down
move-code-element-down_menu_text=Move Code Element &Down

remove-word-previous=Delete Previous Word
remove-word-next=Delete Next Word
caret-next-word=Insertion Point to Next Word
caret-previous-word=Insertion Point to Previous Word
selection-next-word=Extend Selection to Next Word
selection-previous-word=Extend Selection to Previous Word
toggle-inline-hints=Show Inline &Hints
toggle-lines-view=Show &Indent Guide Lines
clipboard-lines=Paste as Lines
remove-last-caret=Remove Last Caret
add-caret-up=Duplicate Insertion Point Up
add-caret-down=Duplicate Insertion Point Down
OptionsDialog/Actions/edit.multicaret=Edit (Multicaret)