<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<!DOCTYPE bindings PUBLIC "-//NetBeans//DTD Editor KeyBindings settings 1.1//EN" "http://www.netbeans.org/dtds/EditorKeyBindings-1_1.dtd">

<!--
    IMPORTANT:  This file modifies keybindings from NetBeans-keybindings.xml to make them work on Mac OS.
-->

<bindings>
    <!-- Things we add that replace standard keybindings -->
    
    <bind key="F3" remove="true"/>
    <bind key="M-G" actionName="find-next"/> 
    
    <bind key="S-F3" remove="true"/>
    <bind key="MS-G" actionName="find-previous"/> 

    <bind key="D-F3" remove="true"/>
    <bind key="CA-G" actionName="find-selection"/> 
    
    <bind key="D-LEFT" remove="true"/>
    <bind key="A-LEFT" actionName="caret-previous-word"/> 
    
    <bind key="D-RIGHT" remove="true"/>
    <bind key="A-RIGHT" actionName="caret-next-word"/> 

    <bind key="DS-LEFT" remove="true"/>
    <bind key="AS-LEFT" actionName="selection-previous-word"/>

    <bind key="DS-RIGHT" remove="true"/>
    <bind key="AS-RIGHT" actionName="selection-next-word"/>
    
    
    <!-- Things we add only on the mac -->
    
    <bind actionName="caret-begin" key="M-UP"/> 
    <bind actionName="caret-end" key="M-DOWN"/>
    <bind actionName="selection-begin-line" key="MS-LEFT"/>
    <bind actionName="selection-end-line" key="MS-RIGHT"/>
    <bind actionName="caret-end-line" key="M-RIGHT"/>
    <bind actionName="caret-begin-line" key="M-LEFT"/>
    

    <bind key="O-G" remove="true"/>
    <bind key="OS-G" actionName="goto-declaration"/>
    <bind key="OS-UP" remove="true"/>
    <bind key="DOS-UP" actionName="select-element-next"/>
    <bind key="OS-DOWN" remove="true"/>
    <bind key="DOS-DOWN" actionName="select-element-previous"/>
</bindings>
