changeset 1967:b35e1ccac1bb

fix end-of-line
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 10 Jun 2025 18:42:46 -0600
parents f2967524725b
children 2ea6ab849e1a
files src/luan/modules/swing/TextAreaLuan.java
diffstat 1 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/luan/modules/swing/TextAreaLuan.java	Sun Jun 08 09:28:26 2025 -0600
+++ b/src/luan/modules/swing/TextAreaLuan.java	Tue Jun 10 18:42:46 2025 -0600
@@ -13,6 +13,9 @@
 import javax.swing.JTextArea;
 import javax.swing.UIManager;
 import javax.swing.Timer;
+import javax.swing.ActionMap;
+import javax.swing.Action;
+import javax.swing.AbstractAction;
 import javax.swing.text.DefaultCaret;
 import javax.swing.text.BadLocationException;
 import javax.swing.text.View;
@@ -173,6 +176,18 @@
 		;
 	}
 
+	private final Action endParagraphAction = new AbstractAction() {
+		@Override public void actionPerformed(ActionEvent e) {
+			int pos = getCaretPosition();
+			String text = getText();
+			int len = text.length();
+			while (pos < len && text.charAt(pos) != '\n') {
+				pos++;
+			}
+			setCaretPosition(pos);
+		}
+	};
+
 
 	private boolean showWhitespace = false;
 	private List<Range> highlights = Collections.emptyList();
@@ -186,8 +201,11 @@
 			setCaret(flatLafCaret);
 		}
 		getDocument().addDocumentListener(new WeakDocumentListener(ldl));
-		getActionMap().put( DefaultEditorKit.selectWordAction, SwingLuan.selectWordAction );
-		getActionMap().put( DefaultEditorKit.selectLineAction, SwingLuan.selectWordAndDotsAction );
+		ActionMap actions = getActionMap();
+		actions.put( DefaultEditorKit.selectWordAction, SwingLuan.selectWordAction );
+		actions.put( DefaultEditorKit.selectLineAction, SwingLuan.selectWordAndDotsAction );
+		actions.put( DefaultEditorKit.beginLineAction, actions.get(DefaultEditorKit.beginParagraphAction) );
+		actions.put( DefaultEditorKit.endLineAction, endParagraphAction );
 	}
 
 	@Override public void updateUI() {