/* * Copyright 2003-2016 JetBrains s.r.o. * * Licensed 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. */ package jetbrains.mps.openapi.editor.cells.optional; /** * This is optional interface. Some cells may implement it in order to * be recognized as caret supporting cells (textual). * <p> * User: shatalin * Date: 01/06/16 */ public interface WithCaret { /** * Switching caret visibility on/off. * Used to hide/show caret if editor loosing/getting focus. * * @param visible visibility state of the caret */ void setCaretVisible(boolean visible); /** * Changing (inverting) the visibility of the caret. * Used by CaretManager. */ void switchCaretVisible(); /** * @return true if the cursor is located on the first position within this cell */ boolean isFirstCaretPosition(); /** * @return true if the cursor is located on the last position within this cell */ boolean isLastCaretPosition(); }