aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2010-11-30 19:55:39 -0500
committermitchell <70453897+667e-11@users.noreply.github.com>2010-11-30 19:55:39 -0500
commitc7b543e79b41d9a983cc89e264acd0472d09dc92 (patch)
tree9b28b836f65b396ea160ba91048fb030018ccdcc /doc
parent6c1afd75fc048e65cef5bfdbe68c79a082bdad43 (diff)
downloadtextadept-c7b543e79b41d9a983cc89e264acd0472d09dc92.tar.gz
textadept-c7b543e79b41d9a983cc89e264acd0472d09dc92.zip
New manual.
Diffstat (limited to 'doc')
-rw-r--r--doc/manual/10_Advanced.md46
-rw-r--r--doc/manual/11_Scripting.md57
-rw-r--r--doc/manual/12_Compiling.md81
-rw-r--r--doc/manual/13_Help.md15
-rw-r--r--doc/manual/14_Appendix.md236
-rw-r--r--doc/manual/1_Introduction.md88
-rw-r--r--doc/manual/2_Installation.md54
-rw-r--r--doc/manual/3_Compiling.md89
-rw-r--r--doc/manual/3_UserInterface.md (renamed from doc/manual/4_UserInterface.md)19
-rw-r--r--doc/manual/4_WorkingWithFiles.md65
-rw-r--r--doc/manual/5_FileNavigation.md26
-rw-r--r--doc/manual/5_FolderStructure.md39
-rw-r--r--doc/manual/6_AdeptEditing.md151
-rw-r--r--doc/manual/6_Startup.md60
-rw-r--r--doc/manual/7_LuaInterface.md10
-rw-r--r--doc/manual/7_Modules.md93
-rw-r--r--doc/manual/8_Themes.md62
-rw-r--r--doc/manual/9_Preferences.md140
-rw-r--r--doc/manual/images/bufferbrowser.pngbin0 -> 72930 bytes
-rw-r--r--doc/manual/images/bufferbrowserfiltered.pngbin0 -> 39274 bytes
-rw-r--r--doc/manual/images/commandentry.pngbin0 -> 6480 bytes
-rw-r--r--doc/manual/images/commandentrycompletion.pngbin0 -> 4578 bytes
-rw-r--r--doc/manual/images/darktheme.pngbin0 -> 39619 bytes
-rw-r--r--doc/manual/images/docstatusbar.pngbin0 -> 2679 bytes
-rw-r--r--doc/manual/images/findinfiles.pngbin0 -> 94166 bytes
-rw-r--r--doc/manual/images/icon.pngbin0 -> 8030 bytes
-rw-r--r--doc/manual/images/lighttheme.pngbin0 -> 46721 bytes
-rw-r--r--doc/manual/images/linux.pngbin0 -> 12554 bytes
-rw-r--r--doc/manual/images/macosx.pngbin0 -> 14091 bytes
-rw-r--r--doc/manual/images/matchingbrace.pngbin0 -> 6107 bytes
-rw-r--r--doc/manual/images/rectangularselection.pngbin0 -> 1928 bytes
-rw-r--r--doc/manual/images/rectangularselection2.pngbin0 -> 2094 bytes
-rw-r--r--doc/manual/images/scitetheme.pngbin0 -> 29966 bytes
-rw-r--r--doc/manual/images/snapopen.pngbin0 -> 72278 bytes
-rw-r--r--doc/manual/images/snippet.pngbin0 -> 951 bytes
-rw-r--r--doc/manual/images/snippet2.pngbin0 -> 5192 bytes
-rw-r--r--doc/manual/images/splitviews.pngbin0 -> 136537 bytes
-rw-r--r--doc/manual/images/textadept.pngbin0 -> 27344 bytes
-rw-r--r--doc/manual/images/ui.pngbin0 -> 109804 bytes
-rw-r--r--doc/manual/images/win32.pngbin0 -> 7923 bytes
-rw-r--r--doc/manual/images/wordcompletion.pngbin0 -> 3490 bytes
-rw-r--r--doc/manual/images/wordhighlight.pngbin0 -> 69127 bytes
-rw-r--r--doc/sidebar.md29
43 files changed, 1067 insertions, 293 deletions
diff --git a/doc/manual/10_Advanced.md b/doc/manual/10_Advanced.md
new file mode 100644
index 00000000..86387fca
--- /dev/null
+++ b/doc/manual/10_Advanced.md
@@ -0,0 +1,46 @@
+# Advanced
+
+## Command Entry
+
+Access to the Lua state is available through the command entry. Press `F2` to
+access it. It is useful for debugging, inspecting, and entering buffer or view
+commands. If you try cause instability in Textadept's Lua state, you might very
+well succeed so be careful. For more information, see the
+[scripting](11_Scripting.html) page.
+
+Abbreviated commands for the `buffer`, `view` and `gui` are available. So
+`buffer:append_text('foo')` can be shortened to `append_text('foo')`. `print()`
+redirects to [`gui.print()`](../modules/gui.html#print). Use `_G.print()` for
+Lua's `print()`.
+
+![Command Entry](images/commandentry.png)
+
+#### Tab Completion
+
+Tab-completion for functions, variables, tables, etc. is available. Press the
+`Tab` key to display a list of available completions. Use the arrow keys to make
+a selection and press `Enter` to insert it.
+
+![Command Completion](images/commandentrycompletion.png)
+
+#### Extending
+
+You can extend the command entry to do more than enter Lua commands. An
+example of this is [incremental
+search](../modules/gui.find.html#find_incremental). See
+`modules/textadept/find.lua` for the implementation.
+
+## File Encoding
+
+Textadept represents all characters and strings internally as UTF-8. You will
+not notice any difference for working with files containing ASCII text since
+UTF-8 is compatible with it. Textadept can also detect ISO-8859-1 and MacRoman,
+the primary encodings used on Windows and Mac OSX respectively. Files with more
+exotic encodings may not be detected properly, if at all. You can change the
+list of encodings Textadept tries to detect via
+[`io.try_encodings`](../modules/io.html#try_encodings).
+
+It is recommended to use UTF-8 encoded files because UTF-8 is very well
+supported by other text editors and operating systems. You can change the file's
+encoding via the `Buffer -> Encoding` menu. Textadept saves new files as UTF-8
+by default.
diff --git a/doc/manual/11_Scripting.md b/doc/manual/11_Scripting.md
new file mode 100644
index 00000000..aaaaa498
--- /dev/null
+++ b/doc/manual/11_Scripting.md
@@ -0,0 +1,57 @@
+# Scripting
+
+Textadept has superb support for editing Lua code. Syntax autocomplete and
+LuaDoc is available for many Textadept objects as well as Lua's standard
+libraries. See the [lua module documentation](../modules/_m.lua.commands.html)
+for more information.
+
+## LuaDoc and Examples
+
+Textadept's API is heavily documented. The [LuaDoc](../index.html) is the
+ultimate resource on scripting Textadept. There are of course abundant scripting
+examples since Textadept is mostly written in Lua.
+
+## Scintilla
+
+The editing component used by Textadept is [Scintilla](http://scintilla.org).
+The [buffer](../modules/buffer.html) part of Textadept's API is derived from the
+[Scintilla API](http://scintilla.org/ScintillaDoc.html) so any C/C++ code using
+Scintilla calls can be ported to Lua without too much trouble.
+
+## Textadept Folder Structure
+
+Because Textadept is mostly written in Lua, its Lua scripts have to be stored in
+an organized folder structure.
+
+#### Core
+
+Textadept's core Lua modules are contained in `core/`. These are absolutely
+necessary in order for the application to run. They are responsible for
+Textadept's Lua to C interface, event structure, file input/output, and
+localization.
+
+#### Lexers
+
+Lexer Lua modules are responsible for the syntax highlighting of source code.
+They are located in `lexers/`.
+
+#### Modules
+
+Editor Lua modules are contained in `modules/`. These provide advanced text
+editing capabilities and can be available for all programming languages or
+targeted at specific ones.
+
+#### Themes
+
+Built-in themes to customize the look and behavior of Textadept are located in
+`themes/`.
+
+#### User
+
+User Lua modules are contained in the `~/.textadept/` folder. This folder may
+contain `lexers/`, `modules/`, and `themes/` subdirectories.
+
+#### GTK
+
+The `etc/`, `lib/`, and `share/` directories are used by GTK and only appear in
+the Win32 and Mac OSX packages.
diff --git a/doc/manual/12_Compiling.md b/doc/manual/12_Compiling.md
new file mode 100644
index 00000000..2f6e19ea
--- /dev/null
+++ b/doc/manual/12_Compiling.md
@@ -0,0 +1,81 @@
+# Compiling
+
+## Requirements
+
+Unfortunately, the requirements for building Textadept are not as minimal as
+running it.
+
+#### Linux and BSD
+
+Linux systems need the GTK+ development libraries. Your package manager should
+allow you to install them. For Debian-based distributions, the package is
+typically called `libgtk2.0-dev`. Otherwise, compile and install it from the
+[GTK+ website](http://www.gtk.org/download-linux.html). Additionally you will
+need the [GNU C compiler](http://gcc.gnu.org) (`gcc`) and
+[GNU Make](http://www.gnu.org/software/make/) (`make`). Both should be available
+for your Linux distribution through its package manager.
+
+#### Windows
+
+Compiling Textadept on Windows is no longer supported. If you wish to do so
+however, you need a C compiler that supports the C99 standard (Microsoft's does
+not) and the [GTK+ for Windows bundle](http://www.gtk.org/download-windows.html)
+(2.16 is recommended).
+
+The preferred way to compile for Windows is cross-compiling from Linux. To do
+so, in addition to the GTK bundle mentioned above, you need
+[MinGW](http://mingw.org) with the Windows header files. They should be
+available from your package manager.
+
+#### Mac OSX
+
+[XCode](http://developer.apple.com/TOOLS/xcode/) is needed for Mac OSX as well
+as [jhbuild](http://sourceforge.net/apps/trac/gtk-osx/wiki/Build). After
+building `meta-gtk-osx-bootstrap` and `meta-gtk-osx-core`, you need to build
+`meta-gtk-osx-themes`. Note that the entire compiling process can easily take
+30 minutes or more and ultimately consume nearly 1GB of disk space.
+
+## Download
+
+Download the `textadept_x.x.src.zip`, regardless of what platform you are on.
+
+## Compiling
+
+#### Linux and BSD
+
+For Linux systems, simply run `make` in the `src/` directory. The `textadept`
+executable is created in the root directory. Make a symlink from it to
+`/usr/bin/` or elsewhere in your `PATH`.
+
+BSD users please run `make BSD=1`.
+
+#### Cross Compiling for Windows from Linux
+
+When cross-compiling from within Linux, first unzip the GTK+ for Windows bundle
+into a new `src/win32gtk` directory. Then modify the `CC`, `CPP`, and `WINDRES`
+variables in the `WIN32` block of `src/Makefile` to match your MinGW
+installation and run `make WIN32=1` to build `../textadept.exe`.
+
+#### Mac OSX
+
+After using `jhbuild`, GTK is in `~/gtk` so make a symlink from `~/gtk/inst` to
+`src/gtkosx` in Textadept. Then run `make OSX=1` to build `../textadept.osx`. At
+this point it is recommended to build a new `textadept.app` from an existing
+one. Download the most recent app and replace `Contents/MacOS/textadept.osx`,
+all `.dylib` files in `Contents/Resources/lib`, and all `.so` files in
+`Contents/Resources/lib/gtk-2.0/<version>/{engines,immodules,loaders}` with your
+own versions in `src/gtkosx/lib`. If you wish, you may also replace the files
+in `Contents/Resources/{etc,share}`, but these rarely change.
+
+##### Problems
+
+If the build fails because of a
+
+ `redefinition of 'struct Sci_TextRange'`
+
+error, open `src/scintilla/include/Scintilla.h` and comment out the following
+lines (put `//` at the start of the line):
+
+ #define CharacterRange Sci_CharacterRange
+ #define TextRange Sci_TextRange
+ #define TextToFind Sci_TextToFind
diff --git a/doc/manual/13_Help.md b/doc/manual/13_Help.md
new file mode 100644
index 00000000..f80b6e47
--- /dev/null
+++ b/doc/manual/13_Help.md
@@ -0,0 +1,15 @@
+# Help
+
+## Command Line Parameters
+
+Passing `-h` or `--help` to Textadept shows a list of available command line
+parameters.
+
+## Online Help
+
+Textadept has a [mailing list](http://groups.google.com/group/textadept) and a
+[wiki](http://caladbolg.net/textadeptwiki). You can also join us on IRC via
+[freenode.net](http://freenode.net) in `#textadept`.
+
+<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
+<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
diff --git a/doc/manual/14_Appendix.md b/doc/manual/14_Appendix.md
new file mode 100644
index 00000000..67a5feb7
--- /dev/null
+++ b/doc/manual/14_Appendix.md
@@ -0,0 +1,236 @@
+# Appendix
+
+## Key Bindings
+
+<table>
+ <tr><th>Linux / Win32</th><th>Mac OSX</th><th>Command</th></tr>
+ <tr><td colspan='3'><strong>File</strong></td></tr>
+ <tr><td>Ctrl+N</td><td>Apple+N</td><td>New file</td></tr>
+ <tr><td>Ctrl+O</td><td>Apple+O</td><td>Open file</td></tr>
+ <tr><td>Alt+O</td><td>Ctrl+O</td><td>Open recent file</td></tr>
+ <tr><td>None</td><td>None</td><td>Reload file</td></tr>
+ <tr><td>Ctrl+S</td><td>Apple+S</td><td>Save file</td></tr>
+ <tr><td>Ctrl+Shift+S</td><td>Apple+Shift+S</td><td>Save file as</td></tr>
+ <tr><td>Ctrl+W</td><td>Apple+W</td><td>Close file</td></tr>
+ <tr><td>Ctrl+Shift+W</td><td>Apple+Shift+W</td><td>Close all</td></tr>
+ <tr><td>None</td><td>None</td><td>Load Session</td></tr>
+ <tr><td>None</td><td>None</td><td>Save Session</td></tr>
+ <tr><td>Alt+Q</td><td>Apple+Q</td><td>Quit textadept</td></tr>
+ <tr><td colspan='3'><strong>Edit</strong></td></tr>
+ <tr><td>Ctrl+Z</td><td>Apple+Z</td><td>Undo</td></tr>
+ <tr><td>Ctrl+Y</td><td>Apple+Shift+Z</td><td>Redo</td></tr>
+ <tr><td>Ctrl+X<br/>Shift+Del</td><td>Apple+X<br/>Shift+Del</td><td>Cut</td></tr>
+ <tr><td>Ctrl+C<br/>Ctrl+Shift+Insert</td><td>Apple+C<br/>Ctrl+Shift+Insert</td><td>Copy</td></tr>
+ <tr><td>Ctrl+V<br/>Shift+Insert</td><td>Apple+V<br/>Shift+Insert</td><td>Paste</td></tr>
+ <tr><td>Ctrl+A</td><td>Apple+A</td><td>Select All</td></tr>
+ <tr><td>Ctrl+E</td><td>Ctrl+M</td><td>Go to matching brace</td></tr>
+ <tr><td>Ctrl+Shift+E</td><td>Apple+Shift+E</td><td>Select to matching brace</td></tr>
+ <tr><td>Ctrl+Return</td><td>Escape</td><td>Autocomplete word in file</td></tr>
+ <tr><td>Ctrl+Q</td><td>Ctrl+Q</td><td>Block comment/uncomment</td></tr>
+ <tr><td>None</td><td>None</td><td>Delete word</td></tr>
+ <tr><td>Ctrl+H</td><td>Ctrl+Apple+T</td><td>Highlight word occurances</td></tr>
+ <tr><td>None</td><td>Ctrl+T</td><td>Transpose characters</td></tr>
+ <tr><td>None</td><td>None</td><td>Convert indentation</td></tr>
+ <tr><td>None</td><td>Ctrl+K</td><td>Cut to end of line</td></tr>
+ <tr><td>None</td><td>Ctrl+Y</td><td>Paste text cut</td></tr>
+ <tr><td>Alt+C, T</td><td>Ctrl+C, T</td><td>Enclose word or selection in XML tag</td></tr>
+ <tr><td>Alt+C, Shift+T</td><td>Ctrl+C, Shift+T</td><td>Enclose word or selection in single XML tag</td></tr>
+ <tr><td>Alt+C, "</td><td>Ctrl+C, "</td><td>Enclose word or selection in double quotes</td></tr>
+ <tr><td>Alt+C, '</td><td>Ctrl+C, '</td><td>Enclose word or selection in single quotes</td></tr>
+ <tr><td>Alt+C, (</td><td>Ctrl+C, (</td><td>Enclose word or selection in parenthesis</td></tr>
+ <tr><td>Alt+C, [</td><td>Ctrl+C, [</td><td>Enclose word or selection in brackets</td></tr>
+ <tr><td>Alt+C, {</td><td>Ctrl+C, {</td><td>Enclose word or selection in braces</td></tr>
+ <tr><td>Alt+C, C, &lt;char&gt;</td><td>Ctrl+C, C, &lt;char&gt;</td><td>Enclose word or selection in character</td></tr>
+ <tr><td>Alt+S, T</td><td>Ctrl+S, T</td><td>Select between XML tags</td></tr>
+ <tr><td>Alt+S, "</td><td>Ctrl+S, "</td><td>Select between double quotes</td></tr>
+ <tr><td>Alt+S, '</td><td>Ctrl+S, '</td><td>Select between single quotes</td></tr>
+ <tr><td>Alt+S, (</td><td>Ctrl+S, (</td><td>Select between parenthesis</td></tr>
+ <tr><td>Alt+S, [</td><td>Ctrl+S, [</td><td>Select between brackets</td></tr>
+ <tr><td>Alt+S, {</td><td>Ctrl+S, {</td><td>Select between braces</td></tr>
+ <tr><td>Alt+S, W</td><td>Ctrl+S, W</td><td>Select word</td></tr>
+ <tr><td>Alt+S, L</td><td>Ctrl+S, L</td><td>Select line</td></tr>
+ <tr><td>Alt+S, P</td><td>Ctrl+S, P</td><td>Select paragraph</td></tr>
+ <tr><td>Alt+S, S</td><td>Ctrl+S, S</td><td>Select scope (style)</td></tr>
+ <tr><td>Alt+S, G</td><td>Ctrl+S, G</td><td>Grow selection by a character on each end</td></tr>
+ <tr><td>Alt+S, C, &lt;char&gt;</td><td>Ctrl+S, C, &lt;char&gt;</td><td>Select between characters</td></tr>
+ <tr><td>Insert</td><td>Insert</td><td>Toggle overtype</td></tr>
+ <tr><td colspan='3'><strong>Search</strong></td></tr>
+ <tr><td>Ctrl+F</td><td>Apple+F</td><td>Find</td></tr>
+ <tr><td>F3</td><td>Apple+G</td><td>Find next</td></tr>
+ <tr><td>None</td><td>Apple+Shift+G</td><td>Find prev</td></tr>
+ <tr><td>None</td><td>Apple+R</td><td>Replace</td></tr>
+ <tr><td>Ctrl+Shift+F</td><td>Apple+I</td><td>Find incremental</td></tr>
+ <tr><td>None</td><td>Apple+Shift+F</td><td>Find in files</td></tr>
+ <tr><td>None</td><td>Ctrl+Apple+G</td><td>Goto next file in list</td></tr>
+ <tr><td>None</td><td>Ctrl+Apple+Shift+G</td><td>Goto prev file in list</td></tr>
+ <tr><td>Ctrl+G</td><td>Ctrl+G</td><td>Goto line</td></tr>
+ <tr><td colspan='3'><strong>Tools</strong></td></tr>
+ <tr><td>F2</td><td>F2</td><td>Focus Lua command entry</td></tr>
+ <tr><td>Ctrl+R</td><td>Ctrl+R</td><td>Run file</td></tr>
+ <tr><td>Ctrl+Shift+R</td><td>Ctrl+Shift+R</td><td>Compile file</td></tr>
+ <tr><td>Tab</td><td>Tab</td><td>Expand snippet or next placeholder or indent text</td></tr>
+ <tr><td>Shift+Tab</td><td>Shift+Tab</td><td>Previous snippet placeholder or dedent text</td></tr>
+ <tr><td>Ctrl+Alt+I</td><td>Ctrl+Apple+I</td><td>Cancel current snippet</td></tr>
+ <tr><td>Ctrl+Alt+Shift+I</td><td>Ctrl+Apple+Shift+I</td><td>List snippets available</td></tr>
+ <tr><td>Alt+I</td><td>Ctrl+I</td><td>Show style</td></tr>
+ <tr><td colspan='3'><strong>Buffers</strong></td></tr>
+ <tr><td>Ctrl+B</td><td>Apple+B</td><td>Switch buffers</td></tr>
+ <tr><td>Ctrl+Tab</td><td>Ctrl+Tab</td><td>Next buffer</td></tr>
+ <tr><td>Ctrl+Shift+Tab</td><td>Ctrl+Shift+Tab</td><td>Prev buffer</td></tr>
+ <tr><td>Ctrl+T, V, E</td><td>Apple+T, V, E</td><td>Toggle show end of line</td></tr>
+ <tr><td>Ctrl+T, V, W</td><td>Apple+T, V, W</td><td>Toggle show whitespace</td></tr>
+ <tr><td>Ctrl+T, V, I</td><td>Apple+T, V, I</td><td>Toggle show indentation guides</td></tr>
+ <tr><td>Ctrl+T, V, Tab</td><td>Apple+T, V, Tab</td><td>Toggle use tabs or spaces</td></tr>
+ <tr><td>Ctrl+T, V, Space</td><td>Apple+T, V, Space</td><td>Toggle show whitespace</td></tr>
+ <tr><td>Ctrl+T, V, V</td><td>Apple+T, V, V</td><td>Toggle use virtual space</td></tr>
+ <tr><td>Ctrl+L</td><td>Ctrl+L</td><td>Select lexer</td></tr>
+ <tr><td>F5</td><td>F5</td><td>Refresh syntax highlighting</td></tr>
+ <tr><td colspan='3'><strong>Split Views</strong></td></tr>
+ <tr><td>Ctrl+Alt+V, N</td><td>Ctrl+V, N</td><td>Next view</td></tr>
+ <tr><td>Ctrl+Alt+V, P</td><td>Ctrl+V, P</td><td>Prev view</td></tr>
+ <tr><td>Ctrl+Alt+V, S</td><td>Ctrl+V, S</td><td>Split view horizontal</td></tr>
+ <tr><td>Ctrl+Alt+V, Shift+S</td><td>Ctrl+V, Shift+S</td><td>Split view vertica</td></tr>
+ <tr><td>Ctrl+Alt+V, W</td><td>Ctrl+V, W</td><td>Unsplit view</td></tr>
+ <tr><td>Ctrl+Alt+V, Shift+W</td><td>Ctrl+V, Shift+W</td><td>Unsplit all views</td></tr>
+ <tr><td>None</td><td>None</td><td>Grow split view</td></tr>
+ <tr><td>None</td><td>None</td><td>Shrink split view</td></tr>
+ <tr><td>Ctrl+Plus</td><td>Ctrl+Plus</td><td>Zoom in</td></tr>
+ <tr><td>Ctrl+Minus</td><td>Ctrl+Minus</td><td>Zoom out</td></tr>
+ <tr><td>Ctrl+0</td><td>Ctrl+0</td><td>Zoom normal</td></tr>
+ <tr><td colspan='3'><strong>Movement</strong></td></tr>
+ <tr><td>Right</td><td>Right<br/>Ctrl+F</td><td>Next character</td></tr>
+ <tr><td>Shift+Right</td><td>Shift+Right<br/>Ctrl+Shift+F</td><td>Select next character</td></tr>
+ <tr><td>Ctrl+Right</td><td>Ctrl+Right<br/>Ctrl+Apple+F</td><td>Next word</td></tr>
+ <tr><td>Ctrl+Shift+Right</td><td>Ctrl+Shift+Right<br/>Ctrl+Apple+Shift+F</td><td>Select next word</td></tr>
+ <tr><td>Alt+Shift+Right</td><td>Apple+Shift+Right</td><td>Rectangular select next character</td></tr>
+ <tr><td>Left</td><td>Left<br/>Ctrl+B</td><td>Prev character</td></tr>
+ <tr><td>Shift+Left</td><td>Shift+Left<br/>Ctrl+Shift+B</td><td>Select prev character</td></tr>
+ <tr><td>Ctrl+Left</td><td>Ctrl+Left<br/>Ctrl+Apple+B</td><td>Prev word</td></tr>
+ <tr><td>Ctrl+Shift+Left</td><td>Ctrl+Shift+Left<br/>Ctrl+Apple+Shift+B</td><td>Select prev word</td></tr>
+ <tr><td>Alt+Shift+Left</td><td>Apple+Shift+Left</td><td>Rectangular select prev character</td></tr>
+ <tr><td>Down</td><td>Down<br/>Ctrl+N</td><td>Next line</td></tr>
+ <tr><td>Shift+Down</td><td>Shift+Down<br/>Ctrl+Shift+N</td><td>Select next line</td></tr>
+ <tr><td>Ctrl+Down</td><td>Ctrl+Down</td><td>Scroll line down</td></tr>
+ <tr><td>Ctrl+Shift+Down</td><td>Ctrl+Shift+Down</td><td>Rectangular select next line</td></tr>
+ <tr><td>Up</td><td>Up<br/>Ctrl+P</td><td>Next character</td></tr>
+ <tr><td>Shift+Up</td><td>Shift+Up<br/>Ctrl+Shift+P</td><td>Select prev line</td></tr>
+ <tr><td>Ctrl+Up</td><td>Ctrl+Up</td><td>Scroll line up</td></tr>
+ <tr><td>Ctrl+Shift+Up</td><td>Ctrl+Shift+Up</td><td>Rectangular select prev line</td></tr>
+ <tr><td>Home</td><td>Home<br/>Ctrl+A</td><td>Goto beginning of line</td></tr>
+ <tr><td>Shift+Home</td><td>Shift+Home<br/>Ctrl+Shift+A</td><td>Select to beginning of line</td></tr>
+ <tr><td>Ctrl+Home</td><td>Ctrl+Home</td><td>Goto document start</td></tr>
+ <tr><td>Ctrl+Shift+Home</td><td>Ctrl+Shift+Home</td><td>Select to file start</td></tr>
+ <tr><td>Alt+Shift+Home</td><td>Apple+Shift+Home</td><td>Rectangular select to beginning of line</td></tr>
+ <tr><td>End</td><td>End<br/>Ctrl+E</td><td>Goto end of line</td></tr>
+ <tr><td>Shift+End</td><td>Shift+End<br/>Ctrl+Shift+E</td><td>Select to end of line</td></tr>
+ <tr><td>Ctrl+End</td><td>Ctrl+End</td><td>Goto file end</td></tr>
+ <tr><td>Ctrl+Shift+End</td><td>Ctrl+Shift+End</td><td>Select to file end</td></tr>
+ <tr><td>Alt+Shift+End</td><td>Apple+Shift+End</td><td>Rectangular select to end of line</td></tr>
+ <tr><td>Backspace<br/>Shift+Backspace</td><td>Backspace<br/>Shift+Backspace<br/>Ctrl+H</td><td>Delete previous character</td></tr>
+ <tr><td>Ctrl+Backspace</td><td>Ctrl+Backspace<br/>Ctrl+Apple+H</td><td>Delete previous word</td></tr>
+ <tr><td>Ctrl+Shift+Backspace</td><td>Ctrl+Shift+Backspace</td><td>Delete to beginning of line</td></tr>
+ <tr><td>Del</td><td>Del<br/>Ctrl+D</td><td>Delete next character</td></tr>
+ <tr><td>Ctrl+Del</td><td>Ctrl+Del<br/>Ctrl+Apple+D</td><td>Delete next word</td></tr>
+ <tr><td>Ctrl+Shift+Del</td><td>Ctrl+Shift+Del</td><td>Delete to end of line</td></tr>
+ <tr><td>Page Up</td><td>Page Up</td><td>Page up</td></tr>
+ <tr><td>Shift+Page Up</td><td>Shift+Page Up</td><td>Select page up</td></tr>
+ <tr><td>Alt+Shift+Page Up</td><td>Apple+Shift+Page Up</td><td>Rectangular select page up</td></tr>
+ <tr><td>Page Down</td><td>Page Down</td><td>Page down</td></tr>
+ <tr><td>Shift+Page Down</td><td>Shift+Page Down</td><td>Select page down</td></tr>
+ <tr><td>Alt+Shift+Page Down</td><td>Apple+Shift+Page Down</td><td>Rectangular select page down</td></tr>
+</table>
+
+## Lua Patterns
+
+The following is taken from the
+[Lua 5.1 Reference Manual](http://www.lua.org/manual/5.1/manual.html#5.4.1).
+
+_Character Class:_
+
+A character class is used to represent a set of characters. The following
+combinations are allowed in describing a character class:
+
+* **_`x`_:** (where _x_ is not one of the magic characters `^$()%.[]*+-?`)
+ represents the character _x_ itself.
+* **`.`:** (a dot) represents all characters.
+* **`%a`:** represents all letters.
+* **`%c`:** represents all control characters.
+* **`%d`:** represents all digits.
+* **`%l`:** represents all lowercase letters.
+* **`%p`:** represents all punctuation characters.
+* **`%s`:** represents all space characters.
+* **`%u`:** represents all uppercase letters.
+* **`%w`:** represents all alphanumeric characters.
+* **`%x`:** represents all hexadecimal digits.
+* **`%z`:** represents the character with representation 0.
+* **`%`_`x`_:** (where _x_ is any non-alphanumeric character) represents the
+ character _x_. This is the standard way to escape the magic characters. Any
+ punctuation character (even the non magic) can be preceded by a '`%`' when
+ used to represent itself in a pattern.
+* **`[set]`:** represents the class which is the union of all characters in set.
+ A range of characters can be specified by separating the end characters of the
+ range with a '`-`'. All classes `%`_x_ described above can also be used as
+ components in set. All other characters in set represent themselves. For
+ example, `[%w_]` (or `[_%w]`) represents all alphanumeric characters plus the
+ underscore, `[0-7]` represents the octal digits, and `[0-7%l%-]` represents
+ the octal digits plus the lowercase letters plus the '`-`' character.
+ <br /><br />
+ The interaction between ranges and classes is not defined. Therefore, patterns
+ like `[%a-z]` or `[a-%%]` have no meaning.
+* **`[^set]`:** represents the complement of _set_, where _set_ is interpreted
+ as above.
+
+For all classes represented by single letters (`%a`, `%c`, etc.), the
+corresponding uppercase letter represents the complement of the class. For
+instance, `%S` represents all non-space characters.
+
+The definitions of letter, space, and other character groups depend on the
+current locale. In particular, the class `[a-z]` may not be equivalent to `%l`.
+
+_Pattern Item:_
+
+A _pattern item_ can be
+
+* a single character class, which matches any single character in the class;
+* a single character class followed by '`*`', which matches 0 or more
+ repetitions of characters in the class. These repetition items will always
+ match the longest possible sequence;
+* a single character class followed by '`+`', which matches 1 or more
+ repetitions of characters in the class. These repetition items will always
+ match the longest possible sequence;
+* a single character class followed by '`-`', which also matches 0 or more
+ repetitions of characters in the class. Unlike '`*`', these repetition items
+ will always match the _shortest_ possible sequence;
+* a single character class followed by '`?`', which matches 0 or 1 occurrence of
+ a character in the class;
+* `%n`, for _n_ between 1 and 9; such item matches a substring equal to the
+ _n_-th captured string (see below);
+* `%bxy`, where _x_ and _y_ are two distinct characters; such item matches
+ strings that start with _x_, end with _y_, and where the _x_ and _y_ are
+ balanced. This means that, if one reads the string from left to right,
+ counting +_1_ for an _x_ and -_1_ for a _y_, the ending _y_ is the first _y_
+ where the count reaches 0. For instance, the item `%b()` matches expressions
+ with balanced parentheses.
+
+_Pattern:_
+
+A _pattern_ is a sequence of pattern items. A '`^`' at the beginning of a
+pattern anchors the match at the beginning of the subject string. A '`$`' at the
+end of a pattern anchors the match at the end of the subject string. At other
+positions, '`^`' and '`$`' have no special meaning and represent themselves.
+
+_Captures:_
+
+A pattern can contain sub-patterns enclosed in parentheses; they describe
+_captures_. When a match succeeds, the substrings of the subject string that
+match captures are stored (_captured_) for future use. Captures are numbered
+according to their left parentheses. For instance, in the pattern
+`"(a*(.)%w(%s*))"`, the part of the string matching `"a*(.)%w(%s*)"` is stored
+as the first capture (and therefore has number 1); the character matching "`.`"
+is captured with number 2, and the part matching "`%s*`" has number 3.
+
+As a special case, the empty capture `()` captures the current string position
+(a number). For instance, if we apply the pattern `"()aa()"` on the string
+`"flaaap"`, there will be two captures: 3 and 5.
+
+A pattern cannot contain embedded zeros. Use `%z` instead.
diff --git a/doc/manual/1_Introduction.md b/doc/manual/1_Introduction.md
index b1ee0826..2190c1ee 100644
--- a/doc/manual/1_Introduction.md
+++ b/doc/manual/1_Introduction.md
@@ -2,18 +2,23 @@
## Overview
-Textadept is a text editor for programmers.
+<div style="float: right; margin: 0 0 1em 1em;">
+ <img src="images/textadept.png" alt="Textadept" />
+</div>
+
+Textadept is a cross-platform text editor for programmers.
In a world where code bloat is commonplace and application speed is second to
its number of features, Textadept breaks that trend, aiming to stay minimalist
and fast, but at the same time being ridiculously extensible. At its core lies
-less than 2000 lines of C code, and that's how it always will be. While other
+less than 2000 lines of C code, and that is how it always will be. While other
editors rely on numerous plugins for a wide range of functionality, recordable
macros to speed up workflow, and shell scripts to quickly transform text,
Textadept takes it to the extreme: it gives you complete control over the entire
-application using the embedded [Lua][Lua] language. Lua is nearly as fast as C,
-and has a very small footprint. In fact, most of Textadept is written in Lua.
-Its incredibly fast startup time and operation attest to Lua's worthiness.
+application using the embedded [Lua](http://lua.org) language. Lua is one of the
+fastest scripting languages available and has a very small footprint. In fact,
+most of Textadept is written in Lua. The application's incredibly fast startup
+time and operation attest to Lua's worthiness.
Tired of all those features you never use in other editors? With Textadept you
can disable or remove anything you dislike or do not need. Wish you had an
@@ -31,54 +36,25 @@ run them in your shell.
These are just some of Textadept's strengths. Textadept is not about
constraining the user to a certain set of features while allowing minimal
custimization and/or extensibility. Textadept is about allowing that
-customization and extensibility from the get-go; the features come after that.
-
-[Lua]: http://lua.org
-
-## Help
-
-Textadept has a [mailing list][mailing_list] and a [wiki][wiki]. You can also
-join us on IRC via [freenode.net][freenode] in `#textadept`.
-
-[mailing_list]: http://groups.google.com/group/textadept
-[wiki]: http://caladbolg.net/textadeptwiki
-[freenode]: http://freenode.net
-
-## Screenshots
-
-<div style="float: left;">
-Main window.<br />
-<a href="http://caladbolg.net/images/textadept/main.png"><img src="http://caladbolg.net/images/textadept/main_t.png" alt="Main" /></a>
-</div>
-<div style="float: left; margin-left: 50px;">
-Open Buffers.<br />
-<a href="http://caladbolg.net/images/textadept/buffers.png"><img src="http://caladbolg.net/images/textadept/buffers_t.png" alt="Buffers" /></a>
-</div>
-<div style="margin-left: 400px;">
-Switching Buffers.<br />
-<a href="http://caladbolg.net/images/textadept/buffersfilter.png"><img src="http://caladbolg.net/images/textadept/buffersfilter_t.png" alt="Switch Buffers" /></a>
-</div>
-<div style="float: left;">
-Multiple Languages.<br />
-<a href="http://caladbolg.net/images/textadept/languages.png"><img src="http://caladbolg.net/images/textadept/languages_t.png" alt="Multiple Languages" /></a>
-</div>
-<div style="margin-left: 200px;">
-Lua Commands.<br />
-<a href="http://caladbolg.net/images/textadept/lua_commands.png"><img src="http://caladbolg.net/images/textadept/lua_commands_t.png" alt="Lua Command" /></a>
-</div>
-<div style="float: left;">
-Linux OS.<br />
-<a href="http://caladbolg.net/images/textadept/linux.png"><img src="http://caladbolg.net/images/textadept/linux_t.png" alt="Linux" /></a>
-</div>
-<div style="float: left; margin-left: 50px;">
-Windows OS.<br />
-<a href="http://caladbolg.net/images/textadept/win32.png"><img src="http://caladbolg.net/images/textadept/win32_t.png" alt="Win32" /></a>
-</div>
-<div style="margin-left: 400px;">
-Mac OSX.<br />
-<a href="http://caladbolg.net/images/textadept/macosx.png"><img src="http://caladbolg.net/images/textadept/macosx_t.png" alt="Mac OSX" /></a>
-</div>
-<div>
-Extras.<br />
-<a href="http://caladbolg.net/images/textadept/extras.png"><img src="http://caladbolg.net/images/textadept/extras_t.png" alt="Extras" /></a>
-</div>
+customization and extensibility from the start; the features come after that.
+
+<div style="float: left; margin: 0 3em 1em 0;">
+ <img src="images/splitviews.png" alt="Split Views" />
+</div>
+
+## Manual Notation
+
+* `~/` is denoted as the user's home directory. On Windows machines this is the
+ value of the `USERHOME` environment variable (typically `C:\Users\<username>\`
+ or `C:\Documents and Settings\<username>\`). On Linux and Mac OSX machines it
+ is the value of `HOME` (typically `/home/<username>/` and `/Users/<username>/`
+ respectively).
+* Any relative directory paths, i.e. paths that do not begin with `/` or `C:\`,
+ are relative to the location of Textadept.
+* Key combinations are not case-sensitive. `Ctrl+N` means the `N` key is pressed
+ with only the `Control` key being held down, not the `Shift` key.
+ `Ctrl+Shift+N` means the `N` key is pressed with both `Control` and `Shift`
+ keys being held down. The same notation is applicable to key chains:
+ `Ctrl+N, N` vs. `Ctrl+N, Shift+N`. In the first key chain, `Control` and `N`
+ are pressed followed by `N` with no modifiers. The second has `Control` and
+ `N` pressed followed by `Shift` and `N`.
diff --git a/doc/manual/2_Installation.md b/doc/manual/2_Installation.md
index 348e3a8e..8229ab9b 100644
--- a/doc/manual/2_Installation.md
+++ b/doc/manual/2_Installation.md
@@ -3,27 +3,23 @@
## Requirements
In its bid for minimalism, Textadept also needs very little to run. In fact, the
-only thing it needs is [GTK+ 2.0][GTK2] >= 2.16 on Linux systems. GTK is already
-included in Windows and Mac OSX packages. Textadept also has it's own version of
-Lua.
+only thing it needs is [GTK+ 2.0](http://gtk.org) >= 2.16 on Linux systems. GTK
+is already included in Windows and Mac OSX packages. Textadept also has it's own
+version of Lua.
Note: for Win32 and Mac OSX, more than 3/4 of the download and unpackaged
application sizes are due to GTK, the cross-platform GUI toolkit Textadept uses.
Textadept itself is much smaller.
-[GTK2]: http://gtk.org
-
#### Linux
Most Linux systems already have GTK+ installed. If not, it is probably available
through your package manager. Otherwise, compile and install it from the
-[GTK+ website][GTK-Linux].
-
-[GTK-Linux]: http://www.gtk.org/download-linux.html
+[GTK+ website](http://www.gtk.org/download-linux.html).
#### Mac OSX
-Prior to 3.5, the GTK+ [Mac OSX Framework][GTK-OSX] was needed. Newer versions
+Prior to 3.5, the GTK+ [Mac OSX Framework][GTK-OSX] was required. Newer versions
are all-inclusive and do not require anything.
[GTK-OSX]: http://code.google.com/p/textadept/downloads/detail?name=Gtk-Framework-2.14.3-2-test1.dmg
@@ -32,26 +28,40 @@ Note that Textadept is designed for Intel Leopard+ Macs.
#### Windows
-Prior to 3.5, the [GTK+ 2.0 Runtime][GTK-Runtime] was needed. Newer versions are
-all-inclusive and do not require anything.
-
-[GTK-Runtime]: http://sourceforge.net/projects/gtk-win/
+Prior to 3.5, the [GTK+ 2.0 Runtime](http://sourceforge.net/projects/gtk-win/)
+was required. Newer versions are all-inclusive and do not require anything.
## Download
-Textadept can be downloaded from the [project page][Download]. Select the
-appropriate package for your platform.
-
-[Download]: http://textadept.googlecode.com/
+Download Textadept from the [project page](http://textadept.googlecode.com/).
+Select the appropriate package for your platform.
## Installation
-#### Linux and Windows
+Textadept was designed to be as easy as possible to install by any user. You do
+not need to have administrator privilages.
+
+#### Linux
-For Linux and Windows machines, simply unpack the archive anywhere and you are
-ready to go.
+Unpack the archive anywhere. Run Textadept by running
+`/path/to/textadept_VERSION/textadept` from the terminal. You can also create a
+symlink to the executable in your `PATH` (e.g. `/usr/bin`) or make a GNOME, KDE,
+XFCE, etc. button or menu launcher.
#### Mac OSX
-For Mac OSX machines, unpack the archive and move `textadept.app` to your user
-or system `Applications` directory like any other application.
+Unpack the archive and move `textadept.app` to your user or system
+`Applications` directory like any other Mac OSX application. Run Textadept by
+double-clicking `textadept.app`.
+
+#### Windows
+
+Unpack the archive anywhere. Run Textadept by double-clicking `textadept.exe`.
+You can also create shortcuts to the executable in your Start Menu, Quick Launch
+toolbar, Desktop, etc.
+
+![Linux](images/linux.png)
+&nbsp;&nbsp;
+![Mac OSX](images/macosx.png)
+&nbsp;&nbsp;
+![Win32](images/win32.png)
diff --git a/doc/manual/3_Compiling.md b/doc/manual/3_Compiling.md
deleted file mode 100644
index ed007d61..00000000
--- a/doc/manual/3_Compiling.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# Compiling
-
-## Requirements
-
-The requirements for building Textadept are not quite so minimal.
-
-#### Linux & BSD
-
-Linux systems will need the GTK+ development libraries. Your package manager
-should allow you to install them. For Debian-based distributions, the package is
-typically called `libgtk2.0-dev`. Otherwise, compile and install it from the
-[GTK+ website][GTK-Linux]. Additionally you will need the [GNU C compiler][GCC]
-(`gcc`) and [GNU Make][Make] (`make`). Both should be available for your Linux
-distribution through its package manager.
-
-[GTK-Linux]: http://www.gtk.org/download-linux.html
-[GCC]: http://gcc.gnu.org
-[Make]: http://www.gnu.org/software/make/
-
-#### Windows
-
-Compiling Textadept on Windows is no longer supported. If you wish to do so
-however, you will need a C compiler that supports the C99 standard (Microsoft's
-does not) and the [GTK+ for Windows bundle][GTK-Win32] (2.16 is recommended).
-
-The preferred way to compile for Windows is cross-compiling from Linux. To do
-so, in addition to the GTK bundle mentioned above, you will need [MinGW][MinGW]
-with the Windows header files. They should be available from your package
-manager.
-
-[GTK-Win32]: http://www.gtk.org/download-windows.html
-[MinGW]: http://mingw.org
-
-#### Mac OSX
-
-[XCode][XCode] is needed for Mac OSX as well as [jhbuild][GTK-OSX]. After
-building `meta-gtk-osx-bootstrap` and `meta-gtk-osx-core`, you will need to
-build `meta-gtk-osx-themes`. Note that the entire compiling process can easily
-take 30 minutes or more and ultimately consume nearly 1GB of disk space.
-
-[XCode]: http://developer.apple.com/TOOLS/xcode/
-[GTK-OSX]: http://sourceforge.net/apps/trac/gtk-osx/wiki/Build
-
-## Download
-
-Download the `textadept_x.x.src.zip`, regardless of what platform you are on.
-
-## Compiling
-
-#### Linux & BSD
-
-For Linux systems, simply run `make` in the `src/` directory. The `textadept`
-executable will be created in the root directory. You can make a symlink from
-it to `/usr/bin/` or elsewhere in your `PATH`.
-
-BSD users please run `make BSD=1`.
-
-#### Windows (Cross-Compiling from Linux)
-
-When cross-compiling from within Linux, first unzip the GTK+ for Windows bundle
-into a new `src/win32gtk` directory. Then modify the `CC`, `CPP`, and `WINDRES`
-variables in the `WIN32` block of `src/Makefile` to match your MinGW
-installation and run `make WIN32=1` to build `../textadept.exe`.
-
-#### Mac OSX
-
-After using `jhbuild`, GTK is in `~/gtk` so make a symlink from `~/gtk/inst` to
-`src/gtkosx` in Textadept. Then run `make OSX=1` to build `../textadept.osx`. At
-this point it is recommended to build a new `textadept.app` from an existing
-one. Download the most recent app and replace `Contents/MacOS/textadept.osx`,
-all `.dylib` files in `Contents/Resources/lib`, and all `.so` files in
-`Contents/Resources/lib/gtk-2.0/[version]/{engines,immodules,loaders}` with your
-own versions in `src/gtkosx/lib`. If you wish, you may also replace the files
-in `Contents/Resources/{etc,share}`, but these rarely change.
-
-## Problems
-
-#### Mac OSX
-
-In Mac OSX, if the build fails because of a
-
- `redefinition of 'struct Sci_TextRange'`
-
-error, you will need to open `src/scintilla/include/Scintilla.h` and comment
-out the following lines (put `//` at the start of the line):
-
- #define CharacterRange Sci_CharacterRange
- #define TextRange Sci_TextRange
- #define TextToFind Sci_TextToFind
diff --git a/doc/manual/4_UserInterface.md b/doc/manual/3_UserInterface.md
index 382bcb1d..8d15f505 100644
--- a/doc/manual/4_UserInterface.md
+++ b/doc/manual/3_UserInterface.md
@@ -1,9 +1,13 @@
# User Interface
+<div style="float: right; margin: 0 0 1em 1em;">
+ <img src="images/ui.png" alt="UI" />
+</div>
+
Textadept's user interface was designed to be simple. It consists of an optional
-menubar, editor view, and initially hidden dialogs for find/replace and command
-entry. Below are brief descriptions of these features. More in-depth discussion
-about each of them is provided later in the manual.
+menubar, editor view, initially hidden find/replace dialog, initially hidden
+command entry, and statusbar. Below are brief descriptions of these features.
+More in-depth discussion about some of them is provided later in the manual.
## Menubar
@@ -15,7 +19,7 @@ all of Textadept's features.
The editor view is where you will spend most of your time in Textadept. It
supports unlimited split views and is completely controllable by Lua.
-## Find/Replace Dialog
+## Find and Replace Dialog
This compact dialog is a great way to slice and dice through your document or
directory of files. You can even find and replace text using Lua patterns. It is
@@ -28,3 +32,10 @@ The versitile command entry functions as both a place to execute Lua commands
with the internal Lua state and find text incrementally. You can extend it to do
even more if you would like. Like the find/replace dialog, the command entry
pops in and out as you wish.
+
+## Statusbar
+
+The left side of the statusbar displays any status messages. The right side
+shows the current buffer's status.
+
+<br/><br/><br/>
diff --git a/doc/manual/4_WorkingWithFiles.md b/doc/manual/4_WorkingWithFiles.md
new file mode 100644
index 00000000..fc072d9e
--- /dev/null
+++ b/doc/manual/4_WorkingWithFiles.md
@@ -0,0 +1,65 @@
+# Working with Files
+
+## Lack of Tabs
+
+One of the first things you will notice when opening multiple files in Textadept
+is that there is no tab bar showing the files that are open. This was a design
+decision. Textadept was built to support unlimited split views, so having a tab
+bar with all open buffers would clutter the interface greatly. There is also the
+question of where to place the bar (above, below, or to one side) and how many
+to have (one for each split view or a single one under the menubar).
+
+You can see which buffer is active by looking at Textadept's titlebar. Pressing
+`Ctrl+Tab` cycles to the next buffer and `Ctrl+Shift+Tab` cycles to the previous
+one.
+
+## Buffer Browser
+
+To move quickly between buffers, press `Ctrl+B` (`Apple+B` on Mac OSX) to open
+the buffer browser.
+
+![Buffer Browser](images/bufferbrowser.png)
+
+The buffer browser shows you a list of currently open buffers, the most recent
+towards the bottom. Typing part of any filename filters the list. You can also
+just use the arrow keys. Pressing `Enter` or clicking `OK` switches to the
+selected buffer.
+
+![Buffer Browser Filtered](images/bufferbrowserfiltered.png)
+
+## Split Views
+
+Textadept allows you to split the editor window as many times as you like either
+horizontally or vertically. `Ctrl+Alt+V, Shift+S` splits vertically
+(side-by-side) and `Ctrl+Alt+V, S` splits horizontally (`Ctrl+V, Shift+S` and
+`Ctrl+V, S` respectively on Mac OSX). You can resize the splitter bar by
+clicking and dragging with the mouse. The same file can be worked with in
+multiple split views.
+
+Pressing `Ctrl+Alt+V, N` (`Ctrl+V, N` on Mac OSX) goes to the next view and
+`Ctrl+Alt+V, P` goes to the previous one.
+
+To unsplit a view, enter the view to keep open and press `Ctrl+Alt+V, W`
+(`Ctrl+V, W` on Mac OSX). To unsplit all views, use `Ctrl+Alt+V, Shift+W`.
+
+## Sessions
+
+By default, Textadept saves the list of open buffers on exit so it can reload
+them the next time it starts up. You can disable this by passing the `-n` or
+`--no-session` switch to Textadept on startup. Sessions can be manually saved
+and opened via the `File -> Save Session...` and `File -> Load Session...`
+menus.
+
+Sessions save additional information such as current split views, caret and
+scroll positions in each buffer, and Textadept's window size.
+
+## Snapopen
+
+A quicker, though slightly more limited alternative to the standard
+`File -> Open` dialog is snapopen. It behaves like the buffer browser, but
+displays a list of files to open, including files in subdirectories. You can
+snapopen the current file's directory from the `Tools -> Snapopen -> Current
+Directory` menu. Snapopen is pretty limited from the menu, but more versitile
+in scripts. See its [LuaDoc](../modules/_m.textadept.snapopen.html).
+
+![Snapopen](images/snapopen.png)
diff --git a/doc/manual/5_FileNavigation.md b/doc/manual/5_FileNavigation.md
new file mode 100644
index 00000000..5c153740
--- /dev/null
+++ b/doc/manual/5_FileNavigation.md
@@ -0,0 +1,26 @@
+# File Navigation
+
+## Bookmarks
+
+You can place bookmarks on lines in buffers to jump back to them later. Use the
+`Tools -> Bookmark` menu options to do so.
+
+## Goto Line
+
+To jump to a specific line in a file, press `Ctrl+G` and specify the line number
+in the prompt and press `Enter` or click `OK`.
+
+## Goto Matching Brace
+
+By default, Textadept will highlight the matching brace characters under the
+caret : `(`, `)`, `[`, `]`, `{`, `}`, `<`, and `>`. Pressing `Ctrl+E` (`Ctrl+M`
+in Mac OSX) moves the caret to that matching brace.
+
+![Matching Braces](images/matchingbrace.png)
+
+## Mac OSX
+
+Textadept supports the keybindings you are accustomed to for nagivagating text
+fields in Mac OSX.
+
+<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
diff --git a/doc/manual/5_FolderStructure.md b/doc/manual/5_FolderStructure.md
deleted file mode 100644
index 10fc0d90..00000000
--- a/doc/manual/5_FolderStructure.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Folder Structure
-
-Because Textadept is mostly written in Lua, these Lua files have to be stored in
-an organized folder structure.
-
-## Core
-
-Textadept's core Lua modules are contained in `core/`. These are absolutely
-necessary in order for Textadept to run. They are responsible for Textadept's
-Lua to C interface, event structure, file input/output, and localization.
-
-## Lexers
-
-Lexer Lua modules are responsible for the syntax highlighting of source code.
-They are located in `lexers/`.
-
-## Modules
-
-Editor Lua modules are contained in `modules/`. These provide advanced text
-editing capabilities and can be available for all programming languages or
-targeted at specific ones.
-
-## Themes
-
-Built-in themes to customize the look and behavior of Textadept are located in
-`themes/`.
-
-## User
-
-User Lua modules are contained in a `.textadept` folder in your home directory.
-In Linux and Mac OSX, your home directory is the location specified by the
-`HOME` environment variable (typically `/home/username` and `/Users/username`
-respectively). In Windows, it is the `USERPROFILE` environment variable. This
-directory will be denoted as `~/.textadept` from now on in the manual.
-
-## GTK
-
-The `etc/`, `lib/`, and `share/` directories are used by GTK and only appear in
-the Win32 and Mac OSX packages.
diff --git a/doc/manual/6_AdeptEditing.md b/doc/manual/6_AdeptEditing.md
new file mode 100644
index 00000000..5e9aef34
--- /dev/null
+++ b/doc/manual/6_AdeptEditing.md
@@ -0,0 +1,151 @@
+# Adept Editing
+
+## Key Commands
+
+Textadept is entirely keyboard-driven. See the comprehensive list of key
+commands in the [appendix](14_Appendix.html#key_bindings). Key commands can be
+modified in your [preferences](9_Preferences.html#key_commands).
+
+## Character Autopairing
+
+Usually, quote (`'`, `"`) and brace (`(`, `[`, `{`) characters go together in
+pairs. By default, Textadept automatically inserts the complement character when
+the first is typed. Similarly, the complement is deleted when you press
+`Backspace` over the first. See the
+[preferences](9_Preferences.html#module_settings) page if you would like to
+disable this.
+
+## Word Completion
+
+Textadept provides buffer-based word completion. Start typing a word, press
+`Ctrl+Return` (`Esc` on Mac OSX), and a list of suggested completions based on
+words in the current document is provided. Continuing to type changes the
+suggestion. Press `Return` to complete the selected word.
+
+![Word Completion](images/wordcompletion.png)
+
+## Find and Replace
+
+`Ctrl+F` (`Apple+F` on Mac OSX) brings up the Find/Replace dialog. In addition
+to offering the usual find and replace, Textadept allows you to find with [Lua
+patterns](14_Appendix.html#lua_patterns) and replace with Lua captures and even
+Lua code! For example: replacing all `(%w+)` with `%(string.upper('%1'))`
+capitalizes all words in the buffer. Lua captures (`%n`) are only available from
+a Lua pattern search, but embedded Lua code enclosed in `%()` is always allowed.
+
+#### Find in Files
+
+Find in Files (`Apple+Shift+F` on Mac OSX) will prompt for a directory to
+search. The results are displayed in a new buffer. Double-clicking a search
+result jumps to it in the file. Replace in Files is not supported. You will have
+to `Find in Files` first, and then `Replace All` for each file a result is found
+in. The `Match Case`, `Whole Word`, and `Lua pattern` flags still apply.
+
+![Find in Files](images/findinfiles.png)
+
+#### Find Incremental
+
+You can start an incremental search by pressing `Ctrl+Shift+F` (`Apple+I` on Mac
+OSX). Incremental search searches the buffer as you type. Only the `Match Case`
+option is recognized.
+
+#### Replace in Selection
+
+By default, `Replace All` replaces all text in the buffer. If you want to
+replace all text in just a portion of the buffer, select a block of text and
+then `Replace All`.
+
+## Indentation
+
+#### Increase or Decrease Indent Level
+
+The amount of indentation for a selected set of lines is increased by pressing
+`Tab` and decreased by pressing `Shift+Tab`. Using these key sequences when no
+selection is present does not have the same effect.
+
+#### Change Indent Size
+
+The indent size is usually set by a [language-specific
+module](7_Modules.html#buffer_properties) or the [theme](8_Themes.html#buffer).
+Textadept shows what it is using for indentation in the document statusbar.
+
+![Document Statusbar](images/docstatusbar.png)
+
+#### Using Tabs Instead of Spaces
+
+You can use tabs instead of the default spaces by pressing `Ctrl+T, V, Tab`
+(Apple+T, V, Tab on Mac OSX) or using the `Buffer -> Toggle Use Tabs` menu.
+Textadept shows what it is using for indentation in the document statusbar.
+
+The default option is usually set by a [language-specific
+module](7_Modules.html#buffer_properties) or the [theme](8_Themes.html#buffer).
+
+#### Converting Between Tabs and Spaces
+
+Use the `Edit -> Convert Indentation` menu to convert indentation. If the buffer
+is using tabs, all spaces are converted to tabs. If the buffer is using spaces,
+all tabs are converted to spaces.
+
+## Selecting Text
+
+#### Rectangular Selection
+
+Holding `Alt+Shift` (`Apple+Shift` on Mac OSX) and pressing the arrow keys
+enables rectangular selections to be made. Start typing to type on each line.
+
+![Rectangular Selection](images/rectangularselection.png)
+&nbsp;&nbsp;&nbsp;&nbsp;
+![Rectangular Edit](images/rectangularselection2.png)
+
+#### Multiple Selection
+
+Clicking the mouse at a point in the buffer while holding `Control` places an
+additional caret at that point. Clicking and dragging while holding `Control`
+creates multiple selections. Start typing to enter text at each selection.
+
+#### Selecting Entities
+
+Textadept allows you to select many different entities from the caret. `Alt+S`
+(`Ctrl+S` on Mac OSX) is the key prefix to entity selection. Typing `'`, `"`,
+`(`, `[`, or `{` selects all text between the matching delimiters. Typing `W`,
+`L`, `P`, `B`, or `S` (without holding `Shift`) selects the current word, line,
+paragraph, indented block, or style respectively. Typing `T` selects the text
+between `>` and `<`, useful for selecting within HTML tags. Typing `G` grows the
+current selection by one character to each side, so `Alt+S, "` followed by
+`Alt+S, G` selects an entire `""` sequence instead of just the text in-between
+quotes. Finally, typing `C` followed by any other character selects all text
+between a pair of those characters. `Alt+S, C, "` is identical to `Alt+S, "`.
+
+## Enclosing Text
+
+As a complement to selecting entities, you can enclose text as entities. The
+key prefix is `Alt+C` (`Ctrl+C` on Mac OSX). Typing `'`, `"`, `(`, `[`, or `{`
+encloses the text in the appropriate character pair. Typing `T` (without holding
+`Shift`) creates an opening and closing HTML tag while `Shift+T` creates a
+single HTML tag. Finally, typing `C` followed by any other character encloses
+the text between a pair of those characters. `Alt+C, C, "` is identical to
+`Alt+C, "`.
+
+If no text is selected, the word to the left of the caret is enclosed.
+
+## Word Highlight
+
+All occurances of a given word are highlighted by putting the caret over the
+word and pressing `Ctrl+H` (`Ctrl+Apple+T` on Mac OSX). This is useful to show
+occurances of a variable name in source code.
+
+![Word Highlight](images/wordhighlight.png)
+
+## Editing Modes
+
+#### Virtual Space
+
+Virtual space (freehand) mode is enabled and disabled with `Ctrl+T, V, V`
+(`Apple+T, V, V` in Mac OSX). When enabled, caret movement is not restricted by
+line endings.
+
+#### Overwrite
+
+Overwrite mode is enabled and disabled with the `Insert` key. When enabled,
+characters in the buffer will be overwritten instead of inserted as you type.
+The caret also changes to an underline when in overwrite mode.
diff --git a/doc/manual/6_Startup.md b/doc/manual/6_Startup.md
deleted file mode 100644
index aff0ac1d..00000000
--- a/doc/manual/6_Startup.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Startup Process
-
-Textadept starts up ridiculously fast. On most computers it starts up around as
-fast as you can blink.
-
-## Core (`core/init.lua`)
-
-The key to Textadept's lightning fast start time is that it loads only its core
-modules before showing the window.
-
-#### Themes
-
-Textadept loads its theme during the Core startup process. Each theme is its
-own folder with three files: `buffer.lua`, `lexer.lua`, and `view.lua`. The
-buffer theme sets default buffer properties like tabs and indentation. The view
-theme sets default view properties like caret color and current line background
-color. Lexer themes set the color and style definitions used by most lexers. By
-default the `'light'` theme is used. A `'scite'` theme is provided for users
-accustomed to SciTE.
-
-To use a different theme, create a `~/.textadept/theme` file containing the
-name of the theme you would like. If you have a custom theme, place it in your
-`~/.textadept/themes/` directory. Any errors are printed to standard out.
-
-## Post-Core (`init.lua`)
-
-After loading the core modules, Textadept begins loading additional modules.
-It first checks for your `~/.textadept/init.lua`. If the file does not exist,
-all default modules listed in `init.lua` are loaded.
-
-Your `~/.textadept/init.lua` is a great place to specify what modules you want
-to use. They can be Textadept's default ones, or ones that you create. As an
-example:
-
- -- In ~/.textadept/init.lua
-
- -- Do not load all of textadept's modules.
- --require 'textadept'
-
- -- Instead, load a subset of them from 'modules/textadept/init.lua'.
- --require 'textadept.bookmarks'
- --require 'textadept.command_entry'
- require 'textadept.editing'
- require 'textadept.find'
- require 'textadept.mime_types'
- --require 'textadept.run'
- require 'textadept.session'
- require 'textadept.snippets'
-
- -- These need to be loaded last.
- --require 'textadept.menu'
- require 'textadept.keys'
-
-Please note Textadept does NOT load your `~/.textadept/init.lua`'s modules in
-addition to its own. This defeats the purpose of maximum extensibility. If your
-`init.lua` exists, Textadept assumes that file tells it exactly what to load.
-If you have an empty `init.lua`, no modules are loaded.
-
-After loading the additional modules, Textadept parses command line arguments,
-or if none are specified, reloads the last saved session.
diff --git a/doc/manual/7_LuaInterface.md b/doc/manual/7_LuaInterface.md
deleted file mode 100644
index 2b8c7693..00000000
--- a/doc/manual/7_LuaInterface.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Lua Interface
-
-After startup, Textadept relinquishes control to Lua. At this point, having a
-Manual is pointless since all of Textadept's functionality is dynamic from here
-on out. This is where the most important resource for help comes in: the
-[LuaDoc][LuaDoc]. It contains not only documentation for Textadept's Lua API,
-but documentation for all of its modules and features as well. It is more up to
-date than a manual like this could ever be.
-
-[LuaDoc]: ../index.html
diff --git a/doc/manual/7_Modules.md b/doc/manual/7_Modules.md
new file mode 100644
index 00000000..88baf72d
--- /dev/null
+++ b/doc/manual/7_Modules.md
@@ -0,0 +1,93 @@
+# Modules
+
+Most of Textadept's functionality comes from modules written in Lua. A module
+consists of a single directory with an `init.lua` script to load any additional
+Lua files (typically in the same location). Essentially there are two classes of
+module: generic and language-specific.
+
+## Generic
+
+This class of modules is usually available globally for programming in all
+languages or writing plain-text. An example is the
+[textadept](../modules/_m.textadept.html) module which implements most of
+Textadept's functionality (find/replace, key commands, menus, snippets, etc.).
+These kinds of modules are generally loaded on startup. See the
+[preferences](9_Preferences.html#user_init) page for instructions on how to load
+generic modules when Textadept starts.
+
+## Language Specific
+
+Each module of this class of modules is named after a language lexer in the
+`lexers/` directory and is only available only for editing code in that
+particular programming language unless you specify otherwise. Examples are the
+[cpp](../modules/_m.cpp.html) and [lua](../modules/_m.lua.html) modules which
+provide special editing features for the C/C++ and Lua languages respectively.
+
+#### Lexer
+
+All languages have a [lexer](../modules/lexer.html) that performs syntax
+highlighting on the source code. While the lexer itself is not part of the
+module, its existence in `lexers/` is required.
+
+#### Activation
+
+Language-specific modules are automatically loaded when a file of that language
+is loaded or a buffer's lexer is set to that language.
+
+#### Snippets
+
+Most language-specific modules have a set of
+[snippets](../modules/_m.textadept.snippets.html). Press `Ctrl+Alt+Shift+I`
+(`Ctrl+Apple+Shift+I` on Mac OSX) for a list of available snippets or see the
+module's Lua code. To insert a snippet, type its trigger followed by the `Tab`
+key. Subsequent presses of `Tab` causes the caret to enter tab stops in
+sequential order, `Shift+Tab` goes back to the previous tab stop, and
+`Ctrl+Alt+I` (`Ctrl+Apple+I` on Mac OSX) cancels the current snippet. Snippets
+can be nested (inserted from within another snippet).
+
+![Snippet](images/snippet.png)
+&nbsp;&nbsp;&nbsp;&nbsp;
+![Snippet Expanded](images/snippet2.png)
+
+#### Commands
+
+Most language-specific modules have a set of [key
+commands](../modules/_m.textadept.keys.html). See the module's Lua code for
+which key commands are available.
+
+##### Run
+
+Most language-specific modules have a command that runs the code in the current
+file. Pressing `Ctrl+R` runs that command.
+
+##### Compile
+
+Most language-specific modules have a command that compiles the code in the
+current file. Pressing `Ctrl+Shift+R` runs that command.
+
+##### Block Comments
+
+Pressing `Ctrl+Q` comments or uncomments the code on the selected lines.
+
+#### Buffer Properties
+
+Sometimes language-specific modules set default buffer properties like tabs and
+indentation size. See the module's Lua code for these settings and change them
+if you prefer something else.
+
+## Getting Modules
+
+For now, user-created modules are obtained from the
+[wiki](http://caladbolg.net/textadeptwiki).
+
+## Installing Modules
+
+It is recommended to put all modules in your `~/.textadept/modules/` directory
+so they will not be overwritten when you update Textadept. Modules in that
+directory override any modules in Textadept's `modules/` directory. This means
+that if you have your own `lua` module, it will be loaded instead of the one
+that comes with Textadept.
+
+## Developing Modules
+
+See the [LuaDoc](../modules/_m.html) for modules.
diff --git a/doc/manual/8_Themes.md b/doc/manual/8_Themes.md
new file mode 100644
index 00000000..c022bf7f
--- /dev/null
+++ b/doc/manual/8_Themes.md
@@ -0,0 +1,62 @@
+# Themes
+
+Textadept's look and feel can be customized with themes. The themes that come
+with Textadept are `'light'`, `'dark'`, and `'scite'`. By default the `'light'`
+theme is used. The `'scite'` theme is recommended for users accustomed to SciTE.
+To change the theme, create a `~/.textadept/theme` file whose first line of text
+is the name of the theme you would like to use.
+
+![Light Theme](images/lighttheme.png)
+&nbsp;&nbsp;&nbsp;&nbsp;
+![Dark Theme](images/darktheme.png)
+&nbsp;&nbsp;&nbsp;&nbsp;
+![SciTE Theme](images/scitetheme.png)
+
+Themes apply to all buffers. You cannot assign a theme to a particular file or
+filetype. You can change things like tab and indent settings per filetype
+however by creating a [language-specific
+module](7_Modules.html#buffer_properties).
+
+## Creating or Modifying a Theme
+
+Each theme is a single folder on the filesystem composed of three files:
+`lexer.lua`, `buffer.lua`, and `view.lua`. It is recommended to put themes in
+your `~/.textadept/themes/` directory so they will not be overwritten when you
+update Textadept. Themes in that directory override any themes in Textadept's
+`themes/` directory. This means that if you have your own `light` theme, it will
+be loaded instead of the one that comes with Textadept.
+
+To use a theme not located in `~/.textadept/themes/` or Textadept's `themes/`
+directory, you need to specify an absolute path to the theme's folder in your
+`~/.textadept/theme` file.
+
+#### Lexer
+
+Textadept uses lexers to assign names to buffer elements like comments, strings,
+and keywords. These elements are assigned styles composed of font and color
+information in the theme's `lexer.lua`. See the `Styling Tokens` section of the
+[lexer](../modules/lexer.html) page for more information on how to create styles
+and colors.
+
+#### Buffer
+
+`buffer.lua` contains buffer-specific properties like indentation size and
+whether or not to use tabs. See the [LuaDoc](../modules/buffer.html) for
+documentation on the properties.
+
+#### View
+
+`view.lua` contains view-specific properties like caret and selection colors.
+See the [LuaDoc](../modules/buffer.html) for documentation on the properties.
+
+## Theming Text Fields
+
+There is no way to theme text fields like the Find and Replace ones from within
+Textadept. Instead, use [GTK Resource files][gtkrc]. The names of the text field
+widgets are:
+
+* Find field: `textadept-find-entry`.
+* Replace field: `textadept-replace-entry`.
+* Command entry: `textadept-command-entry`.
+
+[gtkrc]: http://library.gnome.org/devel/gtk/stable/gtk-Resource-Files.html
diff --git a/doc/manual/9_Preferences.md b/doc/manual/9_Preferences.md
new file mode 100644
index 00000000..89abc852
--- /dev/null
+++ b/doc/manual/9_Preferences.md
@@ -0,0 +1,140 @@
+# Preferences
+
+At this point it is assumed you are at least familiar with the basics of
+[Lua](http://www.lua.org). You do not have to know a lot of the language to
+configure Textadept.
+
+## User Init
+
+Textadept loads modules from your `~/.textadept/init.lua` on startup. If this
+file does not exist, Textadept creates it with a list of default modules to
+load. You can then use the file to indicate what else you want Textadept to
+load. For example if you created a generic module called `foo` that you wanted
+to load alongside the default modules, your `~/.textadept/init.lua` would
+contain
+
+ require 'textadept'
+ require 'foo'
+
+If instead you wanted to load all Textadept's default modules except for the
+menu, replace
+
+ require 'textadept'
+
+with
+
+ require 'textadept.bookmarks'
+ require 'textadept.command_entry'
+ require 'textadept.editing'
+ require 'textadept.find'
+ require 'textadept.mime_types'
+ require 'textadept.run'
+ require 'textadept.session'
+ require 'textadept.snapopen'
+ require 'textadept.snippets'
+
+ --require 'textadept.menu'
+ require 'textadept.keys'
+
+Note that his list was obtained from the `textadept` module's `init.lua` which
+is located in the `modules/textadept/` directory.
+
+It is important to realize that Textadept will not load anything you do not tell
+it to. If your `~/.textadept/init.lua` exists and is empty, no modules are
+loaded (pretty much rendering Textadept useless).
+
+#### Module Settings
+
+Many of Textadept's modules have settings you can change from your
+`~/.textadept/init.lua`. These settings are viewed from module's
+[LuaDoc](../index.html). For example, to disable character autopairing and
+whitespace stripping on save, your `~/.textadept/init.lua` might look like:
+
+ require 'textadept'
+
+ _m.textadept.editing.AUTOPAIR = false
+ _m.textadept.editing.SAVE_STRIPS_WS = false
+
+#### Other
+
+Your `~/.textadept/init.lua` is not restricted to just loading modules or
+setting preferences. It is just Lua code that is run when Textadept loads. For
+more information, see the [scripting](11_Scripting.html) page.
+
+##### Snippets
+
+You can add global snippets to `_G.snippets` such as:
+
+ _G.snippets['file'] = '%(buffer.filename)'
+ _G.snippets['path'] = "%((buffer.filename or ''):match('^.+[/\\]'))"
+
+So typing `file` or `path` and then pressing `Tab` will insert the snippet.
+
+##### Key Commands
+
+It is not recommended to edit Textadept's `modules/textadept/keys.lua` for
+changing the key bindings since your changes could be overwritten when updating
+Textadept. Instead, modify `_G.keys` from within your `~/.textadept/init.lua` or
+from a file loaded by `~/.textadept/init.lua`. For example maybe you want
+`Alt+N` to create a new buffer instead of `Ctrl+N`:
+
+ _G.keys.an = { new_buffer }
+ _G.keys.cn = nil
+
+## Locale
+
+Most messages displayed by Textadept are localized. `core/locale.conf` contains
+these messages. By default, Textadept is localized in English. To use a
+different language, put a translated version of `core/locale.conf` in your
+`~/.textadept/` folder.
+
+Feel free to translate Textadept and send your modified `locale.conf` files
+to me. I will make them available to other users.
+
+## Mime Types
+
+Textadept recognizes a wide range of programming language files by any of the
+following:
+
+* File extension.
+* Keywords in the file's shebang (`#!/path/to/exe`) line.
+* A pattern that matches the text of the file's first line.
+
+Built-in mime-types are located in `modules/textadept/mime_types.conf`. You
+can override or add to them in your `~/.textadept/mime_types.conf`:
+
+ % Recognize .luadoc files as Lua code.
+ luadoc lua
+
+ % Change .html files to be recognized as XML files instead of HTML ones.
+ html xml
+
+It is not recommended to edit Textadept's `modules/textadept/mime_types.conf`
+because your changes may be overwritten when updating Textadept.
+
+#### Detection by File Extension
+
+ file_ext lexer
+
+Note: `file_ext` should not start with a `.` (period).
+
+#### Detection by Shebang Keywords
+
+ #shebang_word lexer
+
+Examples of `shebang_word`'s are `lua`, `ruby`, `python`.
+
+#### Detection by Pattern
+
+ /pattern lexer
+
+Only the last space, the one separating the pattern from the lexer, is
+significant. No spaces in the pattern need to be escaped.
+
+## Default Run and Compile Commands and Block Quotes for Languages
+
+Textadept does not come with language-specific modules for all languages so you
+can add run commands, compile commands, and block quotes manually:
+
+* [Run/Compile commands](http://caladbolg.net/textadeptwiki/index.php?n=Main.RunSupplemental)
+* [Block Quotes](http://caladbolg.net/textadeptwiki/index.php?n=Main.CommentSupplemental)
diff --git a/doc/manual/images/bufferbrowser.png b/doc/manual/images/bufferbrowser.png
new file mode 100644
index 00000000..de7defe1
--- /dev/null
+++ b/doc/manual/images/bufferbrowser.png
Binary files differ
diff --git a/doc/manual/images/bufferbrowserfiltered.png b/doc/manual/images/bufferbrowserfiltered.png
new file mode 100644
index 00000000..c4c01486
--- /dev/null
+++ b/doc/manual/images/bufferbrowserfiltered.png
Binary files differ
diff --git a/doc/manual/images/commandentry.png b/doc/manual/images/commandentry.png
new file mode 100644
index 00000000..cbcd66a7
--- /dev/null
+++ b/doc/manual/images/commandentry.png
Binary files differ
diff --git a/doc/manual/images/commandentrycompletion.png b/doc/manual/images/commandentrycompletion.png
new file mode 100644
index 00000000..a4b83059
--- /dev/null
+++ b/doc/manual/images/commandentrycompletion.png
Binary files differ
diff --git a/doc/manual/images/darktheme.png b/doc/manual/images/darktheme.png
new file mode 100644
index 00000000..0c683dc7
--- /dev/null
+++ b/doc/manual/images/darktheme.png
Binary files differ
diff --git a/doc/manual/images/docstatusbar.png b/doc/manual/images/docstatusbar.png
new file mode 100644
index 00000000..5e709ab2
--- /dev/null
+++ b/doc/manual/images/docstatusbar.png
Binary files differ
diff --git a/doc/manual/images/findinfiles.png b/doc/manual/images/findinfiles.png
new file mode 100644
index 00000000..2f8783aa
--- /dev/null
+++ b/doc/manual/images/findinfiles.png
Binary files differ
diff --git a/doc/manual/images/icon.png b/doc/manual/images/icon.png
new file mode 100644
index 00000000..bd796ec8
--- /dev/null
+++ b/doc/manual/images/icon.png
Binary files differ
diff --git a/doc/manual/images/lighttheme.png b/doc/manual/images/lighttheme.png
new file mode 100644
index 00000000..e5100912
--- /dev/null
+++ b/doc/manual/images/lighttheme.png
Binary files differ
diff --git a/doc/manual/images/linux.png b/doc/manual/images/linux.png
new file mode 100644
index 00000000..a8640022
--- /dev/null
+++ b/doc/manual/images/linux.png
Binary files differ
diff --git a/doc/manual/images/macosx.png b/doc/manual/images/macosx.png
new file mode 100644
index 00000000..2035a95b
--- /dev/null
+++ b/doc/manual/images/macosx.png
Binary files differ
diff --git a/doc/manual/images/matchingbrace.png b/doc/manual/images/matchingbrace.png
new file mode 100644
index 00000000..22a99c19
--- /dev/null
+++ b/doc/manual/images/matchingbrace.png
Binary files differ
diff --git a/doc/manual/images/rectangularselection.png b/doc/manual/images/rectangularselection.png
new file mode 100644
index 00000000..3fe77a6a
--- /dev/null
+++ b/doc/manual/images/rectangularselection.png
Binary files differ
diff --git a/doc/manual/images/rectangularselection2.png b/doc/manual/images/rectangularselection2.png
new file mode 100644
index 00000000..a4a84f61
--- /dev/null
+++ b/doc/manual/images/rectangularselection2.png
Binary files differ
diff --git a/doc/manual/images/scitetheme.png b/doc/manual/images/scitetheme.png
new file mode 100644
index 00000000..6161006b
--- /dev/null
+++ b/doc/manual/images/scitetheme.png
Binary files differ
diff --git a/doc/manual/images/snapopen.png b/doc/manual/images/snapopen.png
new file mode 100644
index 00000000..8ae1bb74
--- /dev/null
+++ b/doc/manual/images/snapopen.png
Binary files differ
diff --git a/doc/manual/images/snippet.png b/doc/manual/images/snippet.png
new file mode 100644
index 00000000..d73c621a
--- /dev/null
+++ b/doc/manual/images/snippet.png
Binary files differ
diff --git a/doc/manual/images/snippet2.png b/doc/manual/images/snippet2.png
new file mode 100644
index 00000000..cbafb98c
--- /dev/null
+++ b/doc/manual/images/snippet2.png
Binary files differ
diff --git a/doc/manual/images/splitviews.png b/doc/manual/images/splitviews.png
new file mode 100644
index 00000000..bdb516ec
--- /dev/null
+++ b/doc/manual/images/splitviews.png
Binary files differ
diff --git a/doc/manual/images/textadept.png b/doc/manual/images/textadept.png
new file mode 100644
index 00000000..8731e5cc
--- /dev/null
+++ b/doc/manual/images/textadept.png
Binary files differ
diff --git a/doc/manual/images/ui.png b/doc/manual/images/ui.png
new file mode 100644
index 00000000..e9c97f4c
--- /dev/null
+++ b/doc/manual/images/ui.png
Binary files differ
diff --git a/doc/manual/images/win32.png b/doc/manual/images/win32.png
new file mode 100644
index 00000000..996c2b5f
--- /dev/null
+++ b/doc/manual/images/win32.png
Binary files differ
diff --git a/doc/manual/images/wordcompletion.png b/doc/manual/images/wordcompletion.png
new file mode 100644
index 00000000..e55280a9
--- /dev/null
+++ b/doc/manual/images/wordcompletion.png
Binary files differ
diff --git a/doc/manual/images/wordhighlight.png b/doc/manual/images/wordhighlight.png
new file mode 100644
index 00000000..61c8832b
--- /dev/null
+++ b/doc/manual/images/wordhighlight.png
Binary files differ
diff --git a/doc/sidebar.md b/doc/sidebar.md
index bd61ea1a..d80271ad 100644
--- a/doc/sidebar.md
+++ b/doc/sidebar.md
@@ -1,33 +1,36 @@
-![Textadept](http://caladbolg.net/images/textadept/icon.png)
+![Textadept](images/icon.png)
# Manual
* [Introduction](1_Introduction.html)
* [Installation](2_Installation.html)
-* [Compiling](3_Compiling.html)
-* [User Interface](4_UserInterface.html)
-* [Folder Structure](5_FolderStructure.html)
-* [Startup](6_Startup.html)
-* [Lua Interface](7_LuaInterface.html)
+* [User Interface](3_UserInterface.html)
+* [Working with Files](4_WorkingWithFiles.html)
+* [File Navigation](5_FileNavigation.html)
+* [Adept Editing](6_AdeptEditing.html)
+* [Modules](7_Modules.html)
+* [Themes](8_Themes.html)
+* [Preferences](9_Preferences.html)
+* [Advanced](10_Advanced.html)
+* [Scripting](11_Scripting.html)
+* [Compiling](12_Compiling.html)
+* [Help](13_Help.html)
+* [Appendix](14_Appendix.html)
# Links
* [Caladbolg.net](http://caladbolg.net)
* [LuaDoc](../index.html)
-* [Download](http://code.google.com/p/textadept/downloads/list)
+* [Download](http://code.google.com/p/textadept/downloads/list) |
+ [Hg](http://code.google.com/p/textadept/source/browse)
* [Mailing List](http://groups.google.com/group/textadept)
-* [Mercurial Repository](http://code.google.com/p/textadept/source/browse)
* [Wiki](http://caladbolg.net/textadeptwiki)
* [Bug Tracker](http://code.google.com/p/textadept/issues/list)
* [Ohloh](http://ohloh.net/projects/textadept)
-# Donate
-
-<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="margin-top: 0.5em; text-align: center;">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="3165962">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
-
-Do you like Textadept? Please consider a $5 or more donation.