aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java/com/kotcrab/vis
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2026-02-07 17:22:01 -0800
committerElizabeth Hunt <me@liz.coffee>2026-02-07 17:22:01 -0800
commita483f04c16e6b56df24527f6a640e79c86928238 (patch)
tree0dc2f149629367150e606b6b86f767865ac627e5 /core/src/main/java/com/kotcrab/vis
parent40a7ea05a9d6041842a081bb5a98290a31ea798e (diff)
downloadthe-abstraction-engine-java-a483f04c16e6b56df24527f6a640e79c86928238.tar.gz
the-abstraction-engine-java-a483f04c16e6b56df24527f6a640e79c86928238.zip
Major feat: vim
Diffstat (limited to 'core/src/main/java/com/kotcrab/vis')
-rw-r--r--core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java b/core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java
new file mode 100644
index 0000000..a14c6a7
--- /dev/null
+++ b/core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java
@@ -0,0 +1,33 @@
+package com.kotcrab.vis.ui.widget;
+
+public class EditorHighlightTextAreaBridge extends HighlightTextArea {
+ public EditorHighlightTextAreaBridge(final String text, final VisTextFieldStyle style) {
+ super(text, style);
+ }
+
+ public void editorSyncCursorState() {
+ updateCurrentLine();
+ showCursor();
+ }
+
+ public void editorSetSelectionEndpoints(final int selectionStart, final int cursorPosition) {
+ final int clampedSelectionStart = Math.max(0, Math.min(selectionStart, getText().length()));
+ final int clampedCursorPosition = Math.max(0, Math.min(cursorPosition, getText().length()));
+ if (clampedSelectionStart == clampedCursorPosition) {
+ clearSelection();
+ cursor = clampedCursorPosition;
+ editorSyncCursorState();
+ return;
+ }
+
+ hasSelection = true;
+ this.selectionStart = clampedSelectionStart;
+ cursor = clampedCursorPosition;
+ editorSyncCursorState();
+ }
+
+ public void editorSetCursorKeepingSelection(final int cursorPosition) {
+ cursor = Math.max(0, Math.min(cursorPosition, getText().length()));
+ editorSyncCursorState();
+ }
+}