gnu.jemacs.swing
Class BufferContent

java.lang.Object
  extended by gnu.kawa.swingviews.SwingContent
      extended by gnu.jemacs.swing.BufferContent
All Implemented Interfaces:
javax.swing.text.AbstractDocument.Content

public class BufferContent
extends SwingContent

A Content class that supports Emacs-style Markers. The standard GapContent is close, but unfortunately it only supports inserting *before* marks, which is not the Emacs default. This provides a superset of the Position functionality (except for undo).


Field Summary
 
Fields inherited from class gnu.kawa.swingviews.SwingContent
buffer
 
Constructor Summary
BufferContent()
           
BufferContent(int initialSize)
           
 
Method Summary
static int indexOf(char[] buffer, int start, int limit, char ch)
           
static int lastIndexOf(char[] buffer, int start, int limit, char ch)
          Search for the last occurrence of a character in buffer[limit..start].
 long scan(char target, int start, int end, int count, boolean allowQuit)
          Search in BUF for COUNT instances of the character TARGET between START and END.
 
Methods inherited from class gnu.kawa.swingviews.SwingContent
createPosition, getChars, getString, insertString, insertString, length, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BufferContent

public BufferContent()

BufferContent

public BufferContent(int initialSize)
Method Detail

indexOf

public static int indexOf(char[] buffer,
                          int start,
                          int limit,
                          char ch)

lastIndexOf

public static int lastIndexOf(char[] buffer,
                              int start,
                              int limit,
                              char ch)
Search for the last occurrence of a character in buffer[limit..start].


scan

public final long scan(char target,
                       int start,
                       int end,
                       int count,
                       boolean allowQuit)
Search in BUF for COUNT instances of the character TARGET between START and END. If COUNT is positive, search forwards; END must be >= START. If COUNT is negative, search backwards for the -COUNTth instance; END must be <= START. If COUNT is zero, do anything you please; run rogue, for all I care. If we find COUNT instances, SHORTAGE is zero, and return the position after the COUNTth match. Note that for reverse motion this is not the same as the usual convention for Emacs motion commands. If we don't find COUNT instances before reaching END, set SHORTAGE to the number of TARGETs left unfound, and return (shortage<<32|END).

Returns:
(SHORTAGE<<32|POS)