diff options
| author | Elizabeth Hunt <me@liz.coffee> | 2026-02-07 17:22:01 -0800 |
|---|---|---|
| committer | Elizabeth Hunt <me@liz.coffee> | 2026-02-07 17:22:01 -0800 |
| commit | a483f04c16e6b56df24527f6a640e79c86928238 (patch) | |
| tree | 0dc2f149629367150e606b6b86f767865ac627e5 /core/src/main/java/com/kotcrab | |
| parent | 40a7ea05a9d6041842a081bb5a98290a31ea798e (diff) | |
| download | the-abstraction-engine-java-a483f04c16e6b56df24527f6a640e79c86928238.tar.gz the-abstraction-engine-java-a483f04c16e6b56df24527f6a640e79c86928238.zip | |
Major feat: vim
Diffstat (limited to 'core/src/main/java/com/kotcrab')
| -rw-r--r-- | core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java | 33 |
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(); + } +} |
