From 2ae2828aad626424e62c1944669dafa64738e7de Mon Sep 17 00:00:00 2001 From: Anna Bulenkova Date: Mon, 29 Dec 2014 13:12:14 +0100 Subject: [PATCH] [code] Logical and visual positions, offset --- editor_basics/resources/META-INF/plugin.xml | 4 +++ .../editor/basics/EditorAreaIllustration.java | 32 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 editor_basics/src/org/jetbrains/plugins/editor/basics/EditorAreaIllustration.java diff --git a/editor_basics/resources/META-INF/plugin.xml b/editor_basics/resources/META-INF/plugin.xml index c2a0976f2..bda6329d8 100644 --- a/editor_basics/resources/META-INF/plugin.xml +++ b/editor_basics/resources/META-INF/plugin.xml @@ -33,6 +33,10 @@ description="Illustrates how to plug an action in"> + + + \ No newline at end of file diff --git a/editor_basics/src/org/jetbrains/plugins/editor/basics/EditorAreaIllustration.java b/editor_basics/src/org/jetbrains/plugins/editor/basics/EditorAreaIllustration.java new file mode 100644 index 000000000..49d9de1f0 --- /dev/null +++ b/editor_basics/src/org/jetbrains/plugins/editor/basics/EditorAreaIllustration.java @@ -0,0 +1,32 @@ +package org.jetbrains.plugins.editor.basics; + +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.editor.*; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.Messages; + +/** + * @author Anna Bulenkova + */ +public class EditorAreaIllustration extends AnAction { + @Override + public void actionPerformed(AnActionEvent anActionEvent) { + final Editor editor = anActionEvent.getRequiredData(CommonDataKeys.EDITOR); + CaretModel caretModel = editor.getCaretModel(); + LogicalPosition logicalPosition = caretModel.getLogicalPosition(); + VisualPosition visualPosition = caretModel.getVisualPosition(); + int offset = caretModel.getOffset(); + Messages.showInfoMessage("Logical position: " + logicalPosition.toString() + "\n" + + "Visual position: " + visualPosition.toString() + "\n" + + "Offset: " + offset, "Caret Parameters Inside The Editor"); + } + + @Override + public void update(AnActionEvent e) { + final Project project = e.getData(CommonDataKeys.PROJECT); + final Editor editor = e.getData(CommonDataKeys.EDITOR); + e.getPresentation().setVisible(project != null && editor != null); + } +}