/jEdit/tags/jedit-4-3-pre5/macros/Editing/Emacs_Next_Line.bsh
Unknown | 43 lines | 37 code | 6 blank | 0 comment | 0 complexity | 0f632ed0ee4fb6cc96a5270dbb13d985 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
- /*
- * Emacs_Next_Line.bsh - Beanshell macro for jEdit that provides
- * 'Emacs-like scrolling. If the caret is at the bottom of the
- * screen the next line is centered on the screen rather than
- * scrolling the whole text area by one line. For machines with
- * slow painting, this can increase scrolling speed.
- *
- * Copyright (C) 2002-2004, Ollie Rutherfurd <oliver@rutherfurd.net>
- *
- * $Id: Emacs_Next_Line.bsh 4995 2004-03-19 15:58:00Z spestov $
- */
- void emacsNextLine(View view){
- // need access to textArea.lastLinePartial
- setAccessibility(true);
- int first = textArea.getFirstLine();
- int caretLine = textArea.getScreenLineOfOffset(textArea.getCaretPosition());
- int visibleLines = textArea.getVisibleLines();
- int electricScroll = textArea.getElectricScroll();
- if(caretLine != -1 && caretLine+1 >=
- (visibleLines - (electricScroll + (textArea.lastLinePartial ? 1 : 0))))
- {
- int newFirst = (first + (visibleLines - electricScroll) / 2);
- textArea.setFirstLine(newFirst);
- }
- textArea.goToNextLine(false);
- }
- emacsNextLine(view);
- /*
- <listitem>
- <para><filename>Emacs_Next_Line.bsh</filename></para>
- <abstract><para>
- Moves the cursor to the next line, centering
- the current line in the middle of the text area
- if the cursor is at the bottom of the text area.
- </para></abstract>
- </listitem>
- */