Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Commit [e6a786] jedit-2-7-pre1 Maximize Restore History

import of auxiliary files for jEdit-2.7pre1

Slava Pestov Slava Pestov 2000-11-11

1 2 3 .. 7 > >> (Page 1 of 7)
added doc/images/dirty.gif
added doc/images/new.gif
added doc/images/normal.gif
added doc/images/readonly.gif
added doc/users-guide/extending-jedit.html
added doc/users-guide/macro-temp.html
added doc/users-guide/mode-preamble.html
added doc/users-guide/mode-rule-eol-span.html
added doc/users-guide/mode-rule-keywords.html
added doc/users-guide/mode-rule-mark-following.html
added doc/users-guide/mode-rule-mark-prev.html
added doc/users-guide/mode-rule-seq.html
added doc/users-guide/mode-rule-whitespace.html
added doc/users-guide/mode-syntax-tokens.html
added doc/users-guide/scrolling.html
added doc/users-guide/using-jedit.html
added macros/User_Guide_Examples
added site-props
removed com/fooware
removed com/fooware/net
removed com/fooware/net/FtpClient.java
removed macros/HTML
removed macros/HTML/H3.macro
removed macros/HTML/H4.macro
removed macros/HTML/Hyperlink.macro
removed macros/HTML/Italics.macro
removed macros/Misc/Close_All_and_Load_Session.macro
removed macros/Search
removed macros/Search/Replace_and_Find_Next.macro
removed macros/Text
removed macros/Text/Transpose_Characters.macro
changed com
changed doc
changed doc/images
changed doc/users-guide
changed doc/users-guide/abbrevs.html
changed doc/users-guide/activity-log.html
changed doc/users-guide/buffer-local.html
changed doc/users-guide/cli-usage.html
changed doc/users-guide/clipboard.html
changed doc/users-guide/closing-exiting.html
changed doc/users-guide/command-line.html
changed doc/users-guide/commenting.html
changed doc/users-guide/conventions.html
changed doc/users-guide/customizing.html
changed doc/users-guide/developing-plugins.html
changed doc/users-guide/entering-text.html
changed doc/users-guide/global-opts.html
changed doc/users-guide/globs.html
changed doc/users-guide/gutter.html
changed doc/users-guide/history.html
changed doc/users-guide/hypersearch.html
changed doc/users-guide/indent.html
changed doc/users-guide/index.html
changed doc/users-guide/installing-plugins.html
changed doc/users-guide/lines.html
changed doc/users-guide/macros.html
changed doc/users-guide/markers.html
changed doc/users-guide/multifile.html
changed doc/users-guide/opening.html
changed doc/users-guide/paragraphs.html
changed doc/users-guide/plugin-actions.html
changed doc/users-guide/plugin-class.html
changed doc/users-guide/plugin-dependencies.html
changed doc/users-guide/plugin-dialogs.html
changed doc/users-guide/plugin-editbus.html
changed doc/users-guide/plugin-info.html
changed doc/users-guide/plugin-logging.html
changed doc/users-guide/plugin-menus.html
changed doc/users-guide/plugin-options.html
changed doc/users-guide/plugin-props.html
changed doc/users-guide/plugin-vfs.html
changed doc/users-guide/plugins.html
changed doc/users-guide/quick-search.html
changed doc/users-guide/regexps.html
changed doc/users-guide/registers.html
changed doc/users-guide/saving.html
changed doc/users-guide/search-replace.html
changed doc/users-guide/selection.html
changed doc/users-guide/server.html
changed doc/users-guide/settings-directory.html
changed doc/users-guide/shortcuts.html
changed doc/users-guide/source-edit.html
changed doc/users-guide/threaded-io.html
changed doc/users-guide/undo-redo.html
changed doc/users-guide/updating-plugins.html
changed doc/users-guide/using-plugins.html
changed doc/users-guide/views.html
changed doc/users-guide/word-index.html
changed doc/users-guide/words.html
changed doc/users-guide/writing-modes.html
changed gnu
changed gnu/regexp
changed gnu/regexp/CharIndexed.java
changed gnu/regexp/RE.java
changed installer
changed installer/Wizard.java
changed installer/install.props
changed installer/logo.gif
changed installer/mk_filelist.sh
changed installer/readme.html
changed jars
changed jars/EditBuddy
changed jars/EditBuddy/EditBuddy.props
changed macros
changed macros/Java
changed macros/Java/Get_Set_Wizard.macro
changed macros/Misc
changed macros/Misc/Open_Selection.macro
changed makefile.jmk
changed org
changed org/gjt
changed org/gjt/sp
changed org/gjt/sp/jedit
changed org/gjt/sp/jedit/Registers.java
copied macros/Java/Create_new_java_applet.macro -> macros/Java/Create_New_Java_Applet.macro
copied macros/Java/Create_new_java_file.macro -> macros/Java/Create_New_Java_File.macro
copied macros/HTML/Bold.macro -> macros/User_Guide_Examples/Bold.macro
copied com/fooware/net/FtpInputStream.java -> gnu/regexp/CharIndexedSegment.java
copied com/fooware/net/FtpOutputStream.java -> doc/users-guide/macro-syntax.html
copied com/fooware/net/FtpReader.java -> doc/users-guide/macro-record.html
copied com/fooware/net/FtpResponse.java -> doc/users-guide/vfs-browser.html
copied com/fooware/net/FtpWriter.java -> doc/users-guide/macro-samples.html
copied doc/users-guide/advanced-features.html -> doc/users-guide/editing.html
copied doc/users-guide/basic-features.html -> doc/users-guide/basics.html
copied doc/users-guide/caret.html -> doc/users-guide/mode-tag-props.html
copied doc/users-guide/creating.html -> doc/users-guide/printing.html
copied doc/users-guide/general-info.html -> doc/users-guide/mode-rule-terminate.html
copied doc/users-guide/installing-modes.html -> doc/users-guide/sessions.html
copied doc/users-guide/modes.html -> doc/users-guide/buffers.html
copied doc/users-guide/printing-sending.html -> doc/users-guide/mode-tag.html
copied doc/users-guide/syntax-hilite.html -> doc/users-guide/bracket-matching.html
copied doc/users-guide/vfs-ftp.html -> doc/users-guide/mode-tag-rules.html
copied doc/users-guide/vfs-url.html -> doc/users-guide/macro-prompt.html
copied doc/users-guide/vfs.html -> doc/users-guide/mode-rule-span.html
copied jars/EditBuddy/settings-dir-cache.html -> macros/User_Guide_Examples/Transpose_Characters.macro
copied macros/HTML/Close_Tag.macro -> site-props/sample.props
copied macros/HTML/H1.macro -> macros/User_Guide_Examples/Hyperlink.macro
copied macros/HTML/H2.macro -> macros/Misc/Close_All_and_Load_Session....macro
doc/images/dirty.gif Diff Switch to side-by-side view
Loading...
doc/images/new.gif Diff Switch to side-by-side view
Loading...
doc/images/normal.gif Diff Switch to side-by-side view
Loading...
doc/images/readonly.gif Diff Switch to side-by-side view
Loading...
doc/users-guide/extending-jedit.html Diff Switch to side-by-side view
Loading...
doc/users-guide/macro-temp.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-preamble.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-rule-eol-span.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-rule-keywords.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-rule-mark-following.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-rule-mark-prev.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-rule-seq.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-rule-whitespace.html Diff Switch to side-by-side view
Loading...
doc/users-guide/mode-syntax-tokens.html Diff Switch to side-by-side view
Loading...
doc/users-guide/scrolling.html Diff Switch to side-by-side view
Loading...
doc/users-guide/using-jedit.html Diff Switch to side-by-side view
Loading...
site-props
Directory.
com/fooware
File was removed.
com/fooware/net
File was removed.
com/fooware/net/FtpClient.java
File was removed.
macros/HTML
File was removed.
macros/HTML/H3.macro
File was removed.
macros/HTML/H4.macro
File was removed.
macros/HTML/Hyperlink.macro
File was removed.
macros/HTML/Italics.macro
File was removed.
macros/Search
File was removed.
macros/Text
File was removed.
com
Directory.
doc
Directory.
doc/images
Directory.
doc/users-guide
Directory.
doc/users-guide/abbrevs.html Diff Switch to side-by-side view
Loading...
doc/users-guide/activity-log.html Diff Switch to side-by-side view
Loading...
doc/users-guide/buffer-local.html Diff Switch to side-by-side view
Loading...
doc/users-guide/cli-usage.html Diff Switch to side-by-side view
Loading...
doc/users-guide/clipboard.html Diff Switch to side-by-side view
Loading...
doc/users-guide/closing-exiting.html Diff Switch to side-by-side view
Loading...
doc/users-guide/command-line.html Diff Switch to side-by-side view
Loading...
doc/users-guide/commenting.html Diff Switch to side-by-side view
Loading...
doc/users-guide/conventions.html Diff Switch to side-by-side view
Loading...
doc/users-guide/customizing.html Diff Switch to side-by-side view
Loading...
doc/users-guide/developing-plugins.html Diff Switch to side-by-side view
Loading...
doc/users-guide/entering-text.html Diff Switch to side-by-side view
Loading...
doc/users-guide/global-opts.html Diff Switch to side-by-side view
Loading...
doc/users-guide/globs.html Diff Switch to side-by-side view
Loading...
doc/users-guide/gutter.html Diff Switch to side-by-side view
Loading...
doc/users-guide/history.html Diff Switch to side-by-side view
Loading...
doc/users-guide/hypersearch.html Diff Switch to side-by-side view
Loading...
doc/users-guide/indent.html Diff Switch to side-by-side view
Loading...
doc/users-guide/index.html Diff Switch to side-by-side view
Loading...
doc/users-guide/installing-plugins.html Diff Switch to side-by-side view
Loading...
doc/users-guide/lines.html Diff Switch to side-by-side view
Loading...
doc/users-guide/macros.html Diff Switch to side-by-side view
Loading...
doc/users-guide/markers.html Diff Switch to side-by-side view
Loading...
doc/users-guide/multifile.html Diff Switch to side-by-side view
Loading...
doc/users-guide/opening.html Diff Switch to side-by-side view
Loading...
doc/users-guide/paragraphs.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-actions.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-class.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-dependencies.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-dialogs.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-editbus.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-info.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-logging.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-menus.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-options.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-props.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugin-vfs.html Diff Switch to side-by-side view
Loading...
doc/users-guide/plugins.html Diff Switch to side-by-side view
Loading...
doc/users-guide/quick-search.html Diff Switch to side-by-side view
Loading...
doc/users-guide/regexps.html Diff Switch to side-by-side view
Loading...
doc/users-guide/registers.html Diff Switch to side-by-side view
Loading...
doc/users-guide/saving.html Diff Switch to side-by-side view
Loading...
doc/users-guide/search-replace.html Diff Switch to side-by-side view
Loading...
doc/users-guide/selection.html Diff Switch to side-by-side view
Loading...
doc/users-guide/server.html Diff Switch to side-by-side view
Loading...
doc/users-guide/settings-directory.html Diff Switch to side-by-side view
Loading...
doc/users-guide/shortcuts.html Diff Switch to side-by-side view
Loading...
doc/users-guide/source-edit.html Diff Switch to side-by-side view
Loading...
doc/users-guide/threaded-io.html Diff Switch to side-by-side view
Loading...
doc/users-guide/undo-redo.html Diff Switch to side-by-side view
Loading...
doc/users-guide/updating-plugins.html Diff Switch to side-by-side view
Loading...
doc/users-guide/using-plugins.html Diff Switch to side-by-side view
Loading...
doc/users-guide/views.html Diff Switch to side-by-side view
Loading...
doc/users-guide/word-index.html Diff Switch to side-by-side view
Loading...
doc/users-guide/words.html Diff Switch to side-by-side view
Loading...
doc/users-guide/writing-modes.html Diff Switch to side-by-side view
Loading...
gnu
Directory.
gnu/regexp
Directory.
gnu/regexp/CharIndexed.java Diff Switch to side-by-side view
Loading...
gnu/regexp/RE.java Diff Switch to side-by-side view
Loading...
installer
Directory.
installer/Wizard.java Diff Switch to side-by-side view
Loading...
installer/install.props Diff Switch to side-by-side view
Loading...
installer/logo.gif Diff Switch to side-by-side view
Loading...
installer/mk_filelist.sh Diff Switch to side-by-side view
Loading...
installer/readme.html Diff Switch to side-by-side view
Loading...
jars
Directory.
jars/EditBuddy
Directory.
jars/EditBuddy/EditBuddy.props Diff Switch to side-by-side view
Loading...
macros
Directory.
macros/Java
Directory.
macros/Java/Get_Set_Wizard.macro Diff Switch to side-by-side view
Loading...
macros/Misc
Directory.
macros/Misc/Open_Selection.macro Diff Switch to side-by-side view
Loading...
makefile.jmk Diff Switch to side-by-side view
Loading...
org
Directory.
org/gjt
Directory.
org/gjt/sp
Directory.
org/gjt/sp/jedit
Directory.
org/gjt/sp/jedit/Registers.java Diff Switch to side-by-side view
Loading...
com/fooware/net/FtpInputStream.java to gnu/regexp/CharIndexedSegment.java
--- a/com/fooware/net/FtpInputStream.java
+++ b/gnu/regexp/CharIndexedSegment.java
@@ -1,48 +1,45 @@
-/*************************************************************************
-* Copyright (C) 1998, Chris Cheetham, fooware                            *
-* Distributed under the GNU General Public License                       *
-*   http://www.fsf.org/copyleft/gpl.html                                 *
-*************************************************************************/
+/*
+ *  gnu/regexp/CharIndexedSegment.java
+ *  Copyright (C) 1998 Wes Biggs
+ *  Copyright (C) 2000 Slava Pestov
+ *
+ *  This library is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Library General Public License as published
+ *  by the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package gnu.regexp;
 
-package com.fooware.net;
+import javax.swing.text.Segment;
 
-import java.io.FilterInputStream;
-import java.io.InputStream;
+class CharIndexedSegment implements CharIndexed {
+  private Segment seg;
+  private int m_index;
 
-import java.io.IOException;
+  CharIndexedSegment(Segment seg, int index) {
+    this.seg = seg;
+    m_index = index;
+  }
 
-/**
-* @author <A HREF="mailto:cheetham@fooware.com">Chris Cheetham</A>
-* @version $Revision$
-**/
-public class FtpInputStream extends FilterInputStream {
+  public char charAt(int index) {
+    return ((m_index + index) < seg.count) ? seg.array[seg.offset
+    	+ m_index + index] : CharIndexed.OUT_OF_BOUNDS;
+  }
 
-    //
-    // constructors
-    //
+  public boolean isValid() {
+    return (m_index < seg.count);
+  }
 
-    /**
-    * Contruct an FtpInputStream for the specified FtpClient.
-    **/
-    FtpInputStream(InputStream istr, FtpClient client) throws IOException {
-        super(istr);
-        this.client = client;
-    }
-
-    /**
-    * Close the underlying Reader and signal the FtpClient that
-    * Reader processing has completed.
-    **/
-    public void close() throws IOException {
-        super.close();
-        client.closeTransferSocket();
-    }
-
-    //
-    // member variables
-    //
-
-    private FtpClient client;
-
+  public boolean move(int index) {
+    return ((m_index += index) < seg.count);
+  }
 }
-
com/fooware/net/FtpOutputStream.java to doc/users-guide/macro-syntax.html
--- a/com/fooware/net/FtpOutputStream.java
+++ b/doc/users-guide/macro-syntax.html
@@ -1,48 +1,103 @@
-/*************************************************************************
-* Copyright (C) 1998, Chris Cheetham, fooware                            *
-* Distributed under the GNU General Public License                       *
-*   http://www.fsf.org/copyleft/gpl.html                                 *
-*************************************************************************/
-
-package com.fooware.net;
-
-import java.io.FilterOutputStream;
-import java.io.OutputStream;
-
-import java.io.IOException;
-
-/**
-* @author <A HREF="mailto:cheetham@fooware.com">Chris Cheetham</A>
-* @version $Revision$
-**/
-public class FtpOutputStream extends FilterOutputStream {
-
-    //
-    // constructors
-    //
-
-    /**
-     * Contruct an FtpOutputStream for the specified FtpClient.
-     **/
-    FtpOutputStream(OutputStream ostr, FtpClient client) throws IOException {
-        super(ostr);
-        this.client = client;
-    }
-
-    /**
-     * Close the underlying Writer and signal the FtpClient that
-     * Writer processing has completed.
-     **/
-    public void close() throws IOException {
-        super.close();
-        client.closeTransferSocket();
-    }
-
-    //
-    // member variables
-    //
-
-    private FtpClient client;
-
-}
-
+<!DOCTYPE HTML PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN">
+<HTML
+><HEAD
+><TITLE
+>Macro File Syntax</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet"><LINK
+REL="HOME"
+TITLE="jEdit 2.7 User's Guide"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="Macros"
+HREF="macros.html"><LINK
+REL="PREVIOUS"
+TITLE="Prompting for Input"
+HREF="macro-prompt.html"><LINK
+REL="NEXT"
+TITLE="Some Sample Macros"
+HREF="macro-samples.html"></HEAD
+><BODY
+BGCOLOR="#FFFFFF"
+><DIV
+CLASS="NAVHEADER"
+><H1
+>jEdit 2.7 User's Guide</H1
+><P
+><A
+HREF="macro-samples.html"
+>Next</A
+>, <A
+HREF="macro-prompt.html"
+>Prev</A
+></P
+><H2
+>Chapter 10. Macros</H2
+><HR></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="MACRO-SYNTAX"
+>Macro File Syntax</A
+></H1
+><P
+>   Macro files have very simple syntax, with
+   one command per line. Lines starting with a hash ("#") are
+   ignored by the macro interpreter and can be used to add commentary
+   to macros, etc. Non-comment lines consist of an action name and
+   optional argument. An at character ("@") separates
+   the action name and argument.
+  </P
+><P
+>   Each jEdit command has a corresponding action name. Although no
+   documentation for the built-in editor actions exists, you can use
+   the command line's action completion feature (see <A
+HREF="command-line.html"
+>the section called <I
+>The jEdit Command Line</I
+> in Chapter 4</A
+>)
+   to fool around with different actions.
+  </P
+><P
+>   In a command argument, strings of the form <TT
+CLASS="FILENAME"
+>$<TT
+CLASS="REPLACEABLE"
+><I
+>x</I
+></TT
+></TT
+>
+   will be replaced with the contents of register <TT
+CLASS="REPLACEABLE"
+><I
+>x</I
+></TT
+> when the
+   macro is executed. This is a very powerful feature; you could, for example,
+   write a macro that prompts the user for some input, does something
+   to it, and then performs a search, based on that input.
+  </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR><A
+HREF="index.html"
+>Home</A
+>, <A
+HREF="macros.html"
+>Up</A
+><BR><A
+HREF="macro-prompt.html"
+>Prev</A
+>: Prompting for Input<BR><A
+HREF="macro-samples.html"
+>Next</A
+>: Some Sample Macros<BR></DIV
+></BODY
+></HTML
+>
com/fooware/net/FtpReader.java to doc/users-guide/macro-record.html
--- a/com/fooware/net/FtpReader.java
+++ b/doc/users-guide/macro-record.html
@@ -1,65 +1,143 @@
-/*************************************************************************
-* Copyright (C) 1998, Chris Cheetham, fooware                            *
-* Distributed under the GNU General Public License                       *
-*   http://www.fsf.org/copyleft/gpl.html                                 *
-*************************************************************************/
-
-package com.fooware.net;
-
-import java.io.FilterReader;
-import java.io.Reader;
-
-import java.io.IOException;
-
-/**
-* This is an object that can be used as a java.io.Reader for the
-* reading of data from an FTP server.  You do not construct one
-* explicitly, but via an FtpClient:<BR>
-* <CODE><PRE>
-* FtpClient ftp = new FtpClient();
-* ftp.connect(someServer);
-* ftp.userName(myName);
-* ftp.password(myPassword);
-* ftp.dataPort();
-* <B>FtpReader in = ftp.list();
-* while (in.ready())
-*   System.out.println(in.readLine());
-* in.close();</B>
-* </PRE></CODE>
-* Note: unlike other Readers, it is important to explicitly close this
-* Reader when through.  This signals the FtpClient to get a response
-* from the FTP server.
-* @author <A HREF="mailto:cheetham@fooware.com">Chris Cheetham</A>
-* @version $Revision$
-**/
-public class FtpReader extends FilterReader {
-
-    //
-    // constructors
-    //
-
-    /**
-    * Contruct an FtpReader for the specified FtpClient.
-    **/
-    FtpReader(Reader in, FtpClient client) throws IOException {
-        super(in);
-        this.client = client;
-    }
-
-    /**
-    * Close the underlying Reader and signal the FtpClient that
-    * Reader processing has completed.
-    **/
-    public void close() throws IOException {
-        super.close();
-        client.closeTransferSocket();
-    }
-
-    //
-    // member variables
-    //
-
-    private FtpClient client;
-
-}
-
+<!DOCTYPE HTML PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN">
+<HTML
+><HEAD
+><TITLE
+>Recording Macros</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet"><LINK
+REL="HOME"
+TITLE="jEdit 2.7 User's Guide"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="Macros"
+HREF="macros.html"><LINK
+REL="PREVIOUS"
+TITLE="Macros"
+HREF="macros.html"><LINK
+REL="NEXT"
+TITLE="Temporary Macros"
+HREF="macro-temp.html"></HEAD
+><BODY
+BGCOLOR="#FFFFFF"
+><DIV
+CLASS="NAVHEADER"
+><H1
+>jEdit 2.7 User's Guide</H1
+><P
+><A
+HREF="macro-temp.html"
+>Next</A
+>, <A
+HREF="macros.html"
+>Prev</A
+></P
+><H2
+>Chapter 10. Macros</H2
+><HR></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="MACRO-RECORD"
+>Recording Macros</A
+></H1
+><P
+>   <SPAN
+CLASS="GUIMENU"
+>Macros</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Record Macro</SPAN
+> (keyboard
+   equivalent:
+   <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>M</B
+>
+   <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>R</B
+>) prompts for
+   a macro name, and begins recording to a file with that name
+   suffixed with ".macro".
+  </P
+><P
+>   While a recording is in progress, "(recording)" is
+   displayed in the status bar, instead of the caret position information.
+   Currently, jEdit records key strokes, commands invoked from
+   the menu bar, and tool bar clicks. Caret movement and selection performed
+   using the mouse is <I
+CLASS="EMPHASIS"
+>not</I
+> recorded; to move the caret or
+   select text from a macro, use the text selection commands and arrow
+   keys.
+  </P
+><P
+>   Search and replace operations can be recorded in macros.
+   When search and replace operations are played back,
+   the dialog boxes are not displayed, but the actual search and
+   replacement is done.
+  </P
+><P
+>   <SPAN
+CLASS="GUIMENU"
+>Macros</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Stop Recording</SPAN
+> (keyboard
+   equivalent:
+   <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>M</B
+>
+   <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>S</B
+>) stops any
+   recording currently in progress. It also switches to the buffer where
+   the macro was being recorded, giving you a chance to check over the
+   commands
+   and make any necessary changes.
+   When you are happy with the macro, simply
+   save it and it will automatically appear in the <SPAN
+CLASS="GUIMENU"
+>Macros</SPAN
+>
+   menu. If you wish to discard the macro, close it without
+   saving.
+  </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR><A
+HREF="index.html"
+>Home</A
+>, <A
+HREF="macros.html"
+>Up</A
+><BR><A
+HREF="macros.html"
+>Prev</A
+>: Macros<BR><A
+HREF="macro-temp.html"
+>Next</A
+>: Temporary Macros<BR></DIV
+></BODY
+></HTML
+>
com/fooware/net/FtpResponse.java to doc/users-guide/vfs-browser.html
--- a/com/fooware/net/FtpResponse.java
+++ b/doc/users-guide/vfs-browser.html
@@ -1,203 +1,322 @@
-/*************************************************************************
-* Copyright (C) 1998, Chris Cheetham, fooware                            *
-* Distributed under the GNU General Public License                       *
-*   http://www.fsf.org/copyleft/gpl.html                                 *
-*************************************************************************/
-
-package com.fooware.net;
-
-import java.io.InputStream;
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-
-import java.io.IOException;
-
-
-/**
-* This class represents an FTP reply as outlined in section 4.2 of RFC959,
-* authors J. Postel and J. Reynolds, 1985.  The RFC can be viewed in its 
-* entirety at <A HREF="http://sunsite.auc.dk/RFC/rfc/rfc959.html">http://sunsite.auc.dk/RFC/rfc/rfc959.html</A>.
-* <P>
-* @author <A HREF="mailto:cheetham@fooware.com">Chris Cheetham</A>
-* @version $Revision$
-**/
-public class FtpResponse {
-
-    //
-    // constrcutors
-    //
-
-    /**
-    * Construct a new FtpResponse, whose contents will be
-    * derived from the BufferedReader.
-    **/
-    FtpResponse(BufferedReader in) throws IOException {
-        setMessage(in);
-    }
-
-    FtpResponse(InputStream istr) throws IOException {
-        setMessage(istr);
-    }
-
-    //
-    // interface
-    //
-
-    /**
-    * Return the reply from the FTP server in its entirety.
-    **/
-    public String getMessage() {
-        return message;
-    }
-
-    /**
-    * Return the 3-digit return code that is also the first 3 characters
-    * of the FTP reply.
-    **/
-    public String getReturnCode() {
-        return returnCode;
-    }
-
-    /**
-    * Return a String representation of this object.  Return the same
-    * as getMessage().
-    **/
-    public String toString() {
-        return message;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the first character of the return
-    * code indicates a positive prelimary reply, as outlined in RFC959.
-    **/
-    public boolean isPositivePreliminary() {
-        return returnCode.charAt(0) == REPLY_POSITIVE_PRELIMINARY;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the first character of the return
-    * code indicates a positive completion reply, as outlined in RFC959.
-    **/
-    public boolean isPositiveCompletion() {
-        return returnCode.charAt(0) == REPLY_POSITIVE_COMPLETION;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the first character of the return
-    * code indicates a positive intermediary reply, as outlined in RFC959.
-    **/
-    public boolean isPositiveIntermediary() {
-        return returnCode.charAt(0) == REPLY_POSITIVE_INTERMEDIARY;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the first character of the return
-    * code indicates a transient negative reply, as outlined in RFC959.
-    **/
-    public boolean isTransientNegativeCompletion() {
-        return returnCode.charAt(0) == REPLY_TRANSIENT_NEGATIVE_COMPLETION;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the first character of the return
-    * code indicates a permanent negative reply, as outlined in RFC959.
-    **/
-    public boolean isPermanentNegativeCompletion() {
-        return returnCode.charAt(0) == REPLY_PERMANENT_NEGATIVE_COMPLETION;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the second character of the return
-    * code indicates a reply pertaining to syntax (or maybe just superfluous), 
-    * as outlined in RFC959.
-    **/
-    public boolean isRegardingSyntax() {
-        return returnCode.charAt(1) == REGARDING_SYNTAX;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the second character of the return
-    * code indicates a reply pertaining to information, as outlined in RFC959.
-    **/
-    public boolean isRegardingInformation() {
-        return returnCode.charAt(1) == REGARDING_INFORMATION;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the second character of the return
-    * code indicates a reply pertaining to connection, as outlined in RFC959.
-    **/
-    public boolean isRegardingConnection() {
-        return returnCode.charAt(1) == REGARDING_CONNECTION;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the second character of the return
-    * code indicates a reply pertaining to authentication, as outlined in 
-    * RFC959.
-    **/
-    public boolean isRegardingAuthentication() {
-        return returnCode.charAt(1) == REGARDING_AUTHENTICATION;
-    }
-
-    /**
-    * Returns <CODE>true</CODE> if the second character of the return
-    * code indicates a reply pertaining to file system, as outlined in 
-    * RFC959.
-    **/
-    public boolean isRegardingFileSystem() {
-        return returnCode.charAt(1) == REGARDING_FILE_SYSTEM;
-    }
-
-    public static final char REPLY_POSITIVE_PRELIMINARY = '1';
-    public static final char REPLY_POSITIVE_COMPLETION = '2';
-    public static final char REPLY_POSITIVE_INTERMEDIARY = '3';
-    public static final char REPLY_TRANSIENT_NEGATIVE_COMPLETION = '4';
-    public static final char REPLY_PERMANENT_NEGATIVE_COMPLETION = '5';
-
-    public static final char REGARDING_SYNTAX = '0';
-    public static final char REGARDING_INFORMATION = '1';
-    public static final char REGARDING_CONNECTION = '2';
-    public static final char REGARDING_AUTHENTICATION = '3';
-    public static final char REGARDING_UNSPECIFIED = '4';
-    public static final char REGARDING_FILE_SYSTEM = '5';
-
-    //
-    // implementation
-    //
-
-    private void setMessage(BufferedReader in) throws IOException {
-        StringBuffer buffer = new StringBuffer();
-        String line;
-        do
-        {
-            line = in.readLine();
-            if (line == null) break;
-            if (returnCode == null)
-                returnCode = line.substring(0, 3);
-            buffer.append(line);
-            buffer.append('\n');
-        }
-        while (!(line.length() > 3 && line.startsWith(returnCode + " ")));
-        message = buffer.toString();
-    }
-
-    private void setMessage(InputStream istr) throws IOException {
-        ByteArrayOutputStream ostr = new ByteArrayOutputStream();
-        byte[] buffer = new byte[1024];
-        while (true) {
-            int read = istr.read(buffer);
-            if (read == -1) {
-                break;
-            }
-            ostr.write(buffer, 0, read);
-        }
-        ostr.close();
-        message = ostr.toString();
-    }
-
-    private String message;
-    private String returnCode;
-
-}
-
+<!DOCTYPE HTML PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN">
+<HTML
+><HEAD
+><TITLE
+>The File System Browser</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet"><LINK
+REL="HOME"
+TITLE="jEdit 2.7 User's Guide"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="Working With Buffers"
+HREF="buffers.html"><LINK
+REL="PREVIOUS"
+TITLE="Saving Files"
+HREF="saving.html"><LINK
+REL="NEXT"
+TITLE="Multithreaded I/O"
+HREF="threaded-io.html"></HEAD
+><BODY
+BGCOLOR="#FFFFFF"
+><DIV
+CLASS="NAVHEADER"
+><H1
+>jEdit 2.7 User's Guide</H1
+><P
+><A
+HREF="threaded-io.html"
+>Next</A
+>, <A
+HREF="saving.html"
+>Prev</A
+></P
+><H2
+>Chapter 3. Working With Buffers</H2
+><HR></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="VFS-BROWSER"
+>The File System Browser</A
+></H1
+><P
+>   The <SPAN
+CLASS="GUIMENUITEM"
+>Open File</SPAN
+> and <SPAN
+CLASS="GUIMENUITEM"
+>Save As</SPAN
+> dialog boxes
+   both show a file system browser embedded in a dialog box.
+   <SPAN
+CLASS="GUIMENU"
+>Utilities</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>File System Browser</SPAN
+> displays a
+   standalone version. By default, the standalone browser is shown in
+   a separate frame, but if you prefer, you can set it to be docked into
+   the current view in the
+   <SPAN
+CLASS="GUIBUTTON"
+>Docking</SPAN
+> pane of the
+   <SPAN
+CLASS="GUIMENU"
+>Utilities</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Global
+   Options</SPAN
+>.
+  </P
+><P
+>   The browser consists of a tool bar, a path field,
+   a filename filter field, and the file tree itself. The file tree allows
+   an entire directory hierarchy to be viewed at once; try clicking
+   on the expander control next to directories in the tree.
+  </P
+><P
+>   The toolbar buttons perform the following actions, from left to right:
+  </P
+><P
+></P
+><UL
+><LI
+><P
+><SPAN
+CLASS="GUIBUTTON"
+>Up</SPAN
+> - takes you to the current
+   directory's parent. The popup arrow next to this button displays a
+   menu listing all the parent directories of the current directory,
+   up to the filesystem root</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIBUTTON"
+>Reload</SPAN
+> - updates the file list by
+   reloading the directory</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIBUTTON"
+>Local Drives</SPAN
+> - displays all
+   local drives in the file list. On Windows, this will be a list of
+   drive letters; on Unix, the list will only contain one entry, the
+   root directory (<TT
+CLASS="FILENAME"
+>/</TT
+>)</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIBUTTON"
+>Home Directory</SPAN
+> - takes you to your
+   home directory, the location of which is system-specific</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIBUTTON"
+>Parent Directory of Current Buffer</SPAN
+> -
+   take you to the directory containing the current buffer (if the current
+   view is split into multiple panes, the "current buffer" is
+   defined as the one that most recently had keyboard focus)</P
+></LI
+></UL
+><P
+>   The <SPAN
+CLASS="GUIMENU"
+>More</SPAN
+> menu contains several less frequently-used commands:
+  </P
+><P
+></P
+><UL
+><LI
+><P
+><SPAN
+CLASS="GUIMENUITEM"
+>Show Hidden Files</SPAN
+> - if selected, hidden
+   files will be shown in the file list. The definition of a hidden file
+   is system-specific; on Windows, files with the "h" attribute
+   are hidden. On Unix, files whose names begin with "." are
+   hidden</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIMENUITEM"
+>New Directory</SPAN
+> - prompts for a directory
+   name and creates a directory with that name.
+   Note that not all virtual filesystems may support this operation (the
+   local and FTP filesystems do)
+   </P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIMENUITEM"
+>Add to Favorites</SPAN
+> - adds the currently
+   selected (or the currently displayed, if there is nothing
+   selected) directory to the favorites list</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="GUIMENUITEM"
+>Go to Favorites</SPAN
+> - displays the favorites
+   list. To remove a directory from the list, right-click on it and select
+   <SPAN
+CLASS="GUIMENUITEM"
+>Delete</SPAN
+> from the resulting popup menu</P
+></LI
+></UL
+><P
+>   The filter text field allows you to specify a subset
+   of the current directory to display in the form of a glob pattern.
+   See <A
+HREF="globs.html"
+>Appendix F</A
+> for more information about glob patterns.
+   Both the path and filter fields support a history;
+   see <A
+HREF="history.html"
+>Appendix B</A
+> for
+   details.
+  </P
+><P
+>   Right-clicking on a file in the VFS browser displays a popup menu, containing
+   commands for manipulating that file, in addition to all the commands in the
+   <SPAN
+CLASS="GUIBUTTON"
+>More</SPAN
+> menu.
+   If the buffer is already open, the popup will have commands to
+   display it in the current view, display it in a new view, or close it.
+   Unopened file popups have items for opening, deleting and renaming.
+   Attempting to delete a non-empty directory will give an error; only
+   empty directories can be deleted.
+  </P
+><P
+>   Several aspects of the VFS browser can be customized in the
+   <SPAN
+CLASS="GUIMENU"
+>Utilities</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Global Options</SPAN
+> dialog box.
+  </P
+><TABLE
+CLASS="SIDEBAR"
+BORDER="1"
+CELLPADDING="5"
+><TR
+><TD
+><DIV
+CLASS="SIDEBAR"
+><P
+></P
+><P
+>    The VFS browser can be navigated from the keyboard.
+    The following keystrokes are supported:
+    <P
+></P
+><UL
+><LI
+><P
+><B
+CLASS="KEYCAP"
+>Enter</B
+> - opens the currently selected file or
+     directory</P
+></LI
+><LI
+><P
+><B
+CLASS="KEYCAP"
+>Left</B
+> - goes to the current directory's parent
+     </P
+></LI
+><LI
+><P
+><B
+CLASS="KEYCAP"
+>Up</B
+> - selects previous file in list
+     </P
+></LI
+><LI
+><P
+><B
+CLASS="KEYCAP"
+>Down</B
+> - selects next file in list
+     </P
+></LI
+><LI
+><P
+>Typing the first few characters of
+     a file's name will select that file
+     </P
+></LI
+></UL
+>
+    Note that the file list must have keyboard focus for these keys to work.
+   </P
+><P
+></P
+></DIV
+></TD
+></TR
+></TABLE
+><DIV
+CLASS="FIGURE"
+><P
+><B
+>Figure 3-4. The stand-alone VFS Browser</B
+></P
+><P
+><IMG
+SRC="../images/window-vfs-browser.gif"></P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR><A
+HREF="index.html"
+>Home</A
+>, <A
+HREF="buffers.html"
+>Up</A
+><BR><A
+HREF="saving.html"
+>Prev</A
+>: Saving Files<BR><A
+HREF="threaded-io.html"
+>Next</A
+>: Multithreaded I/O<BR></DIV
+></BODY
+></HTML
+>
com/fooware/net/FtpWriter.java to doc/users-guide/macro-samples.html
--- a/com/fooware/net/FtpWriter.java
+++ b/doc/users-guide/macro-samples.html
@@ -1,65 +1,164 @@
-/*************************************************************************
-* Copyright (C) 1998, Chris Cheetham, fooware                            *
-* Distributed under the GNU General Public License                       *
-*   http://www.fsf.org/copyleft/gpl.html                                 *
-*************************************************************************/
+<!DOCTYPE HTML PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN">
+<HTML
+><HEAD
+><TITLE
+>Some Sample Macros</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet"><LINK
+REL="HOME"
+TITLE="jEdit 2.7 User's Guide"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="Macros"
+HREF="macros.html"><LINK
+REL="PREVIOUS"
+TITLE="Macro File Syntax"
+HREF="macro-syntax.html"><LINK
+REL="NEXT"
+TITLE="Developing Plugins"
+HREF="developing-plugins.html"></HEAD
+><BODY
+BGCOLOR="#FFFFFF"
+><DIV
+CLASS="NAVHEADER"
+><H1
+>jEdit 2.7 User's Guide</H1
+><P
+><A
+HREF="developing-plugins.html"
+>Next</A
+>, <A
+HREF="macro-syntax.html"
+>Prev</A
+></P
+><H2
+>Chapter 10. Macros</H2
+><HR></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="MACRO-SAMPLES"
+>Some Sample Macros</A
+></H1
+><P
+>   Here is a simple macro that swaps two
+   characters on either side of the caret:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+># Get rid of selection, if any
+select-none
 
-package com.fooware.net;
+# Get character before caret and cut it to the clipboard
+# If the current line looks like: hello wol|rd, with caret at |
+# It will now look like:          hello wo|rd
+select-prev-char
+cut
 
-import java.io.FilterWriter;
-import java.io.Writer;
+# Now, position the caret after the second character
+# If the current line looks like: hello wo|rd
+# It will now look like:          hello wor|d
+next-char
 
-import java.io.IOException;
+# Finally, paste the character that was cut at the start
+# If the current line looks like: hello wor|d
+# It will now look like:          hello worl|d
+paste
 
-/**
-* This is an object that can be used as a java.io.Writer for the
-* writing of data to an FTP server.  You do not construct one
-* explicitly, but via an FtpClient:<BR>
-* <CODE><PRE>
-* FtpClient ftp = new FtpClient();
-* ftp.connect(someServer);
-* ftp.userName(myName);
-* ftp.password(myPassword);
-* ftp.dataPort();
-* <B>FtpWriter out = ftp.store(targetFile);
-* while (someReader.ready())
-*   out.write(someReader.read());
-* in.close();</B>
-* </PRE></CODE>
-* Note: unlike other Writers, it is important to explicitly close this
-* Writer when through.  This signals the FtpClient to get a response
-* from the FTP server.
-* @author <A HREF="mailto:cheetham@fooware.com">Chris Cheetham</A>
-* @version $Revision$
-**/
-public class FtpWriter extends FilterWriter {
+# Done!</PRE
+></TD
+></TR
+></TABLE
+><P
+>   Here is another trivial macro that surrounds the selected
+   text with HTML <SPAN
+CLASS="MARKUP"
+>&lt;B&gt;</SPAN
+> tags (if the <TT
+CLASS="FILENAME"
+>$$</TT
+> bit looks
+   a bit strange, keep in mind that <TT
+CLASS="FILENAME"
+>$<TT
+CLASS="REPLACEABLE"
+><I
+>x</I
+></TT
+></TT
+>
+   is expanded to the contents of the register named <TT
+CLASS="REPLACEABLE"
+><I
+>x</I
+></TT
+>,
+   and that the <TT
+CLASS="FILENAME"
+>$</TT
+> register is an alias for the clipboard):
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>cut
+insert-char@&lt;B&gt;$$&lt;/B&gt;</PRE
+></TD
+></TR
+></TABLE
+><P
+>   This final example demonstrates prompting the user for input in
+   a macro:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+># Prompt the user for a URL and store it in register 'a'
+input@a@Enter a URL:
 
-    //
-    // constructors
-    //
+# Prompt for link text and store it in register 'b'
+input@b@Enter link text:
 
-    /**
-     * Contruct an FtpWriter for the specified FtpClient.
-     **/
-    FtpWriter(Writer out, FtpClient client) throws IOException {
-        super(out);
-        this.client = client;
-    }
-
-    /**
-     * Close the underlying Writer and signal the FtpClient that
-     * Writer processing has completed.
-     **/
-    public void close() throws IOException {
-        super.close();
-        client.closeTransferSocket();
-    }
-
-    //
-    // member variables
-    //
-
-    private FtpClient client;
-
-}
-
+# Insert &lt;A&gt; tag
+insert-char@&lt;A HREF="$a"&gt;$b&lt;/A&gt;</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR><A
+HREF="index.html"
+>Home</A
+>, <A
+HREF="macros.html"
+>Up</A
+><BR><A
+HREF="macro-syntax.html"
+>Prev</A
+>: Macro File Syntax<BR><A
+HREF="developing-plugins.html"
+>Next</A
+>: Developing Plugins<BR></DIV
+></BODY
+></HTML
+>
doc/users-guide/advanced-features.html to doc/users-guide/editing.html
--- a/doc/users-guide/advanced-features.html
+++ b/doc/users-guide/editing.html
@@ -2,31 +2,34 @@
 <HTML
 ><HEAD
 ><TITLE
->Advanced Features</TITLE
+>Editing Text</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
+REL="UP"
+TITLE="Using jEdit"
+HREF="using-jedit.html"><LINK
 REL="PREVIOUS"
-TITLE="Closing Files and Exiting jEdit"
-HREF="closing-exiting.html"><LINK
+TITLE="Editor Sessions"
+HREF="sessions.html"><LINK
 REL="NEXT"
-TITLE="Working With Words"
-HREF="words.html"></HEAD
+TITLE="Selecting Text"
+HREF="selection.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
-><P
-><A
-HREF="words.html"
+>jEdit 2.7 User's Guide</H1
+><P
+><A
+HREF="selection.html"
 >Next</A
 >, <A
-HREF="closing-exiting.html"
+HREF="sessions.html"
 >Prev</A
 ></P
 ><HR></DIV
@@ -34,8 +37,8 @@
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="ADVANCED-FEATURES"
->Chapter 4. Advanced Features</A
+NAME="EDITING"
+>Chapter 4. Editing Text</A
 ></H1
 ><DIV
 CLASS="TOC"
@@ -46,8 +49,33 @@
 ></DT
 ><DT
 ><A
-HREF="advanced-features.html#SESSIONS"
->Editor Sessions</A
+HREF="editing.html#CARET"
+>The Caret</A
+></DT
+><DT
+><A
+HREF="selection.html"
+>Selecting Text</A
+></DT
+><DT
+><A
+HREF="entering-text.html"
+>Inserting and Deleting Text</A
+></DT
+><DT
+><A
+HREF="undo-redo.html"
+>Undo and Redo</A
+></DT
+><DT
+><A
+HREF="clipboard.html"
+>The Clipboard</A
+></DT
+><DT
+><A
+HREF="scrolling.html"
+>Scrolling</A
 ></DT
 ><DT
 ><A
@@ -81,135 +109,85 @@
 ></DT
 ><DT
 ><A
-HREF="macros.html"
->Macros</A
-></DT
-><DT
-><A
 HREF="command-line.html"
 >The jEdit Command Line</A
 ></DT
 ></DL
 ></DIV
-><P
->  While you can get by only using the features outlined in the previous
-  chapter, you will be much more productive if you learn to harness the
-  full power of jEdit.
- </P
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="SESSIONS"
->Editor Sessions</A
+NAME="CARET"
+>The Caret</A
 ></H1
 ><P
->   
-   
-   
-   
-   
-   
-   
-   
-   When working on a project, it can be convenient to save
-   a list of open files, and re-open those files at a later time.
-   jEdit's saved sessions do exactly that.
-  </P
-><P
->   Sessions are plain text files with the extension
-   <TT
-CLASS="FILENAME"
->.session</TT
->, stored in the
-   <TT
-CLASS="FILENAME"
->.jedit/sessions</TT
-> subdirectory of the user's home directory.
-   The session named
-   <TT
-CLASS="FILENAME"
->default.session</TT
-> is loaded on startup, and the list of
-   open files is recorded into it when jEdit exits. The end result is
-   that open files are retained if jEdit is closed and reopened. This
-   "default" session can be disabled in the
-   <SPAN
-CLASS="GUIBUTTON"
->Editor</SPAN
-> pane of the
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Global Options</SPAN
+>   To aid in locating the caret, the current line is drawn with a slightly
+   different background color.
+   Moving the caret closer than three lines from the top or bottom of the
+   viewscreen will scroll the text area to make at least three lines above
+   and below the caret visible. This
+   feature is called <I
+CLASS="FIRSTTERM"
+>electric scrolling</I
 >.
   </P
 ><P
->   <SPAN
-CLASS="GUIMENU"
->File</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Load Session</SPAN
-> can be used to
-   load a session while jEdit is running, and
-   <SPAN
-CLASS="GUIMENU"
->File</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Save Session</SPAN
-> saves the list of
-   open files to a session you specify.
+>   The most direct way to move the caret is to click the
+   mouse where you want it to be positioned. It can also be moved using the
+   keyboard;
+   The <B
+CLASS="KEYCAP"
+>Left</B
+>, <B
+CLASS="KEYCAP"
+>Right</B
+>, <B
+CLASS="KEYCAP"
+>Up</B
+> and <B
+CLASS="KEYCAP"
+>Down</B
+> keys
+   move the caret in the respective direction.
+   The <B
+CLASS="KEYCAP"
+>PageUp</B
+> and <B
+CLASS="KEYCAP"
+>PageDown</B
+> keys move the caret up
+   and down one viewscreen, respectively.
   </P
 ><P
->   A session to load can be specified on the command line using the
+>   When pressed once, the <B
+CLASS="KEYCAP"
+>Home</B
+> key will go to the first
+   non-whitespace character on the current line. Pressing it multiple
+   times will first move the caret to the beginning of the line, then to
+   the first visible line. <B
+CLASS="KEYCAP"
+>End</B
+> behaves in a
+   similar manner, going to the last non-whitespace character, the end of
+   the line, and then to the last visible line.
    <B
-CLASS="COMMAND"
->-session</B
-> switch. The <B
-CLASS="COMMAND"
->-nosession</B
->
-   switch will instruct jEdit not to load any sessions, and
-   open an <TT
-CLASS="FILENAME"
->Untitled</TT
-> file instead.
-   For example, the following will start jEdit and open
-   all files in the <TT
-CLASS="FILENAME"
->website</TT
-> session (it is not
-   necessary to specify the <TT
-CLASS="FILENAME"
->.session</TT
->
-   suffix):
-   <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-><TT
-CLASS="PROMPT"
->$</TT
-> <TT
-CLASS="USERINPUT"
-><B
->jedit -session=website</B
-></TT
-></PRE
-></TD
-></TR
-></TABLE
->
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>Home</B
+> and
+   <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>End</B
+> move the caret
+   to the beginning and end of the buffer, respectively.
   </P
 ></DIV
 ></DIV
@@ -218,13 +196,16 @@
 ><HR><A
 HREF="index.html"
 >Home</A
+>, <A
+HREF="using-jedit.html"
+>Up</A
 ><BR><A
-HREF="closing-exiting.html"
+HREF="sessions.html"
 >Prev</A
->: Closing Files and Exiting jEdit<BR><A
-HREF="words.html"
+>: Editor Sessions<BR><A
+HREF="selection.html"
 >Next</A
->: Working With Words<BR></DIV
+>: Selecting Text<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/basic-features.html to doc/users-guide/basics.html
--- a/doc/users-guide/basic-features.html
+++ b/doc/users-guide/basics.html
@@ -2,28 +2,31 @@
 <HTML
 ><HEAD
 ><TITLE
->Basic Features</TITLE
+>Basic Concepts</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
+REL="UP"
+TITLE="Using jEdit"
+HREF="using-jedit.html"><LINK
 REL="PREVIOUS"
 TITLE="Keyboard Shortcuts"
 HREF="shortcuts.html"><LINK
 REL="NEXT"
-TITLE="Opening Files"
-HREF="opening.html"></HEAD
+TITLE="Working With Views"
+HREF="views.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
-><P
-><A
-HREF="opening.html"
+>jEdit 2.7 User's Guide</H1
+><P
+><A
+HREF="views.html"
 >Next</A
 >, <A
 HREF="shortcuts.html"
@@ -34,8 +37,8 @@
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="BASIC-FEATURES"
->Chapter 3. Basic Features</A
+NAME="BASICS"
+>Chapter 2. Basic Concepts</A
 ></H1
 ><DIV
 CLASS="TOC"
@@ -46,53 +49,8 @@
 ></DT
 ><DT
 ><A
-HREF="basic-features.html#STARTING"
+HREF="basics.html#STARTING"
 >Starting jEdit</A
-></DT
-><DT
-><A
-HREF="opening.html"
->Opening Files</A
-></DT
-><DT
-><A
-HREF="creating.html"
->Creating New Files</A
-></DT
-><DT
-><A
-HREF="caret.html"
->The Caret</A
-></DT
-><DT
-><A
-HREF="selection.html"
->Selecting Text</A
-></DT
-><DT
-><A
-HREF="entering-text.html"
->Entering and Deleting Text</A
-></DT
-><DT
-><A
-HREF="undo-redo.html"
->Undo and Redo</A
-></DT
-><DT
-><A
-HREF="clipboard.html"
->The Clipboard</A
-></DT
-><DT
-><A
-HREF="saving.html"
->Saving Files</A
-></DT
-><DT
-><A
-HREF="printing-sending.html"
->Printing Files</A
 ></DT
 ><DT
 ><A
@@ -111,13 +69,6 @@
 ></DT
 ></DL
 ></DIV
-><P
->  This chapter describes jEdit's basic features, such as
-  opening, saving, printing and simple editing.
-  jEdit works in a similar fashion to most MacOS or Windows text
-  editors; if you have used one before, you will be able to start
-  working in jEdit immediately.
- </P
 ><DIV
 CLASS="SECT1"
 ><H1
@@ -128,27 +79,19 @@
 ></H1
 ><P
 >   Exactly how jEdit is started depends on your operating system;
-   most often you would type "jedit" at the command line
-   or double click on the jEdit icon (or select it from a menu,
-   or whatever). jEdit will open any files specified on the command line
-   or dropped onto its icon. It is also possible to specify a line or marker
-   to locate the caret on from the command line; see <A
-HREF="cli-usage.html"
->Appendix C</A
->.
-   If no initial file names are given, jEdit will load any files that
-   were open in the previous session.
-  </P
-><P
->   Once started, jEdit will display a "splash
-   screen" with the jEdit logo and a progress bar that advances
-   while jEdit loads. 
+   on Unix systems, you might type "jedit" at the command line,
+   or select jEdit from a menu; on Windows, you might
+   double click on the jEdit icon. By default,
+   jEdit, when started will load any files that
+   were open in the previous session. A specific file to edit can be specified
+   on the command line, or by dropping a file onto the jEdit icon.
+   jEdit displays a "splash screen" while starting up.
   </P
 ><DIV
 CLASS="FIGURE"
 ><P
 ><B
->Figure 3-1. The jEdit splash screen</B
+>Figure 2-1. The jEdit splash screen</B
 ></P
 ><P
 ><IMG
@@ -170,7 +113,7 @@
     that jEdit features that make HTTP connections will work), install
     plugins using the plugin manager (see <A
 HREF="plugins.html"
->Chapter 10</A
+>Chapter 8</A
 > for
     more information about plugins) and give you some pointers to
     further information. Similarly, after upgrading to a new jEdit version,
@@ -191,12 +134,78 @@
 >   After jEdit has finished loading, the editor window will
    appear. Most user interface elements will be instantly familiar to users
    of graphical environments such as Windows, MacOS or GNOME. Some features
-   are unique to jEdit, howerver. They will be described in the following
+   are unique to jEdit, however. They will be described in the following
    paragraphs.
   </P
 ><P
+>   The combo box above the text area is used to select the <I
+CLASS="FIRSTTERM"
+>buffer</I
+>
+   to edit. Each open file is loaded into its own buffer.
+   One of the following icons is displayed next to each buffer name in the
+   list, depending on the state of the buffer:
+  </P
+><P
+></P
+><UL
+><LI
+><P
+>   <IMG
+SRC="../images/normal.gif">
+   Displayed if the buffer doesn't contain unsaved changes
+  </P
+></LI
+><LI
+><P
+>   <IMG
+SRC="../images/dirty.gif">
+   Displayed if the buffer contains unsaved changes
+  </P
+></LI
+><LI
+><P
+>   <IMG
+SRC="../images/readonly.gif">
+   Displayed if the buffer is read-only
+  </P
+></LI
+><LI
+><P
+>   <IMG
+SRC="../images/new.gif">
+   Displayed if the buffer is a new buffer that
+     hasn't yet been saved to disk
+  </P
+></LI
+></UL
+><P
+>   The column and line number
+   containing the caret is displayed immediately to
+   the right of the buffer selector.
+  </P
+><P
+>   For the pedantic programmers among us,
+   <I
+CLASS="FIRSTTERM"
+>end of line markers</I
+> at the end of each line are helpful for
+   locating lines with trailing whitespace.
+   The vertical blue line is a <I
+CLASS="FIRSTTERM"
+>wrap guide</I
+>; entering characters
+   beyond this position will automatically insert a newline. See
+   <A
+HREF="entering-text.html"
+>the section called <I
+>Inserting and Deleting Text</I
+> in Chapter 4</A
+> for details.
+  </P
+><P
 >   Clicking on the text area with
-   the right mouse button will display a popup menu, offering fast
+   the right mouse button will display a popup menu, offering quick
    access to various commands. Both the tool bar and context menu can be
    customized in the <SPAN
 CLASS="GUIMENU"
@@ -206,27 +215,12 @@
 >Global Options</SPAN
 >
    dialog box.
-   To aid in locating the caret, the current line is drawn with a slightly
-   different background color. For the pedantic programmers among us,
-   <I
-CLASS="FIRSTTERM"
->end of line markers</I
-> at the end of each line are helpful for
-   locating lines with trailing whitespace.
-   Moving the caret closer than three lines from the top or bottom of the
-   viewscreen will scroll the text area to make at least three lines above
-   and below the caret visible. Having some "context" always visible
-   helps when programming. This
-   feature is called <I
-CLASS="FIRSTTERM"
->electric scrolling</I
->.
   </P
 ><P
 >   Many aspects of the text area's operation can be customized to your liking
    in the <SPAN
 CLASS="GUIBUTTON"
->Text Area </SPAN
+>Text Area</SPAN
 > pane of the
    <SPAN
 CLASS="GUIMENU"
@@ -236,87 +230,16 @@
 >Global Options</SPAN
 > dialog box.
   </P
-><P
->   The status bar at the bottom of the editor window displays useful
-   information such as the current caret location, status messages
-   issued by commands,
-   and the state of the current buffer.
-   The caret location is displayed in the following format:
-  </P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->col <TT
-CLASS="REPLACEABLE"
-><I
->column position</I
-></TT
-> line <TT
-CLASS="REPLACEABLE"
-><I
->current line</I
-></TT
->/<TT
-CLASS="REPLACEABLE"
-><I
->total lines</I
-></TT
-> <TT
-CLASS="REPLACEABLE"
-><I
->ratio</I
-></TT
->%</PRE
-></TD
-></TR
-></TABLE
 ><DIV
 CLASS="FIGURE"
 ><P
 ><B
->Figure 3-2. The editor window</B
+>Figure 2-2. The editor window</B
 ></P
 ><P
 ><IMG
 SRC="../images/window-editor.gif"></P
 ></DIV
-><P
->   The far right of the status bar displays one of the following colored orbs
-   depending on the state of the current buffer:
-  </P
-><P
-></P
-><UL
-><LI
-><P
->White orb - displayed if there are no
-  unsaved changes in the buffer</P
-></LI
-><LI
-><P
->Bright orange orb - displayed if
-  the buffer contains
-  unsaved changes</P
-></LI
-><LI
-><P
->Green orb - displayed if this
-  is a newly
-  created, empty, buffer, that doesn't exist on disk</P
-></LI
-><LI
-><P
->Yellow orb - displayed
-  if this is a newly
-  created buffer, with unsaved changes, that doesn't exist on disk
-  </P
-></LI
-></UL
 ></DIV
 ></DIV
 ><DIV
@@ -324,13 +247,16 @@
 ><HR><A
 HREF="index.html"
 >Home</A
+>, <A
+HREF="using-jedit.html"
+>Up</A
 ><BR><A
 HREF="shortcuts.html"
 >Prev</A
 >: Keyboard Shortcuts<BR><A
-HREF="opening.html"
+HREF="views.html"
 >Next</A
->: Opening Files<BR></DIV
+>: Working With Views<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/caret.html to doc/users-guide/mode-tag-props.html
--- a/doc/users-guide/caret.html
+++ b/doc/users-guide/mode-tag-props.html
@@ -2,117 +2,120 @@
 <HTML
 ><HEAD
 ><TITLE
->The Caret</TITLE
+>The PROPS Tag</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Basic Features"
-HREF="basic-features.html"><LINK
+TITLE="Writing Edit Modes"
+HREF="writing-modes.html"><LINK
 REL="PREVIOUS"
-TITLE="Creating New Files"
-HREF="creating.html"><LINK
+TITLE="The MODE Tag"
+HREF="mode-tag.html"><LINK
 REL="NEXT"
-TITLE="Selecting Text"
-HREF="selection.html"></HEAD
+TITLE="The RULES Tag"
+HREF="mode-tag-rules.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="selection.html"
+HREF="mode-tag-rules.html"
 >Next</A
 >, <A
-HREF="creating.html"
+HREF="mode-tag.html"
 >Prev</A
 ></P
 ><H2
->Chapter 3. Basic Features</H2
+>Chapter 9. Writing Edit Modes</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="CARET"
->The Caret</A
+NAME="MODE-TAG-PROPS"
+>The PROPS Tag</A
 ></H1
 ><P
->   The <I
-CLASS="FIRSTTERM"
->caret</I
-> is the location where text insertion and
-   deletion takes place. It is drawn as a blinking red line (but like
-   most text area parameters, that can be customized). Moving the caret
-   is one of the most commonly performed operations and there are a
-   number of ways to do it. The most basic are covered here; more
-   advanced caret operations are described in <A
-HREF="advanced-features.html"
->Chapter 4</A
->.
+>   The <SPAN
+CLASS="MARKUP"
+>PROPS</SPAN
+> tag and the <SPAN
+CLASS="MARKUP"
+>PROPERTY</SPAN
+> tags inside it
+   are used to define mode-specific
+   properties. Each <SPAN
+CLASS="MARKUP"
+>PROPERTY</SPAN
+> tag must have a
+   <SPAN
+CLASS="MARKUP"
+>NAME</SPAN
+> attribute set to the property's name, and a
+   <SPAN
+CLASS="MARKUP"
+>VALUE</SPAN
+> attribute with the property's value.
   </P
 ><P
->   The most direct way to move the caret is to click the
-   mouse where you want it to be positioned. It can also be moved using the
-   keyboard;
-   The <B
-CLASS="KEYCAP"
->Left</B
->, <B
-CLASS="KEYCAP"
->Right</B
->, <B
-CLASS="KEYCAP"
->Up</B
-> and <B
-CLASS="KEYCAP"
->Down</B
-> keys
-   move the caret in the respective direction.
-   The <B
-CLASS="KEYCAP"
->PageUp</B
-> and <B
-CLASS="KEYCAP"
->PageDown</B
-> keys move the caret up
-   and down one viewscreen, respectively.
+>   In addition to the properties listed in <A
+HREF="buffer-local.html"
+>the section called <I
+>Buffer-Local Properties</I
+> in Chapter 7</A
+>,
+   you can use the following properties in modes:
   </P
 ><P
->   When pressed once, the <B
-CLASS="KEYCAP"
->Home</B
-> key will go to the first
-   non-whitespace character on the current line. Pressing it multiple
-   times will move the caret to the beginning of the line and then to
-   the first visible line. <B
-CLASS="KEYCAP"
->End</B
-> behaves in a
-   similar manner, going to the last non-whitespace character, the end of
-   the line, and then to the last visible line.
-   <B
-CLASS="KEYCAP"
->Control</B
->-<B
-CLASS="KEYCAP"
->Home</B
-> and
-   <B
-CLASS="KEYCAP"
->Control</B
->-<B
-CLASS="KEYCAP"
->End</B
-> move the caret
-   to the beginning and end of the buffer, respectively.
-  </P
+></P
+><UL
+><LI
+><P
+><SPAN
+CLASS="PROPERTY"
+>label</SPAN
+> - this property must be specified. It is
+   the full name of the edit mode, for example "MS-DOS Batch File".
+   </P
+></LI
+><LI
+><P
+><SPAN
+CLASS="PROPERTY"
+>filenameGlob</SPAN
+> - if a file's name matches this
+   glob pattern, it will be opened with this edit mode. See
+   <A
+HREF="globs.html"
+>Appendix F</A
+> for information about glob patterns.
+   In Java mode, for example, the value of this property is
+   "*.java".
+   </P
+></LI
+><LI
+><P
+><SPAN
+CLASS="PROPERTY"
+>firstlineGlob</SPAN
+> - similar to
+   <SPAN
+CLASS="PROPERTY"
+>filenameGlob</SPAN
+>, except that it is applied to a buffer's
+   first line, instead of file name. In Perl mode, for example,
+   the value of this property is "#!/*perl*".
+   </P
+></LI
+></UL
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
@@ -120,15 +123,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="basic-features.html"
+HREF="writing-modes.html"
 >Up</A
 ><BR><A
-HREF="creating.html"
+HREF="mode-tag.html"
 >Prev</A
->: Creating New Files<BR><A
-HREF="selection.html"
+>: The MODE Tag<BR><A
+HREF="mode-tag-rules.html"
 >Next</A
->: Selecting Text<BR></DIV
+>: The RULES Tag<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/creating.html to doc/users-guide/printing.html
--- a/doc/users-guide/creating.html
+++ b/doc/users-guide/printing.html
@@ -2,66 +2,82 @@
 <HTML
 ><HEAD
 ><TITLE
->Creating New Files</TITLE
+>Printing Files</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Basic Features"
-HREF="basic-features.html"><LINK
+TITLE="Working With Buffers"
+HREF="buffers.html"><LINK
 REL="PREVIOUS"
-TITLE="Opening Files"
-HREF="opening.html"><LINK
+TITLE="Multithreaded I/O"
+HREF="threaded-io.html"><LINK
 REL="NEXT"
-TITLE="The Caret"
-HREF="caret.html"></HEAD
+TITLE="Editor Sessions"
+HREF="sessions.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="caret.html"
+HREF="sessions.html"
 >Next</A
 >, <A
-HREF="opening.html"
+HREF="threaded-io.html"
 >Prev</A
 ></P
 ><H2
->Chapter 3. Basic Features</H2
+>Chapter 3. Working With Buffers</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="CREATING"
->Creating New Files</A
+NAME="PRINTING"
+>Printing Files</A
 ></H1
 ><P
->   If an "Untitled" buffer is already open, you can just begin
-   typing and save it to create a new file. You can also create a
-   new untitled buffer by invoking <SPAN
+>   
+   
+   
+   
+   
+   <SPAN
 CLASS="GUIMENU"
 >File</SPAN
 >&gt;<SPAN
 CLASS="GUIMENUITEM"
->New
-   File</SPAN
-> (keyboard equivalent: <B
+>Print</SPAN
+>
+   (keyboard equivalent: <B
 CLASS="KEYCAP"
 >Control</B
 >-<B
 CLASS="KEYCAP"
->N</B
->).
-   An alternate way to create a new file is to specify a non-existent file name
-   when starting jEdit from your operating system's command line.
+>P</B
+>)
+   will print the current buffer. By default, the printed output will have
+   syntax highlighting, and each page will have a header with the file name,
+   and a footer with the current date/time and page number. The printed output
+   can be customized in the <SPAN
+CLASS="GUIBUTTON"
+>Printing</SPAN
+> pane of the
+   <SPAN
+CLASS="GUIMENU"
+>Utilities</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Global
+   Options</SPAN
+> dialog box.
   </P
 ></DIV
 ><DIV
@@ -70,15 +86,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="basic-features.html"
+HREF="buffers.html"
 >Up</A
 ><BR><A
-HREF="opening.html"
+HREF="threaded-io.html"
 >Prev</A
->: Opening Files<BR><A
-HREF="caret.html"
+>: Multithreaded I/O<BR><A
+HREF="sessions.html"
 >Next</A
->: The Caret<BR></DIV
+>: Editor Sessions<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/general-info.html to doc/users-guide/mode-rule-terminate.html
--- a/doc/users-guide/general-info.html
+++ b/doc/users-guide/mode-rule-terminate.html
@@ -2,78 +2,93 @@
 <HTML
 ><HEAD
 ><TITLE
->General Information</TITLE
+>TERMINATE Rule</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
+REL="UP"
+TITLE="Writing Edit Modes"
+HREF="writing-modes.html"><LINK
 REL="PREVIOUS"
-TITLE="jEdit 2.6 User's Guide"
-HREF="index.html"><LINK
+TITLE="The RULES Tag"
+HREF="mode-tag-rules.html"><LINK
 REL="NEXT"
-TITLE="Conventions Used in This Manual"
-HREF="conventions.html"></HEAD
+TITLE="WHITESPACE Rule"
+HREF="mode-rule-whitespace.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="conventions.html"
+HREF="mode-rule-whitespace.html"
 >Next</A
 >, <A
-HREF="index.html"
+HREF="mode-tag-rules.html"
 >Prev</A
 ></P
+><H2
+>Chapter 9. Writing Edit Modes</H2
 ><HR></DIV
 ><DIV
-CLASS="CHAPTER"
+CLASS="SECT1"
 ><H1
+CLASS="SECT1"
 ><A
-NAME="GENERAL-INFO"
->Chapter 1. General Information</A
+NAME="MODE-RULE-TERMINATE"
+>TERMINATE Rule</A
 ></H1
 ><P
->  Thanks for obtaining a copy of jEdit, a text
-  editor written in Java. I hope you find it useful.
- </P
-><P
->  jEdit is released under the GNU General Public License, a copy of
-  which can be
-  found in the <TT
-CLASS="FILENAME"
->COPYING.txt</TT
-> file of the jEdit distribution.
- </P
-><P
->  jEdit comes with ABSOLUTELY NO WARRANTY OF ANY KIND; see
-  section 11 and 12 of the GPL for details.
+>   There can only be one <SPAN
+CLASS="MARKUP"
+>TERMINATE</SPAN
+> tag per ruleset.
+   The <SPAN
+CLASS="MARKUP"
+>TERMINATE</SPAN
+> rule specifies that parsing should stop after
+   the specified number of characters have been read from a line. The
+   number of characters to terminate after can be specified with the
+   <SPAN
+CLASS="MARKUP"
+>AT_CHAR</SPAN
+> attribute. This is
+   used in patch mode, for example, because only the first character
+   of each line affects highlighting. Here is an example:
   </P
-><P
->  The jEdit homepage, located at <A
-HREF="http://jedit.sourceforge.net"
-TARGET="_top"
->  http://jedit.sourceforge.net</A
->
-  contains the latest version of jEdit, along with plugin downloads.
- </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;TERMINATE AT_CHAR="1" /&gt;</PRE
+></TD
+></TR
+></TABLE
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
 ><HR><A
 HREF="index.html"
 >Home</A
+>, <A
+HREF="writing-modes.html"
+>Up</A
 ><BR><A
-HREF="index.html"
+HREF="mode-tag-rules.html"
 >Prev</A
->: jEdit 2.6 User's Guide<BR><A
-HREF="conventions.html"
+>: The RULES Tag<BR><A
+HREF="mode-rule-whitespace.html"
 >Next</A
->: Conventions Used in This Manual<BR></DIV
+>: WHITESPACE Rule<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/installing-modes.html to doc/users-guide/sessions.html
--- a/doc/users-guide/installing-modes.html
+++ b/doc/users-guide/sessions.html
@@ -2,133 +2,154 @@
 <HTML
 ><HEAD
 ><TITLE
->Installing New Edit Modes</TITLE
+>Editor Sessions</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Edit Modes"
-HREF="modes.html"><LINK
+TITLE="Working With Buffers"
+HREF="buffers.html"><LINK
 REL="PREVIOUS"
-TITLE="Syntax Highlighting"
-HREF="syntax-hilite.html"><LINK
+TITLE="Printing Files"
+HREF="printing.html"><LINK
 REL="NEXT"
-TITLE="Writing Edit Modes"
-HREF="writing-modes.html"></HEAD
+TITLE="Editing Text"
+HREF="editing.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="writing-modes.html"
+HREF="editing.html"
 >Next</A
 >, <A
-HREF="syntax-hilite.html"
+HREF="printing.html"
 >Prev</A
 ></P
 ><H2
->Chapter 5. Edit Modes</H2
+>Chapter 3. Working With Buffers</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="INSTALLING-MODES"
->Installing New Edit Modes</A
+NAME="SESSIONS"
+>Editor Sessions</A
 ></H1
 ><P
->   Each jEdit edit mode is actually a file written in XML,
-   the <I
-CLASS="FIRSTTERM"
->extensible markup language</I
->. XML enables programs
-   to load arbitrary data files without having to worry about implementing
-   a parser, doing error checking, etc.
+>   
+   
+   
+   
+   
+   
+   
+   
+   When working on a project, it can be convenient to save
+   a list of open files, and re-open those files at a later time.
+   jEdit's saved sessions do exactly that.
   </P
 ><P
->   There are two locations where new
-   edit modes can be installed; the user-specific
-   mode directory, and the system-wide mode directory. On Windows 95/98,
-   it doesn't make any difference where modes are installed. On
-   multiuser systems such as Unix or Windows NT, however, each user
-   has their own mode directory, while the system-wide mode
-   directory is shared by all users on the system.
-  </P
-><P
->   To find out the path names of the two mode directories (which
-   vary from system to system),
-   invoke <SPAN
+>   Sessions are plain text files with the extension
+   <TT
+CLASS="FILENAME"
+>.session</TT
+>, stored in the
+   <TT
+CLASS="FILENAME"
+>.jedit/sessions</TT
+> subdirectory of the user's home directory.
+   The session named
+   <TT
+CLASS="FILENAME"
+>default.session</TT
+> is loaded on startup, and the list of
+   open files is recorded into it when jEdit exits. The end result is
+   that open files are retained if jEdit is closed and reopened. This
+   "default" session can be disabled in the
+   <SPAN
+CLASS="GUIBUTTON"
+>Editor</SPAN
+> pane of the
+   <SPAN
 CLASS="GUIMENU"
 >Utilities</SPAN
 >&gt;<SPAN
 CLASS="GUIMENUITEM"
->Reload Edit Modes</SPAN
->
-   and look for messages like the following in the activity log
-   (<SPAN
+>Global Options</SPAN
+>.
+  </P
+><P
+>   <SPAN
 CLASS="GUIMENU"
->Utilities</SPAN
+>File</SPAN
 >&gt;<SPAN
 CLASS="GUIMENUITEM"
->Activity Log</SPAN
->):
+>Load Session</SPAN
+> can be used to
+   load a session while jEdit is running, and
+   <SPAN
+CLASS="GUIMENU"
+>File</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Save Session</SPAN
+> saves the list of
+   open files to a session you specify.
   </P
-><TABLE
+><P
+>   A session to load can be specified on the command line using the
+   <B
+CLASS="COMMAND"
+>-session</B
+> switch. The <B
+CLASS="COMMAND"
+>-nosession</B
+>
+   switch will instruct jEdit not to load any sessions, and
+   open an <TT
+CLASS="FILENAME"
+>Untitled</TT
+> file instead.
+   For example, the following will start jEdit and open
+   all files in the <TT
+CLASS="FILENAME"
+>website</TT
+> session (it is not
+   necessary to specify the <TT
+CLASS="FILENAME"
+>.session</TT
+>
+   suffix):
+   <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="100%"
 ><TR
 ><TD
 ><PRE
-CLASS="PROGRAMLISTING"
->[message] jEdit: Loading edit modes from /usr/local/jedit-3.0final/modes
-[message] jEdit: Loading edit modes from /home/slava/.jedit/modes</PRE
+CLASS="SCREEN"
+><TT
+CLASS="PROMPT"
+>$</TT
+> <TT
+CLASS="USERINPUT"
+><B
+>jedit -session=website</B
+></TT
+></PRE
 ></TD
 ></TR
 ></TABLE
-><P
->   jEdit doesn't always load all edit modes on startup; doing so takes
-   a long time! Instead, it loads a "mode cache" that stores the
-   most important details about each edit mode, and then only loads
-   individual edit
-   modes when they are actually required. A side effect of this is that
-   newly installed modes are not immediately available for use; you must
-   first rebuild the cache by invoking <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Reload
-   Edit Modes</SPAN
->.
+>
   </P
-><DIV
-CLASS="TIP"
-><BLOCKQUOTE
-CLASS="TIP"
-><P
-><B
->Tip: </B
->    The <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Reload
-   Edit Modes</SPAN
-> command is very helpful when you are writing your own edit modes
-   because it allows you to see changes to a mode definition file take
-   effect without having to restart jEdit.
-   </P
-></BLOCKQUOTE
-></DIV
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
@@ -136,15 +157,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="modes.html"
+HREF="buffers.html"
 >Up</A
 ><BR><A
-HREF="syntax-hilite.html"
+HREF="printing.html"
 >Prev</A
->: Syntax Highlighting<BR><A
-HREF="writing-modes.html"
+>: Printing Files<BR><A
+HREF="editing.html"
 >Next</A
->: Writing Edit Modes<BR></DIV
+>: Editing Text<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/modes.html to doc/users-guide/buffers.html
--- a/doc/users-guide/modes.html
+++ b/doc/users-guide/buffers.html
@@ -2,31 +2,34 @@
 <HTML
 ><HEAD
 ><TITLE
->Edit Modes</TITLE
+>Working With Buffers</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
+REL="UP"
+TITLE="Using jEdit"
+HREF="using-jedit.html"><LINK
 REL="PREVIOUS"
-TITLE="The jEdit Command Line"
-HREF="command-line.html"><LINK
+TITLE="Closing Files and Exiting jEdit"
+HREF="closing-exiting.html"><LINK
 REL="NEXT"
-TITLE="Syntax Highlighting"
-HREF="syntax-hilite.html"></HEAD
+TITLE="Opening Files"
+HREF="opening.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="syntax-hilite.html"
+HREF="opening.html"
 >Next</A
 >, <A
-HREF="command-line.html"
+HREF="closing-exiting.html"
 >Prev</A
 ></P
 ><HR></DIV
@@ -34,8 +37,8 @@
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="MODES"
->Chapter 5. Edit Modes</A
+NAME="BUFFERS"
+>Chapter 3. Working With Buffers</A
 ></H1
 ><DIV
 CLASS="TOC"
@@ -46,93 +49,69 @@
 ></DT
 ><DT
 ><A
-HREF="modes.html#MODE-SELECTION"
->Mode Selection</A
+HREF="buffers.html#CREATING"
+>Creating New Files</A
 ></DT
 ><DT
 ><A
-HREF="syntax-hilite.html"
->Syntax Highlighting</A
+HREF="opening.html"
+>Opening Files</A
 ></DT
 ><DT
 ><A
-HREF="installing-modes.html"
->Installing New Edit Modes</A
+HREF="saving.html"
+>Saving Files</A
 ></DT
 ><DT
 ><A
-HREF="writing-modes.html"
->Writing Edit Modes</A
+HREF="vfs-browser.html"
+>The File System Browser</A
+></DT
+><DT
+><A
+HREF="threaded-io.html"
+>Multithreaded I/O</A
+></DT
+><DT
+><A
+HREF="printing.html"
+>Printing Files</A
+></DT
+><DT
+><A
+HREF="sessions.html"
+>Editor Sessions</A
 ></DT
 ></DL
 ></DIV
-><P
->  An <I
-CLASS="FIRSTTERM"
->edit mode</I
-> is an editor configuration customized to
-  edit a specific type of file. Edit modes can specify syntax highlighting,
-  auto indent and various other settings for editing a file type.
- </P
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="MODE-SELECTION"
->Mode Selection</A
+NAME="CREATING"
+>Creating New Files</A
 ></H1
 ><P
->   
-   When a file is opened, jEdit first checks the file name against a list
-   of known patterns. For example, files whose names end with ".c"
-   are edited in C mode, and files named <TT
-CLASS="FILENAME"
->Makefile</TT
-> are edited in
-   Makefile mode. If a suitable match based on file name cannot be found,
-   jEdit checks the first line of the file. For example, files whose first
-   line is "#!/bin/sh" are edited in shell script mode.
-  </P
-><P
->   If automatic mode selection is not appropriate, the edit mode can
-   be specified manually. To set the current buffer's edit mode
-   on a one-time basis, select the edit mode in the
-   <SPAN
+>   If an "Untitled" buffer is already open, you can just begin
+   typing and save it to create a new file. You can also create a
+   new untitled buffer by invoking <SPAN
 CLASS="GUIMENU"
->Utilities</SPAN
+>File</SPAN
 >&gt;<SPAN
 CLASS="GUIMENUITEM"
->Buffer Options</SPAN
-> dialog box.
-   To have a buffer open with a specific edit mode every time,
-   set the "mode" buffer-local property to the
-   name of the desired edit mode by placing
-   the following text in one of the first 10 lines of the buffer,
-   where <TT
-CLASS="REPLACEABLE"
-><I
->edit mode</I
-></TT
-> is the desired edit mode:
+>New
+   File</SPAN
+> (keyboard equivalent: <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>N</B
+>).
+   An alternate way to create a new file is to specify a non-existent file name
+   when starting jEdit from your operating system's command line.
   </P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->:mode=<TT
-CLASS="REPLACEABLE"
-><I
->edit mode</I
-></TT
->:</PRE
-></TD
-></TR
-></TABLE
 ></DIV
 ></DIV
 ><DIV
@@ -140,13 +119,16 @@
 ><HR><A
 HREF="index.html"
 >Home</A
+>, <A
+HREF="using-jedit.html"
+>Up</A
 ><BR><A
-HREF="command-line.html"
+HREF="closing-exiting.html"
 >Prev</A
->: The jEdit Command Line<BR><A
-HREF="syntax-hilite.html"
+>: Closing Files and Exiting jEdit<BR><A
+HREF="opening.html"
 >Next</A
->: Syntax Highlighting<BR></DIV
+>: Opening Files<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/printing-sending.html to doc/users-guide/mode-tag.html
--- a/doc/users-guide/printing-sending.html
+++ b/doc/users-guide/mode-tag.html
@@ -2,83 +2,87 @@
 <HTML
 ><HEAD
 ><TITLE
->Printing Files</TITLE
+>The MODE Tag</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Basic Features"
-HREF="basic-features.html"><LINK
+TITLE="Writing Edit Modes"
+HREF="writing-modes.html"><LINK
 REL="PREVIOUS"
-TITLE="Saving Files"
-HREF="saving.html"><LINK
+TITLE="The Preamble"
+HREF="mode-preamble.html"><LINK
 REL="NEXT"
-TITLE="Working With Views"
-HREF="views.html"></HEAD
+TITLE="The PROPS Tag"
+HREF="mode-tag-props.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="views.html"
+HREF="mode-tag-props.html"
 >Next</A
 >, <A
-HREF="saving.html"
+HREF="mode-preamble.html"
 >Prev</A
 ></P
 ><H2
->Chapter 3. Basic Features</H2
+>Chapter 9. Writing Edit Modes</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="PRINTING-SENDING"
->Printing Files</A
+NAME="MODE-TAG"
+>The MODE Tag</A
 ></H1
 ><P
->   
-   
-   
-   
-   
-   <SPAN
-CLASS="GUIMENU"
->File</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Print</SPAN
+>   Each mode definition must contain at least one <SPAN
+CLASS="MARKUP"
+>MODE</SPAN
 >
-   (keyboard equivalent: <B
-CLASS="KEYCAP"
->Control</B
->-<B
-CLASS="KEYCAP"
->P</B
->)
-   will print the current buffer. By default, the printed output will have
-   syntax highlighting, and each page will have a header with the file name,
-   and a footer with the current date/time and page number. The printed output
-   can be customized in the <SPAN
-CLASS="GUIBUTTON"
->Printing</SPAN
-> pane of the
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Global
-   Options</SPAN
-> dialog box.
+   tag. All other tags (<SPAN
+CLASS="MARKUP"
+>PROPS</SPAN
+>, <SPAN
+CLASS="MARKUP"
+>RULES</SPAN
+>) must be
+   placed inside the <SPAN
+CLASS="MARKUP"
+>MODE</SPAN
+> tag.
+   The mode tag has one required attribute, <SPAN
+CLASS="MARKUP"
+>NAME</SPAN
+>. It must
+   be set to the edit mode's name. The <SPAN
+CLASS="MARKUP"
+>MODE</SPAN
+> tag for
+   Java mode looks as follows:
   </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;MODE NAME="java"&gt;
+   &lt;!- - definition for Java mode goes here - -&gt;
+&lt;/MODE&gt;</PRE
+></TD
+></TR
+></TABLE
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
@@ -86,15 +90,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="basic-features.html"
+HREF="writing-modes.html"
 >Up</A
 ><BR><A
-HREF="saving.html"
+HREF="mode-preamble.html"
 >Prev</A
->: Saving Files<BR><A
-HREF="views.html"
+>: The Preamble<BR><A
+HREF="mode-tag-props.html"
 >Next</A
->: Working With Views<BR></DIV
+>: The PROPS Tag<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/syntax-hilite.html to doc/users-guide/bracket-matching.html
--- a/doc/users-guide/syntax-hilite.html
+++ b/doc/users-guide/bracket-matching.html
@@ -2,75 +2,56 @@
 <HTML
 ><HEAD
 ><TITLE
->Syntax Highlighting</TITLE
+>Bracket Matching</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Edit Modes"
-HREF="modes.html"><LINK
+TITLE="Editing Source Code"
+HREF="source-edit.html"><LINK
 REL="PREVIOUS"
-TITLE="Edit Modes"
-HREF="modes.html"><LINK
+TITLE="Editing Source Code"
+HREF="source-edit.html"><LINK
 REL="NEXT"
-TITLE="Installing New Edit Modes"
-HREF="installing-modes.html"></HEAD
+TITLE="Tabbing and Indentation"
+HREF="indent.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="installing-modes.html"
+HREF="indent.html"
 >Next</A
 >, <A
-HREF="modes.html"
+HREF="source-edit.html"
 >Prev</A
 ></P
 ><H2
->Chapter 5. Edit Modes</H2
+>Chapter 5. Editing Source Code</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="SYNTAX-HILITE"
->Syntax Highlighting</A
+NAME="BRACKET-MATCHING"
+>Bracket Matching</A
 ></H1
 ><P
->   Syntax highlighting is the display of programming language
-   syntax tokens using different fonts and colors. This makes the source
-   easier to follow and errors such as misplaced quotes easier to spot.
-   All edit modes except for
-   the plain text mode perform syntax highlighting.
+>   Misplaced and unmatched brackets are one of the most common syntax
+   errors encountered when writing code. jEdit has several features
+   to make brackets easier to deal with.
   </P
 ><P
->   The colors and styles used to highlight syntax tokens can be changed
-   in the <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Global Options</SPAN
->.
-  </P
-><P
->   Syntax highlighting can be enabled or disabled in one of
-   the following three ways:
-  </P
-><P
-></P
-><UL
-><LI
-><P
->You can specify if
-   syntax highlighting is to be performed on a global basis in the
+>   If the caret is in front of a bracket, the matching
+   one is highlighted (assuming it is visible on the
+   screen). Bracket highlighting can be disabled in the
    <SPAN
 CLASS="GUIBUTTON"
 >Editor</SPAN
@@ -80,65 +61,121 @@
 >Utilities</SPAN
 >&gt;<SPAN
 CLASS="GUIMENUITEM"
->Global Options</SPAN
+>Global
+   Options</SPAN
+> dialog box.
+  </P
+><P
+>   <SPAN
+CLASS="GUIMENU"
+>Edit</SPAN
+>&gt;<SPAN
+CLASS="GUISUBMENU"
+>Brackets</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Select Code Block</SPAN
 >
-   dialog box.</P
-></LI
-><LI
+   (keyboard equivalent: <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>[</B
+>)
+   will select the code block containing the caret. Double-clicking on a
+   bracket in the text area also has the same effect. A code block is
+   a bracket-delimited range of text.
+  </P
 ><P
->You can specify if
-   syntax highlighting is to be performed in the current buffer
-   for the duration of the editing session in the
+>   <SPAN
+CLASS="GUIMENU"
+>Edit</SPAN
+>&gt;<SPAN
+CLASS="GUISUBMENU"
+>Brackets</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Locate Bracket</SPAN
+> (keyboard
+   equivalent: <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>]</B
+>)
+   will move the caret to the bracket matching the one before the caret.
+  </P
+><P
+>   <SPAN
+CLASS="GUIMENU"
+>Edit</SPAN
+>&gt;<SPAN
+CLASS="GUISUBMENU"
+>Brackets</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Go to Previous Bracket</SPAN
+> (keyboard
+   equivalent: <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>E</B
+>
+   <B
+CLASS="KEYCAP"
+>[</B
+>)
+   will move the caret to the previous opening bracket.
    <SPAN
 CLASS="GUIMENU"
->Utilities</SPAN
+>Edit</SPAN
+>&gt;<SPAN
+CLASS="GUISUBMENU"
+>Brackets</SPAN
 >&gt;<SPAN
 CLASS="GUIMENUITEM"
->Buffer Options</SPAN
-> dialog box.
+>Go to Next Bracket</SPAN
+> (keyboard
+   equivalent: <B
+CLASS="KEYCAP"
+>Control</B
+>-<B
+CLASS="KEYCAP"
+>E</B
+>
+   <B
+CLASS="KEYCAP"
+>]</B
+>)
+   will move the caret to the next closing bracket.
+  </P
+><DIV
+CLASS="NOTE"
+><BLOCKQUOTE
+CLASS="NOTE"
+><P
+><B
+>Note: </B
+>    jEdit's bracket matching code only checks syntax tokens with the same
+    type as the original bracket for matches. So brackets inside string
+    literals and comments will not cause problems because they will
+    be skipped.
    </P
-></LI
-><LI
-><P
->You can specify if
-   syntax highlighting is to be performed in the current buffer
-   for future editing sessions with buffer-local properties by placing
-   the following in one of the first 10 lines of the buffer, where
-   <TT
-CLASS="REPLACEABLE"
-><I
->flag</I
-></TT
-> is either "true" or "false":
-   </P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->:syntax=<TT
-CLASS="REPLACEABLE"
-><I
->flag</I
-></TT
->:</PRE
-></TD
-></TR
-></TABLE
-></LI
-></UL
+></BLOCKQUOTE
+></DIV
 ><DIV
 CLASS="FIGURE"
 ><P
 ><B
->Figure 5-1. Syntax highlighting in action</B
+>Figure 5-2. Bracket matching in action</B
 ></P
 ><P
 ><IMG
-SRC="../images/window-editor-syntax.gif"></P
+SRC="../images/window-editor-bracket.gif"></P
 ></DIV
 ></DIV
 ><DIV
@@ -147,15 +184,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="modes.html"
+HREF="source-edit.html"
 >Up</A
 ><BR><A
-HREF="modes.html"
+HREF="source-edit.html"
 >Prev</A
->: Edit Modes<BR><A
-HREF="installing-modes.html"
+>: Editing Source Code<BR><A
+HREF="indent.html"
 >Next</A
->: Installing New Edit Modes<BR></DIV
+>: Tabbing and Indentation<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/vfs-ftp.html to doc/users-guide/mode-tag-rules.html
--- a/doc/users-guide/vfs-ftp.html
+++ b/doc/users-guide/mode-tag-rules.html
@@ -2,167 +2,194 @@
 <HTML
 ><HEAD
 ><TITLE
->The FTP Filesystem</TITLE
+>The RULES Tag</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Virtual File Systems"
-HREF="vfs.html"><LINK
+TITLE="Writing Edit Modes"
+HREF="writing-modes.html"><LINK
 REL="PREVIOUS"
-TITLE="Virtual File Systems"
-HREF="vfs.html"><LINK
+TITLE="The PROPS Tag"
+HREF="mode-tag-props.html"><LINK
 REL="NEXT"
-TITLE="The URL Filesystem"
-HREF="vfs-url.html"></HEAD
+TITLE="TERMINATE Rule"
+HREF="mode-rule-terminate.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="vfs-url.html"
+HREF="mode-rule-terminate.html"
 >Next</A
 >, <A
-HREF="vfs.html"
+HREF="mode-tag-props.html"
 >Prev</A
 ></P
 ><H2
->Chapter 8. Virtual File Systems</H2
+>Chapter 9. Writing Edit Modes</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="VFS-FTP"
->The FTP Filesystem</A
+NAME="MODE-TAG-RULES"
+>The RULES Tag</A
 ></H1
 ><P
->   jEdit has its own FTP protocol implementation which is superior to
-   the one that ships with Java. Unlike the default implementation, it
-   supports non-anonymous logins and lets you browse remote filesystems.
-  </P
-><P
->   To open a file stored on an FTP server, select the
+>   <SPAN
+CLASS="MARKUP"
+>RULES</SPAN
+> tags must be placed inside the <SPAN
+CLASS="MARKUP"
+>MODE</SPAN
+> tag.
+   Each <SPAN
+CLASS="MARKUP"
+>RULES</SPAN
+> tag defines a <I
+CLASS="FIRSTTERM"
+>ruleset</I
+>.
+   A ruleset
+   consists of a number of <I
+CLASS="FIRSTTERM"
+>parser rules</I
+>, with each parser
+   rule specifying how to highlight a specific syntax token. There must
+   be at least one ruleset in each edit mode. There can also be more
+   than one, with different rulesets being used to highlight different
+   parts of a buffer (for example, in HTML mode, different rulesets are used to
+   highlight
+   tags and inline JavaScript). For information about using more
+   than one ruleset, see <A
+HREF="mode-rule-span.html"
+>the section called <I
+>SPAN Rule</I
+></A
+>.
+  </P
+><P
+>   The <SPAN
+CLASS="MARKUP"
+>RULES</SPAN
+> tag supports the following attributes, all of
+   which are optional:
+  </P
+><P
+></P
+><UL
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>HIGHLIGHT_DIGITS</SPAN
+> - if set to
    <SPAN
-CLASS="GUIMENUITEM"
->Connect to FTP Server</SPAN
-> command from the <SPAN
-CLASS="GUIMENU"
->More</SPAN
+CLASS="MARKUP"
+>TRUE</SPAN
+>, digits (0-9, as well as hexadecimal literals
+   prefixed with "0x") will be highlighted with the
+   <TT
+CLASS="CLASSNAME"
+>DIGIT</TT
+> token type. Default is <SPAN
+CLASS="MARKUP"
+>FALSE</SPAN
+>.
+   </P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>IGNORE_CASE</SPAN
+> - if set to
+   <SPAN
+CLASS="MARKUP"
+>FALSE</SPAN
+>, matches will be case sensitive. Otherwise, case will not
+   matter.
+   Default is <SPAN
+CLASS="MARKUP"
+>TRUE</SPAN
+>.
+   </P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>DEFAULT</SPAN
+> - the token type for
+   text which doesn't match
+   any specific rule. Default is <SPAN
+CLASS="MARKUP"
+>NULL</SPAN
+>. See
+   <A
+HREF="mode-syntax-tokens.html"
+>the section called <I
+>Token Types</I
+></A
+> for a list of token types.
+   </P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>SET</SPAN
+> - the name of this ruleset.
+   All rulesets other than the first must have a name.
+   </P
+></LI
+></UL
+><P
+>   Each child element of the <SPAN
+CLASS="MARKUP"
+>RULES</SPAN
+> tag defines a parser rule.
+   Rules are checked in order; that means that if you define a
+   rule that matches on "h" and another subsequent rule
+   that matches on "hello", the "h" rule will handle
+   all cases before the "hello" rule gets a chance.
+   For the ruleset to work correctly, you must instead 
+   place the "hello" rule before the
+   "h" one.
+  </P
+><P
+>   Here is an example <SPAN
+CLASS="MARKUP"
+>RULES</SPAN
+> tag:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE"&gt;
+   <TT
+CLASS="REPLACEABLE"
+><I
+>...</I
+></TT
 >
-   menu in the VFS browser. You will be prompted for a host name, user name
-   and password.
-  </P
-><DIV
-CLASS="FIGURE"
-><P
-><B
->Figure 8-2. The FTP login dialog box</B
-></P
-><P
-><IMG
-SRC="../images/dialog-ftp-login.gif"></P
-></DIV
-><P
->   If a buffer was loaded from an FTP server,
-   <SPAN
-CLASS="GUIMENU"
->File</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Save</SPAN
-> (keyboard equivalent:
-   <B
-CLASS="KEYCAP"
->Control</B
->-<B
-CLASS="KEYCAP"
->S</B
->) will automatically
-   upload it. To upload a buffer not originally from an FTP server, invoke
-   <SPAN
-CLASS="GUIMENU"
->File</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Save As</SPAN
-> and repeat the above steps
-   to connect to a server.
-  </P
-><P
->   Some jEdit features do not work when editing remote files;
-   no autosave or backup files are created, and the
-   <SPAN
-CLASS="GUIMENU"
->File</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Current Directory</SPAN
->
-   menu does not list remote directories.
-  </P
-><P
->   To improve performance, jEdit caches directory listings from remote
-   FTP servers. Adding and deleting files from within jEdit will automatically
-   update the cache when necessary, but if you also use another FTP client, file
-   listings may become out of date. Double-clicking or typing a URL in the
-   VFS browser will consult the cache first; the <SPAN
-CLASS="GUIBUTTON"
->Reload</SPAN
-> button
-   will force a reload. To clear all cached listings,
-   invoke <SPAN
-CLASS="GUIMENUITEM"
->Clear Remote Directory Cache</SPAN
-> from
-   either the VFS browser's <SPAN
-CLASS="GUIMENU"
->More</SPAN
-> menu, or jEdit's
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
-> menu.
-  </P
-><P
->   jEdit also remembers passwords on remote servers until it is closed.
-   To force jEdit to forget saved passwords without quitting and restarting
-   it, invoke <SPAN
-CLASS="GUIMENUITEM"
->Forget Remote Passwords</SPAN
-> from
-   either the VFS browser's <SPAN
-CLASS="GUIMENU"
->More</SPAN
-> menu, or jEdit's
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
-> menu.
-  </P
-><P
->   If you are connected to the Internet from behind a firewall that blocks
-   incoming connections, you may need
-   to enable passive-mode FTP in the <SPAN
-CLASS="GUIBUTTON"
->General</SPAN
-> pane of the
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Global
-   Options</SPAN
-> dialog box.
-  </P
+&lt;/RULES&gt;</PRE
+></TD
+></TR
+></TABLE
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
@@ -170,15 +197,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="vfs.html"
+HREF="writing-modes.html"
 >Up</A
 ><BR><A
-HREF="vfs.html"
+HREF="mode-tag-props.html"
 >Prev</A
->: Virtual File Systems<BR><A
-HREF="vfs-url.html"
+>: The PROPS Tag<BR><A
+HREF="mode-rule-terminate.html"
 >Next</A
->: The URL Filesystem<BR></DIV
+>: TERMINATE Rule<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/vfs-url.html to doc/users-guide/macro-prompt.html
--- a/doc/users-guide/vfs-url.html
+++ b/doc/users-guide/macro-prompt.html
@@ -2,85 +2,80 @@
 <HTML
 ><HEAD
 ><TITLE
->The URL Filesystem</TITLE
+>Prompting for Input</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
 REL="UP"
-TITLE="Virtual File Systems"
-HREF="vfs.html"><LINK
+TITLE="Macros"
+HREF="macros.html"><LINK
 REL="PREVIOUS"
-TITLE="The FTP Filesystem"
-HREF="vfs-ftp.html"><LINK
+TITLE="Temporary Macros"
+HREF="macro-temp.html"><LINK
 REL="NEXT"
-TITLE="Multithreaded I/O"
-HREF="threaded-io.html"></HEAD
+TITLE="Macro File Syntax"
+HREF="macro-syntax.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="threaded-io.html"
+HREF="macro-syntax.html"
 >Next</A
 >, <A
-HREF="vfs-ftp.html"
+HREF="macro-temp.html"
 >Prev</A
 ></P
 ><H2
->Chapter 8. Virtual File Systems</H2
+>Chapter 10. Macros</H2
 ><HR></DIV
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="VFS-URL"
->The URL Filesystem</A
+NAME="MACRO-PROMPT"
+>Prompting for Input</A
 ></H1
 ><P
->   Java's networking library provides bare-bones
-   implementations of HTTP, Gopher and a few other protocols, so jEdit also
-   supports (read-only, because that's all the Java networking library
-   supports) access remote files on non-FTP servers.
-   URLs can only be opened from the jEdit command line; type
-   <B
-CLASS="KEYCAP"
->Control</B
->-<B
-CLASS="KEYCAP"
->Enter</B
->
-   <TT
-CLASS="USERINPUT"
+>   While recording a macro, invoking
+   <SPAN
+CLASS="GUIMENU"
+>Macros</SPAN
+>&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Prompt for Input</SPAN
+> will display
+   a dialog box allowing you to record a special command which when
+   played back, will prompt the user for input and store it in a
+   specified register.
+  </P
+><DIV
+CLASS="FIGURE"
+><P
 ><B
->open-file</B
-></TT
-> <B
-CLASS="KEYCAP"
->Enter</B
->, followed by the URL.
-  </P
+>Figure 10-1. The Prompt for Input dialog box</B
+></P
 ><P
->   The command line can also be used to open files from FTP servers if
-   you know their exact path. Just enter an FTP URL using the technique above,
-   and you will be prompted for a user name and password.
-   (Entering an FTP at the jEdit command line uses jEdit's FTP
-   implementation, not the Java default).
-  </P
+><IMG
+SRC="../images/dialog-macro-input.gif"></P
+></DIV
+><DIV
+CLASS="FIGURE"
 ><P
->   See <A
-HREF="command-line.html"
->the section called <I
->The jEdit Command Line</I
-> in Chapter 4</A
-> for more information about the jEdit command line.
-  </P
+><B
+>Figure 10-2. What will happen when the macro is played back</B
+></P
+><P
+><IMG
+SRC="../images/dialog-macro-input-play.gif"></P
+></DIV
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
@@ -88,15 +83,15 @@
 HREF="index.html"
 >Home</A
 >, <A
-HREF="vfs.html"
+HREF="macros.html"
 >Up</A
 ><BR><A
-HREF="vfs-ftp.html"
+HREF="macro-temp.html"
 >Prev</A
->: The FTP Filesystem<BR><A
-HREF="threaded-io.html"
+>: Temporary Macros<BR><A
+HREF="macro-syntax.html"
 >Next</A
->: Multithreaded I/O<BR></DIV
+>: Macro File Syntax<BR></DIV
 ></BODY
 ></HTML
 >
doc/users-guide/vfs.html to doc/users-guide/mode-rule-span.html
--- a/doc/users-guide/vfs.html
+++ b/doc/users-guide/mode-rule-span.html
@@ -2,124 +2,75 @@
 <HTML
 ><HEAD
 ><TITLE
->Virtual File Systems</TITLE
+>SPAN Rule</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet"><LINK
 REL="HOME"
-TITLE="jEdit 2.6 User's Guide"
+TITLE="jEdit 2.7 User's Guide"
 HREF="index.html"><LINK
+REL="UP"
+TITLE="Writing Edit Modes"
+HREF="writing-modes.html"><LINK
 REL="PREVIOUS"
-TITLE="Quick Search"
-HREF="quick-search.html"><LINK
+TITLE="WHITESPACE Rule"
+HREF="mode-rule-whitespace.html"><LINK
 REL="NEXT"
-TITLE="The FTP Filesystem"
-HREF="vfs-ftp.html"></HEAD
+TITLE="EOL_SPAN Rule"
+HREF="mode-rule-eol-span.html"></HEAD
 ><BODY
 BGCOLOR="#FFFFFF"
 ><DIV
 CLASS="NAVHEADER"
 ><H1
->jEdit 2.6 User's Guide</H1
+>jEdit 2.7 User's Guide</H1
 ><P
 ><A
-HREF="vfs-ftp.html"
+HREF="mode-rule-eol-span.html"
 >Next</A
 >, <A
-HREF="quick-search.html"
+HREF="mode-rule-whitespace.html"
 >Prev</A
 ></P
+><H2
+>Chapter 9. Writing Edit Modes</H2
 ><HR></DIV
-><DIV
-CLASS="CHAPTER"
-><H1
-><A
-NAME="VFS"
->Chapter 8. Virtual File Systems</A
-></H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="vfs.html#VFS-BROWSER"
->The VFS Browser</A
-></DT
-><DT
-><A
-HREF="vfs-ftp.html"
->The FTP Filesystem</A
-></DT
-><DT
-><A
-HREF="vfs-url.html"
->The URL Filesystem</A
-></DT
-><DT
-><A
-HREF="threaded-io.html"
->Multithreaded I/O</A
-></DT
-></DL
-></DIV
-><P
->  jEdit doesn't deal with disk files directly. Instead, it passes all
-  buffer loading and saving through one of several available storage
-  implementations known as <I
-CLASS="FIRSTTERM"
->virtual filesystems</I
->.
-  The jEdit core includes local, FTP and URL filesystems. Plugins can
-  be written to add more.
- </P
 ><DIV
 CLASS="SECT1"
 ><H1
 CLASS="SECT1"
 ><A
-NAME="VFS-BROWSER"
->The VFS Browser</A
+NAME="MODE-RULE-SPAN"
+>SPAN Rule</A
 ></H1
 ><P
->   There are three ways to access the VFS browser. The <SPAN
-CLASS="GUIMENUITEM"
->Open
-   File</SPAN
-> and <SPAN
-CLASS="GUIMENUITEM"
->Save As</SPAN
-> dialog boxes embed one.
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->File System Browser</SPAN
-> displays a
-   standalone version. By default, the standalone VFS browser is shown in
-   a separate frame, but if you prefer, you can set it to be docked into
-   the current view in the
-   <SPAN
-CLASS="GUIBUTTON"
->Docking</SPAN
-> pane of the
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Global
-   Options</SPAN
->. The browser consists of a
-   tool bar, a path field,
-   a filename filter field, and the file list itself.
-  </P
-><P
->   The toolbar buttons perform the following actions, from left to right:
+>   The <SPAN
+CLASS="MARKUP"
+>SPAN</SPAN
+> rule highlights ranges of text between a start
+   and end string. The start and end strings are specified inside
+   child elements of the <SPAN
+CLASS="MARKUP"
+>SPAN</SPAN
+> tag, like so:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;SPAN TYPE="COMMENT1"&gt;
+   &lt;BEGIN&gt;/*&lt;/BEGIN&gt;
+   &lt;END&gt;*/&lt;/END&gt;
+&lt;/SPAN&gt;</PRE
+></TD
+></TR
+></TABLE
+><P
+>   The following attributes are supported:
   </P
 ><P
 ></P
@@ -127,268 +78,183 @@
 ><LI
 ><P
 ><SPAN
-CLASS="GUIBUTTON"
->Up</SPAN
-> - takes you to the current
-   directory's parent. The popup arrow next to this button displays a
-   menu listing all the parent directories of the current directory,
-   up to the filesystem root</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIBUTTON"
->Reload</SPAN
-> - updates the file list by
-   reloading the directory</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIBUTTON"
->Local Drives</SPAN
-> - displays all
-   local drives in the file list. On Windows, this will be a list of
-   drive letters; on Unix, the list will only contain one entry, the
-   root directory (<TT
-CLASS="FILENAME"
->/</TT
->)</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIBUTTON"
->Home Directory</SPAN
-> - takes you to your
-   home directory, the location of which is system-specific</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIBUTTON"
->Parent Directory of Current Buffer</SPAN
-> -
-   take you to the directory containing the current buffer (if the current
-   view is split into multiple panes, the "current buffer" is
-   defined as the one that most recently had keyboard focus)</P
+CLASS="MARKUP"
+>TYPE</SPAN
+> - The token type to highlight the span
+   with. See <A
+HREF="mode-syntax-tokens.html"
+>the section called <I
+>Token Types</I
+></A
+> for a list of token types</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>AT_LINE_START</SPAN
+> - If set to <SPAN
+CLASS="MARKUP"
+>TRUE</SPAN
+>,
+   the span will only be highlighted if the start sequence occurs at the
+   beginning of a line</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>EXCLUDE_MATCH</SPAN
+> - If set to
+   <SPAN
+CLASS="MARKUP"
+>TRUE</SPAN
+>, the start and end sequences will not be highlighted,
+   only the text between them will</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>NO_LINE_BREAK</SPAN
+> - If set to
+   <SPAN
+CLASS="MARKUP"
+>TRUE</SPAN
+>, the span will be highlighted with the <TT
+CLASS="CLASSNAME"
+>INVALID</TT
+>
+   token type if it spans more than one line</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>NO_WORD_BREAK</SPAN
+> - If set to
+   <SPAN
+CLASS="MARKUP"
+>TRUE</SPAN
+>, the span will be highlighted with the <TT
+CLASS="CLASSNAME"
+>INVALID</TT
+>
+   token type if it includes whitespace</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="MARKUP"
+>DELEGATE</SPAN
+> - text inside the span will be
+   highlighted with the specified ruleset. To delegate to a ruleset defined
+   in the current mode, just specify its name. To delegate to a ruleset
+   defined in another mode, specify a name of the form
+   <SPAN
+CLASS="MARKUP"
+><TT
+CLASS="REPLACEABLE"
+><I
+>mode</I
+></TT
+>::<TT
+CLASS="REPLACEABLE"
+><I
+>ruleset</I
+></TT
+></SPAN
+>.
+   Note that the first (unnamed) ruleset in a mode is called
+   "MAIN".</P
 ></LI
 ></UL
 ><P
->   The <SPAN
-CLASS="GUIMENU"
->More</SPAN
-> menu contains several less frequently-used commands:
-  </P
-><P
-></P
-><UL
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->View as List</SPAN
-> - if selected, files will
-   be displayed in a simple list</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->View as Tree</SPAN
-> - if selected, files will
-   be displayed as a tree structure, with directories being
-   branches that can be expanded, for viewing an entire directory
-   hierarchy at once</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->Show Hidden Files</SPAN
-> - if selected, hidden
-   files will be shown in the file list. The definition of a hidden file
-   is system-specific; on Windows, files with the "h" attribute
-   are hidden. On Unix, files whose names begin with "." are
-   hidden</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->New Directory</SPAN
-> - prompts for a directory
-   name and creates a directory with that name.
-   Note that not all virtual filesystems may support this operation (the
-   local and FTP filesystems do)
-   </P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->Add to Favorites</SPAN
-> - adds the currently
-   selected (or the currently displayed, if there is nothing
-   selected) directory to the favorites list</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->Go to Favorites</SPAN
-> - displays the favorites
-   list. To remove a directory from the list, right-click on it and select
-   <SPAN
-CLASS="GUIMENUITEM"
->Delete</SPAN
-> from the resulting popup menu</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="GUIMENUITEM"
->Clear Remote Directory Cache</SPAN
-> and
-   <SPAN
-CLASS="GUIMENUITEM"
->Forget Remote Passwords</SPAN
-> - see <A
-HREF="vfs-ftp.html"
->the section called <I
->The FTP Filesystem</I
-></A
->
-   </P
-></LI
-></UL
-><P
->   The filter text field allows you to specify a subset
-   of the current directory to display in the form of a glob pattern.
-   See <A
-HREF="globs.html"
->Appendix F</A
-> for more information about glob patterns.
-   Both the path and filter fields support a history;
-   see <A
-HREF="history.html"
->Appendix B</A
-> for
-   details.
-  </P
-><P
->   Right-clicking on a file in the VFS browser displays a popup menu, containing
-   commands for manipulating that file, in addition to all the commands in the
-   <SPAN
-CLASS="GUIBUTTON"
->More</SPAN
-> menu.
-   If the buffer is already open, the popup will have commands to
-   display it in the current view, display it in a new view, or close it.
-   Unopened file popups have items for opening, deleting and renaming.
-   Note that not all virtual filesystems may support deletion and renaming
-   (the local and FTP filesystems do).
-   Attempting to delete a non-empty directory will give an error; only
-   empty directories can be deleted.
-  </P
-><P
->   Several aspects of the VFS browser can be customized in the
-   <SPAN
-CLASS="GUIMENU"
->Utilities</SPAN
->&gt;<SPAN
-CLASS="GUIMENUITEM"
->Global Options</SPAN
-> dialog box.
-  </P
-><TABLE
-CLASS="SIDEBAR"
-BORDER="1"
-CELLPADDING="5"
-><TR
-><TD
-><DIV
-CLASS="SIDEBAR"
-><P
-></P
-><P
->    The VFS browser can be navigated from the keyboard.
-    The following keystrokes are supported:
-    <P
-></P
-><UL
-><LI
-><P
-><B
-CLASS="KEYCAP"
->Enter</B
-> - opens the currently selected file or
-     directory</P
-></LI
-><LI
-><P
-><B
-CLASS="KEYCAP"
->Left</B
-> - goes to the current directory's parent
-     </P
-></LI
-><LI
-><P
-><B
-CLASS="KEYCAP"
->Up</B
-> - selects previous file in list
-     </P
-></LI
-><LI
-><P
-><B
-CLASS="KEYCAP"
->Down</B
-> - selects next file in list
-     </P
-></LI
-><LI
-><P
->Only in the list view: typing the first few characters of
-     a file's name will select that file.
-     </P
-></LI
-></UL
->
-    Note that the file list must have keyboard focus for these keys to work.
-   </P
-><P
-></P
-></DIV
-></TD
-></TR
-></TABLE
-><DIV
-CLASS="FIGURE"
-><P
-><B
->Figure 8-1. The stand-alone VFS Browser</B
-></P
-><P
-><IMG
-SRC="../images/window-vfs-browser.gif"></P
-></DIV
-></DIV
+>   Here is a <SPAN
+CLASS="MARKUP"
+>SPAN</SPAN
+> that highlights Java string literals,
+   which cannot include line breaks:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"&gt;
+   &lt;BEGIN&gt;"&lt;/BEGIN&gt;
+   &lt;END&gt;"&lt;/END&gt;
+&lt;/SPAN&gt;</PRE
+></TD
+></TR
+></TABLE
+><P
+>   Here is a <SPAN
+CLASS="MARKUP"
+>SPAN</SPAN
+> that highlights Java documentation comments
+   by delegating to the "JAVADOC" ruleset defined elsewhere
+   in the current mode:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;SPAN TYPE="COMMENT2" DELEGATE="JAVADOC"&gt;
+   &lt;BEGIN&gt;/**&lt;/BEGIN&gt;
+   &lt;END&gt;*/&lt;/END&gt;
+&lt;/SPAN&gt;</PRE
+></TD
+></TR
+></TABLE
+><P
+>   Here is a <SPAN
+CLASS="MARKUP"
+>SPAN</SPAN
+> that highlights HTML cascading stylesheets inside
+   <SPAN
+CLASS="MARKUP"
+>STYLE</SPAN
+> tags by delegating to the CSS ruleset in another mode:
+  </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;SPAN TYPE="MARKUP" DELEGATE="css::MAIN"&gt;
+   &lt;BEGIN&gt;&amp;lt;style&amp;gt;&lt;/BEGIN&gt;
+   &lt;END&gt;&amp;lt;/style&amp;gt;&lt;/END&gt;
+&lt;/SPAN&gt;</PRE
+></TD
+></TR
+></TABLE
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
 ><HR><A
 HREF="index.html"
 >Home</A
+>, <A
+HREF="writing-modes.html"
+>Up</A
 ><BR><A
-HREF="quick-search.html"
+HREF="mode-rule-whitespace.html"
 >Prev</A
->: Quick Search<BR><A
-HREF="vfs-ftp.html"
+>: WHITESPACE Rule<BR><A
+HREF="mode-rule-eol-span.html"
 >Next</A
->: The FTP Filesystem<BR></DIV
+>: EOL_SPAN Rule<BR></DIV
 ></BODY
 ></HTML
 >
jars/EditBuddy/settings-dir-cache.html to macros/User_Guide_Examples/Transpose_Characters.macro
--- a/jars/EditBuddy/settings-dir-cache.html
+++ b/macros/User_Guide_Examples/Transpose_Characters.macro
@@ -1,13 +1,13 @@
-<html>
-<body>
+# This macro swaps the two characters on either side of the caret.
+# It uses the ! register for temporary storage.
 
-<h3>cache</h3>
+# Clear selection
+select-none
 
-jEdit caches directory listings from remote FTP servers in the
-<b>cache</b> directory for improved performance. This directory
-is emptied when jEdit exits. You can clear the cache at any other
-time by selecting the <b>Utilities</b>&gt;<b>Clear Remote Directory
-Cache</b> command from jEdit's menu bar.
+# Copy left-side char to !
+select-prev-char
+cut-string-register@!
 
-</body>
-</html>
+# Insert after right-side char
+next-char
+paste-string-register@!
macros/HTML/Close_Tag.macro to site-props/sample.props
--- a/macros/HTML/Close_Tag.macro
+++ b/site-props/sample.props
@@ -1,17 +1,5 @@
-# This macro 'closes' the first tag/element opened on 
-# the current line (keeping the cursor in the same place)
-prev-char
-set-caret-register@q
-end
-next-char
-set-search-string@([^ >]*)
-set-search-parameters@regexp case current
-find-next
-copy-string-register@w
-goto-register@q
-next-char
-insert-char@</
-paste-string-register@w
-insert-char@>
-goto-register@q
-next-char
+### Any property files placed in this directory will be loaded by jEdit
+### before the user-specific properties. On multi-user machines, this
+### can be used to enforce a site-wide key binding or color scheme,
+### for example. Just copy the relevant entries from your user properties
+### file into a new .props file, and place it in this directory.
macros/HTML/H1.macro to macros/User_Guide_Examples/Hyperlink.macro
--- a/macros/HTML/H1.macro
+++ b/macros/User_Guide_Examples/Hyperlink.macro
@@ -1,5 +1,6 @@
-# This macro surrounds the selection with HTML <h1>...</h1> tags.
+# This macro inserts an HTML hyperlink.
+# We assume that the link text is selected.
 
-clear-register@$
-copy
-insert-char@<h1>$$</h1>
+input@a@URL:
+cut
+insert-char@<A HREF="$$"></A>
macros/HTML/H2.macro to macros/Misc/Close_All_and_Load_Session....macro
--- a/macros/HTML/H2.macro
+++ b/macros/Misc/Close_All_and_Load_Session....macro
@@ -1,5 +1,4 @@
-# This macro surrounds the selection with HTML <h2>...</h2> tags.
+# Closes all open buffers and loads a session
 
-clear-register@$
-copy
-insert-char@<h2>$$</h2>
+close-all
+load-session
1 2 3 .. 7 > >> (Page 1 of 7)