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);
+ }
+}