aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-09-13 18:20:00 -0400
committerGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-09-13 18:20:00 -0400
commitc436febaf7f7b7605bf61777931e97831d956d83 (patch)
tree4cfdb384668a0275b42e245eba8c05fa6c40f8cf
parent75041aa1e1651841073473399397bcbfc10b0134 (diff)
Lots of documentation updates.
Updated header id generation, anchors, links, and header levels. Added dedicated book page and support data. Removed extra module autocompletion and documentation from Lua module. Removed GPG signing and verification, as everything is built and distributed on GitHub. Removed all release links prior to 10.8 since there is no point in uploading the relevant files to GitHub.
-rw-r--r--README.md33
-rw-r--r--core/._M.luadoc16
-rw-r--r--core/init.lua2
-rw-r--r--core/keys.lua10
-rw-r--r--core/ui.lua2
-rw-r--r--docs/_layouts/default.html16
-rw-r--r--docs/api.md11585
-rw-r--r--docs/book.md50
-rw-r--r--docs/changelog.md2593
-rw-r--r--docs/faq.md6
-rw-r--r--docs/images/quickref_small.pngbin0 -> 25195 bytes
-rw-r--r--docs/index.html82
-rw-r--r--docs/manual.md105
-rw-r--r--docs/markdowndoc.lua13
-rw-r--r--docs/media.md74
-rw-r--r--docs/quickref_excerpt.pdfbin0 -> 344672 bytes
-rw-r--r--docs/style.css8
-rw-r--r--modules/lua/ta_api153
-rw-r--r--modules/lua/ta_tags158
-rw-r--r--modules/textadept/keys.lua2
-rw-r--r--modules/textadept/snippets.lua20
-rwxr-xr-xscripts/fill_layout.lua4
-rw-r--r--src/Makefile34
23 files changed, 12010 insertions, 2956 deletions
diff --git a/README.md b/README.md
index f339cd4f..42f4539f 100644
--- a/README.md
+++ b/README.md
@@ -37,23 +37,24 @@ implementation of curses like [ncurses][](w).
## Download
-Download Textadept from the project's [download page][] by selecting the
-appropriate package for your platform. You can also download a separate set of
-modules that provide extra features and functionality to the core application.
+Textadept releases can be found [here][1]. Select the appropriate package for
+your platform. A comprehensive list of changes between releases can be found
+[here][2]. You can also download a separate set of modules that provide extra
+features and functionality to the core application.
-[download page]: https://foicica.com/textadept/download
+[1]: https://github.com/orbitalquark/textadept/releases
+[2]: https://orbitalquark.github.io/textadept/changelog.html
## Installation and Usage
-Textadept comes with a comprehensive user manual in its *docs/* directory. This
-manual is also available [online][1]. It covers all of Textadept's main
-features, including installation, usage, configuration, theming, scripting, and
-compilation.
+Textadept comes with a comprehensive [user manual][] in its *docs/* directory.
+It covers all of Textadept's main features, including installation, usage,
+configuration, theming, scripting, and compilation.
Since nearly every aspect of Textadept can be scripted using Lua, the editor's
-API is heavily documented. This documentation is also located in *docs/* and
-available [online][2]. It serves as the ultimate resource when it comes to
-scripting the application.
+API is heavily documented. This [API documentation][] is also located in
+*docs/*. It serves as the ultimate resource when it comes to scripting the
+application.
A more structured scripting resource is [Textadept Quick Reference][], which
contains a wealth of knowledge on how to script and configure Textadept. It
@@ -61,9 +62,9 @@ groups the editor's rich API into a series of tasks in a convenient and
easy-to-use manner. This book serves as the perfect complement to Textadept's
Manual and exhaustive API documentation.
-[1]: https://foicica.com/textadept/manual.html
-[2]: https://foicica.com/textadept/api.html
-[Textadept Quick Reference]: https://foicica.com/textadept/media.html#Book
+[user manual]: https://orbitalquark.github.io/textadept/manual.html
+[API documentation]: https://orbitalquark.github.io/textadept/api.html
+[Textadept Quick Reference]: https://orbitalquark.github.io/textadept/book.html
## Compile
@@ -121,7 +122,7 @@ For more information on compiling Textadept, please see the [manual][].
[mingw-w64]: https://mingw-w64.org/
[OSX cross toolchain]: https://github.com/tpoechtrager/osxcross
[Clang]: https://clang.llvm.org/
-[manual]: https://foicica.com/textadept/manual.html#Compiling
+[manual]: https://orbitalquark.github.io/textadept/manual.html#compiling
## Contribute
@@ -133,6 +134,6 @@ submit patches either to the [mailing list][], or to me personally
(mitchell.att.foicica.com).
[donation]: https://gum.co/textadept
-[book]: https://foicica.com/textadept/media.html#Book
+[book]: https://orbitalquark.github.io/textadept/book.html
[open source]: https://github.com/orbitalquark/textadept
[mailing list]: http://foicica.com/lists
diff --git a/core/._M.luadoc b/core/._M.luadoc
index d637da3c..fb7d3e7b 100644
--- a/core/._M.luadoc
+++ b/core/._M.luadoc
@@ -1,4 +1,4 @@
--- Copyright 2007-2018 Mitchell mitchell.att.foicica.com. See LICENSE.
+-- Copyright 2007-2020 Mitchell mitchell.att.foicica.com. See LICENSE.
-- This is a DUMMY FILE used for making LuaDoc for built-in functions in the
-- global _M table.
@@ -25,7 +25,7 @@
--
-- Examples of these features are described in the sections below.
--
--- ## Block Comment
+-- ### Block Comment
--
-- Many languages have different syntaxes for single line comments and
-- multi-line comments in source code. Textadept's block comment feature only
@@ -36,7 +36,7 @@
--
-- textadept.editing.comment_string.ansi_c = '//' -- change from /* ... */
--
--- ## Compile and Run
+-- ### Compile and Run
--
-- Textadept knows most of the commands that compile and/or run code in source
-- files. However, it does not know all of them, and the ones that it does know
@@ -57,7 +57,7 @@
-- if not patterns.lua then patterns.lua = {} end
-- patterns.lua[#patterns.lua + 1] = '^luac?: (.-):(%d+): (.+)$'
--
--- ## Buffer Properties
+-- ### Buffer Properties
--
-- By default, Textadept uses 2 spaces for indentation. Some languages have
-- different indentation guidelines, however. As described in the manual, use
@@ -71,7 +71,7 @@
-- view.view_ws = view.WS_VISIBLEALWAYS
-- end
--
--- ## Autocompletion and Documentation
+-- ### Autocompletion and Documentation
--
-- Textadept has the capability to autocomplete symbols for programming
-- languages and display API documentation. In order for these to work for a
@@ -80,7 +80,7 @@
-- included language modules have examples of autocompleters and API
-- documentation, as well as most of its officially supported language modules.
--
--- ## Snippets
+-- ### Snippets
--
-- [Snippets](#textadept.snippets) for common language constructs are useful.
-- Some snippets for common Lua control structures look like this:
@@ -92,7 +92,7 @@
-- forp = "for %1(k), %2(v) in pairs(%3(table)) do\n\t%0\nend",
-- }
--
--- ## Commands
+-- ### Commands
--
-- Additional editing features for the language can be useful. For example, a
-- C++ module might have a feature to add a ';' to the end of the current line
@@ -118,7 +118,7 @@
-- ...
-- }
--
--- ## Menus
+-- ### Menus
--
-- It may be useful to add language-specific menu options to the top-level menu
-- and/or right-click context menu in order to access module features without
diff --git a/core/init.lua b/core/init.lua
index 37f94af3..ed2f66ba 100644
--- a/core/init.lua
+++ b/core/init.lua
@@ -96,7 +96,7 @@ end)
-- Whether or not Textadept is running in a terminal.
-- Curses feature incompatibilities are listed in the [Appendix][].
--
--- [Appendix]: manual.html#Curses.Compatibility
+-- [Appendix]: manual.html#curses-compatibility
module('_G')]]
--[[ The tables below were defined in C.
diff --git a/core/keys.lua b/core/keys.lua
index 8d03c284..b20244a6 100644
--- a/core/keys.lua
+++ b/core/keys.lua
@@ -6,7 +6,7 @@ local M = {}
---
-- Manages key bindings in Textadept.
--
--- ## Overview
+-- ### Overview
--
-- Define key bindings in the global `keys` table in key-value pairs. Each pair
-- consists of either a string key sequence and its associated command, a string
@@ -24,7 +24,7 @@ local M = {}
-- autocompletion, but fall back to word autocompletion if the first command
-- fails.)
--
--- ## Key Sequences
+-- ### Key Sequences
--
-- Key sequences are strings built from an ordered combination of modifier keys
-- and the key's inserted character. Modifier keys are "Control", "Shift", and
@@ -53,7 +53,7 @@ local M = {}
-- *core/keys.lua* causes Textadept to print key sequences to standard out
-- (stdout) for inspection.
--
--- ## Commands
+-- ### Commands
--
-- A command bound to a key sequence is simply a Lua function. For example:
--
@@ -63,7 +63,7 @@ local M = {}
--
-- Textadept handles [`buffer`]() references properly in static contexts.
--
--- ## Modes
+-- ### Modes
--
-- Modes are groups of key bindings such that when a key [mode](#keys.mode) is
-- active, Textadept ignores all key bindings defined outside the mode until the
@@ -89,7 +89,7 @@ local M = {}
-- **Warning**: When creating a mode, be sure to define a way to exit the mode,
-- otherwise you will probably have to restart Textadept.
--
--- ## Key Chains
+-- ### Key Chains
--
-- Key chains are a powerful concept. They allow you to assign multiple key
-- bindings to one key sequence. By default, the `Esc` key cancels a key chain,
diff --git a/core/ui.lua b/core/ui.lua
index 438d7494..30187098 100644
--- a/core/ui.lua
+++ b/core/ui.lua
@@ -540,7 +540,7 @@ The functions below are Lua C functions.
-- Table arguments containing strings are allowed and expanded in place. This is
-- useful for filtered list dialogs with many items.
--
--- [gtdialog]: http://foicica.com/gtdialog/manual.html#Usage
+-- [gtdialog]: https://orbitalquark.github.io/gtdialog/manual.html
-- @param kind The kind of gtdialog.
-- @param ... Parameters to the gtdialog.
-- @return string gtdialog result.
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
index 84fb9667..59af59e0 100644
--- a/docs/_layouts/default.html
+++ b/docs/_layouts/default.html
@@ -12,22 +12,22 @@
<h1><img src="images/icon.png" alt="" /> Textadept</h1>
<ul>
<li><a href="index.html">Home</a> |</li>
- <li><a href="http://foicica.com/textadept/download">Download</a> |</li>
- <li><a href="media.html#book">Book</a> |</li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases">Download</a> |</li>
+ <li><a href="book.html">Book</a> |</li>
<li><a href="manual.html">Manual</a> |</li>
<li><a href="api.html">API</a> |</li>
- <li><a href="http://foicica.com/hg/textadept">Source</a> |</li>
- <li><a href="http://foicica.com/hg/textadept_modules">Language Modules</a> |</li>
- <li><a href="http://foicica.com/stats.html#Textadept">Stats</a> |</li>
- <li><a href="http://foicica.com/wiki/textadept">Wiki</a> |</li>
- <li><a href="http://foicica.com/lists">Mailing List</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept">Source</a> |</li>
+ <li><a href="https://github.com/orbitalquark/textadept-modules">Extra Modules</a> |</li>
+ <li><a href="https://foicica.com/stats.html#Textadept">Stats</a> |</li>
+ <li><a href="https://foicica.com/wiki/textadept">Wiki</a> |</li>
+ <li><a href="https://foicica.com/lists">Mailing List</a></li>
</ul>
</div>
<div id="main">
{{ content }}
</div>
<div id="footer">
- <p style="text-align:center;"> &copy; 2007-2020 <a href="http://foicica.com">Mitchell</a> mitchell.att.foicica.com</p>
+ <p style="text-align:center;"> &copy; 2007-2020 <a href="https://foicica.com">Mitchell</a> mitchell.att.foicica.com</p>
</div>
</div>
</body>
diff --git a/docs/api.md b/docs/api.md
new file mode 100644
index 00000000..3f19a743
--- /dev/null
+++ b/docs/api.md
@@ -0,0 +1,11585 @@
+## Textadept API Documentation
+
+1. [_G](#_G)
+1. [_L](#_L)
+1. [_M](#_M)
+1. [_M.ansi_c](#_M.ansi_c)
+1. [_M.lua](#_M.lua)
+1. [_SCINTILLA](#_SCINTILLA)
+1. [args](#args)
+1. [assert](#assert)
+1. [buffer](#buffer)
+1. [events](#events)
+1. [io](#io)
+1. [keys](#keys)
+1. [lexer](#lexer)
+1. [lfs](#lfs)
+1. [os](#os)
+1. [string](#string)
+1. [textadept](#textadept)
+1. [textadept.bookmarks](#textadept.bookmarks)
+1. [textadept.editing](#textadept.editing)
+1. [textadept.file_types](#textadept.file_types)
+1. [textadept.keys](#textadept.keys)
+1. [textadept.macros](#textadept.macros)
+1. [textadept.menu](#textadept.menu)
+1. [textadept.run](#textadept.run)
+1. [textadept.session](#textadept.session)
+1. [textadept.snippets](#textadept.snippets)
+1. [ui](#ui)
+1. [ui.command_entry](#ui.command_entry)
+1. [ui.dialogs](#ui.dialogs)
+1. [ui.find](#ui.find)
+1. [view](#view)
+
+<a id="_G"></a>
+## The `_G` Module
+---
+
+Extends Lua's _G table to provide extra functions and fields for Textadept.
+
+### Fields defined by `_G`
+
+<a id="BSD"></a>
+#### `BSD` (bool)
+
+Whether or not Textadept is running on BSD.
+
+<a id="CURSES"></a>
+#### `CURSES` (bool)
+
+Whether or not Textadept is running in a terminal.
+ Curses feature incompatibilities are listed in the [Appendix][].
+
+ [Appendix]: manual.html#curses-compatibility
+
+<a id="LINUX"></a>
+#### `LINUX` (bool)
+
+Whether or not Textadept is running on Linux.
+
+<a id="OSX"></a>
+#### `OSX` (bool)
+
+Whether or not Textadept is running on macOS as a GUI application.
+
+<a id="WIN32"></a>
+#### `WIN32` (bool)
+
+Whether or not Textadept is running on Windows.
+
+<a id="_CHARSET"></a>
+#### `_CHARSET` (string)
+
+The filesystem's character encoding.
+ This is used when [working with files](#io).
+
+<a id="_HOME"></a>
+#### `_HOME` (string)
+
+The path to Textadept's home, or installation, directory.
+
+<a id="_RELEASE"></a>
+#### `_RELEASE` (string)
+
+The Textadept release version string.
+
+<a id="_USERHOME"></a>
+#### `_USERHOME` (string)
+
+The path to the user's *~/.textadept/* directory, where all preferences and
+ user-data is stored.
+ On Windows machines *~/* is the value of the "USERHOME" environment
+ variable (typically *C:\Users\username\\* or
+ *C:\Documents and Settings\username\\*). On Linux, BSD, and macOS
+ machines *~/* is the value of "$HOME" (typically */home/username/* and
+ */Users/username/* respectively).
+
+
+### Functions defined by `_G`
+
+<a id="quit"></a>
+#### `quit`()
+
+Emits a `QUIT` event, and unless any handler returns `false`, quits
+Textadept.
+
+See also:
+
+* [`events.QUIT`](#events.QUIT)
+
+<a id="reset"></a>
+#### `reset`()
+
+Resets the Lua State by reloading all initialization scripts.
+Language modules for opened files are NOT reloaded. Re-opening the files that
+use them will reload those modules instead.
+This function is useful for modifying user scripts (such as
+*~/.textadept/init.lua* and *~/.textadept/modules/textadept/keys.lua*) on
+the fly without having to restart Textadept. `arg` is set to `nil` when
+reinitializing the Lua State. Any scripts that need to differentiate between
+startup and reset can test `arg`.
+
+<a id="timeout"></a>
+#### `timeout`(*interval, f, ...*)
+
+Calls function *f* with the given arguments after *interval* seconds.
+If *f* returns `true`, calls *f* repeatedly every *interval* seconds as long
+as *f* returns `true`. A `nil` or `false` return value stops repetition.
+
+Parameters:
+
+* *`interval`*: The interval in seconds to call *f* after.
+* *`f`*: The function to call.
+* *`...`*: Additional arguments to pass to *f*.
+
+
+### Tables defined by `_G`
+
+<a id="_BUFFERS"></a>
+#### `_BUFFERS`
+
+Table of all open buffers in Textadept.
+Numeric keys have buffer values and buffer keys have their associated numeric
+keys.
+
+Usage:
+
+* `_BUFFERS[n] --> buffer at index n`
+* `_BUFFERS[buffer] --> index of buffer in _BUFFERS`
+
+See also:
+
+* [`_G.buffer`](#_G.buffer)
+
+<a id="_VIEWS"></a>
+#### `_VIEWS`
+
+Table of all views in Textadept.
+Numeric keys have view values and view keys have their associated numeric
+keys.
+
+Usage:
+
+* `_VIEWS[n] --> view at index n`
+* `_VIEWS[view] --> index of view in _VIEWS`
+
+See also:
+
+* [`_G.view`](#_G.view)
+
+<a id="arg"></a>
+#### `arg`
+
+Table of command line parameters passed to Textadept.
+
+See also:
+
+* [`args`](#args)
+
+<a id="_G.buffer"></a>
+#### `_G.buffer`
+
+The current [buffer](#buffer) in the [current view](#_G.view).
+
+<a id="_G.view"></a>
+#### `_G.view`
+
+The current [view](#view).
+
+---
+<a id="_L"></a>
+## The `_L` Module
+---
+
+Map of all messages used by Textadept to their localized form.
+If the table does not contain the localized version of a given message, it
+returns a string that starts with "No Localization:" via a metamethod.
+Note: the terminal version ignores any "_" mnemonics the GUI version would
+use.
+
+---
+<a id="_M"></a>
+## The `_M` Module
+---
+
+A table of loaded Textadept language modules.
+
+Language modules are a special kind of module that Textadept automatically
+loads when editing source code in a particular programming language. The only
+thing "special" about them is they are named after a lexer. Otherwise they
+are plain Lua modules. The *~/.textadept/modules/* directory houses language
+modules (along with other modules).
+
+A language module is designed to provide extra functionality for a single
+programming language. Some examples of what language modules can do:
+
+ * Specify block comment syntax for lines of code
+ * Define compile and run commands for source files
+ * Set language-specific editor properties like indentation rules
+ * Specify code autocompletion routines
+ * Declare snippets
+ * Define commands and key bindings for them
+ * Add to the top-level menu or right-click editor context menu
+
+Examples of these features are described in the sections below.
+
+### Block Comment
+
+Many languages have different syntaxes for single line comments and
+multi-line comments in source code. Textadept's block comment feature only
+uses one of those syntaxes for a given language. If you prefer the other
+syntax, or if Textadept does not support block comments for a particular
+language, modify the [`textadept.editing.comment_string`](#textadept.editing.comment_string) table. For
+example:
+
+ textadept.editing.comment_string.ansi_c = '//' -- change from /* ... */
+
+### Compile and Run
+
+Textadept knows most of the commands that compile and/or run code in source
+files. However, it does not know all of them, and the ones that it does know
+may not be completely accurate in all cases. Compile and run commands are
+read from the [`textadept.run.compile_commands`](#textadept.run.compile_commands) and
+[`textadept.run.run_commands`](#textadept.run.run_commands) tables using the appropriate lexer name key,
+and thus can be defined or modified. For Lua, it would look like:
+
+ textadept.run.compile_commands.lua = 'luac "%f"'
+ textadept.run.run_commands.lua = 'lua "%f"'
+
+Double-clicking on compile or runtime errors jumps to the error's location.
+If Textadept does not recognize your language's errors properly, add an error
+pattern to [`textadept.run.error_patterns`](#textadept.run.error_patterns). The Lua error pattern looks
+like:
+
+ local patterns = textadept.run.error_patterns
+ if not patterns.lua then patterns.lua = {} end
+ patterns.lua[#patterns.lua + 1] = '^luac?: (.-):(%d+): (.+)$'
+
+### Buffer Properties
+
+By default, Textadept uses 2 spaces for indentation. Some languages have
+different indentation guidelines, however. As described in the manual, use
+`events.LEXER_LOADED` to change this and any other language-specific editor
+properties. For example:
+
+ events.connect(events.LEXER_LOADED, function(name)
+ if name ~= 'python' then return end
+ buffer.tab_width = 4
+ buffer.use_tabs = false
+ view.view_ws = view.WS_VISIBLEALWAYS
+ end
+
+### Autocompletion and Documentation
+
+Textadept has the capability to autocomplete symbols for programming
+languages and display API documentation. In order for these to work for a
+given language, an [autocompleter](#textadept.editing.autocompleters) and
+[API file(s)](#textadept.editing.api_files) must exist. All of Textadept's
+included language modules have examples of autocompleters and API
+documentation, as well as most of its officially supported language modules.
+
+### Snippets
+
+[Snippets](#textadept.snippets) for common language constructs are useful.
+Some snippets for common Lua control structures look like this:
+
+ snippets.lua = {
+ f = "function %1(name)(%2(args))\n\t%0\nend",
+ ['for'] = "for i = %1(1), %2(10)%3(, -1) do\n\t%0\nend",
+ fori = "for %1(i), %2(val) in ipairs(%3(table)) do\n\t%0\nend",
+ forp = "for %1(k), %2(v) in pairs(%3(table)) do\n\t%0\nend",
+ }
+
+### Commands
+
+Additional editing features for the language can be useful. For example, a
+C++ module might have a feature to add a ';' to the end of the current line
+and insert a new line. This command could be bound to the `Shift+Enter` (`⇧↩`
+on macOS | `S-Enter` in the terminal version) key for easy access:
+
+ keys.cpp = {
+ ['s\n'] = function()
+ buffer:line_end()
+ buffer:add_text(';')
+ buffer:new_line()
+ end
+ }
+
+When defining key bindings for other commands, you may make use of a `Ctrl+L`
+(`⌘L` on macOS | `M-L` in the terminal version) keychain. Traditionally this
+prefix has been reserved for use by language modules (although neither
+Textadept nor its modules utilize it at the moment). Users may define this
+keychain for new or existing modules and it will not conflict with any
+default key bindings. For example:
+
+ keys.lua[CURSES and 'meta+l' or OSX and 'cmd+l' or 'ctrl+l'] = {
+ ...
+ }
+
+### Menus
+
+It may be useful to add language-specific menu options to the top-level menu
+and/or right-click context menu in order to access module features without
+using key bindings. For example:
+
+ local lua_menu = {
+ title = 'Lua',
+ {'Item 1', function() ... end},
+ {'Item 2', function() ... end}
+ }
+ local tools = textadept.menu.menubar[_L['Tools']]
+ tools[#tools + 1] = lua_menu
+ textadept.menu.context_menu[#textadept.menu.context_menu + 1] = lua_menu
+
+---
+<a id="_M.ansi_c"></a>
+## The `_M.ansi_c` Module
+---
+
+The ansi_c module.
+It provides utilities for editing C code.
+
+### Fields defined by `_M.ansi_c`
+
+<a id="_M.ansi_c.autocomplete_snippets"></a>
+#### `_M.ansi_c.autocomplete_snippets` (boolean)
+
+Whether or not to include snippets in autocompletion lists.
+ The default value is `true`.
+
+
+### Tables defined by `_M.ansi_c`
+
+<a id="keys.ansi_c"></a>
+#### `keys.ansi_c`
+
+Table of C-specific key bindings.
+
+<a id="snippets.ansi_c"></a>
+#### `snippets.ansi_c`
+
+Table of C-specific snippets.
+
+<a id="_M.ansi_c.tags"></a>
+#### `_M.ansi_c.tags`
+
+List of ctags files to use for autocompletion in addition to the current
+project's top-level *tags* file or the current directory's *tags* file.
+
+---
+<a id="_M.lua"></a>
+## The `_M.lua` Module
+---
+
+The lua module.
+It provides utilities for editing Lua code.
+
+### Fields defined by `_M.lua`
+
+<a id="_M.lua.autocomplete_snippets"></a>
+#### `_M.lua.autocomplete_snippets` (boolean)
+
+Whether or not to include snippets in autocompletion lists.
+ The default value is `false`.
+
+
+### Tables defined by `_M.lua`
+
+<a id="keys.lua"></a>
+#### `keys.lua`
+
+Container for Lua-specific key bindings.
+
+<a id="snippets.lua"></a>
+#### `snippets.lua`
+
+Container for Lua-specific snippets.
+
+<a id="_M.lua.expr_types"></a>
+#### `_M.lua.expr_types`
+
+Map of expression patterns to their types.
+Used for type-hinting when showing autocompletions for variables.
+Expressions are expected to match after the '=' sign of a statement.
+
+Usage:
+
+* `_M.lua.expr_types['^spawn%b()%s*$'] = 'proc'`
+
+<a id="_M.lua.tags"></a>
+#### `_M.lua.tags`
+
+List of "fake" ctags files (or functions that return such files) to use for
+autocompletion.
+The kind 'm' is recognized as a module, 'f' as a function, 't' as a table and
+'F' as a module or table field.
+The *modules/lua/tadoc.lua* script can generate *tags* and
+[*api*](#textadept.editing.api_files) files for Lua modules via LuaDoc.
+
+---
+<a id="_SCINTILLA"></a>
+## The `_SCINTILLA` Module
+---
+
+Scintilla constants, functions, and properties.
+Do not modify anything in this module. Doing so will have unpredictable
+consequences.
+
+### Functions defined by `_SCINTILLA`
+
+<a id="_SCINTILLA.next_image_type"></a>
+#### `_SCINTILLA.next_image_type`()
+
+Returns a unique image type identier number for use with
+`view.register_image()` and `view.register_rgba_image()`.
+Use this function for custom image types in order to prevent clashes with
+identifiers of other custom image types.
+
+Usage:
+
+* `local image_type = _SCINTILLA.next_image_type()`
+
+See also:
+
+* [`view.register_image`](#view.register_image)
+* [`view.register_rgba_image`](#view.register_rgba_image)
+
+<a id="_SCINTILLA.next_indic_number"></a>
+#### `_SCINTILLA.next_indic_number`()
+
+Returns a unique indicator number for use with custom indicators.
+Use this function for custom indicators in order to prevent clashes with
+identifiers of other custom indicators.
+
+Usage:
+
+* `local indic_num = _SCINTILLA.next_indic_number()`
+
+See also:
+
+* [`view.indic_style`](#view.indic_style)
+
+<a id="_SCINTILLA.next_marker_number"></a>
+#### `_SCINTILLA.next_marker_number`()
+
+Returns a unique marker number for use with `view.marker_define()`.
+Use this function for custom markers in order to prevent clashes with
+identifiers of other custom markers.
+
+Usage:
+
+* `local marknum = _SCINTILLA.next_marker_number()`
+
+See also:
+
+* [`view.marker_define`](#view.marker_define)
+
+<a id="_SCINTILLA.next_user_list_type"></a>
+#### `_SCINTILLA.next_user_list_type`()
+
+Returns a unique user list identier number for use with
+`buffer.user_list_show()`.
+Use this function for custom user lists in order to prevent clashes with
+list identifiers of other custom user lists.
+
+Usage:
+
+* `local list_type = _SCINTILLA.next_user_list_type()`
+
+See also:
+
+* [`buffer.user_list_show`](#buffer.user_list_show)
+
+
+### Tables defined by `_SCINTILLA`
+
+<a id="_SCINTILLA.constants"></a>
+#### `_SCINTILLA.constants`
+
+Map of Scintilla constant names to their numeric values.
+
+See also:
+
+* [`buffer`](#buffer)
+
+<a id="_SCINTILLA.events"></a>
+#### `_SCINTILLA.events`
+
+Map of Scintilla event IDs to tables of event names and event parameters.
+
+<a id="_SCINTILLA.functions"></a>
+#### `_SCINTILLA.functions`
+
+Map of Scintilla function names to tables containing their IDs, return types,
+wParam types, and lParam types. Types are as follows:
+
+ + `0`: Void.
+ + `1`: Integer.
+ + `2`: Length of the given lParam string.
+ + `3`: Integer position.
+ + `4`: Color, in "0xBBGGRR" format.
+ + `5`: Boolean `true` or `false`.
+ + `6`: Bitmask of Scintilla key modifiers and a key value.
+ + `7`: String parameter.
+ + `8`: String return value.
+
+<a id="_SCINTILLA.properties"></a>
+#### `_SCINTILLA.properties`
+
+Map of Scintilla property names to table values containing their "get"
+function IDs, "set" function IDs, return types, and wParam types.
+The wParam type will be non-zero if the property is indexable.
+Types are the same as in the `functions` table.
+
+See also:
+
+* [`_SCINTILLA.functions`](#_SCINTILLA.functions)
+
+---
+<a id="args"></a>
+## The `args` Module
+---
+
+Processes command line arguments for Textadept.
+
+### Fields defined by `args`
+
+<a id="events.ARG_NONE"></a>
+#### `events.ARG_NONE` (string)
+
+Emitted when no command line arguments are passed to Textadept on startup.
+
+
+### Functions defined by `args`
+
+<a id="args.register"></a>
+#### `args.register`(*short, long, narg, f, description*)
+
+Registers a command line switch with short and long versions *short* and
+*long*, respectively. *narg* is the number of arguments the switch accepts,
+*f* is the function called when the switch is tripped, and *description* is
+the switch's description when displaying help.
+
+Parameters:
+
+* *`short`*: The string short version of the switch.
+* *`long`*: The string long version of the switch.
+* *`narg`*: The number of expected parameters for the switch.
+* *`f`*: The Lua function to run when the switch is tripped. It is passed
+ *narg* string arguments.
+* *`description`*: The string description of the switch for command line
+ help.
+
+
+---
+<a id="assert"></a>
+## The `assert` Module
+---
+
+Extends `_G` with formatted assertions and function argument type checks.
+
+### Functions defined by `assert`
+
+<a id="_G.assert"></a>
+#### `_G.assert`(*v, message, ...*)
+
+Asserts that value *v* is not `false` or `nil` and returns *v*, or calls
+`error()` with *message* as the error message, defaulting to "assertion
+failed!". If *message* is a format string, the remaining arguments are passed
+to `string.format()` and the resulting string becomes the error message.
+
+Parameters:
+
+* *`v`*: Value to assert.
+* *`message`*: Optional error message to show on error. The default value is
+ "assertion failed!".
+* *`...`*: If *message* is a format string, these arguments are passed to
+ `string.format()`.
+
+<a id="_G.assert_type"></a>
+#### `_G.assert_type`(*v, expected\_type, narg*)
+
+Asserts that value *v* has type string *expected_type* and returns *v*, or
+calls `error()` with an error message that implicates function argument
+number *narg*.
+This is intended to be used with API function arguments so users receive more
+helpful error messages.
+
+Parameters:
+
+* *`v`*: Value to assert the type of.
+* *`expected_type`*: String type to assert. It may be a punctuation-delimited
+ list of type options.
+* *`narg`*: The positional argument number *v* is associated with. This is
+ not required to be a number.
+
+Usage:
+
+* `assert_type(filename, 'string/nil', 1)`
+* `assert_type(option.setting, 'number', 'setting') -- implicates key`
+
+
+---
+<a id="buffer"></a>
+## The `buffer` Module
+---
+
+A Textadept buffer object.
+Constants are documented in the fields they apply to.
+While you can work with individual buffer instances, it is really only useful
+to work with the global one.
+Many of these functions and fields are derived from buffer-specific
+functionality of the Scintilla editing component, and additional information
+can be found on the Scintilla website:
+[http://scintilla.org/ScintillaDoc.html](
+http://scintilla.org/ScintillaDoc.html).
+Note that with regard to Scintilla-specific functionality, this API is a
+_suggestion_, not a hard requirement. All of that functionality also exists
+in [`view`](#view), even if undocumented.
+Any buffer fields set on startup (e.g. in *~/.textadept/init.lua*) will be
+the default, initial values for all buffers.
+
+### Fields defined by `buffer`
+
+<a id="buffer.CARETSTICKY_OFF"></a>
+#### `buffer.CARETSTICKY_OFF` (number, Read-only)
+
+
+
+
+<a id="buffer.CARETSTICKY_ON"></a>
+#### `buffer.CARETSTICKY_ON` (number, Read-only)
+
+
+
+
+<a id="buffer.CARETSTICKY_WHITESPACE"></a>
+#### `buffer.CARETSTICKY_WHITESPACE` (number, Read-only)
+
+
+
+
+<a id="buffer.CASEINSENSITIVEBEHAVIOR_IGNORECASE"></a>
+#### `buffer.CASEINSENSITIVEBEHAVIOR_IGNORECASE` (number, Read-only)
+
+
+
+
+<a id="buffer.CASEINSENSITIVEBEHAVIOR_RESPECTCASE"></a>
+#### `buffer.CASEINSENSITIVEBEHAVIOR_RESPECTCASE` (number, Read-only)
+
+
+
+
+<a id="buffer.EOL_CR"></a>
+#### `buffer.EOL_CR` (number, Read-only)
+
+
+
+
+<a id="buffer.EOL_CRLF"></a>
+#### `buffer.EOL_CRLF` (number, Read-only)
+
+
+
+
+<a id="buffer.EOL_LF"></a>
+#### `buffer.EOL_LF` (number, Read-only)
+
+
+
+
+<a id="buffer.FIND_MATCHCASE"></a>
+#### `buffer.FIND_MATCHCASE` (number, Read-only)
+
+
+
+
+<a id="buffer.FIND_REGEXP"></a>
+#### `buffer.FIND_REGEXP` (number, Read-only)
+
+
+
+
+<a id="buffer.FIND_WHOLEWORD"></a>
+#### `buffer.FIND_WHOLEWORD` (number, Read-only)
+
+
+
+
+<a id="buffer.FIND_WORDSTART"></a>
+#### `buffer.FIND_WORDSTART` (number, Read-only)
+
+
+
+
+<a id="buffer.FOLDLEVELBASE"></a>
+#### `buffer.FOLDLEVELBASE` (number, Read-only)
+
+
+
+
+<a id="buffer.FOLDLEVELHEADERFLAG"></a>
+#### `buffer.FOLDLEVELHEADERFLAG` (number, Read-only)
+
+
+
+
+<a id="buffer.FOLDLEVELNUMBERMASK"></a>
+#### `buffer.FOLDLEVELNUMBERMASK` (number, Read-only)
+
+
+
+
+<a id="buffer.FOLDLEVELWHITEFLAG"></a>
+#### `buffer.FOLDLEVELWHITEFLAG` (number, Read-only)
+
+
+
+
+<a id="buffer.INDICATOR_MAX"></a>
+#### `buffer.INDICATOR_MAX` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKER_MAX"></a>
+#### `buffer.MARKER_MAX` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDER"></a>
+#### `buffer.MARKNUM_FOLDER` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDEREND"></a>
+#### `buffer.MARKNUM_FOLDEREND` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDERMIDTAIL"></a>
+#### `buffer.MARKNUM_FOLDERMIDTAIL` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDEROPEN"></a>
+#### `buffer.MARKNUM_FOLDEROPEN` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDEROPENMID"></a>
+#### `buffer.MARKNUM_FOLDEROPENMID` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDERSUB"></a>
+#### `buffer.MARKNUM_FOLDERSUB` (number, Read-only)
+
+
+
+
+<a id="buffer.MARKNUM_FOLDERTAIL"></a>
+#### `buffer.MARKNUM_FOLDERTAIL` (number, Read-only)
+
+
+
+
+<a id="buffer.MARK_AVAILABLE"></a>
+#### `buffer.MARK_AVAILABLE` (number, Read-only)
+
+
+
+
+<a id="buffer.MULTIAUTOC_EACH"></a>
+#### `buffer.MULTIAUTOC_EACH` (number, Read-only)
+
+
+
+
+<a id="buffer.MULTIAUTOC_ONCE"></a>
+#### `buffer.MULTIAUTOC_ONCE` (number, Read-only)
+
+
+
+
+<a id="buffer.MULTIPASTE_EACH"></a>
+#### `buffer.MULTIPASTE_EACH` (number, Read-only)
+
+
+
+
+<a id="buffer.MULTIPASTE_ONCE"></a>
+#### `buffer.MULTIPASTE_ONCE` (number, Read-only)
+
+
+
+
+<a id="buffer.ORDER_CUSTOM"></a>
+#### `buffer.ORDER_CUSTOM` (number, Read-only)
+
+
+
+
+<a id="buffer.ORDER_PERFORMSORT"></a>
+#### `buffer.ORDER_PERFORMSORT` (number, Read-only)
+
+
+
+
+<a id="buffer.ORDER_PRESORTED"></a>
+#### `buffer.ORDER_PRESORTED` (number, Read-only)
+
+
+
+
+<a id="buffer.SEL_LINES"></a>
+#### `buffer.SEL_LINES` (number, Read-only)
+
+
+
+
+<a id="buffer.SEL_RECTANGLE"></a>
+#### `buffer.SEL_RECTANGLE` (number, Read-only)
+
+
+
+
+<a id="buffer.SEL_STREAM"></a>
+#### `buffer.SEL_STREAM` (number, Read-only)
+
+
+
+
+<a id="buffer.SEL_THIN"></a>
+#### `buffer.SEL_THIN` (number, Read-only)
+
+
+
+
+<a id="buffer.UPDATE_CONTENT"></a>
+#### `buffer.UPDATE_CONTENT` (number, Read-only)
+
+
+
+
+<a id="buffer.UPDATE_SELECTION"></a>
+#### `buffer.UPDATE_SELECTION` (number, Read-only)
+
+
+
+
+<a id="buffer.VS_NONE"></a>
+#### `buffer.VS_NONE` (number, Read-only)
+
+
+
+
+<a id="buffer.VS_RECTANGULARSELECTION"></a>
+#### `buffer.VS_RECTANGULARSELECTION` (number, Read-only)
+
+
+
+
+<a id="buffer.VS_USERACCESSIBLE"></a>
+#### `buffer.VS_USERACCESSIBLE` (number, Read-only)
+
+
+
+
+<a id="buffer.additional_selection_typing"></a>
+#### `buffer.additional_selection_typing` (bool)
+
+Type into multiple selections.
+ The default value is `false`.
+
+<a id="buffer.anchor"></a>
+#### `buffer.anchor` (number)
+
+The anchor's position.
+
+<a id="buffer.annotation_lines"></a>
+#### `buffer.annotation_lines` (table, Read-only)
+
+Table of the number of annotation text lines per line number.
+
+<a id="buffer.annotation_style"></a>
+#### `buffer.annotation_style` (table)
+
+Table of style numbers for annotation text per line number.
+ Only some style attributes are active in annotations: font,
+ size/size_fractional, bold/weight, italics, fore, back, and character_set.
+
+<a id="buffer.annotation_text"></a>
+#### `buffer.annotation_text` (table)
+
+Table of annotation text per line number.
+
+<a id="buffer.auto_c_auto_hide"></a>
+#### `buffer.auto_c_auto_hide` (bool)
+
+Automatically cancel an autocompletion or user list when no entries match
+ typed text.
+ The default value is `true`.
+
+<a id="buffer.auto_c_cancel_at_start"></a>
+#### `buffer.auto_c_cancel_at_start` (bool)
+
+Cancel an autocompletion list when backspacing to a position before where
+ autocompletion started (instead of before the word being completed).
+ This option has no effect for a user list.
+ The default value is `true`.
+
+<a id="buffer.auto_c_case_insensitive_behavior"></a>
+#### `buffer.auto_c_case_insensitive_behavior` (number)
+
+The behavior mode for a case insensitive autocompletion or user list when
+ [`buffer.auto_c_ignore_case`](#buffer.auto_c_ignore_case) is `true`.
+
+ * `buffer.CASEINSENSITIVEBEHAVIOR_RESPECTCASE`
+ Prefer to select case-sensitive matches.
+ * `buffer.CASEINSENSITIVEBEHAVIOR_IGNORECASE`
+ No preference.
+
+ The default value is `buffer.CASEINSENSITIVEBEHAVIOR_RESPECTCASE`.
+
+<a id="buffer.auto_c_choose_single"></a>
+#### `buffer.auto_c_choose_single` (bool)
+
+Automatically choose the item in a single-item autocompletion list.
+ This option has no effect for a user list.
+ The default value is `false`.
+
+<a id="buffer.auto_c_current"></a>
+#### `buffer.auto_c_current` (number, Read-only)
+
+The index of the currently selected item in an autocompletion or user list.
+
+<a id="buffer.auto_c_current_text"></a>
+#### `buffer.auto_c_current_text` (string, Read-only)
+
+The text of the currently selected item in an autocompletion or user list.
+
+<a id="buffer.auto_c_drop_rest_of_word"></a>
+#### `buffer.auto_c_drop_rest_of_word` (bool)
+
+Delete any word characters immediately to the right of autocompleted text.
+ The default value is `false`.
+
+<a id="buffer.auto_c_fill_ups"></a>
+#### `buffer.auto_c_fill_ups` (string, Write-only)
+
+The set of characters that choose the currently selected item in an
+ autocompletion or user list when the user types one of them.
+ The default value is `''`.
+
+<a id="buffer.auto_c_ignore_case"></a>
+#### `buffer.auto_c_ignore_case` (bool)
+
+Ignore case when searching an autocompletion or user list for matches.
+ The default value is `false`.
+
+<a id="buffer.auto_c_multi"></a>
+#### `buffer.auto_c_multi` (number)
+
+The multiple selection autocomplete mode.
+
+ * `buffer.MULTIAUTOC_ONCE`
+ Autocomplete into only the main selection.
+ * `buffer.MULTIAUTOC_EACH`
+ Autocomplete into all selections.
+
+ The default value is `buffer.MULTIAUTOC_ONCE`.
+
+<a id="buffer.auto_c_order"></a>
+#### `buffer.auto_c_order` (number)
+
+The order setting for autocompletion and user lists.
+
+ * `buffer.ORDER_PRESORTED`
+ Lists passed to [`buffer.auto_c_show()`](#buffer.auto_c_show) are in sorted, alphabetical
+ order.
+ * `buffer.ORDER_PERFORMSORT`
+ Sort autocompletion lists passed to [`buffer.auto_c_show()`](#buffer.auto_c_show).
+ * `buffer.ORDER_CUSTOM`
+ Lists passed to [`buffer.auto_c_show()`](#buffer.auto_c_show) are already in a custom order.
+
+ The default value is `buffer.ORDER_PRESORTED`.
+
+<a id="buffer.auto_c_separator"></a>
+#### `buffer.auto_c_separator` (number)
+
+The byte value of the character that separates autocompletion and user list
+ list items.
+ The default value is `32` (' ').
+
+<a id="buffer.auto_c_type_separator"></a>
+#### `buffer.auto_c_type_separator` (number)
+
+The character byte that separates autocompletion and user list items and
+ their image types.
+ Autocompletion and user list items can display both an image and text.
+ Register images and their types using [`view.register_image()`](#view.register_image) or
+ [`view.register_rgba_image()`](#view.register_rgba_image) before appending image types to list
+ items after type separator characters.
+ The default value is 63 ('?').
+
+<a id="buffer.back_space_un_indents"></a>
+#### `buffer.back_space_un_indents` (bool)
+
+Un-indent text when backspacing within indentation.
+ The default value is `false`.
+
+<a id="buffer.caret_sticky"></a>
+#### `buffer.caret_sticky` (number)
+
+The caret's preferred horizontal position when moving between lines.
+
+ * `buffer.CARETSTICKY_OFF`
+ Use the same position the caret had on the previous line.
+ * `buffer.CARETSTICKY_ON`
+ Use the last position the caret was moved to via the mouse, left/right
+ arrow keys, home/end keys, etc. Typing text does not affect the position.
+ * `buffer.CARETSTICKY_WHITESPACE`
+ Use the position the caret had on the previous line, but prior to any
+ inserted indentation.
+
+ The default value is `buffer.CARETSTICKY_OFF`.
+
+<a id="buffer.char_at"></a>
+#### `buffer.char_at` (table, Read-only)
+
+Table of character bytes per position.
+
+<a id="buffer.column"></a>
+#### `buffer.column` (table, Read-only)
+
+Table of column numbers (taking tab widths into account) per position.
+ Multi-byte characters count as single characters.
+
+<a id="buffer.current_pos"></a>
+#### `buffer.current_pos` (number)
+
+The caret's position.
+ When set, does not scroll the caret into view.
+
+<a id="buffer.encoding"></a>
+#### `buffer.encoding` (string or nil)
+
+The string encoding of the file, or `nil` for binary files.
+
+<a id="buffer.end_styled"></a>
+#### `buffer.end_styled` (number, Read-only)
+
+The current styling position or the last correctly styled character's
+ position.
+
+<a id="buffer.eol_annotation_style"></a>
+#### `buffer.eol_annotation_style` (table)
+
+Table of style numbers for EOL annotation text per line number.
+ Only some style attributes are active in annotations: font,
+ size/size_fractional, bold/weight, italics, fore, back, and character_set.
+
+<a id="buffer.eol_annotation_text"></a>
+#### `buffer.eol_annotation_text` (table)
+
+Table of EOL annotation text per line number.
+
+<a id="buffer.eol_mode"></a>
+#### `buffer.eol_mode` (number)
+
+The current end of line mode. Changing the current mode does not convert
+ any of the buffer's existing end of line characters.
+ Use [`buffer.convert_eols()`](#buffer.convert_eols) to do so.
+
+ * `buffer.EOL_CRLF`
+ Carriage return with line feed ("\r\n").
+ * `buffer.EOL_CR`
+ Carriage return ("\r").
+ * `buffer.EOL_LF`
+ Line feed ("\n").
+
+ The default value is `buffer.EOL_CRLF` on Windows platforms,
+ `buffer.EOL_LF` otherwise.
+
+<a id="buffer.filename"></a>
+#### `buffer.filename` (string)
+
+The absolute file path associated with the buffer.
+
+<a id="buffer.fold_level"></a>
+#### `buffer.fold_level` (table)
+
+Table of fold level bit-masks per line number.
+ Fold level masks comprise of an integer level combined with any of the
+ following bit flags:
+
+ * `buffer.FOLDLEVELBASE`
+ The initial fold level.
+ * `buffer.FOLDLEVELWHITEFLAG`
+ The line is blank.
+ * `buffer.FOLDLEVELHEADERFLAG`
+ The line is a header, or fold point.
+
+<a id="buffer.fold_parent"></a>
+#### `buffer.fold_parent` (table, Read-only)
+
+Table of fold point line numbers per child line number.
+ A line number of `-1` means no line was found.
+
+<a id="buffer.indent"></a>
+#### `buffer.indent` (number)
+
+The number of spaces in one level of indentation.
+ The default value is `0`, which uses the value of [`buffer.tab_width`](#buffer.tab_width).
+
+<a id="buffer.indicator_current"></a>
+#### `buffer.indicator_current` (number)
+
+The indicator number in the range of `1` to `32` used by
+ [`buffer.indicator_fill_range()`](#buffer.indicator_fill_range) and
+ [`buffer.indicator_clear_range()`](#buffer.indicator_clear_range).
+
+<a id="buffer.length"></a>
+#### `buffer.length` (number, Read-only)
+
+The number of bytes in the buffer.
+
+<a id="buffer.line_count"></a>
+#### `buffer.line_count` (number, Read-only)
+
+The number of lines in the buffer.
+ There is always at least one.
+
+<a id="buffer.line_end_position"></a>
+#### `buffer.line_end_position` (table, Read-only)
+
+Table of positions at the ends of lines, but before any end of line
+ characters, per line number.
+
+<a id="buffer.line_indent_position"></a>
+#### `buffer.line_indent_position` (table, Read-only)
+
+Table of positions at the ends of indentation per line number.
+
+<a id="buffer.line_indentation"></a>
+#### `buffer.line_indentation` (table)
+
+Table of column indentation amounts per line number.
+
+<a id="buffer.main_selection"></a>
+#### `buffer.main_selection` (number)
+
+The number of the main or most recent selection.
+ Only an existing selection can be made main.
+
+<a id="buffer.margin_style"></a>
+#### `buffer.margin_style` (table)
+
+Table of style numbers in the text margin per line number.
+ Only some style attributes are active in text margins: font, size, bold,
+ italics, fore, and back.
+
+<a id="buffer.margin_text"></a>
+#### `buffer.margin_text` (table)
+
+Table of text displayed in text margins per line number.
+
+<a id="buffer.modify"></a>
+#### `buffer.modify` (bool, Read-only)
+
+Whether or not the buffer has unsaved changes.
+
+<a id="buffer.move_extends_selection"></a>
+#### `buffer.move_extends_selection` (bool, Read-only)
+
+Whether or not regular caret movement alters the selected text.
+ [`buffer.selection_mode`](#buffer.selection_mode) dictates this property.
+
+<a id="buffer.multi_paste"></a>
+#### `buffer.multi_paste` (number)
+
+The multiple selection paste mode.
+
+ * `buffer.MULTIPASTE_ONCE`
+ Paste into only the main selection.
+ * `buffer.MULTIPASTE_EACH`
+ Paste into all selections.
+
+ The default value is `buffer.MULTIPASTE_ONCE`.
+
+<a id="buffer.multiple_selection"></a>
+#### `buffer.multiple_selection` (bool)
+
+Enable multiple selection.
+ The default value is `false`.
+
+<a id="buffer.overtype"></a>
+#### `buffer.overtype` (bool)
+
+Enable overtype mode, where typed characters overwrite existing ones.
+ The default value is `false`.
+
+<a id="buffer.punctuation_chars"></a>
+#### `buffer.punctuation_chars` (string)
+
+The string set of characters recognized as punctuation characters.
+ Set this only after setting [`buffer.word_chars`](#buffer.word_chars).
+ The default value is a string that contains all non-word and non-whitespace
+ characters.
+
+<a id="buffer.read_only"></a>
+#### `buffer.read_only` (bool)
+
+Whether or not the buffer is read-only.
+ The default value is `false`.
+
+<a id="buffer.rectangular_selection_anchor"></a>
+#### `buffer.rectangular_selection_anchor` (number)
+
+The rectangular selection's anchor position.
+
+<a id="buffer.rectangular_selection_anchor_virtual_space"></a>
+#### `buffer.rectangular_selection_anchor_virtual_space` (number)
+
+The amount of virtual space for the rectangular selection's anchor.
+
+<a id="buffer.rectangular_selection_caret"></a>
+#### `buffer.rectangular_selection_caret` (number)
+
+The rectangular selection's caret position.
+
+<a id="buffer.rectangular_selection_caret_virtual_space"></a>
+#### `buffer.rectangular_selection_caret_virtual_space` (number)
+
+The amount of virtual space for the rectangular selection's caret.
+
+<a id="buffer.search_flags"></a>
+#### `buffer.search_flags` (number)
+
+The bit-mask of search flags used by [`buffer.search_in_target()`](#buffer.search_in_target).
+
+ * `buffer.FIND_WHOLEWORD`
+ Match search text only when it is surrounded by non-word characters.
+ * `buffer.FIND_MATCHCASE`
+ Match search text case sensitively.
+ * `buffer.FIND_WORDSTART`
+ Match search text only when the previous character is a non-word
+ character.
+ * `buffer.FIND_REGEXP`
+ Interpret search text as a regular expression.
+
+ The default value is `0`.
+
+<a id="buffer.selection_empty"></a>
+#### `buffer.selection_empty` (bool, Read-only)
+
+Whether or not no text is selected.
+
+<a id="buffer.selection_end"></a>
+#### `buffer.selection_end` (number)
+
+The position of the end of the selected text.
+ When set, becomes the current position, but is not scrolled into view.
+
+<a id="buffer.selection_is_rectangle"></a>
+#### `buffer.selection_is_rectangle` (bool, Read-only)
+
+Whether or not the selection is a rectangular selection.
+
+<a id="buffer.selection_mode"></a>
+#### `buffer.selection_mode` (number)
+
+The selection mode.
+
+ * `buffer.SEL_STREAM`
+ Character selection.
+ * `buffer.SEL_RECTANGLE`
+ Rectangular selection.
+ * `buffer.SEL_LINES`
+ Line selection.
+ * `buffer.SEL_THIN`
+ Thin rectangular selection. This is the mode after a rectangular
+ selection has been typed into and ensures that no characters are
+ selected.
+
+ When set, caret movement alters the selected text until this field is set
+ again to the same value or until [`buffer.cancel()`](#buffer.cancel) is called.
+
+<a id="buffer.selection_n_anchor"></a>
+#### `buffer.selection_n_anchor` (table)
+
+Table of positions at the beginning of existing selections numbered from
+ `1`, the main selection.
+
+<a id="buffer.selection_n_anchor_virtual_space"></a>
+#### `buffer.selection_n_anchor_virtual_space` (table)
+
+Table of positions at the beginning of virtual space selected in existing
+ selections numbered from `1`, the main selection.
+
+<a id="buffer.selection_n_caret"></a>
+#### `buffer.selection_n_caret` (table)
+
+Table of positions at the end of existing selections numbered from `1`,
+ the main selection.
+
+<a id="buffer.selection_n_caret_virtual_space"></a>
+#### `buffer.selection_n_caret_virtual_space` (table)
+
+Table of positions at the end of virtual space selected in existing
+ selections numbered from `1`, the main selection.
+
+<a id="buffer.selection_n_end"></a>
+#### `buffer.selection_n_end` (table)
+
+Table of positions at the end of existing selections numbered from `1`,
+ the main selection.
+
+<a id="buffer.selection_n_end_virtual_space"></a>
+#### `buffer.selection_n_end_virtual_space` (number, Read-only)
+
+Table of positions at the end of virtual space selected in existing
+ selections numbered from `1`, the main selection.
+
+<a id="buffer.selection_n_start"></a>
+#### `buffer.selection_n_start` (table)
+
+Table of positions at the beginning of existing selections numbered from
+ `1`, the main selection.
+
+<a id="buffer.selection_n_start_virtual_space"></a>
+#### `buffer.selection_n_start_virtual_space` (number, Read-only)
+
+Table of positions at the beginning of virtual space selected in existing
+ selections numbered from `1`, the main selection.
+
+<a id="buffer.selection_start"></a>
+#### `buffer.selection_start` (number)
+
+The position of the beginning of the selected text.
+ When set, becomes the anchor, but is not scrolled into view.
+
+<a id="buffer.selections"></a>
+#### `buffer.selections` (number, Read-only)
+
+The number of active selections. There is always at least one selection.
+
+<a id="buffer.style_at"></a>
+#### `buffer.style_at` (table, Read-only)
+
+Table of style numbers per position.
+
+<a id="buffer.tab_indents"></a>
+#### `buffer.tab_indents` (bool)
+
+Indent text when tabbing within indentation.
+ The default value is `false`.
+
+<a id="buffer.tab_label"></a>
+#### `buffer.tab_label` (string)
+
+The buffer's tab label in the tab bar.
+
+<a id="buffer.tab_width"></a>
+#### `buffer.tab_width` (number)
+
+The number of space characters represented by a tab character.
+ The default value is `8`.
+
+<a id="buffer.tag"></a>
+#### `buffer.tag` (table, Read-only)
+
+List of capture text for capture numbers from a regular expression search.
+
+<a id="buffer.target_end"></a>
+#### `buffer.target_end` (number)
+
+The position of the end of the target range.
+ This is also set by a successful [`buffer.search_in_target()`](#buffer.search_in_target).
+
+<a id="buffer.target_end_virtual_space"></a>
+#### `buffer.target_end_virtual_space` (number)
+
+The position of the end of virtual space in the target range.
+ This is set to `1` when [`buffer.target_start`](#buffer.target_start) or
+ [`buffer.target_end`](#buffer.target_end) is set, or when [`buffer.set_target_range()`](#buffer.set_target_range) is
+ called.
+
+<a id="buffer.target_start"></a>
+#### `buffer.target_start` (number)
+
+The position of the beginning of the target range.
+ This is also set by a successful [`buffer.search_in_target()`](#buffer.search_in_target).
+
+<a id="buffer.target_start_virtual_space"></a>
+#### `buffer.target_start_virtual_space` (number)
+
+The position of the beginning of virtual space in the target range.
+ This is set to `1` when [`buffer.target_start`](#buffer.target_start) or
+ [`buffer.target_end`](#buffer.target_end) is set, or when [`buffer.set_target_range()`](#buffer.set_target_range) is
+ called.
+
+<a id="buffer.target_text"></a>
+#### `buffer.target_text` (string, Read-only)
+
+The text in the target range.
+
+<a id="buffer.text_length"></a>
+#### `buffer.text_length` (number, Read-only)
+
+The number of bytes in the buffer.
+
+<a id="buffer.use_tabs"></a>
+#### `buffer.use_tabs` (bool)
+
+Use tabs instead of spaces in indentation. Changing the current setting
+ does not convert any of the buffer's existing indentation. Use
+ [`textadept.editing.convert_indentation()`](#textadept.editing.convert_indentation) to do so.
+ The default value is `true`.
+
+<a id="buffer.virtual_space_options"></a>
+#### `buffer.virtual_space_options` (number)
+
+The virtual space mode.
+
+ * `buffer.VS_NONE`
+ Disable virtual space.
+ * `buffer.VS_RECTANGULARSELECTION`
+ Enable virtual space only for rectangular selections.
+ * `buffer.VS_USERACCESSIBLE`
+ Enable virtual space.
+ * `buffer.VS_NOWRAPLINESTART`
+ Prevent the caret from wrapping to the previous line via
+ `buffer:char_left()` and `buffer:char_left_extend()`. This option is not
+ restricted to virtual space and should be added to any of the above
+ options.
+
+ When virtual space is enabled, the caret may move into the space past end
+ of line characters.
+ The default value is `buffer.VS_NONE`.
+
+<a id="buffer.whitespace_chars"></a>
+#### `buffer.whitespace_chars` (string)
+
+The string set of characters recognized as whitespace characters.
+ Set this only after setting [`buffer.word_chars`](#buffer.word_chars).
+ The default value is a string that contains all non-newline characters less
+ than ASCII value 33.
+
+<a id="buffer.word_chars"></a>
+#### `buffer.word_chars` (string)
+
+The string set of characters recognized as word characters.
+ The default value is a string that contains alphanumeric characters, an
+ underscore, and all characters greater than ASCII value 127.
+
+
+### Functions defined by `buffer`
+
+<a id="buffer.add_selection"></a>
+#### `buffer.add_selection`(*buffer, end\_pos, start\_pos*)
+
+Selects the range of text between positions *start_pos* to *end_pos* as the
+main selection, retaining all other selections as additional selections.
+Since an empty selection (i.e. the current position) still counts as a
+selection, use `buffer.set_selection()` first when setting a list of
+selections.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`end_pos`*: The caret position of the range of text to select in *buffer*.
+* *`start_pos`*: The anchor position of the range of text to select in
+ *buffer*.
+
+See also:
+
+* [`buffer.set_selection`](#buffer.set_selection)
+
+<a id="buffer.add_text"></a>
+#### `buffer.add_text`(*buffer, text*)
+
+Adds string *text* to the buffer at the caret position and moves the caret to
+the end of the added text without scrolling it into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to add.
+
+<a id="buffer.annotation_clear_all"></a>
+#### `buffer.annotation_clear_all`(*buffer*)
+
+Clears annotations from all lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.append_text"></a>
+#### `buffer.append_text`(*buffer, text*)
+
+Appends string *text* to the end of the buffer without modifying any existing
+selections or scrolling the text into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to append.
+
+<a id="buffer.auto_c_active"></a>
+#### `buffer.auto_c_active`(*buffer*)
+
+Returns whether or not an autocompletion or user list is visible.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+Return:
+
+* bool
+
+<a id="buffer.auto_c_cancel"></a>
+#### `buffer.auto_c_cancel`(*buffer*)
+
+Cancels the displayed autocompletion or user list.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.auto_c_complete"></a>
+#### `buffer.auto_c_complete`(*buffer*)
+
+Completes the current word with the one selected in an autocompletion list.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.auto_c_pos_start"></a>
+#### `buffer.auto_c_pos_start`(*buffer*)
+
+Returns the position where autocompletion started or where a user list was
+shown.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+Return:
+
+* number
+
+<a id="buffer.auto_c_select"></a>
+#### `buffer.auto_c_select`(*buffer, prefix*)
+
+Selects the first item that starts with string *prefix* in an autocompletion
+or user list, using the case sensitivity setting `buffer.auto_c_ignore_case`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`prefix`*: The item in the list to select.
+
+<a id="buffer.auto_c_show"></a>
+#### `buffer.auto_c_show`(*buffer, len\_entered, items*)
+
+Displays an autocompletion list constructed from string *items* (whose items
+are delimited by `buffer.auto_c_separator` characters) using *len_entered*
+number of characters behind the caret as the prefix of the word to be
+autocompleted.
+The sorted order of *items* (`buffer.auto_c_order`) must have already been
+defined.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`len_entered`*: The number of characters before the caret used to provide
+ the context.
+* *`items`*: The sorted string of words to show, separated by
+ `buffer.auto_c_separator` characters (initially spaces).
+
+See also:
+
+* [`buffer.auto_c_separator`](#buffer.auto_c_separator)
+* [`buffer.auto_c_order`](#buffer.auto_c_order)
+
+<a id="buffer.auto_c_stops"></a>
+#### `buffer.auto_c_stops`(*buffer, chars*)
+
+Allows the user to type any character in string set *chars* in order to
+cancel an autocompletion or user list.
+The default set is empty.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`chars`*: The string of characters that cancel autocompletion. This string
+ is empty by default.
+
+<a id="buffer.back_tab"></a>
+#### `buffer.back_tab`(*buffer*)
+
+Un-indents the text on the selected lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.begin_undo_action"></a>
+#### `buffer.begin_undo_action`(*buffer*)
+
+Starts a sequence of actions to be undone or redone as a single action.
+May be nested.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.brace_match"></a>
+#### `buffer.brace_match`(*buffer, pos, max\_re\_style*)
+
+Returns the position of the matching brace for the brace character at
+position *pos*, taking nested braces into account, or `-1`.
+The brace characters recognized are '(', ')', '[', ']', '{', '}', '<', and
+'>' and must have the same style.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position of the brace in *buffer* to match.
+* *`max_re_style`*: Must be `0`. Reserved for expansion.
+
+Return:
+
+* number
+
+<a id="buffer.can_redo"></a>
+#### `buffer.can_redo`(*buffer*)
+
+Returns whether or not there is an action to be redone.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+Return:
+
+* bool
+
+<a id="buffer.can_undo"></a>
+#### `buffer.can_undo`(*buffer*)
+
+Returns whether or not there is an action to be undone.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+Return:
+
+* bool
+
+<a id="buffer.cancel"></a>
+#### `buffer.cancel`(*buffer*)
+
+Cancels the active selection mode, autocompletion or user list, call tip,
+etc.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.char_left"></a>
+#### `buffer.char_left`(*buffer*)
+
+Moves the caret left one character.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.char_left_extend"></a>
+#### `buffer.char_left_extend`(*buffer*)
+
+Moves the caret left one character, extending the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.char_left_rect_extend"></a>
+#### `buffer.char_left_rect_extend`(*buffer*)
+
+Moves the caret left one character, extending the rectangular selection to
+the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.char_right"></a>
+#### `buffer.char_right`(*buffer*)
+
+Moves the caret right one character.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.char_right_extend"></a>
+#### `buffer.char_right_extend`(*buffer*)
+
+Moves the caret right one character, extending the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.char_right_rect_extend"></a>
+#### `buffer.char_right_rect_extend`(*buffer*)
+
+Moves the caret right one character, extending the rectangular selection to
+the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.choose_caret_x"></a>
+#### `buffer.choose_caret_x`(*buffer*)
+
+Identifies the current horizontal caret position as the caret's preferred
+horizontal position when moving between lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+See also:
+
+* [`buffer.caret_sticky`](#buffer.caret_sticky)
+
+<a id="buffer.clear"></a>
+#### `buffer.clear`(*buffer*)
+
+Deletes the selected text or the character at the caret.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.clear_all"></a>
+#### `buffer.clear_all`(*buffer*)
+
+Deletes the buffer's text.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.clear_document_style"></a>
+#### `buffer.clear_document_style`(*buffer*)
+
+Clears all styling and folding information.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.close"></a>
+#### `buffer.close`(*buffer, force*)
+
+Closes the buffer, prompting the user to continue if there are unsaved
+changes (unless *force* is `true`), and returns `true` if the buffer was
+closed.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`force`*: Optional flag that discards unsaved changes without prompting
+ the user. The default value is `false`.
+
+Return:
+
+* `true` if the buffer was closed; `nil` otherwise.
+
+<a id="buffer.colorize"></a>
+#### `buffer.colorize`(*buffer, start\_pos, end\_pos*)
+
+Instructs the lexer to style and mark fold points in the range of text
+between *start_pos* and *end_pos*.
+If *end_pos* is `-1`, styles and marks to the end of the buffer.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The start position of the range of text in *buffer* to
+ process.
+* *`end_pos`*: The end position of the range of text in *buffer* to process,
+ or `-1` to process from *start_pos* to the end of *buffer*.
+
+<a id="buffer.convert_eols"></a>
+#### `buffer.convert_eols`(*buffer, mode*)
+
+Converts all end of line characters to those in end of line mode *mode*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`mode`*: The end of line mode to convert to. Valid values are:
+ * `buffer.EOL_CRLF`
+ * `buffer.EOL_CR`
+ * `buffer.EOL_LF`
+
+<a id="buffer.copy"></a>
+#### `buffer.copy`(*buffer*)
+
+Copies the selected text to the clipboard.
+Multiple selections are copied in order with no delimiters. Rectangular
+selections are copied from top to bottom with end of line characters. Virtual
+space is not copied.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.copy_range"></a>
+#### `buffer.copy_range`(*buffer, start\_pos, end\_pos*)
+
+Copies the range of text between positions *start_pos* and *end_pos* to the
+clipboard.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The start position of the range of text in *buffer* to copy.
+* *`end_pos`*: The end position of the range of text in *buffer* to copy.
+
+<a id="buffer.copy_text"></a>
+#### `buffer.copy_text`(*buffer, text*)
+
+Copies string *text* to the clipboard.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to copy.
+
+<a id="buffer.count_characters"></a>
+#### `buffer.count_characters`(*buffer, start\_pos, end\_pos*)
+
+Returns the number of whole characters (taking multi-byte characters into
+account) between positions *start_pos* and *end_pos*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The start position of the range of text in *buffer* to start
+ counting at.
+* *`end_pos`*: The end position of the range of text in *buffer* to stop
+ counting at.
+
+Return:
+
+* number
+
+<a id="buffer.cut"></a>
+#### `buffer.cut`(*buffer*)
+
+Cuts the selected text to the clipboard.
+Multiple selections are copied in order with no delimiters. Rectangular
+selections are copied from top to bottom with end of line characters. Virtual
+space is not copied.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.del_line_left"></a>
+#### `buffer.del_line_left`(*buffer*)
+
+Deletes the range of text from the caret to the beginning of the current
+line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.del_line_right"></a>
+#### `buffer.del_line_right`(*buffer*)
+
+Deletes the range of text from the caret to the end of the current line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.del_word_left"></a>
+#### `buffer.del_word_left`(*buffer*)
+
+Deletes the word to the left of the caret, including any leading non-word
+characters.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.del_word_right"></a>
+#### `buffer.del_word_right`(*buffer*)
+
+Deletes the word to the right of the caret, including any trailing non-word
+characters.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.del_word_right_end"></a>
+#### `buffer.del_word_right_end`(*buffer*)
+
+Deletes the word to the right of the caret, excluding any trailing non-word
+characters.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.delete"></a>
+#### `buffer.delete`(*buffer*)
+
+Deletes the buffer.
+**Do not call this function.** Call `buffer:close()` instead. Emits a
+`BUFFER_DELETED` event.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+See also:
+
+* [`events.BUFFER_DELETED`](#events.BUFFER_DELETED)
+
+<a id="buffer.delete_back"></a>
+#### `buffer.delete_back`(*buffer*)
+
+Deletes the character behind the caret if no text is selected.
+Otherwise, deletes the selected text.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.delete_back_not_line"></a>
+#### `buffer.delete_back_not_line`(*buffer*)
+
+Deletes the character behind the caret unless either the caret is at the
+beginning of a line or text is selected.
+If text is selected, deletes it.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.delete_range"></a>
+#### `buffer.delete_range`(*buffer, pos, length*)
+
+Deletes the range of text from position *pos* to *pos* + *length*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The start position of the range of text in *buffer* to delete.
+* *`length`*: The number of characters in the range of text to delete.
+
+<a id="buffer.document_end"></a>
+#### `buffer.document_end`(*buffer*)
+
+Moves the caret to the end of the buffer.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.document_end_extend"></a>
+#### `buffer.document_end_extend`(*buffer*)
+
+Moves the caret to the end of the buffer, extending the selected text to the
+new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.document_start"></a>
+#### `buffer.document_start`(*buffer*)
+
+Moves the caret to the beginning of the buffer.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.document_start_extend"></a>
+#### `buffer.document_start_extend`(*buffer*)
+
+Moves the caret to the beginning of the buffer, extending the selected text
+to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.drop_selection_n"></a>
+#### `buffer.drop_selection_n`(*buffer, n*)
+
+Drops existing selection number *n*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`n`*: The number of the existing selection.
+
+<a id="buffer.edit_toggle_overtype"></a>
+#### `buffer.edit_toggle_overtype`(*buffer*)
+
+Toggles `buffer.overtype`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.empty_undo_buffer"></a>
+#### `buffer.empty_undo_buffer`(*buffer*)
+
+Deletes the undo and redo history.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.end_undo_action"></a>
+#### `buffer.end_undo_action`(*buffer*)
+
+Ends a sequence of actions to be undone or redone as a single action.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.eol_annotation_clear_all"></a>
+#### `buffer.eol_annotation_clear_all`(*buffer*)
+
+Clears EOL annotations from all lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.find_column"></a>
+#### `buffer.find_column`(*buffer, line, column*)
+
+Returns the position of column number *column* on line number *line* (taking
+tab and multi-byte characters into account), or the position at the end of
+line *line*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number in *buffer* to use.
+* *`column`*: The column number to use.
+
+<a id="buffer.get_cur_line"></a>
+#### `buffer.get_cur_line`(*buffer*)
+
+Returns the current line's text and the caret's position on that line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+Return:
+
+* string, number
+
+<a id="buffer.get_last_child"></a>
+#### `buffer.get_last_child`(*buffer, line, level*)
+
+Returns the line number of the last line after line number *line* whose fold
+level is greater than *level*.
+If *level* is `-1`, returns the level of *line*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number in *buffer* of a header line.
+* *`level`*: The fold level, or `-1` for the level of *line*.
+
+<a id="buffer.get_lexer"></a>
+#### `buffer.get_lexer`(*buffer, current*)
+
+Returns the buffer's lexer name.
+If *current* is `true`, returns the name of the lexer under the caret in
+a multiple-language lexer.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`current`*: Whether or not to get the lexer at the current caret position
+ in multi-language lexers. The default is `false` and returns the parent
+ lexer.
+
+<a id="buffer.get_line"></a>
+#### `buffer.get_line`(*buffer, line*)
+
+Returns the text on line number *line*, including end of line characters.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number in *buffer* to use.
+
+Return:
+
+* string, number
+
+<a id="buffer.get_sel_text"></a>
+#### `buffer.get_sel_text`(*buffer*)
+
+Returns the selected text.
+Multiple selections are included in order with no delimiters. Rectangular
+selections are included from top to bottom with end of line characters.
+Virtual space is not included.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+Return:
+
+* string, number
+
+<a id="buffer.get_text"></a>
+#### `buffer.get_text`(*buffer*)
+
+Returns the buffer's text.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.goto_line"></a>
+#### `buffer.goto_line`(*buffer, line*)
+
+Moves the caret to the beginning of line number *line* and scrolls it into
+view, regardless of whether or not *line* is hidden.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number in *buffer* to go to.
+
+<a id="buffer.goto_pos"></a>
+#### `buffer.goto_pos`(*buffer, pos*)
+
+Moves the caret to position *pos* and scrolls it into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to go to.
+
+<a id="buffer.home"></a>
+#### `buffer.home`(*buffer*)
+
+Moves the caret to the beginning of the current line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.home_display"></a>
+#### `buffer.home_display`(*buffer*)
+
+Moves the caret to the beginning of the current wrapped line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.home_display_extend"></a>
+#### `buffer.home_display_extend`(*buffer*)
+
+Moves the caret to the beginning of the current wrapped line, extending the
+selected text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.home_extend"></a>
+#### `buffer.home_extend`(*buffer*)
+
+Moves the caret to the beginning of the current line, extending the selected
+text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.home_rect_extend"></a>
+#### `buffer.home_rect_extend`(*buffer*)
+
+Moves the caret to the beginning of the current line, extending the
+rectangular selection to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.home_wrap"></a>
+#### `buffer.home_wrap`(*buffer*)
+
+Moves the caret to the beginning of the current wrapped line or, if already
+there, to the beginning of the actual line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.home_wrap_extend"></a>
+#### `buffer.home_wrap_extend`(*buffer*)
+
+Like `buffer.home_wrap()`, but extends the selected text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.indicator_all_on_for"></a>
+#### `buffer.indicator_all_on_for`(*buffer, pos*)
+
+Returns a bit-mask that represents which indicators are on at position *pos*.
+The first bit is set if indicator 1 is on, the second bit for indicator 2,
+etc.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to get indicators at.
+
+Return:
+
+* number
+
+<a id="buffer.indicator_clear_range"></a>
+#### `buffer.indicator_clear_range`(*buffer, pos, length*)
+
+Clears indicator number `buffer.indicator_current` over the range of text
+from position *pos* to *pos* + *length*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The start position of the range of text in *buffer* to clear
+ indicators over.
+* *`length`*: The number of characters in the range of text to clear
+ indicators over.
+
+<a id="buffer.indicator_end"></a>
+#### `buffer.indicator_end`(*buffer, indicator, pos*)
+
+Returns the next boundary position, starting from position *pos*, of
+indicator number *indicator*, in the range of `1` to `32`.
+Returns `1` if *indicator* was not found.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`indicator`*: An indicator number in the range of `1` to `32`.
+* *`pos`*: The position in *buffer* of the indicator.
+
+<a id="buffer.indicator_fill_range"></a>
+#### `buffer.indicator_fill_range`(*buffer, pos, length*)
+
+Fills the range of text from position *pos* to *pos* + *length* with
+indicator number `buffer.indicator_current`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The start position of the range of text in *buffer* to set
+ indicators over.
+* *`length`*: The number of characters in the range of text to set indicators
+ over.
+
+<a id="buffer.indicator_start"></a>
+#### `buffer.indicator_start`(*buffer, indicator, pos*)
+
+Returns the previous boundary position, starting from position *pos*, of
+indicator number *indicator*, in the range of `1` to `32`.
+Returns `1` if *indicator* was not found.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`indicator`*: An indicator number in the range of `1` to `32`.
+* *`pos`*: The position in *buffer* of the indicator.
+
+<a id="buffer.insert_text"></a>
+#### `buffer.insert_text`(*buffer, pos, text*)
+
+Inserts string *text* at position *pos*, removing any selections.
+If *pos* is `-1`, inserts *text* at the caret position.
+If the caret is after the *pos*, it is moved appropriately, but not scrolled
+into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to insert text at, or `-1` for the
+ current position.
+* *`text`*: The text to insert.
+
+<a id="buffer.is_range_word"></a>
+#### `buffer.is_range_word`(*buffer, start\_pos, end\_pos*)
+
+Returns whether or not the the positions *start_pos* and *end_pos* are at
+word boundaries.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The start position of the range of text in *buffer* to
+ check for a word boundary at.
+* *`end_pos`*: The end position of the range of text in *buffer* to check for
+ a word boundary at.
+
+<a id="buffer.line_copy"></a>
+#### `buffer.line_copy`(*buffer*)
+
+Copies the current line to the clipboard.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_cut"></a>
+#### `buffer.line_cut`(*buffer*)
+
+Cuts the current line to the clipboard.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_delete"></a>
+#### `buffer.line_delete`(*buffer*)
+
+Deletes the current line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_down"></a>
+#### `buffer.line_down`(*buffer*)
+
+Moves the caret down one line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_down_extend"></a>
+#### `buffer.line_down_extend`(*buffer*)
+
+Moves the caret down one line, extending the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_down_rect_extend"></a>
+#### `buffer.line_down_rect_extend`(*buffer*)
+
+Moves the caret down one line, extending the rectangular selection to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_duplicate"></a>
+#### `buffer.line_duplicate`(*buffer*)
+
+Duplicates the current line on a new line below.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end"></a>
+#### `buffer.line_end`(*buffer*)
+
+Moves the caret to the end of the current line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end_display"></a>
+#### `buffer.line_end_display`(*buffer*)
+
+Moves the caret to the end of the current wrapped line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end_display_extend"></a>
+#### `buffer.line_end_display_extend`(*buffer*)
+
+Moves the caret to the end of the current wrapped line, extending the
+selected text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end_extend"></a>
+#### `buffer.line_end_extend`(*buffer*)
+
+Moves the caret to the end of the current line, extending the selected text
+to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end_rect_extend"></a>
+#### `buffer.line_end_rect_extend`(*buffer*)
+
+Moves the caret to the end of the current line, extending the rectangular
+selection to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end_wrap"></a>
+#### `buffer.line_end_wrap`(*buffer*)
+
+Moves the caret to the end of the current wrapped line or, if already there,
+to the end of the actual line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_end_wrap_extend"></a>
+#### `buffer.line_end_wrap_extend`(*buffer*)
+
+Like `buffer.line_end_wrap()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_from_position"></a>
+#### `buffer.line_from_position`(*buffer, pos*)
+
+Returns the line number of the line that contains position *pos*.
+Returns `1` if *pos* is less than 1 or `buffer.line_count` if *pos* is
+greater than `buffer.length + 1`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to get the line number of.
+
+Return:
+
+* number
+
+<a id="buffer.line_length"></a>
+#### `buffer.line_length`(*buffer, line*)
+
+Returns the number of bytes on line number *line*, including end of line
+characters.
+To get line length excluding end of line characters, use
+`buffer.line_end_position[line] - buffer.position_from_line(line)`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number in *buffer* to get the length of.
+
+Return:
+
+* number
+
+<a id="buffer.line_reverse"></a>
+#### `buffer.line_reverse`(*buffer*)
+
+Reverses the order of the selected lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_transpose"></a>
+#### `buffer.line_transpose`(*buffer*)
+
+Swaps the current line with the previous one.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_up"></a>
+#### `buffer.line_up`(*buffer*)
+
+Moves the caret up one line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_up_extend"></a>
+#### `buffer.line_up_extend`(*buffer*)
+
+Moves the caret up one line, extending the selected text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.line_up_rect_extend"></a>
+#### `buffer.line_up_rect_extend`(*buffer*)
+
+Moves the caret up one line, extending the rectangular selection to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.lines_join"></a>
+#### `buffer.lines_join`(*buffer*)
+
+Joins the lines in the target range, inserting spaces between the words
+joined at line boundaries.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.lines_split"></a>
+#### `buffer.lines_split`(*buffer, pixel\_width, width*)
+
+Splits the lines in the target range into lines *width* pixels wide.
+If *width* is `0`, splits the lines in the target range into lines as wide as
+the view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pixel_width`*:
+* *`width`*: The pixel width to split lines at. When `0`, uses the width of
+ the view.
+
+<a id="buffer.lower_case"></a>
+#### `buffer.lower_case`(*buffer*)
+
+Converts the selected text to lower case letters.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.margin_text_clear_all"></a>
+#### `buffer.margin_text_clear_all`(*buffer*)
+
+Clears all text in text margins.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.marker_add"></a>
+#### `buffer.marker_add`(*buffer, line, marker*)
+
+Adds marker number *marker*, in the range of `1` to `32`, to line number
+*line*, returning the added marker's handle which can be used in
+`buffer.marker_delete_handle()` and `buffer.marker_line_from_handle()`, or
+`-1` if *line* is invalid.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number to add the marker on.
+* *`marker`*: The marker number in the range of `1` to `32` to add.
+
+Return:
+
+* number
+
+<a id="buffer.marker_add_set"></a>
+#### `buffer.marker_add_set`(*buffer, line, marker\_mask*)
+
+Adds the markers specified in marker bit-mask *marker_mask* to line number
+*line*.
+The first bit is set to add marker number 1, the second bit for marker number
+2, and so on up to marker number 32.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number to add the markers on.
+* *`marker_mask`*: The mask of markers to set. Set the first bit to set
+ marker 1, the second bit for marker 2 and so on.
+
+<a id="buffer.marker_delete"></a>
+#### `buffer.marker_delete`(*buffer, line, marker*)
+
+Deletes marker number *marker*, in the range of `1` to `32`, from line number
+*line*. If *marker* is `-1`, deletes all markers from *line*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number to delete the marker on.
+* *`marker`*: The marker number in the range of `1` to `32` to delete from
+ *line*, or `-1` to delete all markers from the line.
+
+<a id="buffer.marker_delete_all"></a>
+#### `buffer.marker_delete_all`(*buffer, marker*)
+
+Deletes marker number *marker*, in the range of `1` to `32`, from any line
+that has it.
+If *marker* is `-1`, deletes all markers from all lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`marker`*: The marker number in the range of `1` to `32` to delete from
+ all lines, or `-1` to delete all markers from all lines.
+
+<a id="buffer.marker_delete_handle"></a>
+#### `buffer.marker_delete_handle`(*buffer, handle*)
+
+Deletes the marker with handle *handle* returned by `buffer.marker_add()`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`handle`*: The identifier of a marker returned by `buffer.marker_add()`.
+
+<a id="buffer.marker_get"></a>
+#### `buffer.marker_get`(*buffer, line*)
+
+Returns a bit-mask that represents the markers on line number *line*.
+The first bit is set if marker number 1 is present, the second bit for marker
+number 2, and so on.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number to get markers on.
+
+Return:
+
+* number
+
+<a id="buffer.marker_handle_from_line"></a>
+#### `buffer.marker_handle_from_line`(*buffer, line, n*)
+
+Returns the handle of the *n*th marker on line number *line*, or `-1` if no
+such marker exists.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number to get markers on.
+* *`n`*: The marker to get the handle of.
+
+<a id="buffer.marker_line_from_handle"></a>
+#### `buffer.marker_line_from_handle`(*buffer, handle*)
+
+Returns the line number of the line that contains the marker with handle
+*handle* (returned `buffer.marker_add()`), or `-1` if the line was not found.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`handle`*: The identifier of a marker returned by `buffer.marker_add()`.
+
+Return:
+
+* number
+
+<a id="buffer.marker_next"></a>
+#### `buffer.marker_next`(*buffer, line, marker\_mask*)
+
+Returns the first line number, starting at line number *line*, that contains
+all of the markers represented by marker bit-mask *marker_mask*.
+Returns `-1` if no line was found.
+The first bit is set if marker 1 is set, the second bit for marker 2, etc.,
+up to marker 32.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The start line to search from.
+* *`marker_mask`*: The mask of markers to find. Set the first bit to find
+ marker 1, the second bit for marker 2, and so on.
+
+Return:
+
+* number
+
+<a id="buffer.marker_number_from_line"></a>
+#### `buffer.marker_number_from_line`(*buffer, line, n*)
+
+Returns the number of the *n*th marker on line number *line*, or `-1` if no
+such marker exists.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number to get markers on.
+* *`n`*: The marker to get the number of.
+
+<a id="buffer.marker_previous"></a>
+#### `buffer.marker_previous`(*buffer, line, marker\_mask*)
+
+Returns the last line number, before or on line number *line*, that contains
+all of the markers represented by marker bit-mask *marker_mask*.
+Returns `-1` if no line was found.
+The first bit is set if marker 1 is set, the second bit for marker 2, etc.,
+up to marker 32.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The start line to search from.
+* *`marker_mask`*: The mask of markers to find. Set the first bit to find
+ marker 1, the second bit for marker 2, and so on.
+
+Return:
+
+* number
+
+<a id="buffer.move_caret_inside_view"></a>
+#### `buffer.move_caret_inside_view`(*buffer*)
+
+Moves the caret into view if it is not already, removing any selections.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.move_selected_lines_down"></a>
+#### `buffer.move_selected_lines_down`(*buffer*)
+
+Shifts the selected lines down one line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.move_selected_lines_up"></a>
+#### `buffer.move_selected_lines_up`(*buffer*)
+
+Shifts the selected lines up one line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.multiple_select_add_each"></a>
+#### `buffer.multiple_select_add_each`(*buffer*)
+
+Adds to the set of selections each occurrence of the main selection within
+the target range.
+If there is no selected text, the current word is used.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.multiple_select_add_next"></a>
+#### `buffer.multiple_select_add_next`(*buffer*)
+
+Adds to the set of selections the next occurrence of the main selection
+within the target range, makes that occurrence the new main selection, and
+scrolls it into view.
+If there is no selected text, the current word is used.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.name_of_style"></a>
+#### `buffer.name_of_style`(*buffer, style*)
+
+Returns the name of style number *style*, which is between `1` and `256`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`style`*: The style number between `1` and `256` to get the name of.
+
+Return:
+
+* string
+
+<a id="buffer.new"></a>
+#### `buffer.new`()
+
+Creates a new buffer, displays it in the current view, and returns it.
+Emits a `BUFFER_NEW` event.
+
+Return:
+
+* the new buffer.
+
+See also:
+
+* [`events.BUFFER_NEW`](#events.BUFFER_NEW)
+
+<a id="buffer.new_line"></a>
+#### `buffer.new_line`(*buffer*)
+
+Types a new line at the caret position according to [`buffer.eol_mode`](#buffer.eol_mode).
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.page_down"></a>
+#### `buffer.page_down`(*buffer*)
+
+Moves the caret down one page.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.page_down_extend"></a>
+#### `buffer.page_down_extend`(*buffer*)
+
+Moves the caret down one page, extending the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.page_down_rect_extend"></a>
+#### `buffer.page_down_rect_extend`(*buffer*)
+
+Moves the caret down one page, extending the rectangular selection to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.page_up"></a>
+#### `buffer.page_up`(*buffer*)
+
+Moves the caret up one page.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.page_up_extend"></a>
+#### `buffer.page_up_extend`(*buffer*)
+
+Moves the caret up one page, extending the selected text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.page_up_rect_extend"></a>
+#### `buffer.page_up_rect_extend`(*buffer*)
+
+Moves the caret up one page, extending the rectangular selection to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.para_down"></a>
+#### `buffer.para_down`(*buffer*)
+
+Moves the caret down one paragraph.
+Paragraphs are surrounded by one or more blank lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.para_down_extend"></a>
+#### `buffer.para_down_extend`(*buffer*)
+
+Moves the caret down one paragraph, extending the selected text to the new
+position.
+Paragraphs are surrounded by one or more blank lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.para_up"></a>
+#### `buffer.para_up`(*buffer*)
+
+Moves the caret up one paragraph.
+Paragraphs are surrounded by one or more blank lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.para_up_extend"></a>
+#### `buffer.para_up_extend`(*buffer*)
+
+Moves the caret up one paragraph, extending the selected text to the new
+position.
+Paragraphs are surrounded by one or more blank lines.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.paste"></a>
+#### `buffer.paste`(*buffer*)
+
+Pastes the clipboard's contents into the buffer, replacing any selected text
+according to `buffer.multi_paste`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.position_after"></a>
+#### `buffer.position_after`(*buffer, pos*)
+
+Returns the position of the character after position *pos* (taking multi-byte
+characters into account), or `buffer.length + 1` if there is no character
+after *pos*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to get the position after from.
+
+<a id="buffer.position_before"></a>
+#### `buffer.position_before`(*buffer, pos*)
+
+Returns the position of the character before position *pos* (taking
+multi-byte characters into account), or `1` if there is no character before
+*pos*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to get the position before from.
+
+Return:
+
+* number
+
+<a id="buffer.position_from_line"></a>
+#### `buffer.position_from_line`(*buffer, line*)
+
+Returns the position at the beginning of line number *line*.
+Returns `-1` if *line* is greater than `buffer.line_count + 1`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`line`*: The line number in *buffer* to get the beginning position for.
+
+Return:
+
+* number
+
+<a id="buffer.position_relative"></a>
+#### `buffer.position_relative`(*buffer, pos, n*)
+
+Returns the position *n* characters before or after position *pos* (taking
+multi-byte characters into account).
+Returns `1` if the position is less than 1 or greater than
+`buffer.length + 1`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* to get the relative position from.
+* *`n`*: The relative number of characters to get the position for. A
+ negative number indicates a position before while a positive number
+ indicates a position after.
+
+Return:
+
+* number
+
+<a id="buffer.redo"></a>
+#### `buffer.redo`(*buffer*)
+
+Redoes the next undone action.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.reload"></a>
+#### `buffer.reload`(*buffer*)
+
+Reloads the buffer's file contents, discarding any changes.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.replace_sel"></a>
+#### `buffer.replace_sel`(*buffer, text*)
+
+Replaces the selected text with string *text*, scrolling the caret into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to replace the selected text with.
+
+<a id="buffer.replace_target"></a>
+#### `buffer.replace_target`(*buffer, text*)
+
+Replaces the text in the target range with string *text* sans modifying any
+selections or scrolling the view.
+Setting the target and calling this function with an empty string is another
+way to delete text.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to replace the target range with.
+
+Return:
+
+* number
+
+<a id="buffer.replace_target_re"></a>
+#### `buffer.replace_target_re`(*buffer, text*)
+
+Replaces the text in the target range with string *text* but first replaces
+any "\d" sequences with the text of capture number *d* from the regular
+expression (or the entire match for *d* = 0), and then returns the
+replacement text's length.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to replace the target range with.
+
+Return:
+
+* number
+
+<a id="buffer.rotate_selection"></a>
+#### `buffer.rotate_selection`(*buffer*)
+
+Designates the next additional selection to be the main selection.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.save"></a>
+#### `buffer.save`(*buffer*)
+
+Saves the buffer to its file.
+Emits `FILE_BEFORE_SAVE` and `FILE_AFTER_SAVE` events.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.save_as"></a>
+#### `buffer.save_as`(*buffer, filename*)
+
+Saves the buffer to file *filename* or the user-specified filename.
+Emits a `FILE_AFTER_SAVE` event.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`filename`*: Optional new filepath to save the buffer to. If `nil`, the
+ user is prompted for one.
+
+<a id="buffer.search_anchor"></a>
+#### `buffer.search_anchor`(*buffer*)
+
+Anchors the position that `buffer.search_next()` and `buffer.search_prev()`
+start at to the beginning of the current selection or caret position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.search_in_target"></a>
+#### `buffer.search_in_target`(*buffer, text*)
+
+Searches for the first occurrence of string *text* in the target range
+bounded by `buffer.target_start` and `buffer.target_end` using search flags
+`buffer.search_flags` and, if found, sets the new target range to that
+occurrence, returning its position or `-1` if *text* was not found.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to search the target range for.
+
+Return:
+
+* number
+
+See also:
+
+* [`buffer.search_flags`](#buffer.search_flags)
+
+<a id="buffer.search_next"></a>
+#### `buffer.search_next`(*buffer, flags, text*)
+
+Searches for and selects the first occurrence of string *text* starting at
+the search anchor using search flags *flags*, returning that occurrence's
+position or `-1` if *text* was not found.
+Selected text is not scrolled into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`flags`*: The search flags to use. See `buffer.search_flags`.
+* *`text`*: The text to search for.
+
+Return:
+
+* number
+
+See also:
+
+* [`buffer.search_flags`](#buffer.search_flags)
+
+<a id="buffer.search_prev"></a>
+#### `buffer.search_prev`(*buffer, flags, text*)
+
+Searches for and selects the last occurrence of string *text* before the
+search anchor using search flags *flags*, returning that occurrence's
+position or `-1` if *text* was not found.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`flags`*: The search flags to use. See `buffer.search_flags`.
+* *`text`*: The text to search for.
+
+Return:
+
+* number
+
+See also:
+
+* [`buffer.search_flags`](#buffer.search_flags)
+
+<a id="buffer.select_all"></a>
+#### `buffer.select_all`(*buffer*)
+
+Selects all of the buffer's text without scrolling the view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.selection_duplicate"></a>
+#### `buffer.selection_duplicate`(*buffer*)
+
+Duplicates the selected text to its right.
+If no text is selected, duplicates the current line on a new line below.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.set_chars_default"></a>
+#### `buffer.set_chars_default`(*buffer*)
+
+Resets `buffer.word_chars`, `buffer.whitespace_chars`, and
+`buffer.punctuation_chars` to their respective defaults.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+See also:
+
+* [`buffer.word_chars`](#buffer.word_chars)
+* [`buffer.whitespace_chars`](#buffer.whitespace_chars)
+* [`buffer.punctuation_chars`](#buffer.punctuation_chars)
+
+<a id="buffer.set_empty_selection"></a>
+#### `buffer.set_empty_selection`(*buffer, pos*)
+
+Moves the caret to position *pos* without scrolling the view and removes any
+selections.
+
+Parameters:
+
+* *`buffer`*: A buffer
+* *`pos`*: The position in *buffer* to move to.
+
+<a id="buffer.set_encoding"></a>
+#### `buffer.set_encoding`(*buffer, encoding*)
+
+Converts the current buffer's contents to encoding *encoding*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`encoding`*: The string encoding to set. Valid encodings are ones that GNU
+ iconv accepts. If `nil`, assumes a binary encoding.
+
+Usage:
+
+* `buffer:set_encoding('CP1252')`
+
+<a id="buffer.set_lexer"></a>
+#### `buffer.set_lexer`(*buffer, name*)
+
+Associates string lexer name *name* or the auto-detected lexer name with the
+buffer and then loads the appropriate language module if that module exists.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`name`*: Optional string lexer name to set. If `nil`, attempts to
+ auto-detect the buffer's lexer.
+
+Usage:
+
+* `buffer:set_lexer('lexer_name')`
+
+<a id="buffer.set_save_point"></a>
+#### `buffer.set_save_point`(*buffer*)
+
+Indicates the buffer has no unsaved changes.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.set_sel"></a>
+#### `buffer.set_sel`(*buffer, start\_pos, end\_pos*)
+
+Selects the range of text between positions *start_pos* and *end_pos*,
+scrolling the selected text into view.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The start position of the range of text in *buffer* to
+ select. If negative, it means the end of the buffer.
+* *`end_pos`*: The end position of the range of text in *buffer* to select.
+ If negative, it means remove any selection (i.e. set the `anchor` to the
+ same position as `current_pos`).
+
+<a id="buffer.set_selection"></a>
+#### `buffer.set_selection`(*buffer, end\_pos, start\_pos*)
+
+Selects the range of text between positions *start_pos* to *end_pos*,
+removing all other selections.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`end_pos`*: The caret position of the range of text to select in *buffer*.
+* *`start_pos`*: The anchor position of the range of text to select in
+ *buffer*.
+
+<a id="buffer.set_styling"></a>
+#### `buffer.set_styling`(*buffer, length, style*)
+
+Assigns style number *style*, in the range from `1` to `256`, to the next
+*length* characters, starting from the current styling position, and
+increments the styling position by *length*.
+[`buffer:start_styling`](#buffer.start_styling) should be called before `buffer:set_styling()`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`length`*: The number of characters to style.
+* *`style`*: The style number to set.
+
+<a id="buffer.set_target_range"></a>
+#### `buffer.set_target_range`(*buffer, start\_pos, end\_pos*)
+
+Defines the target range's beginning and end positions as *start_pos* and
+*end_pos*, respectively.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The position of the beginning of the target range.
+* *`end_pos`*: The position of the end of the target range.
+
+<a id="buffer.set_text"></a>
+#### `buffer.set_text`(*buffer, text*)
+
+Replaces the buffer's text with string *text*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`text`*: The text to set.
+
+<a id="buffer.start_styling"></a>
+#### `buffer.start_styling`(*buffer, position, unused*)
+
+Begins styling at position *position* with styling bit-mask *style_mask*.
+*style_mask* specifies which style bits can be set with
+`buffer.set_styling()`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`position`*: The position in *buffer* to start styling at.
+* *`unused`*: Unused number. `0` can be safely used.
+
+Usage:
+
+* `buffer:start_styling(1, 0)`
+
+See also:
+
+* [`buffer.set_styling`](#buffer.set_styling)
+
+<a id="buffer.stuttered_page_down"></a>
+#### `buffer.stuttered_page_down`(*buffer*)
+
+Moves the caret to the bottom of the page or, if already there, down one
+page.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.stuttered_page_down_extend"></a>
+#### `buffer.stuttered_page_down_extend`(*buffer*)
+
+Like `buffer.stuttered_page_down()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.stuttered_page_up"></a>
+#### `buffer.stuttered_page_up`(*buffer*)
+
+Moves the caret to the top of the page or, if already there, up one page.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.stuttered_page_up_extend"></a>
+#### `buffer.stuttered_page_up_extend`(*buffer*)
+
+Like `buffer.stuttered_page_up()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.style_of_name"></a>
+#### `buffer.style_of_name`(*buffer, style\_name, string*)
+
+Returns the style number associated with string *style_name*, or
+`view.STYLE_DEFAULT` if *style_name* is not in use.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`style_name`*:
+* *`string`*: The style name to get the number of.
+
+Return:
+
+* style number, between `1` and `256`.
+
+See also:
+
+* [`buffer.name_of_style`](#buffer.name_of_style)
+
+<a id="buffer.swap_main_anchor_caret"></a>
+#### `buffer.swap_main_anchor_caret`(*buffer*)
+
+Swaps the main selection's beginning and end positions.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.tab"></a>
+#### `buffer.tab`(*buffer*)
+
+Indents the text on the selected lines or types a Tab character ("\t") at
+the caret position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.target_from_selection"></a>
+#### `buffer.target_from_selection`(*buffer*)
+
+Defines the target range's beginning and end positions as the beginning and
+end positions of the main selection, respectively.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.target_whole_document"></a>
+#### `buffer.target_whole_document`(*buffer*)
+
+Defines the target range's beginning and end positions as the beginning and
+end positions of the document, respectively.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.text_range"></a>
+#### `buffer.text_range`(*buffer, start\_pos, end\_pos*)
+
+Returns the range of text between positions *start_pos* and *end_pos*.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`start_pos`*: The start position of the range of text to get in *buffer*.
+* *`end_pos`*: The end position of the range of text to get in *buffer*.
+
+<a id="buffer.toggle_caret_sticky"></a>
+#### `buffer.toggle_caret_sticky`(*buffer*)
+
+Cycles between `buffer.caret_sticky` option settings `buffer.CARETSTICKY_ON`
+and `buffer.CARETSTICKY_OFF`.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+See also:
+
+* [`buffer.caret_sticky`](#buffer.caret_sticky)
+
+<a id="buffer.undo"></a>
+#### `buffer.undo`(*buffer*)
+
+Undoes the most recent action.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.upper_case"></a>
+#### `buffer.upper_case`(*buffer*)
+
+Converts the selected text to upper case letters.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.user_list_show"></a>
+#### `buffer.user_list_show`(*buffer, id, items*)
+
+Displays a user list identified by list identifier number *id* and
+constructed from string *items* (whose items are delimited by
+`buffer.auto_c_separator` characters).
+The sorted order of *items* (`buffer.auto_c_order`) must have already been
+defined. When the user selects an item, *id* is sent in a
+`USER_LIST_SELECTION` event along with the selection.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`id`*: The list identifier number greater than zero to use.
+* *`items`*: The sorted string of words to show, separated by
+ `buffer.auto_c_separator` characters (initially spaces).
+
+See also:
+
+* [`_SCINTILLA.next_user_list_type`](#_SCINTILLA.next_user_list_type)
+* [`events.USER_LIST_SELECTION`](#events.USER_LIST_SELECTION)
+
+<a id="buffer.vc_home"></a>
+#### `buffer.vc_home`(*buffer*)
+
+Moves the caret to the first visible character on the current line or, if
+already there, to the beginning of the current line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.vc_home_display"></a>
+#### `buffer.vc_home_display`(*buffer*)
+
+Moves the caret to the first visible character on the current wrapped line
+or, if already there, to the beginning of the current wrapped line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.vc_home_display_extend"></a>
+#### `buffer.vc_home_display_extend`(*buffer*)
+
+Like `buffer.vc_home_display()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.vc_home_extend"></a>
+#### `buffer.vc_home_extend`(*buffer*)
+
+Like `buffer.vc_home()`, but extends the selected text to the new position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.vc_home_rect_extend"></a>
+#### `buffer.vc_home_rect_extend`(*buffer*)
+
+Like `buffer.vc_home()`, but extends the rectangular selection to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.vc_home_wrap"></a>
+#### `buffer.vc_home_wrap`(*buffer*)
+
+Moves the caret to the first visible character on the current wrapped line
+or, if already there, to the beginning of the actual line.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.vc_home_wrap_extend"></a>
+#### `buffer.vc_home_wrap_extend`(*buffer*)
+
+Like `buffer.vc_home_wrap()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_end_position"></a>
+#### `buffer.word_end_position`(*buffer, pos, only\_word\_chars*)
+
+Returns the position of the end of the word at position *pos*.
+`buffer.word_chars` contains the set of characters that constitute words. If
+*pos* has a non-word character to its right and *only_word_chars* is `false`,
+returns the first word character's position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* of the word.
+* *`only_word_chars`*: If `true`, stops searching at the first non-word
+ character in the search direction. Otherwise, the first character in the
+ search direction sets the type of the search as word or non-word and the
+ search stops at the first non-matching character. Searches are also
+ terminated by the start or end of the buffer.
+
+<a id="buffer.word_left"></a>
+#### `buffer.word_left`(*buffer*)
+
+Moves the caret left one word.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_left_end"></a>
+#### `buffer.word_left_end`(*buffer*)
+
+Moves the caret left one word, positioning it at the end of the previous
+word.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_left_end_extend"></a>
+#### `buffer.word_left_end_extend`(*buffer*)
+
+Like `buffer.word_left_end()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_left_extend"></a>
+#### `buffer.word_left_extend`(*buffer*)
+
+Moves the caret left one word, extending the selected text to the new
+position.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_part_left"></a>
+#### `buffer.word_part_left`(*buffer*)
+
+Moves the caret to the previous part of the current word.
+Word parts are delimited by underscore characters or changes in
+capitalization.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_part_left_extend"></a>
+#### `buffer.word_part_left_extend`(*buffer*)
+
+Moves the caret to the previous part of the current word, extending the
+selected text to the new position.
+Word parts are delimited by underscore characters or changes in
+capitalization.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_part_right"></a>
+#### `buffer.word_part_right`(*buffer*)
+
+Moves the caret to the next part of the current word.
+Word parts are delimited by underscore characters or changes in
+capitalization.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_part_right_extend"></a>
+#### `buffer.word_part_right_extend`(*buffer*)
+
+Moves the caret to the next part of the current word, extending the selected
+text to the new position.
+Word parts are delimited by underscore characters or changes in
+capitalization.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_right"></a>
+#### `buffer.word_right`(*buffer*)
+
+Moves the caret right one word.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_right_end"></a>
+#### `buffer.word_right_end`(*buffer*)
+
+Moves the caret right one word, positioning it at the end of the current
+word.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_right_end_extend"></a>
+#### `buffer.word_right_end_extend`(*buffer*)
+
+Like `buffer.word_right_end()`, but extends the selected text to the new
+position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_right_extend"></a>
+#### `buffer.word_right_extend`(*buffer*)
+
+Moves the caret right one word, extending the selected text to the new
+position.
+`buffer.word_chars` contains the set of characters that constitute words.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+
+<a id="buffer.word_start_position"></a>
+#### `buffer.word_start_position`(*buffer, pos, only\_word\_chars*)
+
+Returns the position of the beginning of the word at position *pos*.
+`buffer.word_chars` contains the set of characters that constitute words. If
+*pos* has a non-word character to its left and *only_word_chars* is `false`,
+returns the last word character's position.
+
+Parameters:
+
+* *`buffer`*: A buffer.
+* *`pos`*: The position in *buffer* of the word.
+* *`only_word_chars`*: If `true`, stops searching at the first non-word
+ character in the search direction. Otherwise, the first character in the
+ search direction sets the type of the search as word or non-word and the
+ search stops at the first non-matching character. Searches are also
+ terminated by the start or end of the buffer.
+
+
+---
+<a id="events"></a>
+## The `events` Module
+---
+
+Textadept's core event structure and handlers.
+
+Textadept emits events when you do things like create a new buffer, press a
+key, click on a menu, etc. You can even emit events yourself using Lua. Each
+event has a set of event handlers, which are simply Lua functions called in
+the order they were connected to an event. For example, if you created a
+module that needs to do something each time Textadept creates a new buffer,
+connect a Lua function to the [`events.BUFFER_NEW`](#events.BUFFER_NEW) event:
+
+ events.connect(events.BUFFER_NEW, function()
+ -- Do something here.
+ end)
+
+Events themselves are nothing special. You do not have to declare one before
+using it. Events are simply strings containing arbitrary event names. When
+either you or Textadept emits an event, Textadept runs all event handlers
+connected to the event, passing any given arguments to the event's handler
+functions. If an event handler explicitly returns a value that is not `nil`,
+Textadept will not call subsequent handlers. This is useful if you want to
+stop the propagation of an event like a keypress if your event handler
+handled it, or if you want to use the event framework to pass values.
+
+
+### Fields defined by `events`
+
+<a id="events.APPLEEVENT_ODOC"></a>
+#### `events.APPLEEVENT_ODOC` (string)
+
+Emitted when macOS tells Textadept to open a file.
+ Arguments:
+
+ * _`uri`_: The UTF-8-encoded URI to open.
+
+<a id="events.AUTO_C_CANCELED"></a>
+#### `events.AUTO_C_CANCELED` (string)
+
+Emitted when canceling an autocompletion or user list.
+
+<a id="events.AUTO_C_CHAR_DELETED"></a>
+#### `events.AUTO_C_CHAR_DELETED` (string)
+
+Emitted after deleting a character while an autocompletion or user list is
+ active.
+
+<a id="events.AUTO_C_COMPLETED"></a>
+#### `events.AUTO_C_COMPLETED` (string)
+
+Emitted after inserting an item from an autocompletion list into the
+ buffer.
+ Arguments:
+
+ * _`text`_: The selection's text.
+ * _`position`_: The autocompleted word's beginning position.
+
+<a id="events.AUTO_C_SELECTION"></a>
+#### `events.AUTO_C_SELECTION` (string)
+
+Emitted after selecting an item from an autocompletion list, but before
+ inserting that item into the buffer.
+ Automatic insertion can be canceled by calling
+ [`buffer:auto_c_cancel()`](#buffer.auto_c_cancel) before returning from the event handler.
+ Arguments:
+
+ * _`text`_: The selection's text.
+ * _`position`_: The autocompleted word's beginning position.
+
+<a id="events.AUTO_C_SELECTION_CHANGE"></a>
+#### `events.AUTO_C_SELECTION_CHANGE` (string)
+
+Emitted as items are highlighted in an autocompletion or user list.
+ Arguments:
+
+ * _`id`_: Either the *id* from [`buffer.user_list_show()`](#buffer.user_list_show) or `0` for an
+ autocompletion list.
+ * _`text`_: The current selection's text.
+ * _`position`_: The position the list was displayed at.
+
+<a id="events.BUFFER_AFTER_SWITCH"></a>
+#### `events.BUFFER_AFTER_SWITCH` (string)
+
+Emitted right after switching to another buffer.
+ The buffer being switched to is `buffer`.
+ Emitted by [`view.goto_buffer()`](#view.goto_buffer).
+
+<a id="events.BUFFER_BEFORE_SWITCH"></a>
+#### `events.BUFFER_BEFORE_SWITCH` (string)
+
+Emitted right before switching to another buffer.
+ The buffer being switched from is `buffer`.
+ Emitted by [`view.goto_buffer()`](#view.goto_buffer).
+
+<a id="events.BUFFER_DELETED"></a>
+#### `events.BUFFER_DELETED` (string)
+
+Emitted after deleting a buffer.
+ Emitted by [`buffer.delete()`](#buffer.delete).
+
+<a id="events.BUFFER_NEW"></a>
+#### `events.BUFFER_NEW` (string)
+
+Emitted after creating a new buffer.
+ The new buffer is `buffer`.
+ Emitted on startup and by [`buffer.new()`](#buffer.new).
+
+<a id="events.CALL_TIP_CLICK"></a>
+#### `events.CALL_TIP_CLICK` (string)
+
+Emitted when clicking on a calltip.
+ Arguments:
+
+ * _`position`_: `1` if the up arrow was clicked, 2 if the down arrow was
+ clicked, and 0 otherwise.
+
+<a id="events.CHAR_ADDED"></a>
+#### `events.CHAR_ADDED` (string)
+
+Emitted after the user types a text character into the buffer.
+ Arguments:
+
+ * _`code`_: The text character's character code.
+
+<a id="events.CSI"></a>
+#### `events.CSI` (string)
+
+Emitted when the terminal version receives an unrecognized CSI sequence.
+ Arguments:
+
+ * _`cmd`_: The 24-bit CSI command value. The lowest byte contains the
+ command byte. The second lowest byte contains the leading byte, if any
+ (e.g. '?'). The third lowest byte contains the intermediate byte, if any
+ (e.g. '$').
+ * _`args`_: Table of numeric arguments of the CSI sequence.
+
+<a id="events.DOUBLE_CLICK"></a>
+#### `events.DOUBLE_CLICK` (string)
+
+Emitted after double-clicking the mouse button.
+ Arguments:
+
+ * _`position`_: The position double-clicked.
+ * _`line`_: The line number of the position double-clicked.
+ * _`modifiers`_: A bit-mask of any modifier keys used: `view.MOD_CTRL`,
+ `view.MOD_SHIFT`, `view.MOD_ALT`, and `view.MOD_META`.
+ On macOS, the Command modifier key is reported as `view.MOD_CTRL` and
+ Ctrl is `view.MOD_META`.
+ Note: If you set `view.rectangular_selection_modifier` to
+ `view.MOD_CTRL`, the "Control" modifier is reported as *both* "Control"
+ and "Alt" due to a Scintilla limitation with GTK.
+
+<a id="events.DWELL_END"></a>
+#### `events.DWELL_END` (string)
+
+Emitted after `DWELL_START` when the user moves the mouse, presses a key,
+ or scrolls the view.
+ Arguments:
+
+ * _`position`_: The position closest to *x* and *y*.
+ * _`x`_: The x-coordinate of the mouse in the view.
+ * _`y`_: The y-coordinate of the mouse in the view.
+
+<a id="events.DWELL_START"></a>
+#### `events.DWELL_START` (string)
+
+Emitted when the mouse is stationary for [`view.mouse_dwell_time`](#view.mouse_dwell_time)
+ milliseconds.
+ Arguments:
+
+ * _`position`_: The position closest to *x* and *y*.
+ * _`x`_: The x-coordinate of the mouse in the view.
+ * _`y`_: The y-coordinate of the mouse in the view.
+
+<a id="events.ERROR"></a>
+#### `events.ERROR` (string)
+
+Emitted when an error occurs.
+ Arguments:
+
+ * _`text`_: The error message text.
+
+<a id="events.FIND"></a>
+#### `events.FIND` (string)
+
+Emitted to find text via the Find & Replace Pane.
+ Arguments:
+
+ * _`text`_: The text to search for.
+ * _`next`_: Whether or not to search forward.
+
+<a id="events.FIND_TEXT_CHANGED"></a>
+#### `events.FIND_TEXT_CHANGED` (string)
+
+Emitted when the text in the "Find" field of the Find & Replace Pane
+ changes.
+ `ui.find.find_entry_text` contains the current text.
+
+<a id="events.FOCUS"></a>
+#### `events.FOCUS` (string)
+
+Emitted when Textadept receives focus.
+ This event is never emitted when Textadept is running in the terminal.
+
+<a id="events.INDICATOR_CLICK"></a>
+#### `events.INDICATOR_CLICK` (string)
+
+Emitted when clicking the mouse on text that has an indicator present.
+ Arguments:
+
+ * _`position`_: The clicked text's position.
+ * _`modifiers`_: A bit-mask of any modifier keys used: `view.MOD_CTRL`,
+ `view.MOD_SHIFT`, `view.MOD_ALT`, and `view.MOD_META`.
+ On macOS, the Command modifier key is reported as `view.MOD_CTRL` and
+ Ctrl is `view.MOD_META`.
+ Note: If you set `view.rectangular_selection_modifier` to
+ `view.MOD_CTRL`, the "Control" modifier is reported as *both* "Control"
+ and "Alt" due to a Scintilla limitation with GTK.
+
+<a id="events.INDICATOR_RELEASE"></a>
+#### `events.INDICATOR_RELEASE` (string)
+
+Emitted when releasing the mouse after clicking on text that has an
+ indicator present.
+ Arguments:
+
+ * _`position`_: The clicked text's position.
+
+<a id="events.INITIALIZED"></a>
+#### `events.INITIALIZED` (string)
+
+Emitted after Textadept finishes initializing.
+
+<a id="events.KEYPRESS"></a>
+#### `events.KEYPRESS` (string)
+
+Emitted when pressing a key.
+ If any handler returns `true`, the key is not inserted into the buffer.
+ Arguments:
+
+ * _`code`_: The numeric key code.
+ * _`shift`_: The "Shift" modifier key is held down.
+ * _`ctrl`_: The "Control" modifier key is held down.
+ * _`alt`_: The "Alt"/"Option" modifier key is held down.
+ * _`cmd`_: The "Command" modifier key on macOS is held down.
+ * _`caps_lock`_: The "Caps Lock" modifier is on.
+
+<a id="events.MARGIN_CLICK"></a>
+#### `events.MARGIN_CLICK` (string)
+
+Emitted when clicking the mouse inside a sensitive margin.
+ Arguments:
+
+ * _`margin`_: The margin number clicked.
+ * _`position`_: The beginning position of the clicked margin's line.
+ * _`modifiers`_: A bit-mask of any modifier keys used: `view.MOD_CTRL`,
+ `view.MOD_SHIFT`, `view.MOD_ALT`, and `view.MOD_META`.
+ On macOS, the Command modifier key is reported as `view.MOD_CTRL` and
+ Ctrl is `view.MOD_META`.
+ Note: If you set `view.rectangular_selection_modifier` to
+ `view.MOD_CTRL`, the "Control" modifier is reported as *both* "Control"
+ and "Alt" due to a Scintilla limitation with GTK.
+
+<a id="events.MENU_CLICKED"></a>
+#### `events.MENU_CLICKED` (string)
+
+Emitted after selecting a menu item.
+ Arguments:
+
+ * _`menu_id`_: The numeric ID of the menu item, which was defined in
+ [`ui.menu()`](#ui.menu).
+
+<a id="events.MOUSE"></a>
+#### `events.MOUSE` (string)
+
+Emitted by the terminal version for an unhandled mouse event.
+ A handler should return `true` if it handled the event. Otherwise Textadept
+ will try again. (This side effect for a `false` or `nil` return is useful
+ for sending the original mouse event to a different view that a handler
+ has switched to.)
+ Arguments:
+
+ * _`event`_: The mouse event: `view.MOUSE_PRESS`, `view.MOUSE_DRAG`, or
+ `view.MOUSE_RELEASE`.
+ * _`button`_: The mouse button number.
+ * _`y`_: The y-coordinate of the mouse event, starting from 1.
+ * _`x`_: The x-coordinate of the mouse event, starting from 1.
+ * _`shift`_: The "Shift" modifier key is held down.
+ * _`ctrl`_: The "Control" modifier key is held down.
+ * _`alt`_: The "Alt"/"Option" modifier key is held down.
+
+<a id="events.QUIT"></a>
+#### `events.QUIT` (string)
+
+Emitted when quitting Textadept.
+ When connecting to this event, connect with an index of 1 if the handler
+ needs to run before Textadept closes all open buffers. If a handler returns
+ `true`, Textadept does not quit. It is not recommended to return `false`
+ from a quit handler, as that may interfere with Textadept's normal shutdown
+ procedure.
+ Emitted by [`quit()`](#quit).
+
+<a id="events.REPLACE"></a>
+#### `events.REPLACE` (string)
+
+Emitted to replace selected (found) text.
+ Arguments:
+
+ * _`text`_: The replacement text.
+
+<a id="events.REPLACE_ALL"></a>
+#### `events.REPLACE_ALL` (string)
+
+Emitted to replace all occurrences of found text.
+ Arguments:
+
+ * _`find_text`_: The text to search for.
+ * _`repl_text`_: The replacement text.
+
+<a id="events.RESET_AFTER"></a>
+#### `events.RESET_AFTER` (string)
+
+Emitted after resetting the Lua state.
+ Emitted by [`reset()`](#reset).
+ Arguments:
+
+ * _`persist`_: Table of data persisted by `events.RESET_BEFORE`. All
+ handlers will have access to this same table.
+
+<a id="events.RESET_BEFORE"></a>
+#### `events.RESET_BEFORE` (string)
+
+Emitted before resetting the Lua state.
+ Emitted by [`reset()`](#reset).
+ Arguments:
+
+ * _`persist`_: Table to store persistent data in for use by
+ `events.RESET_AFTER`. All handlers will have access to this same table.
+
+<a id="events.RESUME"></a>
+#### `events.RESUME` (string)
+
+Emitted when resuming Textadept from a suspended state.
+ This event is only emitted by the terminal version.
+
+<a id="events.SAVE_POINT_LEFT"></a>
+#### `events.SAVE_POINT_LEFT` (string)
+
+Emitted after leaving a save point.
+
+<a id="events.SAVE_POINT_REACHED"></a>
+#### `events.SAVE_POINT_REACHED` (string)
+
+Emitted after reaching a save point.
+
+<a id="events.SUSPEND"></a>
+#### `events.SUSPEND` (string)
+
+Emitted when suspending Textadept. If any handler returns `true`, Textadept
+ does not suspend.
+ This event is only emitted by the terminal version.
+
+<a id="events.TAB_CLICKED"></a>
+#### `events.TAB_CLICKED` (string)
+
+Emitted when the user clicks on a buffer tab.
+ When connecting to this event, connect with an index of 1 if the handler
+ needs to run before Textadept switches between buffers.
+ Note that Textadept always displays a context menu on right-click.
+ Arguments:
+
+ * _`index`_: The numeric index of the clicked tab.
+ * _`button`_: The mouse button number that was clicked, either `1` (left
+ button), `2` (middle button), `3` (right button), `4` (wheel up), or `5`
+ (wheel down).
+ * _`shift`_: The "Shift" modifier key is held down.
+ * _`ctrl`_: The "Control" modifier key is held down.
+ * _`alt`_: The "Alt"/"Option" modifier key is held down.
+ * _`cmd`_: The "Command" modifier key on macOS is held down.
+
+<a id="events.UPDATE_UI"></a>
+#### `events.UPDATE_UI` (string)
+
+Emitted after the view is visually updated.
+ Arguments:
+
+ * _`updated`_: A bitmask of changes since the last update.
+
+ + `buffer.UPDATE_CONTENT`
+ Buffer contents, styling, or markers have changed.
+ + `buffer.UPDATE_SELECTION`
+ Buffer selection has changed (including caret movement).
+ + `view.UPDATE_V_SCROLL`
+ Buffer has scrolled vertically.
+ + `view.UPDATE_H_SCROLL`
+ Buffer has scrolled horizontally.
+
+<a id="events.URI_DROPPED"></a>
+#### `events.URI_DROPPED` (string)
+
+Emitted after dragging and dropping a URI into a view.
+ Arguments:
+
+ * _`text`_: The UTF-8-encoded URI dropped.
+
+<a id="events.USER_LIST_SELECTION"></a>
+#### `events.USER_LIST_SELECTION` (string)
+
+Emitted after selecting an item in a user list.
+ Arguments:
+
+ * _`id`_: The *id* from [`buffer.user_list_show()`](#buffer.user_list_show).
+ * _`text`_: The selection's text.
+ * _`position`_: The position the list was displayed at.
+
+<a id="events.VIEW_AFTER_SWITCH"></a>
+#### `events.VIEW_AFTER_SWITCH` (string)
+
+Emitted right after switching to another view.
+ The view being switched to is `view`.
+ Emitted by [`ui.goto_view()`](#ui.goto_view).
+
+<a id="events.VIEW_BEFORE_SWITCH"></a>
+#### `events.VIEW_BEFORE_SWITCH` (string)
+
+Emitted right before switching to another view.
+ The view being switched from is `view`.
+ Emitted by [`ui.goto_view()`](#ui.goto_view).
+
+<a id="events.VIEW_NEW"></a>
+#### `events.VIEW_NEW` (string)
+
+Emitted after creating a new view.
+ The new view is `view`.
+ Emitted on startup and by [`view.split()`](#view.split).
+
+<a id="events.ZOOM"></a>
+#### `events.ZOOM` (string)
+
+Emitted after changing [`view.zoom`](#view.zoom).
+ Emitted by [`view.zoom_in()`](#view.zoom_in) and [`view.zoom_out()`](#view.zoom_out).
+
+
+### Functions defined by `events`
+
+<a id="events.connect"></a>
+#### `events.connect`(*event, f, index*)
+
+Adds function *f* to the set of event handlers for event *event* at position
+*index*.
+If *index* not given, appends *f* to the set of handlers. *event* may be any
+arbitrary string and does not need to have been previously defined.
+
+Parameters:
+
+* *`event`*: The string event name.
+* *`f`*: The Lua function to connect to *event*.
+* *`index`*: Optional index to insert the handler into.
+
+Usage:
+
+* `events.connect('my_event', function(msg) ui.print(msg) end)`
+
+See also:
+
+* [`events.disconnect`](#events.disconnect)
+
+<a id="events.disconnect"></a>
+#### `events.disconnect`(*event, f*)
+
+Removes function *f* from the set of handlers for event *event*.
+
+Parameters:
+
+* *`event`*: The string event name.
+* *`f`*: The Lua function connected to *event*.
+
+See also:
+
+* [`events.connect`](#events.connect)
+
+<a id="events.emit"></a>
+#### `events.emit`(*event, ...*)
+
+Sequentially calls all handler functions for event *event* with the given
+arguments.
+*event* may be any arbitrary string and does not need to have been previously
+defined. If any handler explicitly returns a value that is not `nil`,
+`emit()` returns that value and ceases to call subsequent handlers. This is
+useful for stopping the propagation of an event like a keypress after it has
+been handled, or for passing back values from handlers.
+
+Parameters:
+
+* *`event`*: The string event name.
+* *`...`*: Arguments passed to the handler.
+
+Usage:
+
+* `events.emit('my_event', 'my message')`
+
+Return:
+
+* `nil` unless any any handler explicitly returned a non-`nil` value;
+ otherwise returns that value
+
+
+---
+<a id="io"></a>
+## The `io` Module
+---
+
+Extends Lua's `io` library with Textadept functions for working with files.
+
+### Fields defined by `io`
+
+<a id="events.FILE_AFTER_SAVE"></a>
+#### `events.FILE_AFTER_SAVE` (string)
+
+Emitted right after saving a file to disk.
+ Emitted by [`buffer:save()`](#buffer.save) and [`buffer:save_as()`](#buffer.save_as).
+ Arguments:
+
+ * _`filename`_: The filename of the file being saved.
+ * _`saved_as`_: Whether or not the file was saved under a different
+ filename.
+
+<a id="events.FILE_BEFORE_SAVE"></a>
+#### `events.FILE_BEFORE_SAVE` (string)
+
+Emitted right before saving a file to disk.
+ Emitted by [`buffer:save()`](#buffer.save).
+ Arguments:
+
+ * _`filename`_: The filename of the file being saved.
+
+<a id="events.FILE_CHANGED"></a>
+#### `events.FILE_CHANGED` (string)
+
+Emitted when Textadept detects that an open file was modified externally.
+ When connecting to this event, connect with an index of 1 in order to
+ override the default prompt to reload the file.
+ Arguments:
+
+ * _`filename`_: The filename externally modified.
+
+<a id="events.FILE_OPENED"></a>
+#### `events.FILE_OPENED` (string)
+
+Emitted after opening a file in a new buffer.
+ Emitted by [`io.open_file()`](#io.open_file).
+ Arguments:
+
+ * _`filename`_: The opened file's filename.
+
+<a id="io.quick_open_max"></a>
+#### `io.quick_open_max` (number)
+
+The maximum number of files listed in the quick open dialog.
+ The default value is `1000`.
+
+
+### Functions defined by `io`
+
+<a id="io.close_all_buffers"></a>
+#### `io.close_all_buffers`()
+
+Closes all open buffers, prompting the user to continue if there are unsaved
+buffers, and returns `true` if the user did not cancel.
+No buffers are saved automatically. They must be saved manually.
+
+Return:
+
+* `true` if user did not cancel; `nil` otherwise.
+
+See also:
+
+* [`buffer.close`](#buffer.close)
+
+<a id="io.get_project_root"></a>
+#### `io.get_project_root`(*path*)
+
+Returns the root directory of the project that contains filesystem path
+*path*.
+In order to be recognized, projects must be under version control. Recognized
+VCSes are Bazaar, Fossil, Git, Mercurial, and SVN.
+
+Parameters:
+
+* *`path`*: Optional filesystem path to a project or a file contained within
+ a project. The default value is the buffer's filename or the current
+ working directory.
+
+Return:
+
+* string root or nil
+
+<a id="io.open_file"></a>
+#### `io.open_file`(*filenames, encodings*)
+
+Opens *filenames*, a string filename or list of filenames, or the
+user-selected filename(s).
+Emits a `FILE_OPENED` event.
+
+Parameters:
+
+* *`filenames`*: Optional string filename or table of filenames to open. If
+ `nil`, the user is prompted with a fileselect dialog.
+* *`encodings`*: Optional string encoding or table of encodings file contents
+ are in (one encoding per file). If `nil`, encoding auto-detection is
+ attempted via `io.encodings`.
+
+See also:
+
+* [`events`](#events)
+
+<a id="io.open_recent_file"></a>
+#### `io.open_recent_file`()
+
+Prompts the user to select a recently opened file to be reopened.
+
+See also:
+
+* [`io.recent_files`](#io.recent_files)
+
+<a id="io.quick_open"></a>
+#### `io.quick_open`(*paths, filter, opts*)
+
+Prompts the user to select files to be opened from *paths*, a string
+directory path or list of directory paths, using a filtered list dialog.
+If *paths* is `nil`, uses the current project's root directory, which is
+obtained from `io.get_project_root()`.
+String or list *filter* determines which files to show in the dialog, with
+the default filter being `io.quick_open_filters[path]` (if it exists) or
+`lfs.default_filter`. A filter consists of Lua patterns that match file and
+directory paths to include or exclude. Patterns are inclusive by default.
+Exclusive patterns begin with a '!'. If no inclusive patterns are given, any
+path is initially considered. As a convenience, file extensions can be
+specified literally instead of as a Lua pattern (e.g. '.lua' vs. '%.lua$'),
+and '/' also matches the Windows directory separator ('[/\\]' is not needed).
+The number of files in the list is capped at `quick_open_max`.
+If *filter* is `nil` and *paths* is ultimately a string, the filter from the
+`io.quick_open_filters` table is used. If that filter does not exist,
+`lfs.default_filter` is used.
+*opts* is an optional table of additional options for
+`ui.dialogs.filteredlist()`.
+
+Parameters:
+
+* *`paths`*: Optional string directory path or table of directory paths to
+ search. The default value is the current project's root directory, if
+ available.
+* *`filter`*: Optional filter for files and directories to include and/or
+ exclude. The default value is `lfs.default_filter` unless *paths* is a
+ string and a filter for it is defined in `io.quick_open_filters`.
+* *`opts`*: Optional table of additional options for
+ `ui.dialogs.filteredlist()`.
+
+Usage:
+
+* `io.quick_open(buffer.filename:match('^.+/')) -- list all files in the
+ current file's directory, subject to the default filter`
+* `io.quick_open(io.get_current_project(), '.lua') -- list all Lua files
+ in the current project`
+* `io.quick_open(io.get_current_project(), '!/build') -- list all files
+ in the current project except those in the build directory`
+
+See also:
+
+* [`io.quick_open_filters`](#io.quick_open_filters)
+* [`lfs.default_filter`](#lfs.default_filter)
+* [`io.quick_open_max`](#io.quick_open_max)
+* [`ui.dialogs.filteredlist`](#ui.dialogs.filteredlist)
+
+<a id="io.save_all_files"></a>
+#### `io.save_all_files`()
+
+Saves all unsaved buffers to their respective files.
+
+See also:
+
+* [`buffer.save`](#buffer.save)
+
+
+### Tables defined by `io`
+
+<a id="io.encodings"></a>
+#### `io.encodings`
+
+List of encodings to attempt to decode files as.
+You should add to this list if you get a "Conversion failed" error when
+trying to open a file whose encoding is not recognized. Valid encodings are
+[GNU iconv's encodings][] and include:
+
+ * European: ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U,
+ KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131},
+ Mac{Roman,CentralEurope,Iceland,Croatian,Romania},
+ Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh.
+ * Unicode: UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16,
+ UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, C99, JAVA.
+
+[GNU iconv's encodings]: http://www.gnu.org/software/libiconv/
+
+Usage:
+
+* `io.encodings[#io.encodings + 1] = 'UTF-32'`
+
+<a id="io.quick_open_filters"></a>
+#### `io.quick_open_filters`
+
+Map of directory paths to filters used by `io.quick_open()`.
+
+See also:
+
+* [`io.quick_open`](#io.quick_open)
+
+<a id="io.recent_files"></a>
+#### `io.recent_files`
+
+List of recently opened files, the most recent being towards the top.
+
+---
+<a id="keys"></a>
+## The `keys` Module
+---
+
+Manages key bindings in Textadept.
+
+### Overview
+
+Define key bindings in the global `keys` table in key-value pairs. Each pair
+consists of either a string key sequence and its associated command, a string
+lexer name (from the *lexers/* directory) with a table of key sequences and
+commands, a string key mode with a table of key sequences and commands, or a
+key sequence with a table of more sequences and commands. The latter is part
+of what is called a "key chain", to be discussed below. When searching for a
+command to run based on a key sequence, Textadept considers key bindings in
+the current key mode to have priority. If no key mode is active,
+language-specific key bindings have priority, followed by the ones in the
+global table. This means if there are two commands with the same key
+sequence, Textadept runs the language-specific one. However, if the command
+returns the boolean value `false`, Textadept also runs the lower-priority
+command. (This is useful for language modules to override commands like
+autocompletion, but fall back to word autocompletion if the first command
+fails.)
+
+### Key Sequences
+
+Key sequences are strings built from an ordered combination of modifier keys
+and the key's inserted character. Modifier keys are "Control", "Shift", and
+"Alt" on Windows, Linux, BSD, and in the terminal version. On macOS they are
+"Control" (`^`), "Alt/Option" (`⌥`), "Command" (`⌘`), and "Shift" (`⇧`).
+These modifiers have the following string representations:
+
+Modifier | Linux / Win32 | macOS | Terminal |
+---------|---------------|-----------|-----------|
+Control | `'ctrl'` | `'ctrl'` | `'ctrl'` |
+Alt | `'alt'` | `'alt'` | `'meta'` |
+Command | N/A | `'cmd'` | N/A |
+Shift | `'shift'` | `'shift'` | `'shift'` |
+
+The string representation of key values less than 255 is the character that
+Textadept would normally insert if the "Control", "Alt", and "Command"
+modifiers were not held down. Therefore, a combination of `Ctrl+Alt+Shift+A`
+has the key sequence `ctrl+alt+A` on Windows and Linux, but a combination of
+`Ctrl+Shift+Tab` has the key sequence `ctrl+shift+\t`. On a United States
+English keyboard, since the combination of `Ctrl+Shift+,` has the key
+sequence `ctrl+<` (`Shift+,` inserts a `<`), Textadept recognizes the key
+binding as `Ctrl+<`. This allows key bindings to be language and layout
+agnostic. For key values greater than 255, Textadept uses the
+[`keys.KEYSYMS`](#keys.KEYSYMS) lookup table. Therefore, `Ctrl+Right Arrow` has the key
+sequence `ctrl+right`. Uncommenting the `print()` statements in
+*core/keys.lua* causes Textadept to print key sequences to standard out
+(stdout) for inspection.
+
+### Commands
+
+A command bound to a key sequence is simply a Lua function. For example:
+
+ keys['ctrl+n'] = buffer.new
+ keys['ctrl+z'] = buffer.undo
+ keys['ctrl+u'] = function() io.quick_open(_USERHOME) end
+
+Textadept handles [`buffer`](#buffer) references properly in static contexts.
+
+### Modes
+
+Modes are groups of key bindings such that when a key [mode](#keys.mode) is
+active, Textadept ignores all key bindings defined outside the mode until the
+mode is unset. Here is a simple vi mode example:
+
+ keys.command_mode = {
+ ['h'] = buffer.char_left,
+ ['j'] = buffer.line_up,
+ ['k'] = buffer.line_down,
+ ['l'] = buffer.char_right,
+ ['i'] = function()
+ keys.mode = nil
+ ui.statusbar_text = 'INSERT MODE'
+ end
+ }
+ keys['esc'] = function() keys.mode = 'command_mode' end
+ events.connect(events.UPDATE_UI, function()
+ if keys.mode == 'command_mode' then return end
+ ui.statusbar_text = 'INSERT MODE'
+ end)
+ keys.mode = 'command_mode' -- default mode
+
+**Warning**: When creating a mode, be sure to define a way to exit the mode,
+otherwise you will probably have to restart Textadept.
+
+### Key Chains
+
+Key chains are a powerful concept. They allow you to assign multiple key
+bindings to one key sequence. By default, the `Esc` key cancels a key chain,
+but you can redefine it via [`keys.CLEAR`](#keys.CLEAR). An example key chain looks
+like:
+
+ keys['alt+a'] = {
+ a = function1,
+ b = function2,
+ c = {...}
+ }
+
+### Fields defined by `keys`
+
+<a id="keys.CLEAR"></a>
+#### `keys.CLEAR` (string)
+
+The key that clears the current key chain.
+ It cannot be part of a key chain.
+ The default value is `'esc'` for the `Esc` key.
+
+<a id="keys.mode"></a>
+#### `keys.mode` (string)
+
+The current key mode.
+ When non-`nil`, all key bindings defined outside of `keys[mode]` are
+ ignored.
+ The default value is `nil`.
+
+
+### Tables defined by `keys`
+
+<a id="keys.KEYSYMS"></a>
+#### `keys.KEYSYMS`
+
+Lookup table for string representations of key codes higher than 255.
+Key codes can be identified by temporarily uncommenting the `print()`
+statements in *core/keys.lua*.
+Recognized codes are: esc, \b, \t, \n, down, up, left, right, home, end,
+pgup, pgdn, del, ins, and f1-f12.
+The GUI version also recognizes: kpenter, kphome, kpend, kpleft, kpup,
+kpright, kpdown, kppgup, kppgdn, kpmul, kpadd, kpsub, kpdiv, kpdec, and
+kp0-kp9.
+
+<a id="_G.keys"></a>
+#### `_G.keys`
+
+Map of key bindings to commands, with language-specific key tables assigned
+to a lexer name key.
+
+<a id="keys.keychain"></a>
+#### `keys.keychain`
+
+The current chain of key sequences. (Read-only.)
+
+---
+<a id="lexer"></a>
+## The `lexer` Module
+---
+
+Lexes Scintilla documents and source code with Lua and LPeg.
+
+### Writing Lua Lexers
+
+Lexers highlight the syntax of source code. Scintilla (the editing component
+behind [Textadept][] and [SciTE][]) traditionally uses static, compiled C++
+lexers which are notoriously difficult to create and/or extend. On the other
+hand, Lua makes it easy to to rapidly create new lexers, extend existing
+ones, and embed lexers within one another. Lua lexers tend to be more
+readable than C++ lexers too.
+
+Lexers are Parsing Expression Grammars, or PEGs, composed with the Lua
+[LPeg library][]. The following table comes from the LPeg documentation and
+summarizes all you need to know about constructing basic LPeg patterns. This
+module provides convenience functions for creating and working with other
+more advanced patterns and concepts.
+
+Operator | Description
+---------------------|------------
+`lpeg.P(string)` | Matches `string` literally.
+`lpeg.P(`_`n`_`)` | Matches exactly _`n`_ number of characters.
+`lpeg.S(string)` | Matches any character in set `string`.
+`lpeg.R("`_`xy`_`")` | Matches any character between range `x` and `y`.
+`patt^`_`n`_ | Matches at least _`n`_ repetitions of `patt`.
+`patt^-`_`n`_ | Matches at most _`n`_ repetitions of `patt`.
+`patt1 * patt2` | Matches `patt1` followed by `patt2`.
+`patt1 + patt2` | Matches `patt1` or `patt2` (ordered choice).
+`patt1 - patt2` | Matches `patt1` if `patt2` does not also match.
+`-patt` | Equivalent to `("" - patt)`.
+`#patt` | Matches `patt` but consumes no input.
+
+The first part of this document deals with rapidly constructing a simple
+lexer. The next part deals with more advanced techniques, such as custom
+coloring and embedding lexers within one another. Following that is a
+discussion about code folding, or being able to tell Scintilla which code
+blocks are "foldable" (temporarily hideable from view). After that are
+instructions on how to use Lua lexers with the aforementioned Textadept and
+SciTE editors. Finally there are comments on lexer performance and
+limitations.
+
+[LPeg library]: http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html
+[Textadept]: https://orbitalquark.github.io/textadept
+[SciTE]: https://scintilla.org/SciTE.html
+
+### Lexer Basics
+
+The *lexers/* directory contains all lexers, including your new one. Before
+attempting to write one from scratch though, first determine if your
+programming language is similar to any of the 100+ languages supported. If
+so, you may be able to copy and modify that lexer, saving some time and
+effort. The filename of your lexer should be the name of your programming
+language in lower case followed by a *.lua* extension. For example, a new Lua
+lexer has the name *lua.lua*.
+
+Note: Try to refrain from using one-character language names like "c", "d",
+or "r". For example, Scintillua uses "ansi_c", "dmd", and "rstats",
+respectively.
+
+#### New Lexer Template
+
+There is a *lexers/template.txt* file that contains a simple template for a
+new lexer. Feel free to use it, replacing the '?'s with the name of your
+lexer. Consider this snippet from the template:
+
+ -- ? LPeg lexer.
+
+ local lexer = require('lexer')
+ local token, word_match = lexer.token, lexer.word_match
+ local P, S = lpeg.P, lpeg.S
+
+ local lex = lexer.new('?')
+
+ -- Whitespace.
+ local ws = token(lexer.WHITESPACE, lexer.space^1)
+ lex:add_rule('whitespace', ws)
+
+ [...]
+
+ return lex
+
+The first 3 lines of code simply define often used convenience variables. The
+fourth and last lines [define](#lexer.new) and return the lexer object
+Scintilla uses; they are very important and must be part of every lexer. The
+fifth line defines something called a "token", an essential building block of
+lexers. You will learn about tokens shortly. The sixth line defines a lexer
+grammar rule, which you will learn about later, as well as token styles. (Be
+aware that it is common practice to combine these two lines for short rules.)
+Note, however, the `local` prefix in front of variables, which is needed
+so-as not to affect Lua's global environment. All in all, this is a minimal,
+working lexer that you can build on.
+
+#### Tokens
+
+Take a moment to think about your programming language's structure. What kind
+of key elements does it have? In the template shown earlier, one predefined
+element all languages have is whitespace. Your language probably also has
+elements like comments, strings, and keywords. Lexers refer to these elements
+as "tokens". Tokens are the fundamental "building blocks" of lexers. Lexers
+break down source code into tokens for coloring, which results in the syntax
+highlighting familiar to you. It is up to you how specific your lexer is when
+it comes to tokens. Perhaps only distinguishing between keywords and
+identifiers is necessary, or maybe recognizing constants and built-in
+functions, methods, or libraries is desirable. The Lua lexer, for example,
+defines 11 tokens: whitespace, keywords, built-in functions, constants,
+built-in libraries, identifiers, strings, comments, numbers, labels, and
+operators. Even though constants, built-in functions, and built-in libraries
+are subsets of identifiers, Lua programmers find it helpful for the lexer to
+distinguish between them all. It is perfectly acceptable to just recognize
+keywords and identifiers.
+
+In a lexer, tokens consist of a token name and an LPeg pattern that matches a
+sequence of characters recognized as an instance of that token. Create tokens
+using the [`lexer.token()`](#lexer.token) function. Let us examine the "whitespace" token
+defined in the template shown earlier:
+
+ local ws = token(lexer.WHITESPACE, lexer.space^1)
+
+At first glance, the first argument does not appear to be a string name and
+the second argument does not appear to be an LPeg pattern. Perhaps you
+expected something like:
+
+ local ws = token('whitespace', S('\t\v\f\n\r ')^1)
+
+The `lexer` module actually provides a convenient list of common token names
+and common LPeg patterns for you to use. Token names include
+[`lexer.DEFAULT`](#lexer.DEFAULT), [`lexer.WHITESPACE`](#lexer.WHITESPACE), [`lexer.COMMENT`](#lexer.COMMENT),
+[`lexer.STRING`](#lexer.STRING), [`lexer.NUMBER`](#lexer.NUMBER), [`lexer.KEYWORD`](#lexer.KEYWORD),
+[`lexer.IDENTIFIER`](#lexer.IDENTIFIER), [`lexer.OPERATOR`](#lexer.OPERATOR), [`lexer.ERROR`](#lexer.ERROR),
+[`lexer.PREPROCESSOR`](#lexer.PREPROCESSOR), [`lexer.CONSTANT`](#lexer.CONSTANT), [`lexer.VARIABLE`](#lexer.VARIABLE),
+[`lexer.FUNCTION`](#lexer.FUNCTION), [`lexer.CLASS`](#lexer.CLASS), [`lexer.TYPE`](#lexer.TYPE), [`lexer.LABEL`](#lexer.LABEL),
+[`lexer.REGEX`](#lexer.REGEX), and [`lexer.EMBEDDED`](#lexer.EMBEDDED). Patterns include
+[`lexer.any`](#lexer.any), [`lexer.alpha`](#lexer.alpha), [`lexer.digit`](#lexer.digit), [`lexer.alnum`](#lexer.alnum),
+[`lexer.lower`](#lexer.lower), [`lexer.upper`](#lexer.upper), [`lexer.xdigit`](#lexer.xdigit), [`lexer.graph`](#lexer.graph),
+[`lexer.print`](#lexer.print), [`lexer.punct`](#lexer.punct), [`lexer.space`](#lexer.space), [`lexer.newline`](#lexer.newline),
+[`lexer.nonnewline`](#lexer.nonnewline), [`lexer.dec_num`](#lexer.dec_num), [`lexer.hex_num`](#lexer.hex_num),
+[`lexer.oct_num`](#lexer.oct_num), [`lexer.integer`](#lexer.integer), [`lexer.float`](#lexer.float),
+[`lexer.number`](#lexer.number), and [`lexer.word`](#lexer.word). You may use your own token names if
+none of the above fit your language, but an advantage to using predefined
+token names is that your lexer's tokens will inherit the universal syntax
+highlighting color theme used by your text editor.
+
+##### Example Tokens
+
+So, how might you define other tokens like keywords, comments, and strings?
+Here are some examples.
+
+**Keywords**
+
+Instead of matching _n_ keywords with _n_ `P('keyword_`_`n`_`')` ordered
+choices, use another convenience function: [`lexer.word_match()`](#lexer.word_match). It is
+much easier and more efficient to write word matches like:
+
+ local keyword = token(lexer.KEYWORD, lexer.word_match[[
+ keyword_1 keyword_2 ... keyword_n
+ ]])
+
+ local case_insensitive_keyword = token(lexer.KEYWORD, lexer.word_match([[
+ KEYWORD_1 keyword_2 ... KEYword_n
+ ]], true))
+
+ local hyphened_keyword = token(lexer.KEYWORD, lexer.word_match[[
+ keyword-1 keyword-2 ... keyword-n
+ ]])
+
+In order to more easily separate or categorize keyword sets, you can use Lua
+line comments within keyword strings. Such comments will be ignored. For
+example:
+
+ local keyword = token(lexer.KEYWORD, lexer.word_match[[
+ -- Version 1 keywords.
+ keyword_11, keyword_12 ... keyword_1n
+ -- Version 2 keywords.
+ keyword_21, keyword_22 ... keyword_2n
+ ...
+ -- Version N keywords.
+ keyword_m1, keyword_m2 ... keyword_mn
+ ]])
+
+**Comments**
+
+Line-style comments with a prefix character(s) are easy to express with LPeg:
+
+ local shell_comment = token(lexer.COMMENT, lexer.to_eol('#'))
+ local c_line_comment = token(lexer.COMMENT, lexer.to_eol('//', true))
+
+The comments above start with a '#' or "//" and go to the end of the line.
+The second comment recognizes the next line also as a comment if the current
+line ends with a '\' escape character.
+
+C-style "block" comments with a start and end delimiter are also easy to
+express:
+
+ local c_comment = token(lexer.COMMENT, lexer.range('/*', '*/'))
+
+This comment starts with a "/\*" sequence and contains anything up to and
+including an ending "\*/" sequence. The ending "\*/" is optional so the lexer
+can recognize unfinished comments as comments and highlight them properly.
+
+**Strings**
+
+Most programming languages allow escape sequences in strings such that a
+sequence like "\\&quot;" in a double-quoted string indicates that the
+'&quot;' is not the end of the string. [`lexer.range()`](#lexer.range) handles escapes
+inherently.
+
+ local dq_str = lexer.range('"')
+ local sq_str = lexer.range("'")
+ local string = token(lexer.STRING, dq_str + sq_str)
+
+In this case, the lexer treats '\' as an escape character in a string
+sequence.
+
+**Numbers**
+
+Most programming languages have the same format for integer and float tokens,
+so it might be as simple as using a predefined LPeg pattern:
+
+ local number = token(lexer.NUMBER, lexer.number)
+
+However, some languages allow postfix characters on integers.
+
+ local integer = P('-')^-1 * (lexer.dec_num * S('lL')^-1)
+ local number = token(lexer.NUMBER, lexer.float + lexer.hex_num + integer)
+
+Your language may need other tweaks, but it is up to you how fine-grained you
+want your highlighting to be. After all, you are not writing a compiler or
+interpreter!
+
+#### Rules
+
+Programming languages have grammars, which specify valid token structure. For
+example, comments usually cannot appear within a string. Grammars consist of
+rules, which are simply combinations of tokens. Recall from the lexer
+template the [`lexer.add_rule()`](#lexer.add_rule) call, which adds a rule to the lexer's
+grammar:
+
+ lex:add_rule('whitespace', ws)
+
+Each rule has an associated name, but rule names are completely arbitrary and
+serve only to identify and distinguish between different rules. Rule order is
+important: if text does not match the first rule added to the grammar, the
+lexer tries to match the second rule added, and so on. Right now this lexer
+simply matches whitespace tokens under a rule named "whitespace".
+
+To illustrate the importance of rule order, here is an example of a
+simplified Lua lexer:
+
+ lex:add_rule('whitespace', token(lexer.WHITESPACE, ...))
+ lex:add_rule('keyword', token(lexer.KEYWORD, ...))
+ lex:add_rule('identifier', token(lexer.IDENTIFIER, ...))
+ lex:add_rule('string', token(lexer.STRING, ...))
+ lex:add_rule('comment', token(lexer.COMMENT, ...))
+ lex:add_rule('number', token(lexer.NUMBER, ...))
+ lex:add_rule('label', token(lexer.LABEL, ...))
+ lex:add_rule('operator', token(lexer.OPERATOR, ...))
+
+Note how identifiers come after keywords. In Lua, as with most programming
+languages, the characters allowed in keywords and identifiers are in the same
+set (alphanumerics plus underscores). If the lexer added the "identifier"
+rule before the "keyword" rule, all keywords would match identifiers and thus
+incorrectly highlight as identifiers instead of keywords. The same idea
+applies to function, constant, etc. tokens that you may want to distinguish
+between: their rules should come before identifiers.
+
+So what about text that does not match any rules? For example in Lua, the '!'
+character is meaningless outside a string or comment. Normally the lexer
+skips over such text. If instead you want to highlight these "syntax errors",
+add an additional end rule:
+
+ lex:add_rule('whitespace', ws)
+ ...
+ lex:add_rule('error', token(lexer.ERROR, lexer.any))
+
+This identifies and highlights any character not matched by an existing
+rule as a `lexer.ERROR` token.
+
+Even though the rules defined in the examples above contain a single token,
+rules may consist of multiple tokens. For example, a rule for an HTML tag
+could consist of a tag token followed by an arbitrary number of attribute
+tokens, allowing the lexer to highlight all tokens separately. That rule
+might look something like this:
+
+ lex:add_rule('tag', tag_start * (ws * attributes)^0 * tag_end^-1)
+
+Note however that lexers with complex rules like these are more prone to lose
+track of their state, especially if they span multiple lines.
+
+#### Summary
+
+Lexers primarily consist of tokens and grammar rules. At your disposal are a
+number of convenience patterns and functions for rapidly creating a lexer. If
+you choose to use predefined token names for your tokens, you do not have to
+define how the lexer highlights them. The tokens will inherit the default
+syntax highlighting color theme your editor uses.
+
+### Advanced Techniques
+
+#### Styles and Styling
+
+The most basic form of syntax highlighting is assigning different colors to
+different tokens. Instead of highlighting with just colors, Scintilla allows
+for more rich highlighting, or "styling", with different fonts, font sizes,
+font attributes, and foreground and background colors, just to name a few.
+The unit of this rich highlighting is called a "style". Styles are simply Lua
+tables of properties. By default, lexers associate predefined token names
+like `lexer.WHITESPACE`, `lexer.COMMENT`, `lexer.STRING`, etc. with
+particular styles as part of a universal color theme. These predefined styles
+are contained in [`lexer.styles`](#lexer.styles), and you may define your own styles. See
+that table's documentation for more information. As with token names,
+LPeg patterns, and styles, there is a set of predefined color names, but they
+vary depending on the current color theme in use. Therefore, it is generally
+not a good idea to manually define colors within styles in your lexer since
+they might not fit into a user's chosen color theme. Try to refrain from even
+using predefined colors in a style because that color may be theme-specific.
+Instead, the best practice is to either use predefined styles or derive new
+color-agnostic styles from predefined ones. For example, Lua "longstring"
+tokens use the existing `lexer.styles.string` style instead of defining a new
+one.
+
+##### Example Styles
+
+Defining styles is pretty straightforward. An empty style that inherits the
+default theme settings is simply an empty table:
+
+ local style_nothing = {}
+
+A similar style but with a bold font face looks like this:
+
+ local style_bold = {bold = true}
+
+You can derive new styles from predefined ones without having to rewrite
+them. This operation leaves the old style unchanged. For example, if you had
+a "static variable" token whose style you wanted to base off of
+`lexer.styles.variable`, it would probably look like:
+
+ local style_static_var = lexer.styles.variable .. {italics = true}
+
+The color theme files in the *lexers/themes/* folder give more examples of
+style definitions.
+
+#### Token Styles
+
+Lexers use the [`lexer.add_style()`](#lexer.add_style) function to assign styles to
+particular tokens. Recall the token definition and from the lexer template:
+
+ local ws = token(lexer.WHITESPACE, lexer.space^1)
+ lex:add_rule('whitespace', ws)
+
+Why is a style not assigned to the `lexer.WHITESPACE` token? As mentioned
+earlier, lexers automatically associate tokens that use predefined token
+names with a particular style. Only tokens with custom token names need
+manual style associations. As an example, consider a custom whitespace token:
+
+ local ws = token('custom_whitespace', lexer.space^1)
+
+Assigning a style to this token looks like:
+
+ lex:add_style('custom_whitespace', lexer.styles.whitespace)
+
+Do not confuse token names with rule names. They are completely different
+entities. In the example above, the lexer associates the "custom_whitespace"
+token with the existing style for `lexer.WHITESPACE` tokens. If instead you
+prefer to color the background of whitespace a shade of grey, it might look
+like:
+
+ lex:add_style('custom_whitespace',
+ lexer.styles.whitespace .. {back = lexer.colors.grey})
+
+Remember to refrain from assigning specific colors in styles, but in this
+case, all user color themes probably define `colors.grey`.
+
+#### Line Lexers
+
+By default, lexers match the arbitrary chunks of text passed to them by
+Scintilla. These chunks may be a full document, only the visible part of a
+document, or even just portions of lines. Some lexers need to match whole
+lines. For example, a lexer for the output of a file "diff" needs to know if
+the line started with a '+' or '-' and then style the entire line
+accordingly. To indicate that your lexer matches by line, create the lexer
+with an extra parameter:
+
+ local lex = lexer.new('?', {lex_by_line = true})
+
+Now the input text for the lexer is a single line at a time. Keep in mind
+that line lexers do not have the ability to look ahead at subsequent lines.
+
+#### Embedded Lexers
+
+Lexers embed within one another very easily, requiring minimal effort. In the
+following sections, the lexer being embedded is called the "child" lexer and
+the lexer a child is being embedded in is called the "parent". For example,
+consider an HTML lexer and a CSS lexer. Either lexer stands alone for styling
+their respective HTML and CSS files. However, CSS can be embedded inside
+HTML. In this specific case, the CSS lexer is the "child" lexer with the HTML
+lexer being the "parent". Now consider an HTML lexer and a PHP lexer. This
+sounds a lot like the case with CSS, but there is a subtle difference: PHP
+_embeds itself into_ HTML while CSS is _embedded in_ HTML. This fundamental
+difference results in two types of embedded lexers: a parent lexer that
+embeds other child lexers in it (like HTML embedding CSS), and a child lexer
+that embeds itself into a parent lexer (like PHP embedding itself in HTML).
+
+##### Parent Lexer
+
+Before embedding a child lexer into a parent lexer, the parent lexer needs to
+load the child lexer. This is done with the [`lexer.load()`](#lexer.load) function. For
+example, loading the CSS lexer within the HTML lexer looks like:
+
+ local css = lexer.load('css')
+
+The next part of the embedding process is telling the parent lexer when to
+switch over to the child lexer and when to switch back. The lexer refers to
+these indications as the "start rule" and "end rule", respectively, and are
+just LPeg patterns. Continuing with the HTML/CSS example, the transition from
+HTML to CSS is when the lexer encounters a "style" tag with a "type"
+attribute whose value is "text/css":
+
+ local css_tag = P('<style') * P(function(input, index)
+ if input:find('^[^>]+type="text/css"', index) then
+ return index
+ end
+ end)
+
+This pattern looks for the beginning of a "style" tag and searches its
+attribute list for the text "`type="text/css"`". (In this simplified example,
+the Lua pattern does not consider whitespace between the '=' nor does it
+consider that using single quotes is valid.) If there is a match, the
+functional pattern returns a value instead of `nil`. In this case, the value
+returned does not matter because we ultimately want to style the "style" tag
+as an HTML tag, so the actual start rule looks like this:
+
+ local css_start_rule = #css_tag * tag
+
+Now that the parent knows when to switch to the child, it needs to know when
+to switch back. In the case of HTML/CSS, the switch back occurs when the
+lexer encounters an ending "style" tag, though the lexer should still style
+the tag as an HTML tag:
+
+ local css_end_rule = #P('</style>') * tag
+
+Once the parent loads the child lexer and defines the child's start and end
+rules, it embeds the child with the [`lexer.embed()`](#lexer.embed) function:
+
+ lex:embed(css, css_start_rule, css_end_rule)
+
+##### Child Lexer
+
+The process for instructing a child lexer to embed itself into a parent is
+very similar to embedding a child into a parent: first, load the parent lexer
+into the child lexer with the [`lexer.load()`](#lexer.load) function and then create
+start and end rules for the child lexer. However, in this case, call
+[`lexer.embed()`](#lexer.embed) with switched arguments. For example, in the PHP lexer:
+
+ local html = lexer.load('html')
+ local php_start_rule = token('php_tag', '<?php ')
+ local php_end_rule = token('php_tag', '?>')
+ lex:add_style('php_tag', lexer.styles.embedded)
+ html:embed(lex, php_start_rule, php_end_rule)
+
+#### Lexers with Complex State
+
+A vast majority of lexers are not stateful and can operate on any chunk of
+text in a document. However, there may be rare cases where a lexer does need
+to keep track of some sort of persistent state. Rather than using `lpeg.P`
+function patterns that set state variables, it is recommended to make use of
+Scintilla's built-in, per-line state integers via [`lexer.line_state`](#lexer.line_state). It
+was designed to accommodate up to 32 bit flags for tracking state.
+[`lexer.line_from_position()`](#lexer.line_from_position) will return the line for any position given
+to an `lpeg.P` function pattern. (Any positions derived from that position
+argument will also work.)
+
+Writing stateful lexers is beyond the scope of this document.
+
+### Code Folding
+
+When reading source code, it is occasionally helpful to temporarily hide
+blocks of code like functions, classes, comments, etc. This is the concept of
+"folding". In the Textadept and SciTE editors for example, little indicators
+in the editor margins appear next to code that can be folded at places called
+"fold points". When the user clicks an indicator, the editor hides the code
+associated with the indicator until the user clicks the indicator again. The
+lexer specifies these fold points and what code exactly to fold.
+
+The fold points for most languages occur on keywords or character sequences.
+Examples of fold keywords are "if" and "end" in Lua and examples of fold
+character sequences are '{', '}', "/\*", and "\*/" in C for code block and
+comment delimiters, respectively. However, these fold points cannot occur
+just anywhere. For example, lexers should not recognize fold keywords that
+appear within strings or comments. The [`lexer.add_fold_point()`](#lexer.add_fold_point) function
+allows you to conveniently define fold points with such granularity. For
+example, consider C:
+
+ lex:add_fold_point(lexer.OPERATOR, '{', '}')
+ lex:add_fold_point(lexer.COMMENT, '/*', '*/')
+
+The first assignment states that any '{' or '}' that the lexer recognized as
+an `lexer.OPERATOR` token is a fold point. Likewise, the second assignment
+states that any "/\*" or "\*/" that the lexer recognizes as part of a
+`lexer.COMMENT` token is a fold point. The lexer does not consider any
+occurrences of these characters outside their defined tokens (such as in a
+string) as fold points. How do you specify fold keywords? Here is an example
+for Lua:
+
+ lex:add_fold_point(lexer.KEYWORD, 'if', 'end')
+ lex:add_fold_point(lexer.KEYWORD, 'do', 'end')
+ lex:add_fold_point(lexer.KEYWORD, 'function', 'end')
+ lex:add_fold_point(lexer.KEYWORD, 'repeat', 'until')
+
+If your lexer has case-insensitive keywords as fold points, simply add a
+`case_insensitive_fold_points = true` option to [`lexer.new()`](#lexer.new), and
+specify keywords in lower case.
+
+If your lexer needs to do some additional processing in order to determine if
+a token is a fold point, pass a function that returns an integer to
+`lex:add_fold_point()`. Returning `1` indicates the token is a beginning fold
+point and returning `-1` indicates the token is an ending fold point.
+Returning `0` indicates the token is not a fold point. For example:
+
+ local function fold_strange_token(text, pos, line, s, symbol)
+ if ... then
+ return 1 -- beginning fold point
+ elseif ... then
+ return -1 -- ending fold point
+ end
+ return 0
+ end
+
+ lex:add_fold_point('strange_token', '|', fold_strange_token)
+
+Any time the lexer encounters a '|' that is a "strange_token", it calls the
+`fold_strange_token` function to determine if '|' is a fold point. The lexer
+calls these functions with the following arguments: the text to identify fold
+points in, the beginning position of the current line in the text to fold,
+the current line's text, the position in the current line the fold point text
+starts at, and the fold point text itself.
+
+#### Fold by Indentation
+
+Some languages have significant whitespace and/or no delimiters that indicate
+fold points. If your lexer falls into this category and you would like to
+mark fold points based on changes in indentation, create the lexer with a
+`fold_by_indentation = true` option:
+
+ local lex = lexer.new('?', {fold_by_indentation = true})
+
+### Using Lexers
+
+#### Textadept
+
+Put your lexer in your *~/.textadept/lexers/* directory so you do not
+overwrite it when upgrading Textadept. Also, lexers in this directory
+override default lexers. Thus, Textadept loads a user *lua* lexer instead of
+the default *lua* lexer. This is convenient for tweaking a default lexer to
+your liking. Then add a [file type][] for your lexer if necessary.
+
+[file type]: textadept.file_types.html
+
+#### SciTE
+
+Create a *.properties* file for your lexer and `import` it in either your
+*SciTEUser.properties* or *SciTEGlobal.properties*. The contents of the
+*.properties* file should contain:
+
+ file.patterns.[lexer_name]=[file_patterns]
+ lexer.$(file.patterns.[lexer_name])=[lexer_name]
+
+where `[lexer_name]` is the name of your lexer (minus the *.lua* extension)
+and `[file_patterns]` is a set of file extensions to use your lexer for.
+
+Please note that Lua lexers ignore any styling information in *.properties*
+files. Your theme file in the *lexers/themes/* directory contains styling
+information.
+
+### Migrating Legacy Lexers
+
+Legacy lexers are of the form:
+
+ local l = require('lexer')
+ local token, word_match = l.token, l.word_match
+ local P, R, S = lpeg.P, lpeg.R, lpeg.S
+
+ local M = {_NAME = '?'}
+
+ [... token and pattern definitions ...]
+
+ M._rules = {
+ {'rule', pattern},
+ [...]
+ }
+
+ M._tokenstyles = {
+ 'token' = 'style',
+ [...]
+ }
+
+ M._foldsymbols = {
+ _patterns = {...},
+ ['token'] = {['start'] = 1, ['end'] = -1},
+ [...]
+ }
+
+ return M
+
+While Scintillua will handle such legacy lexers just fine without any
+changes, it is recommended that you migrate yours. The migration process is
+fairly straightforward:
+
+1. Replace all instances of `l` with `lexer`, as it's better practice and
+ results in less confusion.
+2. Replace `local M = {_NAME = '?'}` with `local lex = lexer.new('?')`, where
+ `?` is the name of your legacy lexer. At the end of the lexer, change
+ `return M` to `return lex`.
+3. Instead of defining rules towards the end of your lexer, define your rules
+ as you define your tokens and patterns using
+ [`lex:add_rule()`](#lexer.add_rule).
+4. Similarly, any custom token names should have their styles immediately
+ defined using [`lex:add_style()`](#lexer.add_style).
+5. Convert any table arguments passed to [`lexer.word_match()`](#lexer.word_match) to a
+ space-separated string of words.
+6. Replace any calls to `lexer.embed(M, child, ...)` and
+ `lexer.embed(parent, M, ...)` with
+ [`lex:embed`](#lexer.embed)`(child, ...)` and `parent:embed(lex, ...)`,
+ respectively.
+7. Define fold points with simple calls to
+ [`lex:add_fold_point()`](#lexer.add_fold_point). No need to mess with Lua
+ patterns anymore.
+8. Any legacy lexer options such as `M._FOLDBYINDENTATION`, `M._LEXBYLINE`,
+ `M._lexer`, etc. should be added as table options to [`lexer.new()`](#lexer.new).
+9. Any external lexer rule fetching and/or modifications via `lexer._RULES`
+ should be changed to use [`lexer.get_rule()`](#lexer.get_rule) and
+ [`lexer.modify_rule()`](#lexer.modify_rule).
+
+As an example, consider the following sample legacy lexer:
+
+ local l = require('lexer')
+ local token, word_match = l.token, l.word_match
+ local P, R, S = lpeg.P, lpeg.R, lpeg.S
+
+ local M = {_NAME = 'legacy'}
+
+ local ws = token(l.WHITESPACE, l.space^1)
+ local comment = token(l.COMMENT, '#' * l.nonnewline^0)
+ local string = token(l.STRING, l.delimited_range('"'))
+ local number = token(l.NUMBER, l.float + l.integer)
+ local keyword = token(l.KEYWORD, word_match{'foo', 'bar', 'baz'})
+ local custom = token('custom', P('quux'))
+ local identifier = token(l.IDENTIFIER, l.word)
+ local operator = token(l.OPERATOR, S('+-*/%^=<>,.()[]{}'))
+
+ M._rules = {
+ {'whitespace', ws},
+ {'keyword', keyword},
+ {'custom', custom},
+ {'identifier', identifier},
+ {'string', string},
+ {'comment', comment},
+ {'number', number},
+ {'operator', operator}
+ }
+
+ M._tokenstyles = {
+ 'custom' = l.STYLE_KEYWORD .. ',bold'
+ }
+
+ M._foldsymbols = {
+ _patterns = {'[{}]'},
+ [l.OPERATOR] = {['{'] = 1, ['}'] = -1}
+ }
+
+ return M
+
+Following the migration steps would yield:
+
+ local lexer = require('lexer')
+ local token, word_match = lexer.token, lexer.word_match
+ local P, S = lpeg.P, lpeg.S
+
+ local lex = lexer.new('legacy')
+
+ lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1))
+ lex:add_rule('keyword', token(lexer.KEYWORD, word_match[[foo bar baz]]))
+ lex:add_rule('custom', token('custom', P('quux')))
+ lex:add_style('custom', lexer.styles.keyword .. {bold = true})
+ lex:add_rule('identifier', token(lexer.IDENTIFIER, lexer.word))
+ lex:add_rule('string', token(lexer.STRING, lexer.range('"')))
+ lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#')))
+ lex:add_rule('number', token(lexer.NUMBER, lexer.number))
+ lex:add_rule('operator', token(lexer.OPERATOR, S('+-*/%^=<>,.()[]{}')))
+
+ lex:add_fold_point(lexer.OPERATOR, '{', '}')
+
+ return lex
+
+### Considerations
+
+#### Performance
+
+There might be some slight overhead when initializing a lexer, but loading a
+file from disk into Scintilla is usually more expensive. On modern computer
+systems, I see no difference in speed between Lua lexers and Scintilla's C++
+ones. Optimize lexers for speed by re-arranging `lexer.add_rule()` calls so
+that the most common rules match first. Do keep in mind that order matters
+for similar rules.
+
+In some cases, folding may be far more expensive than lexing, particularly
+in lexers with a lot of potential fold points. If your lexer is exhibiting
+signs of slowness, try disabling folding in your text editor first. If that
+speeds things up, you can try reducing the number of fold points you added,
+overriding `lexer.fold()` with your own implementation, or simply eliminating
+folding support from your lexer.
+
+#### Limitations
+
+Embedded preprocessor languages like PHP cannot completely embed in their
+parent languages in that the parent's tokens do not support start and end
+rules. This mostly goes unnoticed, but code like
+
+ <div id="<?php echo $id; ?>">
+
+will not style correctly.
+
+#### Troubleshooting
+
+Errors in lexers can be tricky to debug. Lexers print Lua errors to
+`io.stderr` and `_G.print()` statements to `io.stdout`. Running your editor
+from a terminal is the easiest way to see errors as they occur.
+
+#### Risks
+
+Poorly written lexers have the ability to crash Scintilla (and thus its
+containing application), so unsaved data might be lost. However, I have only
+observed these crashes in early lexer development, when syntax errors or
+pattern errors are present. Once the lexer actually starts styling text
+(either correctly or incorrectly, it does not matter), I have not observed
+any crashes.
+
+#### Acknowledgements
+
+Thanks to Peter Odding for his [lexer post][] on the Lua mailing list
+that provided inspiration, and thanks to Roberto Ierusalimschy for LPeg.
+
+[lexer post]: http://lua-users.org/lists/lua-l/2007-04/msg00116.html
+
+### Fields defined by `lexer`
+
+<a id="lexer.CLASS"></a>
+#### `lexer.CLASS` (string)
+
+The token name for class tokens.
+
+<a id="lexer.COMMENT"></a>
+#### `lexer.COMMENT` (string)
+
+The token name for comment tokens.
+
+<a id="lexer.CONSTANT"></a>
+#### `lexer.CONSTANT` (string)
+
+The token name for constant tokens.
+
+<a id="lexer.DEFAULT"></a>
+#### `lexer.DEFAULT` (string)
+
+The token name for default tokens.
+
+<a id="lexer.ERROR"></a>
+#### `lexer.ERROR` (string)
+
+The token name for error tokens.
+
+<a id="lexer.FOLD_BASE"></a>
+#### `lexer.FOLD_BASE` (number)
+
+The initial (root) fold level.
+
+<a id="lexer.FOLD_BLANK"></a>
+#### `lexer.FOLD_BLANK` (number)
+
+Flag indicating that the line is blank.
+
+<a id="lexer.FOLD_HEADER"></a>
+#### `lexer.FOLD_HEADER` (number)
+
+Flag indicating the line is fold point.
+
+<a id="lexer.FUNCTION"></a>
+#### `lexer.FUNCTION` (string)
+
+The token name for function tokens.
+
+<a id="lexer.IDENTIFIER"></a>
+#### `lexer.IDENTIFIER` (string)
+
+The token name for identifier tokens.
+
+<a id="lexer.KEYWORD"></a>
+#### `lexer.KEYWORD` (string)
+
+The token name for keyword tokens.
+
+<a id="lexer.LABEL"></a>
+#### `lexer.LABEL` (string)
+
+The token name for label tokens.
+
+<a id="lexer.NUMBER"></a>
+#### `lexer.NUMBER` (string)
+
+The token name for number tokens.
+
+<a id="lexer.OPERATOR"></a>
+#### `lexer.OPERATOR` (string)
+
+The token name for operator tokens.
+
+<a id="lexer.PREPROCESSOR"></a>
+#### `lexer.PREPROCESSOR` (string)
+
+The token name for preprocessor tokens.
+
+<a id="lexer.REGEX"></a>
+#### `lexer.REGEX` (string)
+
+The token name for regex tokens.
+
+<a id="lexer.STRING"></a>
+#### `lexer.STRING` (string)
+
+The token name for string tokens.
+
+<a id="lexer.TYPE"></a>
+#### `lexer.TYPE` (string)
+
+The token name for type tokens.
+
+<a id="lexer.VARIABLE"></a>
+#### `lexer.VARIABLE` (string)
+
+The token name for variable tokens.
+
+<a id="lexer.WHITESPACE"></a>
+#### `lexer.WHITESPACE` (string)
+
+The token name for whitespace tokens.
+
+<a id="lexer.alnum"></a>
+#### `lexer.alnum` (pattern)
+
+A pattern that matches any alphanumeric character ('A'-'Z', 'a'-'z',
+ '0'-'9').
+
+<a id="lexer.alpha"></a>
+#### `lexer.alpha` (pattern)
+
+A pattern that matches any alphabetic character ('A'-'Z', 'a'-'z').
+
+<a id="lexer.any"></a>
+#### `lexer.any` (pattern)
+
+A pattern that matches any single character.
+
+<a id="lexer.ascii"></a>
+#### `lexer.ascii` (pattern)
+
+A pattern that matches any ASCII character (codes 0 to 127).
+
+<a id="lexer.cntrl"></a>
+#### `lexer.cntrl` (pattern)
+
+A pattern that matches any control character (ASCII codes 0 to 31).
+
+<a id="lexer.dec_num"></a>
+#### `lexer.dec_num` (pattern)
+
+A pattern that matches a decimal number.
+
+<a id="lexer.digit"></a>
+#### `lexer.digit` (pattern)
+
+A pattern that matches any digit ('0'-'9').
+
+<a id="lexer.extend"></a>
+#### `lexer.extend` (pattern)
+
+A pattern that matches any ASCII extended character (codes 0 to 255).
+
+<a id="lexer.float"></a>
+#### `lexer.float` (pattern)
+
+A pattern that matches a floating point number.
+
+<a id="lexer.fold_by_indentation"></a>
+#### `lexer.fold_by_indentation` (boolean)
+
+Whether or not to fold based on indentation level if a lexer does not have
+ a folder.
+ Some lexers automatically enable this option. It is disabled by default.
+ This is an alias for `lexer.property['fold.by.indentation'] = '1|0'`.
+
+<a id="lexer.fold_compact"></a>
+#### `lexer.fold_compact` (boolean)
+
+Whether or not blank lines after an ending fold point are included in that
+ fold.
+ This option is disabled by default.
+ This is an alias for `lexer.property['fold.compact'] = '1|0'`.
+
+<a id="lexer.fold_level"></a>
+#### `lexer.fold_level` (table, Read-only)
+
+Table of fold level bit-masks for line numbers starting from 1.
+ Fold level masks are composed of an integer level combined with any of the
+ following bits:
+
+ * `lexer.FOLD_BASE`
+ The initial fold level.
+ * `lexer.FOLD_BLANK`
+ The line is blank.
+ * `lexer.FOLD_HEADER`
+ The line is a header, or fold point.
+
+<a id="lexer.fold_line_groups"></a>
+#### `lexer.fold_line_groups` (boolean)
+
+Whether or not to fold multiple, consecutive line groups (such as line
+ comments and import statements) and only show the top line.
+ This option is disabled by default.
+ This is an alias for `lexer.property['fold.line.groups'] = '1|0'`.
+
+<a id="lexer.fold_on_zero_sum_lines"></a>
+#### `lexer.fold_on_zero_sum_lines` (boolean)
+
+Whether or not to mark as a fold point lines that contain both an ending
+ and starting fold point. For example, `} else {` would be marked as a fold
+ point.
+ This option is disabled by default.
+ This is an alias for `lexer.property['fold.on.zero.sum.lines'] = '1|0'`.
+
+<a id="lexer.folding"></a>
+#### `lexer.folding` (boolean)
+
+Whether or not folding is enabled for the lexers that support it.
+ This option is disabled by default.
+ This is an alias for `lexer.property['fold'] = '1|0'`.
+
+<a id="lexer.graph"></a>
+#### `lexer.graph` (pattern)
+
+A pattern that matches any graphical character ('!' to '~').
+
+<a id="lexer.hex_num"></a>
+#### `lexer.hex_num` (pattern)
+
+A pattern that matches a hexadecimal number.
+
+<a id="lexer.indent_amount"></a>
+#### `lexer.indent_amount` (table, Read-only)
+
+Table of indentation amounts in character columns, for line numbers
+ starting from 1.
+
+<a id="lexer.integer"></a>
+#### `lexer.integer` (pattern)
+
+A pattern that matches either a decimal, hexadecimal, or octal number.
+
+<a id="lexer.line_state"></a>
+#### `lexer.line_state` (table)
+
+Table of integer line states for line numbers starting from 1.
+ Line states can be used by lexers for keeping track of persistent states.
+
+<a id="lexer.lower"></a>
+#### `lexer.lower` (pattern)
+
+A pattern that matches any lower case character ('a'-'z').
+
+<a id="lexer.newline"></a>
+#### `lexer.newline` (pattern)
+
+A pattern that matches a sequence of end of line characters.
+
+<a id="lexer.nonnewline"></a>
+#### `lexer.nonnewline` (pattern)
+
+A pattern that matches any single, non-newline character.
+
+<a id="lexer.number"></a>
+#### `lexer.number` (pattern)
+
+A pattern that matches a typical number, either a floating point, decimal,
+ hexadecimal, or octal number.
+
+<a id="lexer.oct_num"></a>
+#### `lexer.oct_num` (pattern)
+
+A pattern that matches an octal number.
+
+<a id="lexer.print"></a>
+#### `lexer.print` (pattern)
+
+A pattern that matches any printable character (' ' to '~').
+
+<a id="lexer.property"></a>
+#### `lexer.property` (table)
+
+Map of key-value string pairs.
+
+<a id="lexer.property_expanded"></a>
+#### `lexer.property_expanded` (table, Read-only)
+
+Map of key-value string pairs with `$()` and `%()` variable replacement
+ performed in values.
+
+<a id="lexer.property_int"></a>
+#### `lexer.property_int` (table, Read-only)
+
+Map of key-value pairs with values interpreted as numbers, or `0` if not
+ found.
+
+<a id="lexer.punct"></a>
+#### `lexer.punct` (pattern)
+
+A pattern that matches any punctuation character ('!' to '/', ':' to '@',
+ '[' to ''', '{' to '~').
+
+<a id="lexer.space"></a>
+#### `lexer.space` (pattern)
+
+A pattern that matches any whitespace character ('\t', '\v', '\f', '\n',
+ '\r', space).
+
+<a id="lexer.style_at"></a>
+#### `lexer.style_at` (table, Read-only)
+
+Table of style names at positions in the buffer starting from 1.
+
+<a id="lexer.upper"></a>
+#### `lexer.upper` (pattern)
+
+A pattern that matches any upper case character ('A'-'Z').
+
+<a id="lexer.word"></a>
+#### `lexer.word` (pattern)
+
+A pattern that matches a typical word. Words begin with a letter or
+ underscore and consist of alphanumeric and underscore characters.
+
+<a id="lexer.xdigit"></a>
+#### `lexer.xdigit` (pattern)
+
+A pattern that matches any hexadecimal digit ('0'-'9', 'A'-'F', 'a'-'f').
+
+
+### Functions defined by `lexer`
+
+<a id="lexer.add_fold_point"></a>
+#### `lexer.add_fold_point`(*lexer, token\_name, start\_symbol, end\_symbol*)
+
+Adds to lexer *lexer* a fold point whose beginning and end tokens are string
+*token_name* tokens with string content *start_symbol* and *end_symbol*,
+respectively.
+In the event that *start_symbol* may or may not be a fold point depending on
+context, and that additional processing is required, *end_symbol* may be a
+function that ultimately returns `1` (indicating a beginning fold point),
+`-1` (indicating an ending fold point), or `0` (indicating no fold point).
+That function is passed the following arguments:
+
+ * `text`: The text being processed for fold points.
+ * `pos`: The position in *text* of the beginning of the line currently
+ being processed.
+ * `line`: The text of the line currently being processed.
+ * `s`: The position of *start_symbol* in *line*.
+ * `symbol`: *start_symbol* itself.
+
+Parameters:
+
+* *`lexer`*: The lexer to add a fold point to.
+* *`token_name`*: The token name of text that indicates a fold point.
+* *`start_symbol`*: The text that indicates the beginning of a fold point.
+* *`end_symbol`*: Either the text that indicates the end of a fold point, or
+ a function that returns whether or not *start_symbol* is a beginning fold
+ point (1), an ending fold point (-1), or not a fold point at all (0).
+
+Usage:
+
+* `lex:add_fold_point(lexer.OPERATOR, '{', '}')`
+* `lex:add_fold_point(lexer.KEYWORD, 'if', 'end')`
+* `lex:add_fold_point(lexer.COMMENT, lexer.fold_consecutive_lines('#'))`
+* `lex:add_fold_point('custom', function(text, pos, line, s, symbol)
+ ... end)`
+
+<a id="lexer.add_rule"></a>
+#### `lexer.add_rule`(*lexer, id, rule*)
+
+Adds pattern *rule* identified by string *id* to the ordered list of rules
+for lexer *lexer*.
+
+Parameters:
+
+* *`lexer`*: The lexer to add the given rule to.
+* *`id`*: The id associated with this rule. It does not have to be the same
+ as the name passed to `token()`.
+* *`rule`*: The LPeg pattern of the rule.
+
+See also:
+
+* [`lexer.modify_rule`](#lexer.modify_rule)
+
+<a id="lexer.add_style"></a>
+#### `lexer.add_style`(*lexer, token\_name, style*)
+
+Associates string *token_name* in lexer *lexer* with style table *style*.
+*style* may have the following fields:
+
+* `font`: String font name.
+* `size`: Integer font size.
+* `bold`: Whether or not the font face is bold. The default value is `false`.
+* `weight`: Integer weight or boldness of a font, between 1 and 999.
+* `italics`: Whether or not the font face is italic. The default value is
+ `false`.
+* `underlined`: Whether or not the font face is underlined. The default value
+ is `false`.
+* `fore`: Font face foreground color in `0xBBGGRR` or `"#RRGGBB"` format.
+* `back`: Font face background color in `0xBBGGRR` or `"#RRGGBB"` format.
+* `eolfilled`: Whether or not the background color extends to the end of the
+ line. The default value is `false`.
+* `case`: Font case, `'u'` for upper, `'l'` for lower, and `'m'` for normal,
+ mixed case. The default value is `'m'`.
+* `visible`: Whether or not the text is visible. The default value is `true`.
+* `changeable`: Whether the text is changeable instead of read-only. The
+ default value is `true`.
+
+Field values may also contain "$(property.name)" expansions for properties
+defined in Scintilla, theme files, etc.
+
+Parameters:
+
+* *`lexer`*: The lexer to add a style to.
+* *`token_name`*: The name of the token to associated with the style.
+* *`style`*: A style string for Scintilla.
+
+Usage:
+
+* `lex:add_style('longstring', lexer.styles.string)`
+* `lex:add_style('deprecated_func', lexer.styles['function'] ..
+ {italics = true}`
+* `lex:add_style('visible_ws', lexer.styles.whitespace ..
+ {back = lexer.colors.grey}`
+
+<a id="lexer.embed"></a>
+#### `lexer.embed`(*lexer, child, start\_rule, end\_rule*)
+
+Embeds child lexer *child* in parent lexer *lexer* using patterns
+*start_rule* and *end_rule*, which signal the beginning and end of the
+embedded lexer, respectively.
+
+Parameters:
+
+* *`lexer`*: The parent lexer.
+* *`child`*: The child lexer.
+* *`start_rule`*: The pattern that signals the beginning of the embedded
+ lexer.
+* *`end_rule`*: The pattern that signals the end of the embedded lexer.
+
+Usage:
+
+* `html:embed(css, css_start_rule, css_end_rule)`
+* `html:embed(lex, php_start_rule, php_end_rule) -- from php lexer`
+
+<a id="lexer.fold"></a>
+#### `lexer.fold`(*lexer, text, start\_pos, start\_line, start\_level*)
+
+Determines fold points in a chunk of text *text* using lexer *lexer*,
+returning a table of fold levels associated with line numbers.
+*text* starts at position *start_pos* on line number *start_line* with a
+beginning fold level of *start_level* in the buffer.
+
+Parameters:
+
+* *`lexer`*: The lexer to fold text with.
+* *`text`*: The text in the buffer to fold.
+* *`start_pos`*: The position in the buffer *text* starts at, counting from
+ 1.
+* *`start_line`*: The line number *text* starts on, counting from 1.
+* *`start_level`*: The fold level *text* starts on.
+
+Return:
+
+* table of fold levels associated with line numbers.
+
+<a id="lexer.fold_consecutive_lines"></a>
+#### `lexer.fold_consecutive_lines`(*prefix*)
+
+Returns for `lexer.add_fold_point()` the parameters needed to fold
+consecutive lines that start with string *prefix*.
+
+Parameters:
+
+* *`prefix`*: The prefix string (e.g. a line comment).
+
+Usage:
+
+* `lex:add_fold_point(lexer.COMMENT, lexer.fold_consecutive_lines('--'))`
+* `lex:add_fold_point(lexer.COMMENT, lexer.fold_consecutive_lines('//'))`
+* `lex:add_fold_point(
+ lexer.KEYWORD, lexer.fold_consecutive_lines('import'))`
+
+<a id="lexer.get_rule"></a>
+#### `lexer.get_rule`(*lexer, id*)
+
+Returns the rule identified by string *id*.
+
+Parameters:
+
+* *`lexer`*: The lexer to fetch a rule from.
+* *`id`*: The id of the rule to fetch.
+
+Return:
+
+* pattern
+
+<a id="lexer.last_char_includes"></a>
+#### `lexer.last_char_includes`(*s*)
+
+Creates and returns a pattern that verifies the first non-whitespace
+character behind the current match position is in string set *s*.
+
+Parameters:
+
+* *`s`*: String character set like one passed to `lpeg.S()`.
+
+Usage:
+
+* `local regex = lexer.last_char_includes('+-*!%^&|=,([{') *
+ lexer.range('/')`
+
+Return:
+
+* pattern
+
+<a id="lexer.lex"></a>
+#### `lexer.lex`(*lexer, text, init\_style*)
+
+Lexes a chunk of text *text* (that has an initial style number of
+*init_style*) using lexer *lexer*, returning a table of token names and
+positions.
+
+Parameters:
+
+* *`lexer`*: The lexer to lex text with.
+* *`text`*: The text in the buffer to lex.
+* *`init_style`*: The current style. Multiple-language lexers use this to
+ determine which language to start lexing in.
+
+Return:
+
+* table of token names and positions.
+
+<a id="lexer.line_from_position"></a>
+#### `lexer.line_from_position`(*pos*)
+
+Returns the line number (starting from 1) of the line that contains position
+*pos*, which starts from 1.
+
+Parameters:
+
+* *`pos`*: The position to get the line number of.
+
+Return:
+
+* number
+
+<a id="lexer.load"></a>
+#### `lexer.load`(*name, alt\_name, cache*)
+
+Initializes or loads and returns the lexer of string name *name*.
+Scintilla calls this function in order to load a lexer. Parent lexers also
+call this function in order to load child lexers and vice-versa. The user
+calls this function in order to load a lexer when using Scintillua as a Lua
+library.
+
+Parameters:
+
+* *`name`*: The name of the lexing language.
+* *`alt_name`*: The alternate name of the lexing language. This is useful for
+ embedding the same child lexer with multiple sets of start and end tokens.
+* *`cache`*: Flag indicating whether or not to load lexers from the cache.
+ This should only be `true` when initially loading a lexer (e.g. not from
+ within another lexer for embedding purposes).
+ The default value is `false`.
+
+Return:
+
+* lexer object
+
+<a id="lexer.modify_rule"></a>
+#### `lexer.modify_rule`(*lexer, id, rule*)
+
+Replaces in lexer *lexer* the existing rule identified by string *id* with
+pattern *rule*.
+
+Parameters:
+
+* *`lexer`*: The lexer to modify.
+* *`id`*: The id associated with this rule.
+* *`rule`*: The LPeg pattern of the rule.
+
+<a id="lexer.new"></a>
+#### `lexer.new`(*name, opts*)
+
+Creates a returns a new lexer with the given name.
+
+Parameters:
+
+* *`name`*: The lexer's name.
+* *`opts`*: Table of lexer options. Options currently supported:
+ * `lex_by_line`: Whether or not the lexer only processes whole lines of
+ text (instead of arbitrary chunks of text) at a time.
+ Line lexers cannot look ahead to subsequent lines.
+ The default value is `false`.
+ * `fold_by_indentation`: Whether or not the lexer does not define any fold
+ points and that fold points should be calculated based on changes in line
+ indentation.
+ The default value is `false`.
+ * `case_insensitive_fold_points`: Whether or not fold points added via
+ `lexer.add_fold_point()` ignore case.
+ The default value is `false`.
+ * `inherit`: Lexer to inherit from.
+ The default value is `nil`.
+
+Usage:
+
+* `lexer.new('rhtml', {inherit = lexer.load('html')})`
+
+<a id="lexer.range"></a>
+#### `lexer.range`(*s, e, single\_line, escapes, balanced*)
+
+Creates and returns a pattern that matches a range of text bounded by strings
+or patterns *s* and *e*.
+This is a convenience function for matching more complicated ranges like
+strings with escape characters, balanced parentheses, and block comments
+(nested or not). *e* is optional and defaults to *s*. *single_line* indicates
+whether or not the range must be on a single line; *escapes* indicates
+whether or not to allow '\' as an escape character; and *balanced* indicates
+whether or not to handle balanced ranges like parentheses, and requires *s*
+and *e* to be different.
+
+Parameters:
+
+* *`s`*: String or pattern start of a range.
+* *`e`*: Optional string or pattern end of a range. The default value is *s*.
+* *`single_line`*: Optional flag indicating whether or not the range must be
+ on a single line.
+* *`escapes`*: Optional flag indicating whether or not the range end may
+ be escaped by a '\' character.
+ The default value is `false` unless *s* and *e* are identical,
+ single-character strings. In that case, the default value is `true`.
+* *`balanced`*: Optional flag indicating whether or not to match a balanced
+ range, like the "%b" Lua pattern. This flag only applies if *s* and *e* are
+ different.
+
+Usage:
+
+* `local dq_str_escapes = lexer.range('"')`
+* `local dq_str_noescapes = lexer.range('"', false, false)`
+* `local unbalanced_parens = lexer.range('(', ')')`
+* `local balanced_parens = lexer.range('(', ')', false, false, true)`
+
+Return:
+
+* pattern
+
+<a id="lexer.starts_line"></a>
+#### `lexer.starts_line`(*patt*)
+
+Creates and returns a pattern that matches pattern *patt* only at the
+beginning of a line.
+
+Parameters:
+
+* *`patt`*: The LPeg pattern to match on the beginning of a line.
+
+Usage:
+
+* `local preproc = token(lexer.PREPROCESSOR, lexer.starts_line('#') *
+ lexer.nonnewline^0)`
+
+Return:
+
+* pattern
+
+<a id="lexer.to_eol"></a>
+#### `lexer.to_eol`(*prefix, escape*)
+
+Creates and returns a pattern that matches from string or pattern *prefix*
+until the end of the line.
+*escape* indicates whether the end of the line can be escaped with a '\'
+character.
+
+Parameters:
+
+* *`prefix`*: String or pattern prefix to start matching at.
+* *`escape`*: Optional flag indicating whether or not newlines can be escaped
+ by a '\' character. The default value is `false`.
+
+Usage:
+
+* `local line_comment = lexer.to_eol('//')`
+* `local line_comment = lexer.to_eol(P('#') + ';')`
+
+Return:
+
+* pattern
+
+<a id="lexer.token"></a>
+#### `lexer.token`(*name, patt*)
+
+Creates and returns a token pattern with token name *name* and pattern
+*patt*.
+If *name* is not a predefined token name, its style must be defined via
+`lexer.add_style()`.
+
+Parameters:
+
+* *`name`*: The name of token. If this name is not a predefined token name,
+ then a style needs to be assiciated with it via `lexer.add_style()`.
+* *`patt`*: The LPeg pattern associated with the token.
+
+Usage:
+
+* `local ws = token(lexer.WHITESPACE, lexer.space^1)`
+* `local annotation = token('annotation', '@' * lexer.word)`
+
+Return:
+
+* pattern
+
+<a id="lexer.word_match"></a>
+#### `lexer.word_match`(*words, case\_insensitive, word\_chars*)
+
+Creates and returns a pattern that matches any single word in string *words*.
+*case_insensitive* indicates whether or not to ignore case when matching
+words.
+This is a convenience function for simplifying a set of ordered choice word
+patterns.
+If *words* is a multi-line string, it may contain Lua line comments (`--`)
+that will ultimately be ignored.
+
+Parameters:
+
+* *`words`*: A string list of words separated by spaces.
+* *`case_insensitive`*: Optional boolean flag indicating whether or not the
+ word match is case-insensitive. The default value is `false`.
+* *`word_chars`*: Unused legacy parameter.
+
+Usage:
+
+* `local keyword = token(lexer.KEYWORD, word_match[[foo bar baz]])`
+* `local keyword = token(lexer.KEYWORD, word_match([[foo-bar foo-baz
+ bar-foo bar-baz baz-foo baz-bar]], true))`
+
+Return:
+
+* pattern
+
+
+### Tables defined by `lexer`
+
+<a id="lexer.colors"></a>
+#### `lexer.colors`
+
+Map of color name strings to color values in `0xBBGGRR` or `"#RRGGBB"`
+format.
+Note: for applications running within a terminal emulator, only 16 color
+values are recognized, regardless of how many colors a user's terminal
+actually supports. (A terminal emulator's settings determines how to actually
+display these recognized color values, which may end up being mapped to a
+completely different color set.) In order to use the light variant of a
+color, some terminals require a style's `bold` attribute must be set along
+with that normal color. Recognized color values are black (0x000000), red
+(0x000080), green (0x008000), yellow (0x008080), blue (0x800000), magenta
+(0x800080), cyan (0x808000), white (0xC0C0C0), light black (0x404040), light
+red (0x0000FF), light green (0x00FF00), light yellow (0x00FFFF), light blue
+(0xFF0000), light magenta (0xFF00FF), light cyan (0xFFFF00), and light white
+(0xFFFFFF).
+
+<a id="lexer.styles"></a>
+#### `lexer.styles`
+
+Map of style names to style definition tables.
+
+Style names consist of the following default names as well as the token names
+defined by lexers.
+
+* `default`: The default style all others are based on.
+* `line_number`: The line number margin style.
+* `control_char`: The style of control character blocks.
+* `indent_guide`: The style of indentation guides.
+* `call_tip`: The style of call tip text. Only the `font`, `size`, `fore`,
+ and `back` style definition fields are supported.
+* `fold_display_text`: The style of text displayed next to folded lines.
+* `class`, `comment`, `constant`, `embedded`, `error`, `function`,
+ `identifier`, `keyword`, `label`, `number`, `operator`, `preprocessor`,
+ `regex`, `string`, `type`, `variable`, `whitespace`: Some token names used
+ by lexers. Some lexers may define more token names, so this list is not
+ exhaustive.
+
+Style definition tables may contain the following fields:
+
+* `font`: String font name.
+* `size`: Integer font size.
+* `bold`: Whether or not the font face is bold. The default value is `false`.
+* `weight`: Integer weight or boldness of a font, between 1 and 999.
+* `italics`: Whether or not the font face is italic. The default value is
+ `false`.
+* `underlined`: Whether or not the font face is underlined. The default value
+ is `false`.
+* `fore`: Font face foreground color in `0xBBGGRR` or `"#RRGGBB"` format.
+* `back`: Font face background color in `0xBBGGRR` or `"#RRGGBB"` format.
+* `eolfilled`: Whether or not the background color extends to the end of the
+ line. The default value is `false`.
+* `case`: Font case, `'u'` for upper, `'l'` for lower, and `'m'` for normal,
+ mixed case. The default value is `'m'`.
+* `visible`: Whether or not the text is visible. The default value is `true`.
+* `changeable`: Whether the text is changeable instead of read-only. The
+ default value is `true`.
+
+---
+<a id="lfs"></a>
+## The `lfs` Module
+---
+
+Extends the `lfs` library to find files in directories and determine absolute
+file paths.
+
+### Functions defined by `lfs`
+
+<a id="lfs.abspath"></a>
+#### `lfs.abspath`(*filename, prefix*)
+
+Returns the absolute path to string *filename*.
+*prefix* or `lfs.currentdir()` is prepended to a relative filename. The
+returned path is not guaranteed to exist.
+
+Parameters:
+
+* *`filename`*: The relative or absolute path to a file.
+* *`prefix`*: Optional prefix path prepended to a relative filename.
+
+Return:
+
+* string absolute path
+
+<a id="lfs.walk"></a>
+#### `lfs.walk`(*dir, filter, n, include\_dirs*)
+
+Returns an iterator that iterates over all files and sub-directories (up to
+*n* levels deep) in directory *dir* and yields each file found.
+String or list *filter* determines which files to yield, with the default
+filter being `lfs.default_filter`. A filter consists of Lua patterns that
+match file and directory paths to include or exclude. Exclusive patterns
+begin with a '!'. If no inclusive patterns are given, any path is initially
+considered. As a convenience, file extensions can be specified literally
+instead of as a Lua pattern (e.g. '.lua' vs. '%.lua$'), and '/' also matches
+the Windows directory separator ('[/\\]' is not needed).
+
+Parameters:
+
+* *`dir`*: The directory path to iterate over.
+* *`filter`*: Optional filter for files and directories to include and
+ exclude. The default value is `lfs.default_filter`.
+* *`n`*: Optional maximum number of directory levels to descend into.
+ The default value is `nil`, which indicates no limit.
+* *`include_dirs`*: Optional flag indicating whether or not to yield
+ directory names too. Directory names are passed with a trailing '/' or '\',
+ depending on the current platform.
+ The default value is `false`.
+
+See also:
+
+* [`lfs.filter`](#lfs.filter)
+
+
+### Tables defined by `lfs`
+
+<a id="lfs.default_filter"></a>
+#### `lfs.default_filter`
+
+The filter table containing common binary file extensions and version control
+directories to exclude when iterating over files and directories using
+`walk`.
+Extensions excluded: a, bmp, bz2, class, dll, exe, gif, gz, jar, jpeg, jpg,
+o, pdf, png, so, tar, tgz, tif, tiff, xz, and zip.
+Directories excluded: .bzr, .git, .hg, .svn, _FOSSIL_, and node_modules.
+
+See also:
+
+* [`lfs.walk`](#lfs.walk)
+
+---
+<a id="os"></a>
+## The `os` Module
+---
+
+Extends Lua's `os` library to provide process spawning capabilities.
+
+### Functions defined by `os`
+
+<a id="os.spawn"></a>
+#### `os.spawn`(*cmd, cwd, env, stdout\_cb, stderr\_cb, exit\_cb*)
+
+Spawns an interactive child process *cmd* in a separate thread, returning
+a handle to that process.
+On Windows, *cmd* is passed to `cmd.exe`: `%COMSPEC% /c [cmd]`.
+At the moment, only the Windows terminal version spawns processes in the same
+thread.
+
+Parameters:
+
+* *`cmd`*: A command line string that contains the program's name followed by
+ arguments to pass to it. `PATH` is searched for program names.
+* *`cwd`*: Optional current working directory (cwd) for the child
+ process. When omitted, the parent's cwd is used.
+* *`env`*: Optional table of environment variables for the child process.
+ When omitted, the parent's environment is used.
+* *`stdout_cb`*: Optional Lua function that accepts a string parameter for a
+ block of standard output read from the child. Stdout is read asynchronously
+ in 1KB or 0.5KB blocks (depending on the platform), or however much data is
+ available at the time.
+ At the moment, only the Win32 terminal version sends all output, whether it
+ be stdout or stderr, to this callback after the process finishes.
+* *`stderr_cb`*: Optional Lua function that accepts a string parameter for a
+ block of standard error read from the child. Stderr is read asynchronously
+ in 1KB or 0.5kB blocks (depending on the platform), or however much data is
+ available at the time.
+* *`exit_cb`*: Optional Lua function that is called when the child process
+ finishes. The child's exit status is passed.
+
+Usage:
+
+* `os.spawn('lua ' .. buffer.filename, print)`
+* `proc = os.spawn('lua -e "print(io.read())"', print)
+ proc:write('foo\n')`
+
+Return:
+
+* proc or nil plus an error message on failure
+
+<a id="spawn_proc:close"></a>
+#### `spawn_proc:close`()
+
+Closes standard input for process *spawn_proc*, effectively sending an EOF
+(end of file) to it.
+
+<a id="spawn_proc:kill"></a>
+#### `spawn_proc:kill`(*signal*)
+
+Kills running process *spawn_proc*, or sends it Unix signal *signal*.
+
+Parameters:
+
+* *`signal`*: Optional Unix signal to send to *spawn_proc*. The default value
+ is 9 (`SIGKILL`), which kills the process.
+
+<a id="spawn_proc:read"></a>
+#### `spawn_proc:read`(*arg*)
+
+Reads and returns stdout from process *spawn_proc*, according to string
+format or number *arg*.
+Similar to Lua's `io.read()` and blocks for input. *spawn_proc* must still be
+running. If an error occurs while reading, returns `nil`, an error code, and
+an error message.
+Ensure any read operations read all stdout available, as the stdout callback
+function passed to `os.spawn()` will not be called until the stdout buffer is
+clear.
+
+Parameters:
+
+* *`arg`*: Optional argument similar to those in Lua's `io.read()`, but "n"
+ is not supported. The default value is "l", which reads a line.
+
+Return:
+
+* string of bytes read
+
+<a id="spawn_proc:status"></a>
+#### `spawn_proc:status`()
+
+Returns the status of process *spawn_proc*, which is either "running" or
+"terminated".
+
+Return:
+
+* "running" or "terminated"
+
+<a id="spawn_proc:wait"></a>
+#### `spawn_proc:wait`()
+
+Blocks until process *spawn_proc* finishes (if it has not already done so)
+and returns its status code.
+
+Return:
+
+* integer status code
+
+<a id="spawn_proc:write"></a>
+#### `spawn_proc:write`(*...*)
+
+Writes string input to the stdin of process *spawn_proc*.
+Note: On Linux, if more than 65536 bytes (64K) are to be written, it is
+possible those bytes need to be written in 65536-byte (64K) chunks, or the
+process may not receive all input. However, it is also possible that there is
+a limit on how many bytes can be written in a short period of time, perhaps
+196608 bytes (192K).
+
+Parameters:
+
+* *`...`*: Standard input for *spawn_proc*.
+
+
+---
+<a id="string"></a>
+## The `string` Module
+---
+
+Extends Lua's `string` library to provide character set conversions.
+
+### Functions defined by `string`
+
+<a id="string.iconv"></a>
+#### `string.iconv`(*text, new, old*)
+
+Converts string *text* from encoding *old* to encoding *new* using GNU
+libiconv, returning the string result.
+Valid encodings are [GNU libiconv's encodings][] and include:
+
+ * European: ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U,
+ KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131},
+ Mac{Roman,CentralEurope,Iceland,Croatian,Romania},
+ Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh.
+ * Semitic: ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}.
+ * Japanese: EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2,
+ ISO-2022-JP-1.
+ * Chinese: EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950,
+ BIG5-HKSCS, BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999,
+ ISO-2022-CN, ISO-2022-CN-EXT.
+ * Korean: EUC-KR, CP949, ISO-2022-KR, JOHAB.
+ * Armenian: ARMSCII-8.
+ * Georgian: Georgian-Academy, Georgian-PS.
+ * Tajik: KOI8-T.
+ * Kazakh: PT154, RK1048.
+ * Thai: ISO-8859-11, TIS-620, CP874, MacThai.
+ * Laotian: MuleLao-1, CP1133.
+ * Vietnamese: VISCII, TCVN, CP1258.
+ * Unicode: UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16,
+ UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, C99, JAVA.
+
+[GNU libiconv's encodings]: http://www.gnu.org/software/libiconv/
+
+Parameters:
+
+* *`text`*: The text to convert.
+* *`new`*: The string encoding to convert to.
+* *`old`*: The string encoding to convert from.
+
+
+---
+<a id="textadept"></a>
+## The `textadept` Module
+---
+
+The textadept module.
+It provides utilities for editing text in Textadept.
+
+---
+<a id="textadept.bookmarks"></a>
+## The `textadept.bookmarks` Module
+---
+
+Bookmarks for Textadept.
+
+### Fields defined by `textadept.bookmarks`
+
+<a id="textadept.bookmarks.MARK_BOOKMARK"></a>
+#### `textadept.bookmarks.MARK_BOOKMARK` (number)
+
+The bookmark mark number.
+
+
+### Functions defined by `textadept.bookmarks`
+
+<a id="textadept.bookmarks.clear"></a>
+#### `textadept.bookmarks.clear`()
+
+Clears all bookmarks in the current buffer.
+
+<a id="textadept.bookmarks.goto_mark"></a>
+#### `textadept.bookmarks.goto_mark`(*next*)
+
+Prompts the user to select a bookmarked line to move the caret to the
+beginning of unless *next* is given.
+If *next* is `true` or `false`, moves the caret to the beginning of the next
+or previously bookmarked line, respectively.
+
+Parameters:
+
+* *`next`*: Optional flag indicating whether to go to the next or previous
+ bookmarked line relative to the current line. The default value is `nil`,
+ prompting the user for a bookmarked line to go to.
+
+<a id="textadept.bookmarks.toggle"></a>
+#### `textadept.bookmarks.toggle`()
+
+Toggles a bookmark on the current line.
+
+
+---
+<a id="textadept.editing"></a>
+## The `textadept.editing` Module
+---
+
+Editing features for Textadept.
+
+### Fields defined by `textadept.editing`
+
+<a id="textadept.editing.INDIC_BRACEMATCH"></a>
+#### `textadept.editing.INDIC_BRACEMATCH` (number)
+
+The matching brace highlight indicator number.
+
+<a id="textadept.editing.INDIC_HIGHLIGHT"></a>
+#### `textadept.editing.INDIC_HIGHLIGHT` (number)
+
+The word highlight indicator number.
+
+<a id="textadept.editing.auto_enclose"></a>
+#### `textadept.editing.auto_enclose` (bool)
+
+Whether or not to auto-enclose selected text when typing a punctuation
+ character, taking [`textadept.editing.auto_pairs`](#textadept.editing.auto_pairs) into account.
+ The default value is `false`.
+
+<a id="textadept.editing.auto_indent"></a>
+#### `textadept.editing.auto_indent` (bool)
+
+Match the previous line's indentation level after inserting a new line.
+ The default value is `true`.
+
+<a id="textadept.editing.autocomplete_all_words"></a>
+#### `textadept.editing.autocomplete_all_words` (bool)
+
+Autocomplete the current word using words from all open buffers.
+ If `true`, performance may be slow when many buffers are open.
+ The default value is `false`.
+
+<a id="textadept.editing.highlight_words"></a>
+#### `textadept.editing.highlight_words` (number)
+
+The word highlight mode.
+
+ * `textadept.editing.HIGHLIGHT_CURRENT`
+ Automatically highlight all instances of the current word.
+ * `textadept.editing.HIGHLIGHT_SELECTED`
+ Automatically highlight all instances of the selected word.
+ * `textadept.editing.HIGHLIGHT_NONE`
+ Do not automatically highlight words.
+
+ The default value is `textadept.editing.HIGHLIGHT_NONE`.
+
+<a id="textadept.editing.strip_trailing_spaces"></a>
+#### `textadept.editing.strip_trailing_spaces` (bool)
+
+Strip trailing whitespace before saving files.
+ The default value is `false`.
+
+
+### Functions defined by `textadept.editing`
+
+<a id="textadept.editing.autocomplete"></a>
+#### `textadept.editing.autocomplete`(*name*)
+
+Displays an autocompletion list provided by the autocompleter function
+associated with string *name*, and returns `true` if completions were found.
+
+Parameters:
+
+* *`name`*: The name of an autocompleter function in the `autocompleters`
+ table to use for providing autocompletions.
+
+See also:
+
+* [`textadept.editing.autocompleters`](#textadept.editing.autocompleters)
+
+<a id="textadept.editing.convert_indentation"></a>
+#### `textadept.editing.convert_indentation`()
+
+Converts indentation between tabs and spaces according to `buffer.use_tabs`.
+If `buffer.use_tabs` is `true`, `buffer.tab_width` indenting spaces are
+converted to tabs. Otherwise, all indenting tabs are converted to
+`buffer.tab_width` spaces.
+
+See also:
+
+* [`buffer.use_tabs`](#buffer.use_tabs)
+
+<a id="textadept.editing.enclose"></a>
+#### `textadept.editing.enclose`(*left, right*)
+
+Encloses the selected text or the current word within strings *left* and
+*right*, taking multiple selections into account.
+
+Parameters:
+
+* *`left`*: The left part of the enclosure.
+* *`right`*: The right part of the enclosure.
+
+<a id="textadept.editing.filter_through"></a>
+#### `textadept.editing.filter_through`(*command*)
+
+Passes the selected text or all buffer text to string shell command *command*
+as standard input (stdin) and replaces the input text with the command's
+standard output (stdout). *command* may contain shell pipes ('|').
+Standard input is as follows:
+
+1. If no text is selected, the entire buffer is used.
+2. If text is selected and spans a single line, only the selected text is
+used.
+3. If text is selected and spans multiple lines, all text on the lines that
+have text selected is passed as stdin. However, if the end of the selection
+is at the beginning of a line, only the line ending delimiters from the
+previous line are included. The rest of the line is excluded.
+
+Parameters:
+
+* *`command`*: The Linux, BSD, macOS, or Windows shell command to filter text
+ through. May contain pipes.
+
+<a id="textadept.editing.goto_line"></a>
+#### `textadept.editing.goto_line`(*line*)
+
+Moves the caret to the beginning of line number *line* or the user-specified
+line, ensuring *line* is visible.
+
+Parameters:
+
+* *`line`*: Optional line number to go to. If `nil`, the user is prompted for
+ one.
+
+<a id="textadept.editing.join_lines"></a>
+#### `textadept.editing.join_lines`()
+
+Joins the currently selected lines or the current line with the line below
+it.
+As long as any part of a line is selected, the entire line is eligible for
+joining.
+
+<a id="textadept.editing.paste_reindent"></a>
+#### `textadept.editing.paste_reindent`()
+
+Pastes the text from the clipboard, taking into account the buffer's
+indentation settings and the indentation of the current and preceding lines.
+
+<a id="textadept.editing.select_enclosed"></a>
+#### `textadept.editing.select_enclosed`(*left, right*)
+
+Selects the text between strings *left* and *right* that enclose the caret.
+If that range is already selected, toggles between selecting *left* and
+*right* as well.
+If *left* and *right* are not provided, they are assumed to be one of the
+delimiter pairs specified in `auto_pairs` and are inferred from the current
+position or selection.
+
+Parameters:
+
+* *`left`*: Optional left part of the enclosure.
+* *`right`*: Optional right part of the enclosure.
+
+See also:
+
+* [`textadept.editing.auto_pairs`](#textadept.editing.auto_pairs)
+
+<a id="textadept.editing.select_line"></a>
+#### `textadept.editing.select_line`()
+
+Selects the current line.
+
+<a id="textadept.editing.select_paragraph"></a>
+#### `textadept.editing.select_paragraph`()
+
+Selects the current paragraph.
+Paragraphs are surrounded by one or more blank lines.
+
+<a id="textadept.editing.select_word"></a>
+#### `textadept.editing.select_word`(*all*)
+
+Selects the current word or, if *all* is `true`, all occurrences of the
+current word.
+If a word is already selected, selects the next occurrence as a multiple
+selection.
+
+Parameters:
+
+* *`all`*: Whether or not to select all occurrences of the current word.
+ The default value is `false`.
+
+See also:
+
+* [`buffer.word_chars`](#buffer.word_chars)
+
+<a id="textadept.editing.show_documentation"></a>
+#### `textadept.editing.show_documentation`(*pos, ignore\_case*)
+
+Displays a call tip with documentation for the symbol under or directly
+behind position *pos* or the caret position.
+Documentation is read from API files in the `api_files` table.
+If a call tip is already shown, cycles to the next one if it exists.
+Symbols are determined by using `buffer.word_chars`.
+
+Parameters:
+
+* *`pos`*: Optional position of the symbol to show documentation for. If
+ omitted, the caret position is used.
+* *`ignore_case`*: Optional flag that indicates whether or not to search
+ API files case-insensitively for symbols. The default value is `false`.
+
+See also:
+
+* [`textadept.editing.api_files`](#textadept.editing.api_files)
+* [`buffer.word_chars`](#buffer.word_chars)
+
+<a id="textadept.editing.toggle_comment"></a>
+#### `textadept.editing.toggle_comment`()
+
+Comments or uncomments the selected lines based on the current language.
+As long as any part of a line is selected, the entire line is eligible for
+commenting/uncommenting.
+
+See also:
+
+* [`textadept.editing.comment_string`](#textadept.editing.comment_string)
+
+<a id="textadept.editing.transpose_chars"></a>
+#### `textadept.editing.transpose_chars`()
+
+Transposes characters intelligently.
+If the caret is at the end of a line, transposes the two characters before
+the caret. Otherwise, the characters to the left and right are.
+
+
+### Tables defined by `textadept.editing`
+
+<a id="textadept.editing.XPM_IMAGES"></a>
+#### `textadept.editing.XPM_IMAGES`
+
+Map of image names to registered image numbers.
+
+Fields:
+
+* `CLASS`: The image number for classes.
+* `NAMESPACE`: The image number for namespaces.
+* `METHOD`: The image number for methods.
+* `SIGNAL`: The image number for signals.
+* `SLOT`: The image number for slots.
+* `VARIABLE`: The image number for variables.
+* `STRUCT`: The image number for structures.
+* `TYPEDEF`: The image number for type definitions.
+
+<a id="textadept.editing.api_files"></a>
+#### `textadept.editing.api_files`
+
+Map of lexer names to API documentation file tables.
+File tables contain API file paths or functions that return such paths.
+Each line in an API file consists of a symbol name (not a fully qualified
+symbol name), a space character, and that symbol's documentation. "\n"
+represents a newline character.
+
+See also:
+
+* [`textadept.editing.show_documentation`](#textadept.editing.show_documentation)
+
+<a id="textadept.editing.auto_pairs"></a>
+#### `textadept.editing.auto_pairs`
+
+Map of auto-paired characters like parentheses, brackets, braces, and quotes.
+The ASCII values of opening characters are assigned to strings that contain
+complement characters. The default auto-paired characters are "()", "[]",
+"{}", "&apos;&apos;", and "&quot;&quot;".
+
+Usage:
+
+* `textadept.editing.auto_pairs[60] = '>' -- pair '<' and '>'`
+* `textadept.editing.auto_pairs = nil -- disable completely`
+
+<a id="textadept.editing.autocompleters"></a>
+#### `textadept.editing.autocompleters`
+
+Map of autocompleter names to autocompletion functions.
+Names are typically lexer names and autocompletion functions typically
+autocomplete symbols.
+Autocompletion functions must return two values: the number of characters
+behind the caret that are used as the prefix of the entity to be
+autocompleted, and a list of completions to be shown. Autocompletion lists
+are sorted automatically.
+
+See also:
+
+* [`textadept.editing.autocomplete`](#textadept.editing.autocomplete)
+
+<a id="textadept.editing.brace_matches"></a>
+#### `textadept.editing.brace_matches`
+
+Table of brace characters to highlight.
+The ASCII values of brace characters are keys and are assigned non-`nil`
+values. The default brace characters are '(', ')', '[', ']', '{', and '}'.
+
+Usage:
+
+* `textadept.editing.brace_matches[60] = true -- '<'`
+* `textadept.editing.brace_matches[62] = true -- '>'`
+
+<a id="textadept.editing.comment_string"></a>
+#### `textadept.editing.comment_string`
+
+Map of lexer names to line comment strings for programming languages, used by
+the `toggle_comment()` function.
+Keys are lexer names and values are either the language's line comment
+prefixes or block comment delimiters separated by a '|' character.
+
+See also:
+
+* [`textadept.editing.toggle_comment`](#textadept.editing.toggle_comment)
+
+<a id="textadept.editing.typeover_chars"></a>
+#### `textadept.editing.typeover_chars`
+
+Table of characters to move over when typed.
+The ASCII values of characters are keys and are assigned non-`nil` values.
+The default characters are ')', ']', '}', '&apos;', and '&quot;'.
+
+Usage:
+
+* `textadept.editing.typeover_chars[62] = true -- '>'`
+
+---
+<a id="textadept.file_types"></a>
+## The `textadept.file_types` Module
+---
+
+Handles file type detection for Textadept.
+
+### Fields defined by `textadept.file_types`
+
+<a id="events.LEXER_LOADED"></a>
+#### `events.LEXER_LOADED` (string)
+
+Emitted after loading a language lexer.
+ This is useful for overriding a language module's key bindings or other
+ properties since the module is not loaded when Textadept starts.
+ Arguments:
+
+ * _`name`_: The language lexer's name.
+
+
+### Functions defined by `textadept.file_types`
+
+<a id="textadept.file_types.select_lexer"></a>
+#### `textadept.file_types.select_lexer`()
+
+Prompts the user to select a lexer for the current buffer.
+
+See also:
+
+* [`buffer.set_lexer`](#buffer.set_lexer)
+
+
+### Tables defined by `textadept.file_types`
+
+<a id="textadept.file_types.extensions"></a>
+#### `textadept.file_types.extensions`
+
+Map of file extensions to their associated lexer names.
+If the file type is not recognized by its first-line, each file extension is
+matched against the file's extension.
+
+<a id="textadept.file_types.patterns"></a>
+#### `textadept.file_types.patterns`
+
+Map of first-line patterns to their associated lexer names.
+Each pattern is matched against the first line in the file.
+
+---
+<a id="textadept.keys"></a>
+## The `textadept.keys` Module
+---
+
+Defines key bindings for Textadept.
+This set of key bindings is pretty standard among other text editors, at
+least for basic editing commands and movements.
+
+### Key Bindings
+
+Win32, Linux, BSD|macOS|Terminal|Command
+-----------------|-----|--------|--------
+**File** | | |
+Ctrl+N |⌘N |M-^N |New file
+Ctrl+O |⌘O |^O |Open file
+Ctrl+Alt+O |^⌘O |M-^O |Open recent file...
+Ctrl+Shift+O |⌘⇧O |M-O |Reload file
+Ctrl+S |⌘S |^S |Save file
+Ctrl+Shift+S |⌘⇧S |M-^S |Save file as..
+None |None |None |Save all files
+Ctrl+W |⌘W |^W |Close file
+Ctrl+Shift+W |⌘⇧W |M-^W |Close all files
+None |None |None |Load session...
+None |None |None |Save session...
+Ctrl+Q |⌘Q |^Q |Quit
+**Edit** | | |
+Ctrl+Z<br/>Alt+Bksp |⌘Z |^Z^(†)<br/>M-Z|Undo
+Ctrl+Y<br/>Ctrl+Shift+Z |⌘⇧Z |^Y<br/>M-S-Z |Redo
+Ctrl+X<br/>Shift+Del |⌘X<br/>⇧⌦|^X |Cut
+Ctrl+C<br/>Ctrl+Ins |⌘C |^C |Copy
+Ctrl+V<br/>Shift+Ins |⌘V |^V |Paste
+Ctrl+Shift+V |⌘⇧V |M-V |Paste Reindent
+Ctrl+D |⌘D |None |Duplicate line
+Del |⌦<br/>^D |Del<br/>^D |Delete
+Alt+Del |^⌦ |M-Del<br/>M-D |Delete word
+Ctrl+A |⌘A |M-A |Select all
+Ctrl+M |^M |M-M |Match brace
+Ctrl+Enter |^Esc |M-Enter^(‡) |Complete word
+Ctrl+/ |^/ |M-/ |Toggle block comment
+Ctrl+T |^T |^T |Transpose characters
+Ctrl+Shift+J |^J |M-J |Join lines
+Ctrl+&#124; |⌘&#124; |^\ |Filter text through
+Ctrl+Shift+M |^⇧M |M-S-M |Select between delimiters
+Ctrl+< |⌘< |M-< |Select between XML tags
+Ctrl+> |⌘> |None |Select in XML tag
+Ctrl+Shift+D |⌘⇧D |M-S-W |Select word
+Ctrl+Shift+N |⌘⇧N |M-S-N |Select line
+Ctrl+Shift+P |⌘⇧P |M-S-P |Select paragraph
+Ctrl+Alt+U |^U |M-^U |Upper case selection
+Ctrl+Alt+Shift+U |^⇧U |M-^L |Lower case selection
+Alt+< |^< |M-> |Enclose as XML tags
+Alt+> |^> |None |Enclose as single XML tag
+Alt+" |^" |None |Enclose in double quotes
+Alt+' |^' |None |Enclose in single quotes
+Alt+( |^( |M-) |Enclose in parentheses
+Alt+[ |^[ |M-] |Enclose in brackets
+Alt+{ |^{ |M-} |Enclose in braces
+Ctrl+Shift+Up |^⇧⇡ |S-^Up |Move selected lines up
+Ctrl+Shift+Down |^⇧⇣ |S-^Down |Move selected lines down
+Ctrl+P |⌘, |M-~ |Preferences
+**Search** | | |
+Ctrl+F |⌘F |M-F<br/>M-S-F|Find
+Ctrl+G<br/>F3 |⌘G |M-G |Find next
+Ctrl+Shift+G<br/>Shift+F3|⌘⇧G |M-S-G |Find previous
+Ctrl+Alt+R |^R |M-R |Replace
+Ctrl+Alt+Shift+R |^⇧R |M-S-R |Replace all
+Ctrl+Alt+F |^⌘F |M-^F |Find incremental
+Ctrl+Shift+F |⌘⇧F |None |Find in files
+Ctrl+Alt+G |^⌘G |None |Goto next file found
+Ctrl+Alt+Shift+G |^⌘⇧G|None |Goto previous file found
+Ctrl+J |⌘J |^J |Jump to line
+**Tools** | | |
+Ctrl+E |⌘E |M-C |Command entry
+Ctrl+Shift+E |⌘⇧E |M-S-C |Select command
+Ctrl+R |⌘R |^R |Run
+Ctrl+Shift+R |⌘⇧R |M-^R |Compile
+Ctrl+Shift+A |⌘⇧A |None |Set Arguments...
+Ctrl+Shift+B |⌘⇧B |M-^B |Build
+Ctrl+Shift+X |⌘⇧X |M-^X |Stop
+Ctrl+Alt+E |^⌘E |M-X |Next Error
+Ctrl+Alt+Shift+E|^⌘⇧E |M-S-X |Previous Error
+Ctrl+F2 |⌘F2 |F1 |Toggle bookmark
+Ctrl+Shift+F2 |⌘⇧F2 |F6 |Clear bookmarks
+F2 |F2 |F2 |Next bookmark
+Shift+F2 |⇧F2 |F3 |Previous bookmark
+Alt+F2 |⌥F2 |F4 |Goto bookmark...
+F9 |F9 |F9 |Start/stop recording macro
+Shift+F9 |⇧F9 |F10 |Play recorded macro
+Ctrl+U |⌘U |^U |Quickly open `_USERHOME`
+None |None |None |Quickly open `_HOME`
+Ctrl+Alt+Shift+O|^⌘⇧O |M-S-O |Quickly open current directory
+Ctrl+Alt+Shift+P|^⌘⇧P |M-^P |Quickly open current project
+Ctrl+Shift+K |⌥⇧⇥ |M-S-K |Insert snippet...
+Tab |⇥ |Tab |Expand snippet or next placeholder
+Shift+Tab |⇧⇥ |S-Tab |Previous snippet placeholder
+Esc |Esc |Esc |Cancel snippet
+Ctrl+K |⌥⇥ |M-K |Complete trigger word
+Ctrl+Space |⌥Esc |^Space |Complete symbol
+Ctrl+H |^H |M-H<br/>M-S-H|Show documentation
+Ctrl+I |⌘I |M-S-I |Show style
+**Buffer** | | |
+Ctrl+Tab |^⇥ |M-N |Next buffer
+Ctrl+Shift+Tab |^⇧⇥ |M-P |Previous buffer
+Ctrl+B |⌘B |M-B<br/>M-S-B|Switch to buffer...
+None |None |None |Tab width: 2
+None |None |None |Tab width: 3
+None |None |None |Tab width: 4
+None |None |None |Tab width: 8
+Ctrl+Alt+Shift+T|^⇧T |M-T<br/>M-S-T|Toggle use tabs
+Ctrl+Alt+I |^I |M-I |Convert indentation
+None |None |None |CR+LF EOL mode
+None |None |None |LF EOL mode
+None |None |None |UTF-8 encoding
+None |None |None |ASCII encoding
+None |None |None |CP-1252 encoding
+None |None |None |UTF-16 encoding
+Ctrl+Alt+\\ |^\\ |None |Toggle wrap mode
+Ctrl+Alt+Shift+S|^⇧S |None |Toggle view whitespace
+Ctrl+Shift+L |⌘⇧L |M-S-L |Select lexer...
+**View** | | |
+Ctrl+Alt+N |^⌥⇥ |M-^V N |Next view
+Ctrl+Alt+P |^⌥⇧⇥ |M-^V P |Previous view
+Ctrl+Alt+S<br/>Ctrl+Alt+H|^S |M-^V S<br/>M-^V H|Split view horizontal
+Ctrl+Alt+V |^V |M-^V V |Split view vertical
+Ctrl+Alt+W |^W |M-^V W |Unsplit view
+Ctrl+Alt+Shift+W |^⇧W |M-^V S-W |Unsplit all views
+Ctrl+Alt++<br/>Ctrl+Alt+=|^+<br/>^=|M-^V +<br/>M-^V =|Grow view
+Ctrl+Alt+- |^- |M-^V - |Shrink view
+Ctrl+* |⌘* |M-* |Toggle current fold
+Ctrl+Alt+Shift+I |^⇧I |N/A |Toggle indent guides
+Ctrl+Alt+Shift+V |^⇧V |None |Toggle virtual space
+Ctrl+= |⌘= |N/A |Zoom in
+Ctrl+- |⌘- |N/A |Zoom out
+Ctrl+0 |⌘0 |N/A |Reset zoom
+**Help**| | |
+F1 |F1 |None|Open manual
+Shift+F1|⇧F1 |None|Open LuaDoc
+None |None|None|About
+**Movement** | | |
+Down |⇣<br/>^N |^N<br/>Down |Line down
+Shift+Down |⇧⇣<br/>^⇧N |S-Down |Line down extend selection
+Ctrl+Down |^⇣ |^Down |Scroll line down
+Alt+Shift+Down |⌥⇧⇣ |M-S-Down |Line down extend rect. selection
+Up |⇡<br/>^P |^P<br/>Up |Line up
+Shift+Up |⇧⇡<br/>^⇧P |S-Up |Line up extend selection
+Ctrl+Up |^⇡ |^Up |Scroll line up
+Alt+Shift+Up |⌥⇧⇡ |M-S-Up |Line up extend rect. selection
+Left |⇠<br/>^B |^B<br/>Left |Char left
+Shift+Left |⇧⇠<br/>^⇧B |S-Left |Char left extend selection
+Ctrl+Left |⌥⇠<br/>^⌘B |^Left |Word left
+Ctrl+Shift+Left |^⇧⇠<br/>^⌘⇧B|S-^Left |Word left extend selection
+Alt+Shift+Left |⌥⇧⇠ |M-S-Left |Char left extend rect. selection
+Right |⇢<br/>^F |^F<br/>Right|Char right
+Shift+Right |⇧⇢<br/>^⇧F |S-Right |Char right extend selection
+Ctrl+Right |⌥⇢<br/>^⌘F |^Right |Word right
+Ctrl+Shift+Right|^⇧⇢<br/>^⌘⇧F|S-^Right |Word right extend selection
+Alt+Shift+Right |⌥⇧⇢ |M-S-Right |Char right extend rect. selection
+Home |⌘⇠<br/>^A |^A<br/>Home |Line start
+Shift+Home |⌘⇧⇠<br/>^⇧A |M-S-A |Line start extend selection
+Ctrl+Home |⌘⇡<br/>⌘↖ |M-^A |Document start
+Ctrl+Shift+Home |⌘⇧⇡<br/>⌘⇧↖ |None |Document start extend selection
+Alt+Shift+Home |⌥⇧↖ |None |Line start extend rect. selection
+End |⌘⇢<br/>^E |^E<br/>End |Line end
+Shift+End |⌘⇧⇢<br/>^⇧E |M-S-E |Line end extend selection
+Ctrl+End |⌘⇣<br/>⌘↘ |M-^E |Document end
+Ctrl+Shift+End |⌘⇧⇣<br/>⌘⇧↘ |None |Document end extend selection
+Alt+Shift+End |⌥⇧↘ |None |Line end extend rect. selection
+PgUp |⇞ |PgUp |Page up
+Shift+PgUp |⇧⇞ |M-S-U |Page up extend selection
+Alt+Shift+PgUp |⌥⇧⇞ |None |Page up extend rect. selection
+PgDn |⇟ |PgDn |Page down
+Shift+PgDn |⇧⇟ |M-S-D |Page down extend selection
+Alt+Shift+PgDn |⌥⇧⇟ |None |Page down extend rect. selection
+Ctrl+Del |⌘⌦ |^Del |Delete word right
+Ctrl+Shift+Del |⌘⇧⌦ |S-^Del |Delete line right
+Ins |Ins |Ins |Toggle overtype
+Bksp |⌫<br/>⇧⌫ |^H<br/>Bksp |Delete back
+Ctrl+Bksp |⌘⌫ |None |Delete word left
+Ctrl+Shift+Bksp |⌘⇧⌫ |None |Delete line left
+Tab |⇥ |Tab<br/>^I |Insert tab or indent
+Shift+Tab |⇧⇥ |S-Tab |Dedent
+None |^K |^K |Cut to line end
+None |^L |None |Center line vertically
+N/A |N/A |^^ |Mark text at the caret position
+N/A |N/A |^] |Swap caret and mark anchor
+**UTF-8 Input** | | |
+Ctrl+Shift+U *xxxx* Enter|⌘⇧U *xxxx* ↩|M-U *xxxx* Enter|Insert U-*xxxx* char.
+**Find Fields**| | |
+Left |⇠<br/>^B |^B<br/>Left |Cursor left
+Right |⇢<br/>^F |^F<br/>Right|Cursor right
+Del |⌦ |Del |Delete forward
+Bksp |⌫ |^H<br/>Bksp |Delete back
+Ctrl+V |⌘V |^V |Paste
+N/A |N/A |^X |Cut all
+N/A |N/A |^Y |Copy all
+N/A |N/A |^U |Erase all
+Home |↖<br/>⌘⇠<br/>^A|^A |Home
+End |↘<br/>⌘⇢<br/>^E|^E |End
+N/A |N/A |^T |Transpose characters
+N/A |N/A |Tab |Toggle find/replace buttons
+Tab |⇥ |Down |Focus replace field
+Shift+Tab |⇧⇥ |Up |Focus find field
+Up |⇡ |^P |Cycle back through history
+Down |⇣ |^N |Cycle forward through history
+N/A |N/A |F1 |Toggle "Match Case"
+N/A |N/A |F2 |Toggle "Whole Word"
+N/A |N/A |F3 |Toggle "Regex"
+N/A |N/A |F4 |Toggle "Find in Files"
+
+†: Some terminals interpret ^Z as suspend; see FAQ for workaround.
+
+‡: Ctrl+Enter in Windows terminal version.
+
+---
+<a id="textadept.macros"></a>
+## The `textadept.macros` Module
+---
+
+A module for recording, playing, saving, and loading keyboard macros.
+Menu commands are also recorded.
+At this time, typing into multiple cursors during macro playback is not
+supported.
+
+### Functions defined by `textadept.macros`
+
+<a id="textadept.macros.load"></a>
+#### `textadept.macros.load`(*filename*)
+
+Loads a macro from file *filename* or the user-selected file.
+
+Parameters:
+
+* *`filename`*: Optional macro file to load. If `nil`, the user is prompted
+ for one.
+
+<a id="textadept.macros.play"></a>
+#### `textadept.macros.play`()
+
+Plays a recorded or loaded macro.
+
+See also:
+
+* [`textadept.macros.load`](#textadept.macros.load)
+
+<a id="textadept.macros.record"></a>
+#### `textadept.macros.record`()
+
+Toggles between starting and stopping macro recording.
+
+<a id="textadept.macros.save"></a>
+#### `textadept.macros.save`(*filename*)
+
+Saves a recorded macro to file *filename* or the user-selected file.
+
+Parameters:
+
+* *`filename`*: Optional filename to save the recorded macro to. If `nil`,
+ the user is prompted for one.
+
+
+---
+<a id="textadept.menu"></a>
+## The `textadept.menu` Module
+---
+
+Defines the menus used by Textadept.
+Menus are simply tables of menu items and submenus and may be edited in
+place. A menu item itself is a table whose first element is a menu label and
+whose second element is a menu command to run. Submenus have `title` keys
+assigned to string text.
+
+### Functions defined by `textadept.menu`
+
+<a id="textadept.menu.select_command"></a>
+#### `textadept.menu.select_command`()
+
+Prompts the user to select a menu command to run.
+
+
+### Tables defined by `textadept.menu`
+
+<a id="textadept.menu.context_menu"></a>
+#### `textadept.menu.context_menu`
+
+The default right-click context menu.
+Submenus, and menu items can be retrieved by name in addition to table index
+number.
+
+Usage:
+
+* `textadept.menu.context_menu[#textadept.menu.context_menu + 1] = {...}`
+
+<a id="textadept.menu.menubar"></a>
+#### `textadept.menu.menubar`
+
+The default main menubar.
+Individual menus, submenus, and menu items can be retrieved by name in
+addition to table index number.
+
+Usage:
+
+* `textadept.menu.menubar[_L['File']][_L['New']]`
+* `textadept.menu.menubar[_L['File']][_L['New']][2] = function() .. end`
+
+<a id="textadept.menu.tab_context_menu"></a>
+#### `textadept.menu.tab_context_menu`
+
+The default tabbar context menu.
+Submenus, and menu items can be retrieved by name in addition to table index
+number.
+
+---
+<a id="textadept.run"></a>
+## The `textadept.run` Module
+---
+
+Compile and run source code files with Textadept.
+[Language modules](#_M.Compile.and.Run) may tweak the `compile_commands`,
+`run_commands`, and `error_patterns` tables for particular languages.
+The user may tweak `build_commands` for particular projects.
+
+### Fields defined by `textadept.run`
+
+<a id="textadept.run.MARK_ERROR"></a>
+#### `textadept.run.MARK_ERROR` (number)
+
+The run or compile error marker number.
+
+<a id="textadept.run.MARK_WARNING"></a>
+#### `textadept.run.MARK_WARNING` (number)
+
+The run or compile warning marker number.
+
+<a id="events.BUILD_OUTPUT"></a>
+#### `events.BUILD_OUTPUT` (string)
+
+Emitted when executing a project's build shell command.
+ By default, output is printed to the message buffer. In order to override
+ this behavior, connect to the event with an index of `1` and return `true`.
+ Arguments:
+
+ * `output`: A line of string output from the command.
+
+<a id="events.COMPILE_OUTPUT"></a>
+#### `events.COMPILE_OUTPUT` (string)
+
+Emitted when executing a language's compile shell command.
+ By default, compiler output is printed to the message buffer. In order to
+ override this behavior, connect to the event with an index of `1` and
+ return `true`.
+ Arguments:
+
+ * `output`: A line of string output from the command.
+ * `ext_or_lexer`: The file extension or lexer name associated with the
+ executed compile command.
+
+<a id="events.RUN_OUTPUT"></a>
+#### `events.RUN_OUTPUT` (string)
+
+Emitted when executing a language's run shell command.
+ By default, output is printed to the message buffer. In order to override
+ this behavior, connect to the event with an index of `1` and return `true`.
+ Arguments:
+
+ * `output`: A line of string output from the command.
+ * `ext_or_lexer`: The file extension or lexer name associated with the
+ executed run command.
+
+<a id="textadept.run.run_in_background"></a>
+#### `textadept.run.run_in_background` (bool)
+
+Run shell commands silently in the background.
+ This only applies when the message buffer is open, though it does not have
+ to be visible.
+ The default value is `false`.
+
+
+### Functions defined by `textadept.run`
+
+<a id="textadept.run.build"></a>
+#### `textadept.run.build`(*root\_directory*)
+
+Builds the project whose root path is *root_directory* or the current project
+using the shell command from the `build_commands` table.
+If a "makefile" type of build file is found, prompts the user for the full
+build command.
+The current project is determined by either the buffer's filename or the
+current working directory.
+Emits `BUILD_OUTPUT` events.
+
+Parameters:
+
+* *`root_directory`*: The path to the project to build. The default value is
+ the current project.
+
+See also:
+
+* [`textadept.run.build_commands`](#textadept.run.build_commands)
+* [`events`](#events)
+
+<a id="textadept.run.compile"></a>
+#### `textadept.run.compile`(*filename*)
+
+Compiles file *filename* or the current file using an appropriate shell
+command from the `compile_commands` table.
+The shell command is determined from the file's filename, extension, or
+language in that order.
+Emits `COMPILE_OUTPUT` events.
+
+Parameters:
+
+* *`filename`*: Optional path to the file to compile. The default value is
+ the current file's filename.
+
+See also:
+
+* [`textadept.run.compile_commands`](#textadept.run.compile_commands)
+* [`events`](#events)
+
+<a id="textadept.run.goto_error"></a>
+#### `textadept.run.goto_error`(*line\_num, next*)
+
+Jumps to the source of the recognized compile/run warning or error on line
+number *line_num* in the message buffer.
+If *line_num* is `nil`, jumps to the next or previous warning or error,
+depending on boolean *next*. Displays an annotation with the warning or error
+message if possible.
+
+Parameters:
+
+* *`line_num`*: Optional line number in the message buffer that contains the
+ compile/run warning or error to go to. This parameter may be omitted
+ completely.
+* *`next`*: Optional flag indicating whether to go to the next recognized
+ warning/error or the previous one. Only applicable when *line_num* is
+ `nil`.
+
+See also:
+
+* [`textadept.run.error_patterns`](#textadept.run.error_patterns)
+
+<a id="textadept.run.run"></a>
+#### `textadept.run.run`(*filename*)
+
+Runs file *filename* or the current file using an appropriate shell command
+from the `run_commands` table.
+The shell command is determined from the file's filename, extension, or
+language in that order.
+Emits `RUN_OUTPUT` events.
+
+Parameters:
+
+* *`filename`*: Optional path to the file to run. The default value is the
+ current file's filename.
+
+See also:
+
+* [`textadept.run.run_commands`](#textadept.run.run_commands)
+* [`events`](#events)
+
+<a id="textadept.run.stop"></a>
+#### `textadept.run.stop`()
+
+Stops the currently running process, if any.
+
+
+### Tables defined by `textadept.run`
+
+<a id="textadept.run.build_commands"></a>
+#### `textadept.run.build_commands`
+
+Map of project root paths and "makefiles" to their associated "build" shell
+command line strings or functions that return such strings.
+Functions may also return a working directory to operate in. By default, it
+is the project's root directory.
+
+<a id="textadept.run.compile_commands"></a>
+#### `textadept.run.compile_commands`
+
+Map of filenames, file extensions, and lexer names to their associated
+"compile" shell command line strings or functions that return such strings.
+Command line strings may have the following macros:
+
+ + `%f`: The file's name, including its extension.
+ + `%e`: The file's name, excluding its extension.
+ + `%d`: The file's directory path.
+ + `%p`: The file's full path.
+
+Functions may also return a working directory to operate in. By default, it
+is the current file's parent directory.
+
+<a id="textadept.run.error_patterns"></a>
+#### `textadept.run.error_patterns`
+
+Map of file extensions and lexer names to their associated lists of string
+patterns that match warning and error messages emitted by compile and run
+commands for those file extensions and lexers.
+Patterns match single lines and contain captures for a filename, line number,
+column number (optional), and warning or error message (optional).
+Double-clicking a warning or error message takes the user to the source of
+that warning/error.
+Note: `(.-)` captures in patterns are interpreted as filenames; `(%d+)`
+captures are interpreted as line numbers first, and then column numbers; and
+any other capture is treated as warning/error message text.
+
+<a id="textadept.run.run_commands"></a>
+#### `textadept.run.run_commands`
+
+Map of filenames, file extensions, and lexer names to their associated "run"
+shell command line strings or functions that return strings.
+Command line strings may have the following macros:
+
+ + `%f`: The file's name, including its extension.
+ + `%e`: The file's name, excluding its extension.
+ + `%d`: The file's directory path.
+ + `%p`: The file's full path.
+
+Functions may also return a working directory to operate in. By default, it
+is the current file's parent directory.
+
+---
+<a id="textadept.session"></a>
+## The `textadept.session` Module
+---
+
+Session support for Textadept.
+
+### Fields defined by `textadept.session`
+
+<a id="events.SESSION_LOAD"></a>
+#### `events.SESSION_LOAD` (string)
+
+Emitted when loading a session.
+ Arguments:
+
+ * `session`: Table of session data to load. All handlers will have access
+ to this same table.
+
+<a id="events.SESSION_SAVE"></a>
+#### `events.SESSION_SAVE` (string)
+
+Emitted when saving a session.
+ Arguments:
+
+ * `session`: Table of session data to save. All handlers will have access
+ to this same table, and Textadept's default handler reserves the use of
+ some keys.
+ Note that functions, userdata, and circular table values cannot be saved.
+ The latter case is not recognized at all, so beware.
+
+<a id="textadept.session.save_on_quit"></a>
+#### `textadept.session.save_on_quit` (bool)
+
+Save the session when quitting.
+ The default value is `true` unless the user passed the command line switch
+ `-n` or `--nosession` to Textadept.
+
+
+### Functions defined by `textadept.session`
+
+<a id="textadept.session.load"></a>
+#### `textadept.session.load`(*filename*)
+
+Loads session file *filename* or the user-selected session, returning `true`
+if a session file was opened and read.
+Textadept restores split views, opened buffers, cursor information, recent
+files, and bookmarks.
+
+Parameters:
+
+* *`filename`*: Optional absolute path to the session file to load. If `nil`,
+ the user is prompted for one.
+
+Usage:
+
+* `textadept.session.load(filename)`
+
+Return:
+
+* `true` if the session file was opened and read; `nil` otherwise.
+
+<a id="textadept.session.save"></a>
+#### `textadept.session.save`(*filename*)
+
+Saves the session to file *filename* or the user-selected file.
+Saves split views, opened buffers, cursor information, recent files, and
+bookmarks.
+Upon quitting, the current session is saved to *filename* again, unless
+`textadept.session.save_on_quit` is `false`.
+
+Parameters:
+
+* *`filename`*: Optional absolute path to the session file to save. If `nil`,
+ the user is prompted for one.
+
+Usage:
+
+* `textadept.session.save(filename)`
+
+
+---
+<a id="textadept.snippets"></a>
+## The `textadept.snippets` Module
+---
+
+Snippets for Textadept.
+
+### Overview
+
+Define snippets in the global `snippets` table in key-value pairs. Each pair
+consists of either a string trigger word and its snippet text, or a string
+lexer name (from the *lexers/* directory) with a table of trigger words and
+snippet texts. When searching for a snippet to insert based on a trigger
+word, Textadept considers snippets in the current lexer to have priority,
+followed by the ones in the global table. This means if there are two
+snippets with the same trigger word, Textadept inserts the one specific to
+the current lexer, not the global one.
+
+### Special Sequences
+
+#### `%`*n*`(`*text*`)`
+
+Represents a placeholder, where *n* is an integer and *text* is default
+placeholder text. Textadept moves the caret to placeholders in numeric order
+each time it calls [`textadept.snippets.insert()`](#textadept.snippets.insert), finishing at either
+the "%0" placeholder if it exists or at the end of the snippet. Examples are
+
+ snippets['foo'] = 'foobar%1(baz)'
+ snippets['bar'] = 'start\n\t%0\nend'
+
+#### `%`*n*`{`*list*`}`
+
+Also represents a placeholder (where *n* is an integer), but presents a list
+of choices for placeholder text constructed from comma-separated *list*.
+Examples are
+
+ snippets['op'] = 'operator(%1(1), %2(1), "%3{add,sub,mul,div}")'
+
+#### `%`*n*
+
+Represents a mirror, where *n* is an integer. Mirrors with the same *n* as a
+placeholder mirror any user input in the placeholder. If no placeholder
+exists for *n*, the first occurrence of that mirror in the snippet becomes
+the placeholder, but with no default text. Examples are
+
+ snippets['foo'] = '%1(mirror), %1, on the wall'
+ snippets['q'] = '"%1"'
+
+#### `%`*n*`<`*Lua code*`>`<br/>`%`*n*`[`*Shell code*`]`
+
+Represents a transform, where *n* is an integer that has an associated
+placeholder, *Lua code* is arbitrary Lua code, and *Shell code* is arbitrary
+Shell code. Textadept executes the code as text is typed into placeholder
+*n*. If the transform omits *n*, Textadept executes the transform's code the
+moment the editor inserts the snippet.
+
+Textadept runs Lua code in its Lua State and replaces the transform with the
+code's return text. The code may use the temporary `text` and `selected_text`
+global variables which contain placeholder *n*'s text and the text originally
+selected when the snippet was inserted, respectively. An example is
+
+ snippets['attr'] = [[
+ %1(int) %2(foo) = %3;
+
+ %1 get%2<text:gsub('^.', function(c) return c:upper() end)>() {
+ return %2;
+ }
+ void set%2<text:gsub('^.', function(c) return c:upper() end)>(%1 value) {
+ %2 = value;
+ }
+ ]]
+
+Textadept executes shell code using Lua's [`io.popen()`][] and replaces the
+transform with the process' standard output (stdout). The code may use a `%`
+character to represent placeholder *n*'s text. An example is
+
+ snippets['env'] = '$%1(HOME) = %1[echo $%]'
+
+#### `%%`
+
+Stands for a single '%' since '%' by itself has a special meaning in
+snippets.
+
+#### `%(`<br/>`%{`
+
+Stands for a single '(' or '{', respectively, after a `%`*n* mirror.
+Otherwise, the mirror would be interpreted as a placeholder or transform.
+Note: it is currently not possible to escape a '<' or '[' immediately after
+a `%`*n* mirror due to `%<...>` and `%[...]` sequences being interpreted as
+code to execute.
+
+#### `\t`
+
+A single unit of indentation based on the buffer's indentation settings
+([`buffer.use_tabs`](#buffer.use_tabs) and [`buffer.tab_width`](#buffer.tab_width)).
+
+#### `\n`
+
+A single set of line ending delimiters based on the buffer's end of line mode
+([`buffer.eol_mode`](#buffer.eol_mode)).
+
+[`io.popen()`]: http://www.lua.org/manual/5.3/manual.html#pdf-io.popen
+
+
+### Fields defined by `textadept.snippets`
+
+<a id="textadept.snippets.INDIC_PLACEHOLDER"></a>
+#### `textadept.snippets.INDIC_PLACEHOLDER` (number)
+
+The snippet placeholder indicator number.
+
+<a id="textadept.editing.autocompleters.snippet"></a>
+#### `textadept.editing.autocompleters.snippet` (function)
+
+Autocompleter function for snippet trigger words.
+
+
+### Functions defined by `textadept.snippets`
+
+<a id="textadept.snippets.cancel_current"></a>
+#### `textadept.snippets.cancel_current`()
+
+Cancels the active snippet, removing all inserted text.
+Returns `false` if no snippet is active.
+
+Return:
+
+* `false` if no snippet is active; `nil` otherwise.
+
+<a id="textadept.snippets.insert"></a>
+#### `textadept.snippets.insert`(*text*)
+
+Inserts snippet text *text* or the snippet assigned to the trigger word
+behind the caret.
+Otherwise, if a snippet is active, goes to the active snippet's next
+placeholder. Returns `false` if no action was taken.
+
+Parameters:
+
+* *`text`*: Optional snippet text to insert. If `nil`, attempts to insert a
+ new snippet based on the trigger, the word behind caret, and the current
+ lexer.
+
+Return:
+
+* `false` if no action was taken; `nil` otherwise.
+
+See also:
+
+* [`buffer.word_chars`](#buffer.word_chars)
+
+<a id="textadept.snippets.previous"></a>
+#### `textadept.snippets.previous`()
+
+Jumps back to the previous snippet placeholder, reverting any changes from
+the current one.
+Returns `false` if no snippet is active.
+
+Return:
+
+* `false` if no snippet is active; `nil` otherwise.
+
+<a id="textadept.snippets.select"></a>
+#### `textadept.snippets.select`()
+
+Prompts the user to select a snippet to insert from a list of global and
+language-specific snippets.
+
+
+### Tables defined by `textadept.snippets`
+
+<a id="_G.snippets"></a>
+#### `_G.snippets`
+
+Map of snippet triggers with their snippet text or functions that return such
+text, with language-specific snippets tables assigned to a lexer name key.
+
+<a id="textadept.snippets.paths"></a>
+#### `textadept.snippets.paths`
+
+List of directory paths to look for snippet files in.
+Filenames are of the form *lexer.trigger.ext* or *trigger.ext* (*.ext* is an
+optional, arbitrary file extension). If the global `snippets` table does not
+contain a snippet for a given trigger, this table is consulted for a matching
+filename, and the contents of that file is inserted as a snippet.
+Note: If a directory has multiple snippets with the same trigger, the snippet
+chosen for insertion is not defined and may not be constant.
+
+---
+<a id="ui"></a>
+## The `ui` Module
+---
+
+Utilities for interacting with Textadept's user interface.
+
+### Fields defined by `ui`
+
+<a id="ui.buffer_statusbar_text"></a>
+#### `ui.buffer_statusbar_text` (string, Write-only)
+
+The text displayed in the buffer statusbar.
+
+<a id="ui.clipboard_text"></a>
+#### `ui.clipboard_text` (string)
+
+The text on the clipboard.
+
+<a id="ui.context_menu"></a>
+#### `ui.context_menu` (userdata)
+
+The buffer's context menu, a [`ui.menu()`](#ui.menu).
+ This is a low-level field. You probably want to use the higher-level
+ [`textadept.menu.context_menu`](#textadept.menu.context_menu).
+
+<a id="ui.maximized"></a>
+#### `ui.maximized` (bool)
+
+Whether or not Textadept's window is maximized.
+
+<a id="ui.silent_print"></a>
+#### `ui.silent_print` (bool)
+
+Whether or not to print messages to buffers silently.
+ This is not guaranteed to be a constant value, as Textadept may change it
+ for the editor's own purposes. This flag should be used only in conjunction
+ with a group of [`ui.print()`](#ui.print) and [`ui._print()`](#ui._print) function calls.
+ The default value is `false`, and focuses buffers when messages are printed
+ to them.
+
+<a id="ui.statusbar_text"></a>
+#### `ui.statusbar_text` (string, Write-only)
+
+The text displayed in the statusbar.
+
+<a id="ui.tab_context_menu"></a>
+#### `ui.tab_context_menu` (userdata)
+
+The context menu for the buffer's tab, a [`ui.menu()`](#ui.menu).
+ This is a low-level field. You probably want to use the higher-level
+ [`textadept.menu.tab_context_menu`](#textadept.menu.tab_context_menu).
+
+<a id="ui.tabs"></a>
+#### `ui.tabs` (bool)
+
+Whether or not to display the tab bar when multiple buffers are open.
+ The default value is `true`.
+
+<a id="ui.title"></a>
+#### `ui.title` (string, Write-only)
+
+The title text of Textadept's window.
+
+
+### Functions defined by `ui`
+
+<a id="ui._print"></a>
+#### `ui._print`(*buffer\_type, ...*)
+
+Prints the given string messages to the buffer of string type *buffer_type*.
+Opens a new buffer for printing messages to if necessary. If the message
+buffer is already open in a view, the message is printed to that view.
+Otherwise the view is split (unless `ui.tabs` is `true`) and the message
+buffer is displayed before being printed to.
+
+Parameters:
+
+* *`buffer_type`*: String type of message buffer.
+* *`...`*: Message strings.
+
+Usage:
+
+* `ui._print(_L['[Message Buffer]'], message)`
+
+<a id="ui.dialog"></a>
+#### `ui.dialog`(*kind, ...*)
+
+Low-level function for prompting the user with a [gtdialog][] of kind *kind*
+with the given string and table arguments, returning a formatted string of
+the dialog's output.
+You probably want to use the higher-level functions in the [`ui.dialogs`](#ui.dialogs)
+module.
+Table arguments containing strings are allowed and expanded in place. This is
+useful for filtered list dialogs with many items.
+
+[gtdialog]: https://orbitalquark.github.io/gtdialog/manual.html
+
+Parameters:
+
+* *`kind`*: The kind of gtdialog.
+* *`...`*: Parameters to the gtdialog.
+
+Return:
+
+* string gtdialog result.
+
+<a id="ui.get_split_table"></a>
+#### `ui.get_split_table`()
+
+Returns a split table that contains Textadept's current split view structure.
+This is primarily used in session saving.
+
+Return:
+
+* table of split views. Each split view entry is a table with 4
+ fields: `1`, `2`, `vertical`, and `size`. `1` and `2` have values of either
+ nested split view entries or the views themselves; `vertical` is a flag
+ that indicates if the split is vertical or not; and `size` is the integer
+ position of the split resizer.
+
+<a id="ui.goto_file"></a>
+#### `ui.goto_file`(*filename, split, preferred\_view, sloppy*)
+
+Switches to the existing view whose buffer's filename is *filename*.
+If no view was found and *split* is `true`, splits the current view in order
+to show the requested file. If *split* is `false`, shifts to the next or
+*preferred_view* view in order to show the requested file. If *sloppy* is
+`true`, requires only the basename of *filename* to match a buffer's
+`filename`. If the requested file was not found, it is opened in the desired
+view.
+
+Parameters:
+
+* *`filename`*: The filename of the buffer to go to.
+* *`split`*: Optional flag that indicates whether or not to open the buffer
+ in a split view if there is only one view. The default value is `false`.
+* *`preferred_view`*: Optional view to open the desired buffer in if the
+ buffer is not visible in any other view.
+* *`sloppy`*: Optional flag that indicates whether or not to not match
+ *filename* to `buffer.filename` exactly. When `true`, matches *filename* to
+ only the last part of `buffer.filename` This is useful for run and compile
+ commands which output relative filenames and paths instead of full ones and
+ it is likely that the file in question is already open. The default value
+ is `false`.
+
+<a id="ui.goto_view"></a>
+#### `ui.goto_view`(*view*)
+
+Shifts to view *view* or the view *view* number of views relative to the
+current one.
+Emits `VIEW_BEFORE_SWITCH` and `VIEW_AFTER_SWITCH` events.
+
+Parameters:
+
+* *`view`*: A view or relative view number (typically 1 or -1).
+
+See also:
+
+* [`_VIEWS`](#_VIEWS)
+* [`events.VIEW_BEFORE_SWITCH`](#events.VIEW_BEFORE_SWITCH)
+* [`events.VIEW_AFTER_SWITCH`](#events.VIEW_AFTER_SWITCH)
+
+<a id="ui.menu"></a>
+#### `ui.menu`(*menu\_table*)
+
+Low-level function for creating a menu from table *menu_table* and returning
+the userdata.
+You probably want to use the higher-level `textadept.menu.menubar`,
+`textadept.menu.context_menu`, or `textadept.menu.tab_context_menu` tables.
+Emits a `MENU_CLICKED` event when a menu item is selected.
+
+Parameters:
+
+* *`menu_table`*: A table defining the menu. It is an ordered list of tables
+ with a string menu item, integer menu ID, and optional GDK keycode and
+ modifier mask. The latter two are used to display key shortcuts in the
+ menu. '_' characters are treated as a menu mnemonics. If the menu item is
+ empty, a menu separator item is created. Submenus are just nested
+ menu-structure tables. Their title text is defined with a `title` key.
+
+Usage:
+
+* `ui.menu{{'_New', 1}, {'_Open', 2}, {''}, {'_Quit', 4}}`
+* `ui.menu{{'_New', 1, string.byte('n'), 4}} -- 'Ctrl+N'`
+
+See also:
+
+* [`events.MENU_CLICKED`](#events.MENU_CLICKED)
+* [`textadept.menu.menubar`](#textadept.menu.menubar)
+* [`textadept.menu.context_menu`](#textadept.menu.context_menu)
+* [`textadept.menu.tab_context_menu`](#textadept.menu.tab_context_menu)
+
+<a id="ui.print"></a>
+#### `ui.print`(*...*)
+
+Prints the given string messages to the message buffer.
+Opens a new buffer if one has not already been opened for printing messages.
+
+Parameters:
+
+* *`...`*: Message strings.
+
+<a id="ui.switch_buffer"></a>
+#### `ui.switch_buffer`(*zorder*)
+
+Prompts the user to select a buffer to switch to.
+Buffers are listed in the order they were opened unless `zorder` is `true`,
+in which case buffers are listed by their z-order (most recently viewed to
+least recently viewed).
+
+Parameters:
+
+* *`zorder`*: Flag that indicates whether or not to list buffers by their
+ z-order. The default value is `false`.
+
+
+### Tables defined by `ui`
+
+<a id="ui.menubar"></a>
+#### `ui.menubar`
+
+A table of menus defining a menubar. (Write-only).
+This is a low-level field. You probably want to use the higher-level
+`textadept.menu.menubar`.
+
+See also:
+
+* [`textadept.menu.menubar`](#textadept.menu.menubar)
+
+<a id="ui.size"></a>
+#### `ui.size`
+
+A table containing the width and height pixel values of Textadept's window.
+
+---
+<a id="ui.command_entry"></a>
+## The `ui.command_entry` Module
+---
+
+Textadept's Command Entry.
+It supports multiple modes that each have their own functionality (such as
+running Lua code and filtering text through shell commands) and history.
+
+### Fields defined by `ui.command_entry`
+
+<a id="ui.command_entry.active"></a>
+#### `ui.command_entry.active` (boolean)
+
+Whether or not the command entry is active.
+
+<a id="ui.command_entry.height"></a>
+#### `ui.command_entry.height` (number)
+
+The height in pixels of the command entry.
+
+
+### Functions defined by `ui.command_entry`
+
+<a id="ui.command_entry.focus"></a>
+#### `ui.command_entry.focus`()
+
+Opens the command entry.
+
+<a id="ui.command_entry.run"></a>
+#### `ui.command_entry.run`(*f, keys, lang, height*)
+
+Opens the command entry, subjecting it to any key bindings defined in table
+*keys*, highlighting text with lexer name *lang*, and displaying
+*height* number of lines at a time, and then when the `Enter` key is pressed,
+closes the command entry and calls function *f* (if non-`nil`) with the
+command entry's text as an argument.
+By default with no arguments given, opens a Lua command entry.
+The command entry does not respond to Textadept's default key bindings, but
+instead to the key bindings defined in *keys* and in
+`ui.command_entry.editing_keys`.
+
+Parameters:
+
+* *`f`*: Optional function to call upon pressing `Enter` in the command
+ entry, ending the mode. It should accept the command entry text as an
+ argument.
+* *`keys`*: Optional table of key bindings to respond to. This is in
+ addition to the basic editing and movement keys defined in
+ `ui.command_entry.editing_keys`.
+ `Esc` and `Enter` are automatically defined to cancel and finish the
+ command entry, respectively.
+ This parameter may be omitted completely.
+* *`lang`*: Optional string lexer name to use for command entry text. The
+ default value is `'text'`.
+* *`height`*: Optional number of lines to display in the command entry. The
+ default value is `1`.
+
+Usage:
+
+* `ui.command_entry.run(ui.print)`
+
+See also:
+
+* [`ui.command_entry.editing_keys`](#ui.command_entry.editing_keys)
+
+
+### Tables defined by `ui.command_entry`
+
+<a id="ui.command_entry.editing_keys"></a>
+#### `ui.command_entry.editing_keys`
+
+A metatable with typical platform-specific key bindings for text entries.
+This metatable may be used to add basic editing and movement keys to command
+entry modes. It is automatically added to command entry modes unless a
+metatable was previously set.
+
+Usage:
+
+* `setmetatable(mode_keys, ui.command_entry.editing_keys)`
+
+---
+<a id="ui.dialogs"></a>
+## The `ui.dialogs` Module
+---
+
+Provides a set of interactive dialog prompts for user input.
+
+### Functions defined by `ui.dialogs`
+
+<a id="ui.dialogs.colorselect"></a>
+#### `ui.dialogs.colorselect`(*options*)
+
+Prompts the user with a color selection dialog defined by dialog options
+table *options*, returning the color selected.
+If the user canceled the dialog, returns `nil`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the option select dialog.
+
+ * `title`: The dialog's title text.
+ * `color`: The initially selected color as either a number in "0xBBGGRR"
+ format, or as a string in "#RRGGBB" format.
+ * `palette`: The list of colors to show in the dialog's color palette.
+ Up to 20 colors can be specified as either numbers in "0xBBGGRR" format
+ or as strings in "#RRGGBB" format. If `true` (no list was given), a
+ default palette is shown.
+ * `string_output`: Return the selected color in string "#RRGGBB" format
+ instead of numeric "0xBBGGRR" format. The default value is `false`.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+
+Usage:
+
+* `ui.dialogs.colorselect{title = 'Foreground color', color = 0x000000,
+ palette = {'#000000', 0x0000FF, '#00FF00', 0xFF0000}}`
+
+Return:
+
+* selected color
+
+<a id="ui.dialogs.dropdown"></a>
+#### `ui.dialogs.dropdown`(*options*)
+
+Prompts the user with a drop-down item selection dialog defined by dialog
+options table *options*, returning the selected button's index along with the
+index of the selected item.
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the selected item's text.
+If the dialog closed due to *options*.`exit_onchange`, returns `4` along with
+either the selected item's index or its text. If the dialog timed out,
+returns `0` or `"timeout"`. If the user canceled the dialog, returns `-1` or
+`"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the drop-down dialog.
+
+ * `title`: The dialog's title text.
+ * `text`: The dialog's main message text.
+ * `items`: The list of string items to show in the drop-down.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `exit_onchange`: Close the dialog after selecting a new item. The default
+ value is `false`.
+ * `select`: The index of the initially selected list item. The default
+ value is `1`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) and the selected item's text (instead of its index). If no item
+ was selected, returns the dialog's exit status (instead of its exit
+ code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Usage:
+
+* `ui.dialogs.dropdown{title = 'Select Encoding', width = 200,
+ items = io.encodings, string_output = true}`
+
+Return:
+
+* selected button or exit code, selected item
+
+<a id="ui.dialogs.filesave"></a>
+#### `ui.dialogs.filesave`(*options*)
+
+Prompts the user with a file save dialog defined by dialog options table
+*options*, returning the string file chosen.
+If the user canceled the dialog, returns `nil`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the dialog.
+
+ * `title`: The dialog's title text.
+ * `with_directory`: The initial filesystem directory to show.
+ * `with_file`: The initially chosen filename. This option requires
+ `with_directory` to be set.
+ * `with_extension`: The list of extensions selectable files must have.
+ * `no_create_directories`: Prevent the user from creating new directories.
+ The default value is `false`.
+
+Return:
+
+* filename or nil
+
+<a id="ui.dialogs.fileselect"></a>
+#### `ui.dialogs.fileselect`(*options*)
+
+Prompts the user with a file selection dialog defined by dialog options
+table *options*, returning the string file selected.
+If *options*.`select_multiple` is `true`, returns the list of files selected.
+If the user canceled the dialog, returns `nil`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the dialog.
+
+ * `title`: The dialog's title text.
+ * `with_directory`: The initial filesystem directory to show.
+ * `with_file`: The initially selected filename. This option requires
+ `with_directory` to be set.
+ * `with_extension`: The list of extensions selectable files must have.
+ * `select_multiple`: Allow the user to select multiple files. The default
+ value is `false`.
+ * `select_only_directories`: Only allow the user to select directories. The
+ default value is `false`.
+
+Usage:
+
+* `ui.dialogs.fileselect{title = 'Open C File', with_directory = _HOME,
+ with_extension = {'c', 'h'}, select_multiple = true}`
+
+Return:
+
+* filename, list of filenames, or nil
+
+<a id="ui.dialogs.filteredlist"></a>
+#### `ui.dialogs.filteredlist`(*options*)
+
+Prompts the user with a filtered list item selection dialog defined by dialog
+options table *options*, returning the selected button's index along with the
+index or indices of the selected item or items (depending on whether or not
+*options*.`select_multiple` is `true`).
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the text of the selected item or items.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+Spaces in the filter text are treated as wildcards.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the filtered list dialog.
+
+ * `title`: The dialog's title text.
+ * `informative_text`: The dialog's main message text.
+ * `text`: The dialog's initial input text.
+ * `columns`: The list of string column names for list rows.
+ * `items`: The list of string items to show in the filtered list.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `select_multiple`: Allow the user to select multiple items. The default
+ value is `false`.
+ * `search_column`: The column number to filter the input text against. The
+ default value is `1`. This option requires `columns` to be set and
+ contain at least *n* column names.
+ * `output_column`: The column number to use for `string_output`. The
+ default value is `1`. This option requires `columns` to be set and
+ contain at least *n* column names.
+ * `string_output`: Return the selected button's label (instead of its
+ index) and the selected item's text (instead of its index). If no item
+ was selected, returns the dialog's exit status (instead of its exit
+ code). The default value is `false`.
+ * `width`: The dialog's pixel width. The default width stretches nearly the
+ width of Textadept's window.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Usage:
+
+* `ui.dialogs.filteredlist{title = 'Title', columns = {'Foo', 'Bar'},
+ items = {'a', 'b', 'c', 'd'}}`
+
+Return:
+
+* selected button or exit code, selected item or list of selected items
+
+<a id="ui.dialogs.fontselect"></a>
+#### `ui.dialogs.fontselect`(*options*)
+
+Prompts the user with a font selection dialog defined by dialog options
+table *options*, returning the font selected (including style and size).
+If the user canceled the dialog, returns `nil`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the option select dialog.
+
+ * `title`: The dialog's title text.
+ * `text`: The font preview text.
+ * `font_name`: The initially selected font name.
+ * `font_size`: The initially selected font size. The default value is `12`.
+ * `font_style`: The initially selected font style. The available options
+ are `"regular"`, `"bold"`, `"italic"`, and `"bold italic"`. The default
+ value is `"regular"`.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+
+Usage:
+
+* `ui.dialogs.fontselect{title = 'Font', font_name = 'Monospace',
+ font_size = 10}`
+
+Return:
+
+* selected font, including style and size
+
+<a id="ui.dialogs.inputbox"></a>
+#### `ui.dialogs.inputbox`(*options*)
+
+Prompts the user with an inputbox dialog defined by dialog options table
+*options*, returning the selected button's index along with the user's
+input text (the latter as a string or table, depending on the type of
+*options*.`informative_text`).
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the user's input text.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the inputbox.
+
+ * `title`: The dialog's title text.
+ * `informative_text`: The dialog's main message text. If the value is a
+ table, the first table value is the main message text and any subsequent
+ values are used as the labels for multiple entry boxes. Providing a
+ single label has no effect.
+ * `text`: The dialog's initial input text. If the value is a table, the
+ table values are used to populate the multiple entry boxes defined by
+ `informative_text`.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Usage:
+
+* `ui.dialogs.inputbox{title = 'Goto Line', informative_text = 'Line:',
+ text = '1'}`
+
+Return:
+
+* selected button or exit code, input text
+
+<a id="ui.dialogs.msgbox"></a>
+#### `ui.dialogs.msgbox`(*options*)
+
+Prompts the user with a generic message box dialog defined by dialog options
+table *options*, returning the selected button's index.
+If *options*.`string_output` is `true`, returns the selected button's label.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the message box.
+
+ * `title`: The dialog's title text.
+ * `text`: The dialog's main message text.
+ * `informative_text`: The dialog's extra informative text.
+ * `icon`: The dialog's GTK stock icon name. Examples are
+ "gtk-dialog-error", "gtk-dialog-info", "gtk-dialog-question", and
+ "gtk-dialog-warning". The dialog does not display an icon by default.
+ * `icon_file`: The dialog's icon file path. This option has no effect when
+ `icon` is set.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Usage:
+
+* `ui.dialogs.msgbox{title = 'EOL Mode', text = 'Which EOL?',
+ icon = 'gtk-dialog-question', button1 = 'CRLF', button2 = 'CR',
+ button3 = 'LF'}`
+
+Return:
+
+* selected button or exit code
+
+<a id="ui.dialogs.ok_msgbox"></a>
+#### `ui.dialogs.ok_msgbox`(*options*)
+
+Prompts the user with a generic message box dialog defined by dialog options
+table *options* and with localized "Ok" and "Cancel" buttons, returning the
+selected button's index.
+If *options*.`string_output` is `true`, returns the selected button's label.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the message box.
+
+ * `title`: The dialog's title text.
+ * `text`: The dialog's main message text.
+ * `informative_text`: The dialog's extra informative text.
+ * `icon`: The dialog's GTK stock icon name. Examples are
+ "gtk-dialog-error", "gtk-dialog-info", "gtk-dialog-question", and
+ "gtk-dialog-warning". The dialog does not display an icon by default.
+ * `icon_file`: The dialog's icon file path. This option has no effect when
+ `icon` is set.
+ * `no_cancel`: Do not display the "Cancel" button. The default value is
+ `false`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Return:
+
+* selected button or exit code
+
+<a id="ui.dialogs.optionselect"></a>
+#### `ui.dialogs.optionselect`(*options*)
+
+Prompts the user with an option selection dialog defined by dialog options
+table *options*, returning the selected button's index along with the indices
+of the selected options.
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the text of the selected options.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the option select dialog.
+
+ * `title`: The dialog's title text.
+ * `text`: The dialog's main message text.
+ * `items`: The list of string options to show in the option group.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `select`: The indices of initially selected options.
+ * `string_output`: Return the selected button's label or the dialog's exit
+ status along with the selected options' text instead of the button's
+ index or the dialog's exit code along with the options' indices. The
+ default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Usage:
+
+* `ui.dialogs.optionselect{title = 'Language',
+ informative_text = 'Check the languages you understand',
+ items = {'English', 'Romanian'}, select = 1, string_output = true}`
+
+Return:
+
+* selected button or exit code, list of selected options
+
+<a id="ui.dialogs.progressbar"></a>
+#### `ui.dialogs.progressbar`(*options, f*)
+
+Displays a progressbar dialog, defined by dialog options table *options*,
+that receives updates from function *f*.
+Returns "stopped" if *options*.`stoppable` is `true` and the user clicked the
+"Stop" button. Otherwise, returns `nil`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the progressbar dialog.
+
+ * `title`: The dialog's title text.
+ * `percent`: The initial progressbar percentage between 0 and 100.
+ * `text`: The initial progressbar display text (GTK only).
+ * `indeterminate`: Show the progress bar as "busy", with no percentage
+ updates.
+ * `stoppable`: Show the "Stop" button.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+* *`f`*: Function repeatedly called to do work and provide progress updates.
+ The function is called without arguments and must return either `nil`,
+ which indicates work is complete, or a progress percentage number in the
+ range 0-100 and an optional string to display (GTK only). If the text is
+ either "stop disable" or "stop enable" and *options*.`stoppable` is `true`,
+ the "Stop" button is disabled or enabled, respectively.
+
+Usage:
+
+* `ui.dialogs.progressbar({stoppable = true},
+ function() if work() then return percent, status else return nil end end)`
+
+Return:
+
+* nil or "stopped"
+
+<a id="ui.dialogs.secure_inputbox"></a>
+#### `ui.dialogs.secure_inputbox`(*options*)
+
+Prompts the user with a masked inputbox dialog defined by dialog options
+table *options*, returning the selected button's index along with the user's
+input text (the latter as a string or table, depending on the type of
+*options*.`informative_text`).
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the user's input text.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the inputbox.
+
+ * `title`: The dialog's title text.
+ * `informative_text`: The dialog's main message text. If the value is a
+ table, the first table value is the main message text and any subsequent
+ values are used as the labels for multiple entry boxes. Providing a
+ single label has no effect.
+ * `text`: The dialog's initial input text. If the value is a table, the
+ table values are used to populate the multiple entry boxes defined by
+ `informative_text`.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Return:
+
+* selected button or exit code, input text
+
+<a id="ui.dialogs.secure_standard_inputbox"></a>
+#### `ui.dialogs.secure_standard_inputbox`(*options*)
+
+Prompts the user with a masked inputbox dialog defined by dialog options
+table *options* and with localized "Ok" and "Cancel" buttons, returning the
+selected button's index along with the user's input text (the latter as a
+string or table, depending on the type of *options*.`informative_text`).
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the user's input text.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the inputbox.
+
+ * `title`: The dialog's title text.
+ * `informative_text`: The dialog's main message text. If the value is a
+ table, the first table value is the main message text and any subsequent
+ values are used as the labels for multiple entry boxes. Providing a
+ single label has no effect.
+ * `text`: The dialog's initial input text. If the value is a table, the
+ table values are used to populate the multiple entry boxes defined by
+ `informative_text`.
+ * `no_cancel`: Do not display the "Cancel" button. The default value is
+ `false`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Return:
+
+* selected button or exit code, input text
+
+<a id="ui.dialogs.standard_dropdown"></a>
+#### `ui.dialogs.standard_dropdown`(*options*)
+
+Prompts the user with a drop-down item selection dialog defined by dialog
+options table *options* and with localized "Ok" and "Cancel" buttons,
+returning the selected button's index along with the selected item's index.
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the selected item's text.
+If the dialog closed due to *options*.`exit_onchange`, returns `4` along with
+either the selected item's index or its text. If the dialog timed out,
+returns `0` or `"timeout"`. If the user canceled the dialog, returns `-1` or
+`"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the drop-down dialog.
+
+ * `title`: The dialog's title text.
+ * `text`: The dialog's main message text.
+ * `items`: The list of string items to show in the drop-down.
+ * `no_cancel`: Do not display the "Cancel" button. The default value is
+ `false`.
+ * `exit_onchange`: Close the dialog after selecting a new item. The default
+ value is `false`.
+ * `select`: The index of the initially selected list item. The default
+ value is `1`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) and the selected item's text (instead of its index). If no item
+ was selected, returns the dialog's exit status (instead of its exit
+ code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Return:
+
+* selected button or exit code, selected item
+
+<a id="ui.dialogs.standard_inputbox"></a>
+#### `ui.dialogs.standard_inputbox`(*options*)
+
+Prompts the user with an inputbox dialog defined by dialog options table
+*options* and with localized "Ok" and "Cancel" buttons, returning the
+selected button's index along with the user's input text (the latter as a
+string or table, depending on the type of *options*.`informative_text`).
+If *options*.`string_output` is `true`, returns the selected button's label
+along with the user's input text.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the inputbox.
+
+ * `title`: The dialog's title text.
+ * `informative_text`: The dialog's main message text. If the value is a
+ table, the first table value is the main message text and any subsequent
+ values are used as the labels for multiple entry boxes. Providing a
+ single label has no effect.
+ * `text`: The dialog's initial input text. If the value is a table, the
+ table values are used to populate the multiple entry boxes defined by
+ `informative_text`.
+ * `no_cancel`: Do not display the "Cancel" button. The default value is
+ `false`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Return:
+
+* selected button or exit code, input text
+
+<a id="ui.dialogs.textbox"></a>
+#### `ui.dialogs.textbox`(*options*)
+
+Prompts the user with a multiple-line textbox dialog defined by dialog
+options table *options*, returning the selected button's index.
+If *options*.`string_output` is `true`, returns the selected button's label.
+If *options*.`editable` is `true`, also returns the textbox's text. If the
+dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the dialog.
+
+ * `title`: The dialog's title text.
+ * `informative_text`: The dialog's main message text.
+ * `text`: The dialog's initial textbox text.
+ * `text_from_file`: The filename whose contents are loaded into the
+ textbox. This option has no effect when `text` is given.
+ * `button1`: The right-most button's label. The default value is
+ `_L['OK']`.
+ * `button2`: The middle button's label.
+ * `button3`: The left-most button's label. This option requires `button2`
+ to be set.
+ * `editable`: Allows the user to edit the textbox's text. The default value
+ is `false`.
+ * `focus_textbox`: Focus the textbox instead of the buttons. The default
+ value is `false`.
+ * `scroll_to`: Where to scroll the textbox's text.
+ The available values are `"top"` and `"bottom"`. The default value is
+ `"top"`.
+ * `selected`: Select all of the textbox's text. The default value is
+ `false`.
+ * `monospaced_font`: Use a monospaced font in the textbox instead of a
+ proportional one. The default value is `false`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Usage:
+
+* `ui.dialogs.textbox{title = 'License Agreement',
+ informative_text = 'You agree to:', text_from_file = _HOME..'/LICENSE'}`
+
+Return:
+
+* selected button or exit code, textbox text
+
+<a id="ui.dialogs.yesno_msgbox"></a>
+#### `ui.dialogs.yesno_msgbox`(*options*)
+
+Prompts the user with a generic message box dialog defined by dialog options
+table *options* and with localized "Yes", "No", and "Cancel" buttons,
+returning the selected button's index.
+If *options*.`string_output` is `true`, returns the selected button's label.
+If the dialog timed out, returns `0` or `"timeout"`. If the user canceled the
+dialog, returns `-1` or `"delete"`.
+
+Parameters:
+
+* *`options`*: Table of key-value option pairs for the message box.
+
+ * `title`: The dialog's title text.
+ * `text`: The dialog's main message text.
+ * `informative_text`: The dialog's extra informative text.
+ * `icon`: The dialog's GTK stock icon name. Examples are
+ "gtk-dialog-error", "gtk-dialog-info", "gtk-dialog-question", and
+ "gtk-dialog-warning". The dialog does not display an icon by default.
+ * `icon_file`: The dialog's icon file path. This option has no effect when
+ `icon` is set.
+ * `no_cancel`: Do not display the "Cancel" button. The default value is
+ `false`.
+ * `string_output`: Return the selected button's label (instead of its
+ index) or the dialog's exit status instead of the button's index (instead
+ of its exit code). The default value is `false`.
+ * `width`: The dialog's pixel width.
+ * `height`: The dialog's pixel height.
+ * `float`: Show the dialog on top of all desktop windows. The default value
+ is `false`.
+ * `timeout`: The integer number of seconds the dialog waits for the user to
+ select a button before timing out. Dialogs do not time out by default.
+
+Return:
+
+* selected button or exit code
+
+
+---
+<a id="ui.find"></a>
+## The `ui.find` Module
+---
+
+Textadept's Find & Replace pane.
+
+### Fields defined by `ui.find`
+
+<a id="ui.find.INDIC_FIND"></a>
+#### `ui.find.INDIC_FIND` (number)
+
+The find results highlight indicator number.
+
+<a id="events.FIND_RESULT_FOUND"></a>
+#### `events.FIND_RESULT_FOUND` (string)
+
+Emitted when a result is found. It is selected and has been scrolled into
+ view.
+
+<a id="events.FIND_WRAPPED"></a>
+#### `events.FIND_WRAPPED` (string)
+
+Emitted when a text search wraps (passes through the beginning of the
+ buffer), either from bottom to top (when searching for a next occurrence),
+ or from top to bottom (when searching for a previous occurrence).
+ This is useful for implementing a more visual or audible notice when a
+ search wraps in addition to the statusbar message.
+
+<a id="ui.find.active"></a>
+#### `ui.find.active` (boolean)
+
+Whether or not the Find & Replace pane is active.
+
+<a id="ui.find.find_entry_text"></a>
+#### `ui.find.find_entry_text` (string)
+
+The text in the "Find" entry.
+
+<a id="ui.find.find_label_text"></a>
+#### `ui.find.find_label_text` (string, Write-only)
+
+The text of the "Find" label.
+ This is primarily used for localization.
+
+<a id="ui.find.find_next_button_text"></a>
+#### `ui.find.find_next_button_text` (string, Write-only)
+
+The text of the "Find Next" button.
+ This is primarily used for localization.
+
+<a id="ui.find.find_prev_button_text"></a>
+#### `ui.find.find_prev_button_text` (string, Write-only)
+
+The text of the "Find Prev" button.
+ This is primarily used for localization.
+
+<a id="ui.find.highlight_all_matches"></a>
+#### `ui.find.highlight_all_matches` (boolean)
+
+Whether or not to highlight all occurrences of found text in the current
+ buffer.
+ The default value is `false`.
+
+<a id="ui.find.in_files"></a>
+#### `ui.find.in_files` (bool)
+
+Find search text in a directory of files.
+ The default value is `false`.
+
+<a id="ui.find.in_files_label_text"></a>
+#### `ui.find.in_files_label_text` (string, Write-only)
+
+The text of the "In files" label.
+ This is primarily used for localization.
+
+<a id="ui.find.incremental"></a>
+#### `ui.find.incremental` (bool)
+
+Find search text incrementally as it is typed.
+ The default value is `false`.
+
+<a id="ui.find.match_case"></a>
+#### `ui.find.match_case` (bool)
+
+Match search text case sensitively.
+ The default value is `false`.
+
+<a id="ui.find.match_case_label_text"></a>
+#### `ui.find.match_case_label_text` (string, Write-only)
+
+The text of the "Match case" label.
+ This is primarily used for localization.
+
+<a id="ui.find.regex"></a>
+#### `ui.find.regex` (bool)
+
+Interpret search text as a Regular Expression.
+ The default value is `false`.
+
+<a id="ui.find.regex_label_text"></a>
+#### `ui.find.regex_label_text` (string, Write-only)
+
+The text of the "Regex" label.
+ This is primarily used for localization.
+
+<a id="ui.find.replace_all_button_text"></a>
+#### `ui.find.replace_all_button_text` (string, Write-only)
+
+The text of the "Replace All" button.
+ This is primarily used for localization.
+
+<a id="ui.find.replace_button_text"></a>
+#### `ui.find.replace_button_text` (string, Write-only)
+
+The text of the "Replace" button.
+ This is primarily used for localization.
+
+<a id="ui.find.replace_entry_text"></a>
+#### `ui.find.replace_entry_text` (string)
+
+The text in the "Replace" entry.
+ When searching for text in a directory of files, this is the current file
+ and directory filter.
+
+<a id="ui.find.replace_label_text"></a>
+#### `ui.find.replace_label_text` (string, Write-only)
+
+The text of the "Replace" label.
+ This is primarily used for localization.
+
+<a id="ui.find.whole_word"></a>
+#### `ui.find.whole_word` (bool)
+
+Match search text only when it is surrounded by non-word characters in
+ searches.
+ The default value is `false`.
+
+<a id="ui.find.whole_word_label_text"></a>
+#### `ui.find.whole_word_label_text` (string, Write-only)
+
+The text of the "Whole word" label.
+ This is primarily used for localization.
+
+
+### Functions defined by `ui.find`
+
+<a id="ui.find.find_in_files"></a>
+#### `ui.find.find_in_files`(*dir, filter*)
+
+Searches directory *dir* or the user-specified directory for files that match
+search text and search options (subject to optional filter *filter*), and
+prints the results to a buffer titled "Files Found", highlighting found text.
+Use the `find_entry_text`, `match_case`, `whole_word`, and `regex` fields to
+set the search text and option flags, respectively.
+A filter determines which files to search in, with the default filter being
+`ui.find.find_in_files_filters[dir]` (if it exists) or `lfs.default_filter`.
+A filter consists of Lua patterns that match file and directory paths to
+include or exclude. Patterns are inclusive by default. Exclusive patterns
+begin with a '!'. If no inclusive patterns are given, any filename is
+initially considered. As a convenience, file extensions can be specified
+literally instead of as a Lua pattern (e.g. '.lua' vs. '%.lua$'), and '/'
+also matches the Windows directory separator ('[/\\]' is not needed).
+If *filter* is `nil`, the filter from the `ui.find.find_in_files_filters`
+table for *dir* is used. If that filter does not exist, `lfs.default_filter`
+is used.
+
+Parameters:
+
+* *`dir`*: Optional directory path to search. If `nil`, the user is prompted
+ for one.
+* *`filter`*: Optional filter for files and directories to exclude. The
+ default value is `lfs.default_filter` unless a filter for *dir* is defined
+ in `ui.find.find_in_files_filters`.
+
+See also:
+
+* [`ui.find.find_in_files_filters`](#ui.find.find_in_files_filters)
+
+<a id="ui.find.find_next"></a>
+#### `ui.find.find_next`()
+
+Mimics pressing the "Find Next" button.
+
+<a id="ui.find.find_prev"></a>
+#### `ui.find.find_prev`()
+
+Mimics pressing the "Find Prev" button.
+
+<a id="ui.find.focus"></a>
+#### `ui.find.focus`(*options*)
+
+Displays and focuses the Find & Replace Pane.
+
+Parameters:
+
+* *`options`*: Optional table of options to initially set.
+
+<a id="ui.find.goto_file_found"></a>
+#### `ui.find.goto_file_found`(*line\_num, next*)
+
+Jumps to the source of the find in files search result on line number
+*line_num* in the buffer titled "Files Found" or, if *line_num* is `nil`,
+jumps to the next or previous search result, depending on boolean *next*.
+
+Parameters:
+
+* *`line_num`*: Optional line number in the files found buffer that contains
+ the search result to go to. This parameter may be omitted completely.
+* *`next`*: Optional flag indicating whether to go to the next search result
+ or the previous one. Only applicable when *line_num* is `nil`.
+
+<a id="ui.find.replace"></a>
+#### `ui.find.replace`()
+
+Mimics pressing the "Replace" button.
+
+<a id="ui.find.replace_all"></a>
+#### `ui.find.replace_all`()
+
+Mimics pressing the "Replace All" button.
+
+
+### Tables defined by `ui.find`
+
+<a id="ui.find.find_in_files_filters"></a>
+#### `ui.find.find_in_files_filters`
+
+Map of directory paths to filters used in `ui.find.find_in_files()`.
+This table is updated when the user manually specifies a filter in the
+"Filter" entry during an "In files" search.
+
+See also:
+
+* [`ui.find.find_in_files`](#ui.find.find_in_files)
+
+---
+<a id="view"></a>
+## The `view` Module
+---
+
+A Textadept view object.
+Constants are documented in the fields they apply to.
+While you can work with individual view instances, it is often useful to work
+with just the global one.
+Many of these functions and fields are derived from view-specific
+functionality the Scintilla editing component, and additional information can
+be found on the Scintilla website:
+[http://scintilla.org/ScintillaDoc.html](
+http://scintilla.org/ScintillaDoc.html)
+Note that with regard to Scintilla-specific functionality, this API is a
+_suggestion_, not a hard requirement. All of that functionality also exists
+in [`buffer`](#buffer), even if undocumented.
+Any view fields set on startup (e.g. in *~/.textadept/init.lua*) will be the
+default, initial values for all views.
+
+### Fields defined by `view`
+
+<a id="view.ALPHA_NOALPHA"></a>
+#### `view.ALPHA_NOALPHA` (number, Read-only)
+
+
+
+
+<a id="view.ALPHA_OPAQUE"></a>
+#### `view.ALPHA_OPAQUE` (number, Read-only)
+
+
+
+
+<a id="view.ALPHA_TRANSPARENT"></a>
+#### `view.ALPHA_TRANSPARENT` (number, Read-only)
+
+
+
+
+<a id="view.ANNOTATION_BOXED"></a>
+#### `view.ANNOTATION_BOXED` (number, Read-only)
+
+
+
+
+<a id="view.ANNOTATION_HIDDEN"></a>
+#### `view.ANNOTATION_HIDDEN` (number, Read-only)
+
+
+
+
+<a id="view.ANNOTATION_INDENTED"></a>
+#### `view.ANNOTATION_INDENTED` (number, Read-only)
+
+
+
+
+<a id="view.ANNOTATION_STANDARD"></a>
+#### `view.ANNOTATION_STANDARD` (number, Read-only)
+
+
+
+
+<a id="view.CARETSTYLE_BLOCK"></a>
+#### `view.CARETSTYLE_BLOCK` (number, Read-only)
+
+
+
+
+<a id="view.CARETSTYLE_INVISIBLE"></a>
+#### `view.CARETSTYLE_INVISIBLE` (number, Read-only)
+
+
+
+
+<a id="view.CARETSTYLE_LINE"></a>
+#### `view.CARETSTYLE_LINE` (number, Read-only)
+
+
+
+
+<a id="view.CARET_EVEN"></a>
+#### `view.CARET_EVEN` (number, Read-only)
+
+
+
+
+<a id="view.CARET_JUMPS"></a>
+#### `view.CARET_JUMPS` (number, Read-only)
+
+
+
+
+<a id="view.CARET_SLOP"></a>
+#### `view.CARET_SLOP` (number, Read-only)
+
+
+
+
+<a id="view.CARET_STRICT"></a>
+#### `view.CARET_STRICT` (number, Read-only)
+
+
+
+
+<a id="view.CASE_CAMEL"></a>
+#### `view.CASE_CAMEL` (number, Read-only)
+
+
+
+
+<a id="view.CASE_LOWER"></a>
+#### `view.CASE_LOWER` (number, Read-only)
+
+
+
+
+<a id="view.CASE_MIXED"></a>
+#### `view.CASE_MIXED` (number, Read-only)
+
+
+
+
+<a id="view.CASE_UPPER"></a>
+#### `view.CASE_UPPER` (number, Read-only)
+
+
+
+
+<a id="view.CURSORARROW"></a>
+#### `view.CURSORARROW` (number, Read-only)
+
+
+
+
+<a id="view.CURSORNORMAL"></a>
+#### `view.CURSORNORMAL` (number, Read-only)
+
+
+
+
+<a id="view.CURSORREVERSEARROW"></a>
+#### `view.CURSORREVERSEARROW` (number, Read-only)
+
+
+
+
+<a id="view.CURSORWAIT"></a>
+#### `view.CURSORWAIT` (number, Read-only)
+
+
+
+
+<a id="view.EDGE_BACKGROUND"></a>
+#### `view.EDGE_BACKGROUND` (number, Read-only)
+
+
+
+
+<a id="view.EDGE_LINE"></a>
+#### `view.EDGE_LINE` (number, Read-only)
+
+
+
+
+<a id="view.EDGE_MULTILINE"></a>
+#### `view.EDGE_MULTILINE` (number, Read-only)
+
+
+
+
+<a id="view.EDGE_NONE"></a>
+#### `view.EDGE_NONE` (number, Read-only)
+
+
+
+
+<a id="view.FOLDACTION_CONTRACT"></a>
+#### `view.FOLDACTION_CONTRACT` (number, Read-only)
+
+
+
+
+<a id="view.FOLDACTION_EXPAND"></a>
+#### `view.FOLDACTION_EXPAND` (number, Read-only)
+
+
+
+
+<a id="view.FOLDACTION_TOGGLE"></a>
+#### `view.FOLDACTION_TOGGLE` (number, Read-only)
+
+
+
+
+<a id="view.FOLDDISPLAYTEXT_BOXED"></a>
+#### `view.FOLDDISPLAYTEXT_BOXED` (number, Read-only)
+
+
+
+
+<a id="view.FOLDDISPLAYTEXT_HIDDEN"></a>
+#### `view.FOLDDISPLAYTEXT_HIDDEN` (number, Read-only)
+
+
+
+
+<a id="view.FOLDDISPLAYTEXT_STANDARD"></a>
+#### `view.FOLDDISPLAYTEXT_STANDARD` (number, Read-only)
+
+
+
+
+<a id="view.FOLDFLAG_LEVELNUMBERS"></a>
+#### `view.FOLDFLAG_LEVELNUMBERS` (number, Read-only)
+
+
+
+
+<a id="view.FOLDFLAG_LINEAFTER_CONTRACTED"></a>
+#### `view.FOLDFLAG_LINEAFTER_CONTRACTED` (number, Read-only)
+
+
+
+
+<a id="view.FOLDFLAG_LINEAFTER_EXPANDED"></a>
+#### `view.FOLDFLAG_LINEAFTER_EXPANDED` (number, Read-only)
+
+
+
+
+<a id="view.FOLDFLAG_LINEBEFORE_CONTRACTED"></a>
+#### `view.FOLDFLAG_LINEBEFORE_CONTRACTED` (number, Read-only)
+
+
+
+
+<a id="view.FOLDFLAG_LINEBEFORE_EXPANDED"></a>
+#### `view.FOLDFLAG_LINEBEFORE_EXPANDED` (number, Read-only)
+
+
+
+
+<a id="view.FOLDFLAG_LINESTATE"></a>
+#### `view.FOLDFLAG_LINESTATE` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_BOX"></a>
+#### `view.INDIC_BOX` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_COMPOSITIONTHICK"></a>
+#### `view.INDIC_COMPOSITIONTHICK` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_COMPOSITIONTHIN"></a>
+#### `view.INDIC_COMPOSITIONTHIN` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_DASH"></a>
+#### `view.INDIC_DASH` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_DIAGONAL"></a>
+#### `view.INDIC_DIAGONAL` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_DOTBOX"></a>
+#### `view.INDIC_DOTBOX` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_DOTS"></a>
+#### `view.INDIC_DOTS` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_FULLBOX"></a>
+#### `view.INDIC_FULLBOX` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_GRADIENT"></a>
+#### `view.INDIC_GRADIENT` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_GRADIENTCENTER"></a>
+#### `view.INDIC_GRADIENTCENTER` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_HIDDEN"></a>
+#### `view.INDIC_HIDDEN` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_PLAIN"></a>
+#### `view.INDIC_PLAIN` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_POINT"></a>
+#### `view.INDIC_POINT` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_POINTCHARACTER"></a>
+#### `view.INDIC_POINTCHARACTER` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_ROUNDBOX"></a>
+#### `view.INDIC_ROUNDBOX` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_SQUIGGLE"></a>
+#### `view.INDIC_SQUIGGLE` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_SQUIGGLELOW"></a>
+#### `view.INDIC_SQUIGGLELOW` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_SQUIGGLEPIXMAP"></a>
+#### `view.INDIC_SQUIGGLEPIXMAP` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_STRAIGHTBOX"></a>
+#### `view.INDIC_STRAIGHTBOX` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_STRIKE"></a>
+#### `view.INDIC_STRIKE` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_TEXTFORE"></a>
+#### `view.INDIC_TEXTFORE` (number, Read-only)
+
+
+
+
+<a id="view.INDIC_TT"></a>
+#### `view.INDIC_TT` (number, Read-only)
+
+
+
+
+<a id="view.IV_LOOKBOTH"></a>
+#### `view.IV_LOOKBOTH` (number, Read-only)
+
+
+
+
+<a id="view.IV_LOOKFORWARD"></a>
+#### `view.IV_LOOKFORWARD` (number, Read-only)
+
+
+
+
+<a id="view.IV_NONE"></a>
+#### `view.IV_NONE` (number, Read-only)
+
+
+
+
+<a id="view.IV_REAL"></a>
+#### `view.IV_REAL` (number, Read-only)
+
+
+
+
+<a id="view.MARGINOPTION_NONE"></a>
+#### `view.MARGINOPTION_NONE` (number, Read-only)
+
+
+
+
+<a id="view.MARGINOPTION_SUBLINESELECT"></a>
+#### `view.MARGINOPTION_SUBLINESELECT` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_BACK"></a>
+#### `view.MARGIN_BACK` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_COLOR"></a>
+#### `view.MARGIN_COLOR` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_FORE"></a>
+#### `view.MARGIN_FORE` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_NUMBER"></a>
+#### `view.MARGIN_NUMBER` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_RTEXT"></a>
+#### `view.MARGIN_RTEXT` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_SYMBOL"></a>
+#### `view.MARGIN_SYMBOL` (number, Read-only)
+
+
+
+
+<a id="view.MARGIN_TEXT"></a>
+#### `view.MARGIN_TEXT` (number, Read-only)
+
+
+
+
+<a id="view.MARK_ARROW"></a>
+#### `view.MARK_ARROW` (number, Read-only)
+
+
+
+
+<a id="view.MARK_ARROWDOWN"></a>
+#### `view.MARK_ARROWDOWN` (number, Read-only)
+
+
+
+
+<a id="view.MARK_ARROWS"></a>
+#### `view.MARK_ARROWS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_BACKGROUND"></a>
+#### `view.MARK_BACKGROUND` (number, Read-only)
+
+
+
+
+<a id="view.MARK_BOOKMARK"></a>
+#### `view.MARK_BOOKMARK` (number, Read-only)
+
+
+
+
+<a id="view.MARK_BOXMINUS"></a>
+#### `view.MARK_BOXMINUS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_BOXMINUSCONNECTED"></a>
+#### `view.MARK_BOXMINUSCONNECTED` (number, Read-only)
+
+
+
+
+<a id="view.MARK_BOXPLUS"></a>
+#### `view.MARK_BOXPLUS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_BOXPLUSCONNECTED"></a>
+#### `view.MARK_BOXPLUSCONNECTED` (number, Read-only)
+
+
+
+
+<a id="view.MARK_CHARACTER"></a>
+#### `view.MARK_CHARACTER` (number, Read-only)
+
+
+
+
+<a id="view.MARK_CIRCLE"></a>
+#### `view.MARK_CIRCLE` (number, Read-only)
+
+
+
+
+<a id="view.MARK_CIRCLEMINUS"></a>
+#### `view.MARK_CIRCLEMINUS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_CIRCLEMINUSCONNECTED"></a>
+#### `view.MARK_CIRCLEMINUSCONNECTED` (number, Read-only)
+
+
+
+
+<a id="view.MARK_CIRCLEPLUS"></a>
+#### `view.MARK_CIRCLEPLUS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_CIRCLEPLUSCONNECTED"></a>
+#### `view.MARK_CIRCLEPLUSCONNECTED` (number, Read-only)
+
+
+
+
+<a id="view.MARK_DOTDOTDOT"></a>
+#### `view.MARK_DOTDOTDOT` (number, Read-only)
+
+
+
+
+<a id="view.MARK_EMPTY"></a>
+#### `view.MARK_EMPTY` (number, Read-only)
+
+
+
+
+<a id="view.MARK_FULLRECT"></a>
+#### `view.MARK_FULLRECT` (number, Read-only)
+
+
+
+
+<a id="view.MARK_LCORNER"></a>
+#### `view.MARK_LCORNER` (number, Read-only)
+
+
+
+
+<a id="view.MARK_LCORNERCURVE"></a>
+#### `view.MARK_LCORNERCURVE` (number, Read-only)
+
+
+
+
+<a id="view.MARK_LEFTRECT"></a>
+#### `view.MARK_LEFTRECT` (number, Read-only)
+
+
+
+
+<a id="view.MARK_MINUS"></a>
+#### `view.MARK_MINUS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_PIXMAP"></a>
+#### `view.MARK_PIXMAP` (number, Read-only)
+
+
+
+
+<a id="view.MARK_PLUS"></a>
+#### `view.MARK_PLUS` (number, Read-only)
+
+
+
+
+<a id="view.MARK_RGBAIMAGE"></a>
+#### `view.MARK_RGBAIMAGE` (number, Read-only)
+
+
+
+
+<a id="view.MARK_ROUNDRECT"></a>
+#### `view.MARK_ROUNDRECT` (number, Read-only)
+
+
+
+
+<a id="view.MARK_SHORTARROW"></a>
+#### `view.MARK_SHORTARROW` (number, Read-only)
+
+
+
+
+<a id="view.MARK_SMALLRECT"></a>
+#### `view.MARK_SMALLRECT` (number, Read-only)
+
+
+
+
+<a id="view.MARK_TCORNER"></a>
+#### `view.MARK_TCORNER` (number, Read-only)
+
+
+
+
+<a id="view.MARK_TCORNERCURVE"></a>
+#### `view.MARK_TCORNERCURVE` (number, Read-only)
+
+
+
+
+<a id="view.MARK_UNDERLINE"></a>
+#### `view.MARK_UNDERLINE` (number, Read-only)
+
+
+
+
+<a id="view.MARK_VERTICALBOOKMARK"></a>
+#### `view.MARK_VERTICALBOOKMARK` (number, Read-only)
+
+
+
+
+<a id="view.MARK_VLINE"></a>
+#### `view.MARK_VLINE` (number, Read-only)
+
+
+
+
+<a id="view.MASK_FOLDERS"></a>
+#### `view.MASK_FOLDERS` (number, Read-only)
+
+
+
+
+<a id="view.MOD_ALT"></a>
+#### `view.MOD_ALT` (number, Read-only)
+
+
+
+
+<a id="view.MOD_CTRL"></a>
+#### `view.MOD_CTRL` (number, Read-only)
+
+
+
+
+<a id="view.MOD_META"></a>
+#### `view.MOD_META` (number, Read-only)
+
+
+
+
+<a id="view.MOD_SHIFT"></a>
+#### `view.MOD_SHIFT` (number, Read-only)
+
+
+
+
+<a id="view.MOD_SUPER"></a>
+#### `view.MOD_SUPER` (number, Read-only)
+
+
+
+
+<a id="view.MOUSE_DRAG"></a>
+#### `view.MOUSE_DRAG` (number, Read-only)
+
+
+
+
+<a id="view.MOUSE_PRESS"></a>
+#### `view.MOUSE_PRESS` (number, Read-only)
+
+
+
+
+<a id="view.MOUSE_RELEASE"></a>
+#### `view.MOUSE_RELEASE` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_BRACEBAD"></a>
+#### `view.STYLE_BRACEBAD` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_BRACELIGHT"></a>
+#### `view.STYLE_BRACELIGHT` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_CALLTIP"></a>
+#### `view.STYLE_CALLTIP` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_CONTROLCHAR"></a>
+#### `view.STYLE_CONTROLCHAR` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_DEFAULT"></a>
+#### `view.STYLE_DEFAULT` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_FOLDDISPLAYTEXT"></a>
+#### `view.STYLE_FOLDDISPLAYTEXT` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_INDENTGUIDE"></a>
+#### `view.STYLE_INDENTGUIDE` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_LINENUMBER"></a>
+#### `view.STYLE_LINENUMBER` (number, Read-only)
+
+
+
+
+<a id="view.STYLE_MAX"></a>
+#### `view.STYLE_MAX` (number, Read-only)
+
+
+
+
+<a id="view.TD_LONGARROW"></a>
+#### `view.TD_LONGARROW` (number, Read-only)
+
+
+
+
+<a id="view.TD_STRIKEOUT"></a>
+#### `view.TD_STRIKEOUT` (number, Read-only)
+
+
+
+
+<a id="view.TIME_FOREVER"></a>
+#### `view.TIME_FOREVER` (number, Read-only)
+
+
+
+
+<a id="view.UPDATE_H_SCROLL"></a>
+#### `view.UPDATE_H_SCROLL` (number, Read-only)
+
+
+
+
+<a id="view.UPDATE_V_SCROLL"></a>
+#### `view.UPDATE_V_SCROLL` (number, Read-only)
+
+
+
+
+<a id="view.VISIBLE_SLOP"></a>
+#### `view.VISIBLE_SLOP` (number, Read-only)
+
+
+
+
+<a id="view.VISIBLE_STRICT"></a>
+#### `view.VISIBLE_STRICT` (number, Read-only)
+
+
+
+
+<a id="view.WRAPINDENT_DEEPINDENT"></a>
+#### `view.WRAPINDENT_DEEPINDENT` (number, Read-only)
+
+
+
+
+<a id="view.WRAPINDENT_FIXED"></a>
+#### `view.WRAPINDENT_FIXED` (number, Read-only)
+
+
+
+
+<a id="view.WRAPINDENT_INDENT"></a>
+#### `view.WRAPINDENT_INDENT` (number, Read-only)
+
+
+
+
+<a id="view.WRAPINDENT_SAME"></a>
+#### `view.WRAPINDENT_SAME` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAGLOC_DEFAULT"></a>
+#### `view.WRAPVISUALFLAGLOC_DEFAULT` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAGLOC_END_BY_TEXT"></a>
+#### `view.WRAPVISUALFLAGLOC_END_BY_TEXT` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAGLOC_START_BY_TEXT"></a>
+#### `view.WRAPVISUALFLAGLOC_START_BY_TEXT` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAG_END"></a>
+#### `view.WRAPVISUALFLAG_END` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAG_MARGIN"></a>
+#### `view.WRAPVISUALFLAG_MARGIN` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAG_NONE"></a>
+#### `view.WRAPVISUALFLAG_NONE` (number, Read-only)
+
+
+
+
+<a id="view.WRAPVISUALFLAG_START"></a>
+#### `view.WRAPVISUALFLAG_START` (number, Read-only)
+
+
+
+
+<a id="view.WRAP_CHAR"></a>
+#### `view.WRAP_CHAR` (number, Read-only)
+
+
+
+
+<a id="view.WRAP_NONE"></a>
+#### `view.WRAP_NONE` (number, Read-only)
+
+
+
+
+<a id="view.WRAP_WHITESPACE"></a>
+#### `view.WRAP_WHITESPACE` (number, Read-only)
+
+
+
+
+<a id="view.WRAP_WORD"></a>
+#### `view.WRAP_WORD` (number, Read-only)
+
+
+
+
+<a id="view.WS_INVISIBLE"></a>
+#### `view.WS_INVISIBLE` (number, Read-only)
+
+
+
+
+<a id="view.WS_VISIBLEAFTERINDENT"></a>
+#### `view.WS_VISIBLEAFTERINDENT` (number, Read-only)
+
+
+
+
+<a id="view.WS_VISIBLEALWAYS"></a>
+#### `view.WS_VISIBLEALWAYS` (number, Read-only)
+
+
+
+
+<a id="view.WS_VISIBLEONLYININDENT"></a>
+#### `view.WS_VISIBLEONLYININDENT` (number, Read-only)
+
+
+
+
+<a id="view.additional_caret_fore"></a>
+#### `view.additional_caret_fore` (number)
+
+The foreground color, in "0xBBGGRR" format, of additional carets.
+
+<a id="view.additional_carets_blink"></a>
+#### `view.additional_carets_blink` (bool)
+
+Allow additional carets to blink.
+ The default value is `true`.
+
+<a id="view.additional_carets_visible"></a>
+#### `view.additional_carets_visible` (bool)
+
+Display additional carets.
+ The default value is `true`.
+
+<a id="view.additional_sel_alpha"></a>
+#### `view.additional_sel_alpha` (number)
+
+The alpha value, ranging from `0` (transparent) to `255` (opaque), of
+ additional selections.
+ The default value is `view.ALPHA_NOALPHA`, for no alpha.
+
+<a id="view.additional_sel_back"></a>
+#### `view.additional_sel_back` (number, Write-only)
+
+The background color, in "0xBBGGRR" format, of additional selections.
+ This field has no effect when calling `view:set_sel_back(false, ...)`.
+
+<a id="view.additional_sel_fore"></a>
+#### `view.additional_sel_fore` (number, Write-only)
+
+The foreground color, in "0xBBGGRR" format, of additional selections.
+ This field has no effect when calling `view:set_sel_fore(false, ...)`.
+
+<a id="view.all_lines_visible"></a>
+#### `view.all_lines_visible` (bool, Read-only)
+
+Whether or not all lines are visible.
+
+<a id="view.annotation_visible"></a>
+#### `view.annotation_visible` (number)
+
+The annotation visibility mode.
+
+ * `view.ANNOTATION_HIDDEN`
+ Annotations are invisible.
+ * `view.ANNOTATION_STANDARD`
+ Draw annotations left-justified with no decoration.
+ * `view.ANNOTATION_BOXED`
+ Indent annotations to match the annotated text and outline them with a
+ box.
+ * `view.ANNOTATION_INDENTED`
+ Indent non-decorated annotations to match the annotated text.
+
+ The default value is `view.ANNOTATION_HIDDEN`.
+
+<a id="view.auto_c_max_height"></a>
+#### `view.auto_c_max_height` (number)
+
+The maximum number of items per page to show in autocompletion and user
+ lists. The default value is `5`.
+
+<a id="view.auto_c_max_width"></a>
+#### `view.auto_c_max_width` (number)
+
+The maximum number of characters per item to show in autocompletion and
+ user lists.
+ The default value is `0`, which automatically sizes the width to fit the
+ longest item.
+
+<a id="view.call_tip_fore_hlt"></a>
+#### `view.call_tip_fore_hlt` (number, Write-only)
+
+A call tip's highlighted text foreground color, in "0xBBGGRR" format.
+
+<a id="view.call_tip_pos_start"></a>
+#### `view.call_tip_pos_start` (number, Write-only)
+
+The position in which backspacing beyond it hides a visible call tip.
+
+<a id="view.call_tip_position"></a>
+#### `view.call_tip_position` (boolean)
+
+Display a call tip above the current line instead of below it.
+ The default value is `false`.
+
+<a id="view.call_tip_use_style"></a>
+#### `view.call_tip_use_style` (number)
+
+The pixel width of tab characters in call tips.
+ When non-zero, also enables the use of style number `view.STYLE_CALLTIP`
+ instead of `view.STYLE_DEFAULT` for call tip styles.
+ The default value is `0`.
+
+<a id="view.caret_fore"></a>
+#### `view.caret_fore` (number)
+
+The caret's foreground color, in "0xBBGGRR" format.
+
+<a id="view.caret_line_back"></a>
+#### `view.caret_line_back` (number)
+
+The background color, in "0xBBGGRR" format, of the line that contains the
+ caret.
+
+<a id="view.caret_line_back_alpha"></a>
+#### `view.caret_line_back_alpha` (number)
+
+The caret line's background alpha value, ranging from `0` (transparent) to
+ `255` (opaque).
+ The default value is `view.ALPHA_NOALPHA`, for no alpha.
+
+<a id="view.caret_line_frame"></a>
+#### `view.caret_line_frame` (number)
+
+The caret line's frame width in pixels.
+ When non-zero, the line that contains the caret is framed instead of
+ colored in. The `view.caret_line_back` and `view.caret_line_back_alpha`
+ properties apply to the frame.
+ The default value is `0`.
+
+<a id="view.caret_line_visible"></a>
+#### `view.caret_line_visible` (bool)
+
+Color the background of the line that contains the caret a different color.
+ The default value is `false`.
+
+<a id="view.caret_line_visible_always"></a>
+#### `view.caret_line_visible_always` (bool)
+
+Always show the caret line, even when the window is not in focus.
+ The default value is `false`, showing the line only when the window is in
+ focus.
+
+<a id="view.caret_period"></a>
+#### `view.caret_period` (number)
+
+The time between caret blinks in milliseconds.
+ A value of `0` stops blinking.
+ The default value is `500`.
+
+<a id="view.caret_style"></a>
+#### `view.caret_style` (number)
+
+The caret's visual style.
+
+ * `view.CARETSTYLE_INVISIBLE`
+ No caret.
+ * `view.CARETSTYLE_LINE`
+ A line caret.
+ * `view.CARETSTYLE_BLOCK`
+ A block caret.
+
+ Any block setting may be combined with `view.CARETSTYLE_BLOCK_AFTER` via
+ bitwise OR (`|`) in order to draw the caret after the end of a selection,
+ as opposed to just inside it.
+
+ The default value is `view.CARETSTYLE_LINE`.
+
+<a id="view.caret_width"></a>
+#### `view.caret_width` (number)
+
+The line caret's pixel width in insert mode, either `0`, `1`, `2`, or `3`.
+ The default value is `1`.
+
+<a id="view.cursor"></a>
+#### `view.cursor` (number)
+
+The display cursor type.
+
+ * `view.CURSORNORMAL`
+ The text insert cursor.
+ * `view.CURSORARROW`
+ The arrow cursor.
+ * `view.CURSORWAIT`
+ The wait cursor.
+ * `view.CURSORREVERSEARROW`
+ The reversed arrow cursor.
+
+ The default value is `view.CURSORNORMAL`.
+
+<a id="view.edge_color"></a>
+#### `view.edge_color` (number)
+
+The color, in "0xBBGGRR" format, of the single edge or background for long
+ lines according to `view.edge_mode`.
+
+<a id="view.edge_column"></a>
+#### `view.edge_column` (number)
+
+The column number to mark long lines at.
+
+<a id="view.edge_mode"></a>
+#### `view.edge_mode` (number)
+
+The long line mark mode.
+
+ * `view.EDGE_NONE`
+ Long lines are not marked.
+ * `view.EDGE_LINE`
+ Draw a single vertical line whose color is [`view.edge_color`](#view.edge_color) at
+ column [`view.edge_column`](#view.edge_column).
+ * `view.EDGE_BACKGROUND`
+ Change the background color of text after column [`view.edge_column`](#view.edge_column)
+ to [`view.edge_color`](#view.edge_color).
+ * `view.EDGE_MULTILINE`
+ Draw vertical lines whose colors and columns are defined by calls to
+ [`view:multi_edge_add_line()`](#view.multi_edge_add_line).
+
+<a id="view.end_at_last_line"></a>
+#### `view.end_at_last_line` (bool)
+
+Disable scrolling past the last line.
+ The default value is `true`.
+
+<a id="view.eol_annotation_visible"></a>
+#### `view.eol_annotation_visible` (number)
+
+The EOL annotation visibility mode.
+
+ * `view.EOLANNOTATION_HIDDEN`
+ EOL Annotations are invisible.
+ * `view.EOLANNOTATION_STANDARD`
+ Draw EOL annotations no decoration.
+ * `view.EOLANNOTATION_BOXED`
+ Draw EOL annotations outlined with a box.
+
+ The default value is `view.EOLANNOTATION_HIDDEN`.
+
+<a id="view.extra_ascent"></a>
+#### `view.extra_ascent` (number)
+
+The amount of pixel padding above lines.
+ The default value is `0`.
+
+<a id="view.extra_descent"></a>
+#### `view.extra_descent` (number)
+
+The amount of pixel padding below lines.
+ The default is `0`.
+
+<a id="view.first_visible_line"></a>
+#### `view.first_visible_line` (number)
+
+The line number of the line at the top of the view.
+
+<a id="view.fold_display_text_style"></a>
+#### `view.fold_display_text_style` (number)
+
+The fold display text mode.
+
+ * `view.FOLDDISPLAYTEXT_HIDDEN`
+ Fold display text is not shown.
+ * `view.FOLDDISPLAYTEXT_STANDARD`
+ Fold display text is shown with no decoration.
+ * `view.FOLDDISPLAYTEXT_BOXED`
+ Fold display text is shown outlined with a box.
+
+ The default value is `view.FOLDDISPLAYTEXT_HIDDEN`.
+
+<a id="view.fold_expanded"></a>
+#### `view.fold_expanded` (table)
+
+Table of flags per line number that indicate whether or not fold points are
+ expanded for those line numbers.
+ Setting expanded fold states does not toggle folds; it only updates fold
+ margin markers. Use [`view.toggle_fold()`](#view.toggle_fold) instead.
+
+<a id="view.fold_flags"></a>
+#### `view.fold_flags` (number, Read-only)
+
+Bit-mask of folding lines to draw in the buffer.
+
+ * `view.FOLDFLAG_LINEBEFORE_EXPANDED`
+ Draw lines above expanded folds.
+ * `view.FOLDFLAG_LINEBEFORE_CONTRACTED`
+ Draw lines above collapsed folds.
+ * `view.FOLDFLAG_LINEAFTER_EXPANDED`
+ Draw lines below expanded folds.
+ * `view.FOLDFLAG_LINEAFTER_CONTRACTED`
+ Draw lines below collapsed folds.
+ * `view.FOLDFLAG_LEVELNUMBERS`
+ Show hexadecimal fold levels in line margins.
+ This option cannot be combined with `FOLDFLAG_LINESTATE`.
+ * `view.FOLDFLAG_LINESTATE`
+ Show line state in line margins.
+ This option cannot be combined with `FOLDFLAG_LEVELNUMBERS`.
+
+ The default value is `0`.
+
+<a id="view.h_scroll_bar"></a>
+#### `view.h_scroll_bar` (bool)
+
+Display the horizontal scroll bar.
+ The default value is `true`.
+
+<a id="view.highlight_guide"></a>
+#### `view.highlight_guide` (number)
+
+The indentation guide column number to also highlight when highlighting
+ matching braces, or `0` to stop indentation guide highlighting.
+
+<a id="view.idle_styling"></a>
+#### `view.idle_styling` (number)
+
+The idle styling mode.
+ This mode has no effect when `view.wrap_mode` is on.
+
+ * `view.IDLESTYLING_NONE`
+ Style all the currently visible text before displaying it.
+ * `view.IDLESTYLING_TOVISIBLE`
+ Style some text before displaying it and then style the rest
+ incrementally in the background as an idle-time task.
+ * `view.IDLESTYLING_AFTERVISIBLE`
+ Style text after the currently visible portion in the background.
+ * `view.IDLESTYLING_ALL`
+ Style text both before and after the visible text in the background.
+
+ The default value is `view.IDLESTYLING_NONE`.
+
+<a id="view.indentation_guides"></a>
+#### `view.indentation_guides` (number)
+
+The indentation guide drawing mode.
+ Indentation guides are dotted vertical lines that appear within indentation
+ whitespace at each level of indentation.
+
+ * `view.IV_NONE`
+ Does not draw any guides.
+ * `view.IV_REAL`
+ Draw guides only within indentation whitespace.
+ * `view.IV_LOOKFORWARD`
+ Draw guides beyond the current line up to the next non-empty line's
+ indentation level, but with an additional level if the previous non-empty
+ line is a fold point.
+ * `view.IV_LOOKBOTH`
+ Draw guides beyond the current line up to either the indentation level of
+ the previous or next non-empty line, whichever is greater.
+
+ The default value is `view.IV_NONE`.
+
+<a id="view.indic_alpha"></a>
+#### `view.indic_alpha` (table)
+
+Table of fill color alpha values, ranging from `0` (transparent) to `255`
+ (opaque), for indicator numbers from `1` to `32` whose styles are either
+ `INDIC_ROUNDBOX`, `INDIC_STRAIGHTBOX`, or `INDIC_DOTBOX`.
+ The default values are `view.ALPHA_NOALPHA`, for no alpha.
+
+<a id="view.indic_fore"></a>
+#### `view.indic_fore` (table)
+
+Table of foreground colors, in "0xBBGGRR" format, for indicator numbers
+ from `1` to `32`.
+ Changing an indicator's foreground color resets that indicator's hover
+ foreground color.
+
+<a id="view.indic_hover_fore"></a>
+#### `view.indic_hover_fore` (table)
+
+Table of hover foreground colors, in "0xBBGGRR" format, for indicator
+ numbers from `1` to `32`.
+ The default values are the respective indicator foreground colors.
+
+<a id="view.indic_hover_style"></a>
+#### `view.indic_hover_style` (table)
+
+Table of hover styles for indicators numbers from `1` to `32`. An
+ indicator's hover style drawn when either the cursor hovers over that
+ indicator or the caret is within that indicator.
+ The default values are the respective indicator styles.
+
+<a id="view.indic_outline_alpha"></a>
+#### `view.indic_outline_alpha` (table)
+
+Table of outline color alpha values, ranging from `0` (transparent) to
+ `255` (opaque), for indicator numbers from `1` to `32` whose styles are
+ either `INDIC_ROUNDBOX`, `INDIC_STRAIGHTBOX`, or `INDIC_DOTBOX`.
+ The default values are `view.ALPHA_NOALPHA`, for no alpha.
+
+<a id="view.indic_style"></a>
+#### `view.indic_style` (table)
+
+Table of styles for indicator numbers from `1` to `32`.
+
+ * `view.INDIC_PLAIN`
+ An underline.
+ * `view.INDIC_SQUIGGLE`
+ A squiggly underline 3 pixels in height.
+ * `view.INDIC_TT`
+ An underline of small 'T' shapes.
+ * `view.INDIC_DIAGONAL`
+ An underline of diagonal hatches.
+ * `view.INDIC_STRIKE`
+ Strike out.
+ * `view.INDIC_HIDDEN`
+ Invisible.
+ * `view.INDIC_BOX`
+ A bounding box.
+ * `view.INDIC_ROUNDBOX`
+ A translucent box with rounded corners around the text. Use
+ [`view.indic_alpha`](#view.indic_alpha) and [`view.indic_outline_alpha`](#view.indic_outline_alpha) to set the
+ fill and outline transparency, respectively. Their default values are
+ `30` and `50`.
+ * `view.INDIC_STRAIGHTBOX`
+ Similar to `INDIC_ROUNDBOX` but with sharp corners.
+ * `view.INDIC_DASH`
+ A dashed underline.
+ * `view.INDIC_DOTS`
+ A dotted underline.
+ * `view.INDIC_SQUIGGLELOW`
+ A squiggly underline 2 pixels in height.
+ * `view.INDIC_DOTBOX`
+ Similar to `INDIC_STRAIGHTBOX` but with a dotted outline.
+ Translucency alternates between [`view.indic_alpha`](#view.indic_alpha) and
+ [`view.indic_outline_alpha`](#view.indic_outline_alpha) starting with the top-left pixel.
+ * `view.INDIC_SQUIGGLEPIXMAP`
+ Identical to `INDIC_SQUIGGLE` but draws faster by using a pixmap instead
+ of multiple line segments.
+ * `view.INDIC_COMPOSITIONTHICK`
+ A 2-pixel thick underline at the bottom of the line inset by 1 pixel on
+ on either side. Similar in appearance to the target in Asian language
+ input composition.
+ * `view.INDIC_COMPOSITIONTHIN`
+ A 1-pixel thick underline just before the bottom of the line inset by 1
+ pixel on either side. Similar in appearance to the non-target ranges in
+ Asian language input composition.
+ * `view.INDIC_FULLBOX`
+ Similar to `INDIC_STRAIGHTBOX` but extends to the top of its line,
+ potentially touching any similar indicators on the line above.
+ * `view.INDIC_TEXTFORE`
+ Changes the color of text to an indicator's foreground color.
+ * `view.INDIC_POINT`
+ A triangle below the start of the indicator range.
+ * `view.INDIC_POINTCHARACTER`
+ A triangle below the center of the first character of the indicator
+ range.
+ * `view.INDIC_GRADIENT`
+ A box with a vertical gradient from solid on top to transparent on
+ bottom.
+ * `view.INDIC_GRADIENTCENTER`
+ A box with a centered gradient from solid in the middle to transparent on
+ the top and bottom.
+
+ Use [`_SCINTILLA.next_indic_number()`](#_SCINTILLA.next_indic_number) for custom indicators.
+ Changing an indicator's style resets that indicator's hover style.
+
+<a id="view.indic_under"></a>
+#### `view.indic_under` (table)
+
+Table of flags that indicate whether or not to draw indicators behind text
+ instead of over the top of it for indicator numbers from `1` to `32`.
+ The default values are `false`.
+
+<a id="view.line_visible"></a>
+#### `view.line_visible` (table, Read-only)
+
+Table of flags per line number that indicate whether or not lines are
+ visible for those line numbers.
+
+<a id="view.lines_on_screen"></a>
+#### `view.lines_on_screen` (number, Read-only)
+
+The number of completely visible lines in the view.
+ It is possible to have a partial line visible at the bottom of the view.
+
+<a id="view.margin_back_n"></a>
+#### `view.margin_back_n` (table)
+
+Table of background colors, in "0xBBGGRR" format, of margin numbers from
+ `1` to `view.margins` (`5` by default).
+ Only affects margins of type `view.MARGIN_COLOR`.
+
+<a id="view.margin_cursor_n"></a>
+#### `view.margin_cursor_n` (table)
+
+Table of cursor types shown over margin numbers from `1` to
+ `view.margins` (`5` by default).
+
+ * `view.CURSORARROW`
+ Normal arrow cursor.
+ * `view.CURSORREVERSEARROW`
+ Reversed arrow cursor.
+
+ The default values are `view.CURSORREVERSEARROW`.
+
+<a id="view.margin_left"></a>
+#### `view.margin_left` (number)
+
+The pixel size of the left margin of the buffer text.
+ The default value is `1`.
+
+<a id="view.margin_mask_n"></a>
+#### `view.margin_mask_n` (table)
+
+Table of bit-masks of markers whose symbols marker symbol margins can
+ display for margin numbers from `1` to `view.margins` (`5` by default).
+ Bit-masks are 32-bit values whose bits correspond to the 32 available
+ markers.
+ The default values are `0`, `view.MASK_FOLDERS`, `0`, `0`, and `0`, for
+ a line margin and logical marker margin.
+
+<a id="view.margin_options"></a>
+#### `view.margin_options` (number)
+
+A bit-mask of margin option settings.
+
+ * `view.MARGINOPTION_NONE`
+ None.
+ * `view.MARGINOPTION_SUBLINESELECT`
+ Select only a wrapped line's sub-line (rather than the entire line) when
+ the line number margin is clicked.
+
+ The default value is `view.MARGINOPTION_NONE`.
+
+<a id="view.margin_right"></a>
+#### `view.margin_right` (number)
+
+The pixel size of the right margin of the buffer text.
+ The default value is `1`.
+
+<a id="view.margin_sensitive_n"></a>
+#### `view.margin_sensitive_n` (table)
+
+Table of flags that indicate whether or not mouse clicks in margins emit
+ `MARGIN_CLICK` events for margin numbers from `1` to `view.margins` (`5`
+ by default).
+ The default values are `false`.
+
+<a id="view.margin_type_n"></a>
+#### `view.margin_type_n` (table)
+
+Table of margin types for margin numbers from `1` to `view.margins` (`5`
+ by default).
+
+ * `view.MARGIN_SYMBOL`
+ A marker symbol margin.
+ * `view.MARGIN_NUMBER`
+ A line number margin.
+ * `view.MARGIN_BACK`
+ A marker symbol margin whose background color matches the default text
+ background color.
+ * `view.MARGIN_FORE`
+ A marker symbol margin whose background color matches the default text
+ foreground color.
+ * `view.MARGIN_TEXT`
+ A text margin.
+ * `view.MARGIN_RTEXT`
+ A right-justified text margin.
+ * `view.MARGIN_COLOR`
+ A marker symbol margin whose background color is configurable.
+
+ The default value for the first margin is `view.MARGIN_NUMBER`, followed
+ by `view.MARGIN_SYMBOL` for the rest.
+
+<a id="view.margin_width_n"></a>
+#### `view.margin_width_n` (table)
+
+Table of pixel margin widths for margin numbers from `1` to
+ `view.margins` (`5` by default).
+
+<a id="view.margins"></a>
+#### `view.margins` (number)
+
+The number of margins.
+ The default value is `5`.
+
+<a id="view.marker_alpha"></a>
+#### `view.marker_alpha` (table, Write-only)
+
+Table of alpha values, ranging from `0` (transparent) to `255` (opaque),
+ of markers drawn in the text area (not the margin) for markers numbers from
+ `1` to `32`.
+ The default values are `view.ALPHA_NOALPHA`, for no alpha.
+
+<a id="view.marker_back"></a>
+#### `view.marker_back` (table, Write-only)
+
+Table of background colors, in "0xBBGGRR" format, of marker numbers from
+ `1` to `32`.
+
+<a id="view.marker_back_selected"></a>
+#### `view.marker_back_selected` (table, Write-only)
+
+Table of background colors, in "0xBBGGRR" format, of markers whose folding
+ blocks are selected for marker numbers from `1` to `32`.
+
+<a id="view.marker_fore"></a>
+#### `view.marker_fore` (table, Write-only)
+
+Table of foreground colors, in "0xBBGGRR" format, of marker numbers from
+ `1` to `32`.
+
+<a id="view.mouse_dwell_time"></a>
+#### `view.mouse_dwell_time` (number)
+
+The number of milliseconds the mouse must idle before generating a
+ `DWELL_START` event. A time of `view.TIME_FOREVER` will never generate
+ one.
+
+<a id="view.mouse_selection_rectangular_switch"></a>
+#### `view.mouse_selection_rectangular_switch` (bool)
+
+Whether or not pressing [`view.rectangular_selection_modifier`](#view.rectangular_selection_modifier) when
+ selecting text normally with the mouse turns on rectangular selection.
+ The default value is `false`.
+
+<a id="view.property"></a>
+#### `view.property` (table)
+
+Map of key-value string pairs used by lexers.
+
+<a id="view.property_expanded"></a>
+#### `view.property_expanded` (table, Read-only)
+
+Map of key-value string pairs used by lexers with `$()` and `%()` variable
+ replacement performed in values.
+
+<a id="view.property_int"></a>
+#### `view.property_int` (table, Read-only)
+
+Map of key-value pairs used by lexers with values interpreted as numbers,
+ or `0` if not found.
+
+<a id="view.rectangular_selection_modifier"></a>
+#### `view.rectangular_selection_modifier` (number)
+
+The modifier key used in combination with a mouse drag in order to create a
+ rectangular selection.
+
+ * `view.MOD_CTRL`
+ The "Control" modifier key.
+ * `view.MOD_ALT`
+ The "Alt" modifier key.
+ * `view.MOD_SUPER`
+ The "Super" modifier key, usually defined as the left "Windows" or
+ "Command" key.
+
+ The default value is `view.MOD_CTRL`.
+
+<a id="view.representation"></a>
+#### `view.representation` (table)
+
+The alternative string representations of characters.
+ Representations are displayed in the same way control characters are. Use
+ the empty string for the '\0' character when assigning its representation.
+ Characters are strings, not numeric codes.
+ Call [`view.clear_representation()`](#view.clear_representation) to remove a representation.
+
+<a id="view.rgba_image_height"></a>
+#### `view.rgba_image_height` (number)
+
+The height of the RGBA image to be defined using
+ [`view.marker_define_rgba_image()`](#view.marker_define_rgba_image).
+
+<a id="view.rgba_image_scale"></a>
+#### `view.rgba_image_scale` (number)
+
+The scale factor in percent of the RGBA image to be defined using
+ [`view.marker_define_rgba_image()`](#view.marker_define_rgba_image).
+ This is useful on macOS with a retina display where each display unit is 2
+ pixels: use a factor of `200` so that each image pixel is displayed using a
+ screen pixel. The default scale, `100`, will stretch each image pixel to
+ cover 4 screen pixels on a retina display.
+
+<a id="view.rgba_image_width"></a>
+#### `view.rgba_image_width` (number)
+
+The width of the RGBA image to be defined using
+ [`view.marker_define_rgba_image()`](#view.marker_define_rgba_image) and
+ [`view.register_rgba_image()`](#view.register_rgba_image).
+
+<a id="view.scroll_width"></a>
+#### `view.scroll_width` (number)
+
+The horizontal scrolling pixel width.
+ For performance, the view does not measure the display width of the buffer
+ to determine the properties of the horizontal scroll bar, but uses an
+ assumed width instead. To ensure the width of the currently visible lines
+ can be scrolled use [`view.scroll_width_tracking`](#view.scroll_width_tracking).
+ The default value is `2000`.
+
+<a id="view.scroll_width_tracking"></a>
+#### `view.scroll_width_tracking` (bool)
+
+Continuously update the horizontal scrolling width to match the maximum
+ width of a displayed line beyond [`view.scroll_width`](#view.scroll_width).
+ The default value is `false`.
+
+<a id="view.sel_alpha"></a>
+#### `view.sel_alpha` (number)
+
+The selection's alpha value, ranging from `0` (transparent) to `255`
+ (opaque).
+ The default value is `view.ALPHA_NOALPHA`, for no alpha.
+
+<a id="view.sel_eol_filled"></a>
+#### `view.sel_eol_filled` (bool)
+
+Extend the selection to the view's right margin.
+ The default value is `false`.
+
+<a id="view.size"></a>
+#### `view.size` (number)
+
+The split resizer's pixel position if the view is a split one.
+
+<a id="view.style_back"></a>
+#### `view.style_back` (table)
+
+Table of background colors, in "0xBBGGRR" format, of text for style numbers
+ from `1` to `256`.
+
+<a id="view.style_bold"></a>
+#### `view.style_bold` (table)
+
+Table of flags that indicate whether or not text is bold for style numbers
+ from `1` to `256`.
+ The default values are `false`.
+
+<a id="view.style_case"></a>
+#### `view.style_case` (table)
+
+Table of letter case modes of text for style numbers from `1` to `256`.
+
+ * `view.CASE_MIXED`
+ Display text in normally.
+ * `view.CASE_UPPER`
+ Display text in upper case.
+ * `view.CASE_LOWER`
+ Display text in lower case.
+ * `view.CASE_CAMEL`
+ Display text in camel case.
+
+ The default values are `view.CASE_MIXED`.
+
+<a id="view.style_changeable"></a>
+#### `view.style_changeable` (table)
+
+Table of flags that indicate whether or not text is changeable for style
+ numbers from `1` to `256`.
+ The default values are `true`.
+ Read-only styles do not allow the caret into the range of text.
+
+<a id="view.style_eol_filled"></a>
+#### `view.style_eol_filled` (table)
+
+Table of flags that indicate whether or not the background colors of styles
+ whose characters occur last on lines extend all the way to the view's right
+ margin for style numbers from `1` to `256`.
+ The default values are `false`.
+
+<a id="view.style_font"></a>
+#### `view.style_font` (table)
+
+Table of string font names of text for style numbers from `1` to `256`.
+
+<a id="view.style_fore"></a>
+#### `view.style_fore` (table)
+
+Table of foreground colors, in "0xBBGGRR" format, of text for style numbers
+ from `1` to `256`.
+
+<a id="view.style_italic"></a>
+#### `view.style_italic` (table)
+
+Table of flags that indicate whether or not text is italic for style
+ numbers from `1` to `256`.
+ The default values are `false`.
+
+<a id="view.style_size"></a>
+#### `view.style_size` (table)
+
+Table of font sizes of text for style numbers from `1` to `256`.
+
+<a id="view.style_underline"></a>
+#### `view.style_underline` (table)
+
+Table of flags that indicate whether or not text is underlined for style
+ numbers from `1` to `256`.
+ The default values are `false`.
+
+<a id="view.style_visible"></a>
+#### `view.style_visible` (table)
+
+Table of flags that indicate whether or not text is visible for style
+ numbers from `1` to `256`.
+ The default values are `true`.
+
+<a id="view.tab_draw_mode"></a>
+#### `view.tab_draw_mode` (number)
+
+The draw mode of visible tabs.
+
+ * `view.TD_LONGARROW`
+ An arrow that stretches until the tabstop.
+ * `view.TD_STRIKEOUT`
+ A horizontal line that stretches until the tabstop.
+
+ The default value is `view.TD_LONGARROW`.
+
+<a id="view.v_scroll_bar"></a>
+#### `view.v_scroll_bar` (bool)
+
+Display the vertical scroll bar.
+ The default value is `true`.
+
+<a id="view.view_eol"></a>
+#### `view.view_eol` (bool)
+
+Display end of line characters.
+ The default value is `false`.
+
+<a id="view.view_ws"></a>
+#### `view.view_ws` (number)
+
+The whitespace visibility mode.
+
+ * `view.WS_INVISIBLE`
+ Whitespace is invisible.
+ * `view.WS_VISIBLEALWAYS`
+ Display all space characters as dots and tab characters as arrows.
+ * `view.WS_VISIBLEAFTERINDENT`
+ Display only non-indentation spaces and tabs as dots and arrows.
+ * `view.WS_VISIBLEONLYININDENT`
+ Display only indentation spaces and tabs as dots and arrows.
+
+ The default value is `view.WS_INVISIBLE`.
+
+<a id="view.whitespace_size"></a>
+#### `view.whitespace_size` (number)
+
+The pixel size of the dots that represent space characters when whitespace
+ is visible.
+ The default value is `1`.
+
+<a id="view.wrap_indent_mode"></a>
+#### `view.wrap_indent_mode` (number)
+
+The wrapped line indent mode.
+
+ * `view.WRAPINDENT_FIXED`
+ Indent wrapped lines by [`view.wrap_start_indent`](#view.wrap_start_indent).
+ * `view.WRAPINDENT_SAME`
+ Indent wrapped lines the same amount as the first line.
+ * `view.WRAPINDENT_INDENT`
+ Indent wrapped lines one more level than the level of the first line.
+ * `view.WRAPINDENT_DEEPINDENT`
+ Indent wrapped lines two more levels than the level of the first line.
+
+ The default value is `view.WRAPINDENT_FIXED`.
+
+<a id="view.wrap_mode"></a>
+#### `view.wrap_mode` (number)
+
+Long line wrap mode.
+
+ * `view.WRAP_NONE`
+ Long lines are not wrapped.
+ * `view.WRAP_WORD`
+ Wrap long lines at word (and style) boundaries.
+ * `view.WRAP_CHAR`
+ Wrap long lines at character boundaries.
+ * `view.WRAP_WHITESPACE`
+ Wrap long lines at word boundaries (ignoring style boundaries).
+
+ The default value is `view.WRAP_NONE`.
+
+<a id="view.wrap_start_indent"></a>
+#### `view.wrap_start_indent` (number)
+
+The number of spaces of indentation to display wrapped lines with if
+ [`view.wrap_indent_mode`](#view.wrap_indent_mode) is `view.WRAPINDENT_FIXED`.
+ The default value is `0`.
+
+<a id="view.wrap_visual_flags"></a>
+#### `view.wrap_visual_flags` (number)
+
+The wrapped line visual flag display mode.
+
+ * `view.WRAPVISUALFLAG_NONE`
+ No visual flags.
+ * `view.WRAPVISUALFLAG_END`
+ Show a visual flag at the end of a wrapped line.
+ * `view.WRAPVISUALFLAG_START`
+ Show a visual flag at the beginning of a sub-line.
+ * `view.WRAPVISUALFLAG_MARGIN`
+ Show a visual flag in the sub-line's line number margin.
+
+ The default value is `view.WRAPVISUALFLAG_NONE`.
+
+<a id="view.wrap_visual_flags_location"></a>
+#### `view.wrap_visual_flags_location` (number)
+
+The wrapped line visual flag location.
+
+ * `view.WRAPVISUALFLAGLOC_DEFAULT`
+ Draw a visual flag near the view's right margin.
+ * `view.WRAPVISUALFLAGLOC_END_BY_TEXT`
+ Draw a visual flag near text at the end of a wrapped line.
+ * `view.WRAPVISUALFLAGLOC_START_BY_TEXT`
+ Draw a visual flag near text at the beginning of a subline.
+
+ The default value is `view.WRAPVISUALFLAGLOC_DEFAULT`.
+
+<a id="view.x_offset"></a>
+#### `view.x_offset` (number)
+
+The horizontal scroll pixel position.
+ A value of `0` is the normal position with the first text column visible at
+ the left of the view.
+
+<a id="view.zoom"></a>
+#### `view.zoom` (number)
+
+The number of points to add to the size of all fonts.
+ Negative values are allowed, down to `-10`.
+ The default value is `0`.
+
+
+### Functions defined by `view`
+
+<a id="view.brace_bad_light"></a>
+#### `view.brace_bad_light`(*view, pos*)
+
+Highlights the character at position *pos* as an unmatched brace character
+using the `'style.bracebad'` style.
+Removes highlighting when *pos* is `-1`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`pos`*: The position in *view*'s buffer to highlight, or `-1` to remove
+ the highlight.
+
+<a id="view.brace_bad_light_indicator"></a>
+#### `view.brace_bad_light_indicator`(*view, use\_indicator, indicator*)
+
+Highlights unmatched brace characters with indicator number *indicator*, in
+the range of `1` to `32`, instead of the
+`view.STYLE_BRACEBAD` style if *use_indicator* is `true`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_indicator`*: Whether or not to use an indicator.
+* *`indicator`*: The indicator number to use.
+
+<a id="view.brace_highlight"></a>
+#### `view.brace_highlight`(*view, pos1, pos2*)
+
+Highlights the characters at positions *pos1* and *pos2* as matching braces
+using the `'style.bracelight'` style.
+If indent guides are enabled, locates the column with `buffer.column` and
+sets `view.highlight_guide` in order to highlight the indent guide.
+
+Parameters:
+
+* *`view`*: A view.
+* *`pos1`*: The first position in *view*'s buffer to highlight.
+* *`pos2`*: The second position in *view*'s buffer to highlight.
+
+<a id="view.brace_highlight_indicator"></a>
+#### `view.brace_highlight_indicator`(*view, use\_indicator, indicator*)
+
+Highlights matching brace characters with indicator number *indicator*, in
+the range of `1` to `32`, instead of the
+`view.STYLE_BRACELIGHT` style if *use_indicator* is `true`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_indicator`*: Whether or not to use an indicator.
+* *`indicator`*: The indicator number to use.
+
+<a id="view.call_tip_active"></a>
+#### `view.call_tip_active`(*view*)
+
+Returns whether or not a call tip is visible.
+
+Parameters:
+
+* *`view`*: A view.
+
+Return:
+
+* bool
+
+<a id="view.call_tip_cancel"></a>
+#### `view.call_tip_cancel`(*view*)
+
+Removes the displayed call tip from view.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.call_tip_pos_start"></a>
+#### `view.call_tip_pos_start`(*view*)
+
+Returns a call tip's display position.
+
+Parameters:
+
+* *`view`*: A view.
+
+Return:
+
+* number
+
+<a id="view.call_tip_set_hlt"></a>
+#### `view.call_tip_set_hlt`(*view, start\_pos, end\_pos*)
+
+Highlights a call tip's text between positions *start_pos* to *end_pos* with
+the color `view.call_tip_fore_hlt`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`start_pos`*: The start position in a call tip text to highlight.
+* *`end_pos`*: The end position in a call tip text to highlight.
+
+<a id="view.call_tip_show"></a>
+#### `view.call_tip_show`(*view, pos, text*)
+
+Displays a call tip at position *pos* with string *text* as the call tip's
+contents.
+Any "\001" or "\002" bytes in *text* are replaced by clickable up or down
+arrow visuals, respectively. These may be used to indicate that a symbol has
+more than one call tip, for example.
+
+Parameters:
+
+* *`view`*: A view.
+* *`pos`*: The position in *view*'s buffer to show a call tip at.
+* *`text`*: The call tip text to show.
+
+<a id="view.clear_registered_images"></a>
+#### `view.clear_registered_images`(*view*)
+
+Clears all images registered using `view.register_image()` and
+`view.register_rgba_image()`.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.clear_representation"></a>
+#### `view.clear_representation`(*view, char*)
+
+Removes the alternate string representation for character *char*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`char`*: The string character in `buffer.representations` to remove the
+ alternate string representation for.
+
+<a id="view.contracted_fold_next"></a>
+#### `view.contracted_fold_next`(*view, line*)
+
+Returns the line number of the next contracted fold point starting from line
+number *line*, or `-1` if none exists.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to start at.
+
+Return:
+
+* number
+
+<a id="view.doc_line_from_visible"></a>
+#### `view.doc_line_from_visible`(*view, display\_line*)
+
+Returns the actual line number of displayed line number *display_line*,
+taking wrapped, annotated, and hidden lines into account.
+If *display_line* is less than or equal to `1`, returns `1`. If
+*display_line* is greater than the number of displayed lines, returns
+`buffer.line_count`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`display_line`*: The display line number to use.
+
+Return:
+
+* number
+
+<a id="view.ensure_visible"></a>
+#### `view.ensure_visible`(*view, line*)
+
+Ensures line number *line* is visible by expanding any fold points hiding it.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to ensure visible.
+
+<a id="view.ensure_visible_enforce_policy"></a>
+#### `view.ensure_visible_enforce_policy`(*view, line*)
+
+Ensures line number *line* is visible by expanding any fold points hiding it
+based on the vertical caret policy previously defined in
+`view.set_visible_policy()`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to ensure visible.
+
+<a id="view.fold_all"></a>
+#### `view.fold_all`(*view, action*)
+
+Contracts, expands, or toggles all fold points, depending on *action*.
+When toggling, the state of the first fold point determines whether to
+expand or contract.
+
+Parameters:
+
+* *`view`*: A view.
+* *`action`*: The fold action to perform. Valid values are:
+ * `view.FOLDACTION_CONTRACT`
+ * `view.FOLDACTION_EXPAND`
+ * `view.FOLDACTION_TOGGLE`
+
+<a id="view.fold_children"></a>
+#### `view.fold_children`(*view, line, action*)
+
+Contracts, expands, or toggles the fold point on line number *line*, as well
+as all of its children, depending on *action*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to set the fold states for.
+* *`action`*: The fold action to perform. Valid values are:
+ * `view.FOLDACTION_CONTRACT`
+ * `view.FOLDACTION_EXPAND`
+ * `view.FOLDACTION_TOGGLE`
+
+<a id="view.fold_line"></a>
+#### `view.fold_line`(*view, line, action*)
+
+Contracts, expands, or toggles the fold point on line number *line*,
+depending on *action*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to set the fold state for.
+* *`action`*: The fold action to perform. Valid values are:
+ * `view.FOLDACTION_CONTRACT`
+ * `view.FOLDACTION_EXPAND`
+ * `view.FOLDACTION_TOGGLE`
+
+<a id="view.get_default_fold_display_text"></a>
+#### `view.get_default_fold_display_text`(*view*)
+
+Returns the default fold display text.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.goto_buffer"></a>
+#### `view.goto_buffer`(*view, buffer*)
+
+Switches to buffer *buffer* or the buffer *buffer* number of buffers relative
+to the current one.
+Emits `BUFFER_BEFORE_SWITCH` and `BUFFER_AFTER_SWITCH` events.
+
+Parameters:
+
+* *`view`*: The view to switch buffers in.
+* *`buffer`*: A buffer or relative buffer number (typically 1 or -1).
+
+See also:
+
+* [`_BUFFERS`](#_BUFFERS)
+* [`events.BUFFER_BEFORE_SWITCH`](#events.BUFFER_BEFORE_SWITCH)
+* [`events.BUFFER_AFTER_SWITCH`](#events.BUFFER_AFTER_SWITCH)
+
+<a id="view.hide_lines"></a>
+#### `view.hide_lines`(*view, start\_line, end\_line*)
+
+Hides the range of lines between line numbers *start_line* to *end_line*.
+This has no effect on fold levels or fold flags and the first line cannot be
+hidden.
+
+Parameters:
+
+* *`view`*: A view.
+* *`start_line`*: The start line of the range of lines in *view* to hide.
+* *`end_line`*: The end line of the range of lines in *view* to hide.
+
+<a id="view.line_scroll"></a>
+#### `view.line_scroll`(*view, columns, lines*)
+
+Scrolls the buffer right *columns* columns and down *lines* lines.
+Negative values are allowed.
+
+Parameters:
+
+* *`view`*: A view.
+* *`columns`*: The number of columns to scroll horizontally.
+* *`lines`*: The number of lines to scroll vertically.
+
+<a id="view.line_scroll_down"></a>
+#### `view.line_scroll_down`(*view*)
+
+Scrolls the buffer down one line, keeping the caret visible.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.line_scroll_up"></a>
+#### `view.line_scroll_up`(*view*)
+
+Scrolls the buffer up one line, keeping the caret visible.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.marker_define"></a>
+#### `view.marker_define`(*view, marker, symbol*)
+
+Assigns marker symbol *symbol* to marker number *marker*, in the range of `1`
+to `32`.
+*symbol* is shown in marker symbol margins next to lines marked with
+*marker*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`marker`*: The marker number in the range of `1` to `32` to set *symbol*
+ for.
+* *`symbol`*: The marker symbol: `buffer.MARK_*`.
+
+See also:
+
+* [`_SCINTILLA.next_marker_number`](#_SCINTILLA.next_marker_number)
+
+<a id="view.marker_define_pixmap"></a>
+#### `view.marker_define_pixmap`(*view, marker, pixmap*)
+
+Associates marker number *marker*, in the range of `1` to `32`, with XPM
+image *pixmap*.
+The `view.MARK_PIXMAP` marker symbol must be assigned to *marker*.
+*pixmap* is shown in marker symbol margins next to lines marked with
+*marker*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`marker`*: The marker number in the range of `1` to `32` to define
+ pixmap *pixmap* for.
+* *`pixmap`*: The string pixmap data.
+
+<a id="view.marker_define_rgba_image"></a>
+#### `view.marker_define_rgba_image`(*view, marker, pixels*)
+
+Associates marker number *marker*, in the range of `1` to `32`, with RGBA
+image *pixels*.
+The dimensions for *pixels* (`view.rgba_image_width` and
+`view.rgba_image_height`) must have already been defined. *pixels* is a
+sequence of 4 byte pixel values (red, blue, green, and alpha) defining the
+image line by line starting at the top-left pixel.
+The `view.MARK_RGBAIMAGE` marker symbol must be assigned to *marker*.
+*pixels* is shown in symbol margins next to lines marked with *marker*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`marker`*: The marker number in the range of `1` to `32` to define RGBA
+ data *pixels* for.
+* *`pixels`*: The string sequence of 4 byte pixel values starting with the
+ pixels for the top line, with the leftmost pixel first, then continuing
+ with the pixels for subsequent lines. There is no gap between lines for
+ alignment reasons. Each pixel consists of, in order, a red byte, a green
+ byte, a blue byte and an alpha byte. The color bytes are not premultiplied
+ by the alpha value. That is, a fully red pixel that is 25% opaque will be
+ `[FF, 00, 00, 3F]`.
+
+<a id="view.marker_enable_highlight"></a>
+#### `view.marker_enable_highlight`(*view, enabled*)
+
+Highlights the margin fold markers for the current fold block if *enabled* is
+`true`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`enabled`*: Whether or not to enable highlight.
+
+<a id="view.marker_symbol_defined"></a>
+#### `view.marker_symbol_defined`(*view, marker*)
+
+Returns the symbol assigned to marker number *marker*, in the range of `1` to
+`32`, used in `view.marker_define()`,
+`view.marker_define_pixmap()`, or `view.marker_define_rgba_image()`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`marker`*: The marker number in the range of `1` to `32` to get the symbol
+ of.
+
+Return:
+
+* number
+
+<a id="view.multi_edge_add_line"></a>
+#### `view.multi_edge_add_line`(*view, column, color*)
+
+Adds a new vertical line at column number *column* with color *color*, in
+"0xBBGGRR" format.
+
+Parameters:
+
+* *`view`*: A view.
+* *`column`*: The column number to add a vertical line at.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.multi_edge_clear_all"></a>
+#### `view.multi_edge_clear_all`(*view*)
+
+Clears all vertical lines created by `view:multi_edge_add_line()`.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.register_image"></a>
+#### `view.register_image`(*view, type, xpm\_data*)
+
+Registers XPM image *xpm_data* to type number *type* for use in
+autocompletion and user lists.
+
+Parameters:
+
+* *`view`*: A view.
+* *`type`*: Integer type to register the image with.
+* *`xpm_data`*: The XPM data as described in `view.marker_define_pixmap()`.
+
+<a id="view.register_rgba_image"></a>
+#### `view.register_rgba_image`(*view, type, pixels*)
+
+Registers RGBA image *pixels* to type number *type* for use in autocompletion
+and user lists.
+The dimensions for *pixels* (`view.rgba_image_width` and
+`view.rgba_image_height`) must have already been defined. *pixels* is a
+sequence of 4 byte pixel values (red, blue, green, and alpha) defining the
+image line by line starting at the top-left pixel.
+
+Parameters:
+
+* *`view`*: A view.
+* *`type`*: Integer type to register the image with.
+* *`pixels`*: The RGBA data as described in
+ `view.marker_define_rgba_image()`.
+
+<a id="view.scroll_caret"></a>
+#### `view.scroll_caret`(*view*)
+
+Scrolls the caret into view based on the policies previously defined in
+`view.set_x_caret_policy()` and `view.set_y_caret_policy()`.
+
+Parameters:
+
+* *`view`*: A view.
+
+See also:
+
+* [`view.set_x_caret_policy`](#view.set_x_caret_policy)
+* [`view.set_y_caret_policy`](#view.set_y_caret_policy)
+
+<a id="view.scroll_range"></a>
+#### `view.scroll_range`(*view, secondary\_pos, primary\_pos*)
+
+Scrolls into view the range of text between positions *primary_pos* and
+*secondary_pos*, with priority given to *primary_pos*.
+Similar to `view.scroll_caret()`, but with *primary_pos* instead of
+`buffer.current_pos`.
+This is useful for scrolling search results into view.
+
+Parameters:
+
+* *`view`*: A view.
+* *`secondary_pos`*: The secondary range position to scroll into view.
+* *`primary_pos`*: The primary range position to scroll into view.
+
+<a id="view.scroll_to_end"></a>
+#### `view.scroll_to_end`(*view*)
+
+Scrolls to the end of the buffer without moving the caret.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.scroll_to_start"></a>
+#### `view.scroll_to_start`(*view*)
+
+Scrolls to the beginning of the buffer without moving the caret.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.set_default_fold_display_text"></a>
+#### `view.set_default_fold_display_text`(*view, text*)
+
+Sets the default fold display text to string *text*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`text`*: The text to display by default next to folded lines.
+
+See also:
+
+* [`view.toggle_fold_show_text`](#view.toggle_fold_show_text)
+
+<a id="view.set_fold_margin_color"></a>
+#### `view.set_fold_margin_color`(*view, use\_setting, color*)
+
+Overrides the fold margin's default color with color *color*, in "0xBBGGRR"
+format,
+if *use_setting* is `true`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_setting`*: Whether or not to use *color*.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.set_fold_margin_hi_color"></a>
+#### `view.set_fold_margin_hi_color`(*view, use\_setting, color*)
+
+Overrides the fold margin's default highlight color with color *color*, in
+"0xBBGGRR" format, if *use_setting* is `true`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_setting`*: Whether or not to use *color*.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.set_sel_back"></a>
+#### `view.set_sel_back`(*view, use\_setting, color*)
+
+Overrides the selection's default background color with color *color*, in
+"0xBBGGRR" format, if *use_setting* is `true`.
+Overwrites any existing `view.additional_sel_back` color.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_setting`*: Whether or not to use *color*.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.set_sel_fore"></a>
+#### `view.set_sel_fore`(*view, use\_setting, color*)
+
+Overrides the selection's default foreground color with color *color*, in
+"0xBBGGRR" format, if *use_setting* is `true`.
+Overwrites any existing `view.additional_sel_fore` color.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_setting`*: Whether or not to use *color*.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.set_theme"></a>
+#### `view.set_theme`(*view, name, env*)
+
+Sets the view's color theme to be string *name*, with the contents of table
+*env* available as global variables.
+User themes override Textadept's default themes when they have the same name.
+If *name* contains slashes, it is assumed to be an absolute path to a theme
+instead of a theme name.
+
+Parameters:
+
+* *`view`*: A view.
+* *`name`*: The name or absolute path of a theme to set.
+* *`env`*: Optional table of global variables themes can utilize to override
+ default settings such as font and size.
+
+Usage:
+
+* `view:set_theme('light', {font = 'Monospace', size = 12})`
+
+See also:
+
+* [`lexer.colors`](#lexer.colors)
+* [`lexer.styles`](#lexer.styles)
+
+<a id="view.set_visible_policy"></a>
+#### `view.set_visible_policy`(*view, policy, y*)
+
+Defines scrolling policy bit-mask *policy* as the policy for keeping the
+caret *y* number of lines away from the vertical margins as
+`view.ensure_visible_enforce_policy()` redisplays hidden or folded lines.
+It is similar in operation to `view.set_y_caret_policy()`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`policy`*: The combination of `view.VISIBLE_SLOP` and
+ `view.VISIBLE_STRICT` policy flags to set.
+* *`y`*: The number of lines from the vertical margins to keep the caret.
+
+<a id="view.set_whitespace_back"></a>
+#### `view.set_whitespace_back`(*view, use\_setting, color*)
+
+Overrides the background color of whitespace with color *color*, in
+"0xBBGGRR" format, if *use_setting* is `true`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`use_setting`*: Whether or not to use *color*.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.set_whitespace_fore"></a>
+#### `view.set_whitespace_fore`(*view, use\_setting, color*)
+
+Overrides the foreground color of whitespace with color *color*, in
+"0xBBGGRR" format, if *use_setting* is `true`.
+
+Parameters:
+
+* *`view`*:
+* *`use_setting`*: Whether or not to use *color*.
+* *`color`*: The color in "0xBBGGRR" format.
+
+<a id="view.set_x_caret_policy"></a>
+#### `view.set_x_caret_policy`(*view, policy, x*)
+
+Defines scrolling policy bit-mask *policy* as the policy for keeping the
+caret *x* number of pixels away from the horizontal margins.
+
+Parameters:
+
+* *`view`*: A view.
+* *`policy`*: The combination of `view.CARET_SLOP`, `view.CARET_STRICT`,
+ `view.CARET_EVEN`, and `view.CARET_JUMPS` policy flags to set.
+* *`x`*: The number of pixels from the horizontal margins to keep the caret.
+
+<a id="view.set_y_caret_policy"></a>
+#### `view.set_y_caret_policy`(*view, policy, y*)
+
+Defines scrolling policy bit-mask *policy* as the policy for keeping the
+caret *y* number of lines away from the vertical margins.
+
+Parameters:
+
+* *`view`*: A view.
+* *`policy`*: The combination of `view.CARET_SLOP`, `view.CARET_STRICT`,
+ `view.CARET_EVEN`, and `view.CARET_JUMPS` policy flags to set.
+* *`y`*: The number of lines from the vertical margins to keep the caret.
+
+<a id="view.show_lines"></a>
+#### `view.show_lines`(*view, start\_line, end\_line*)
+
+Shows the range of lines between line numbers *start_line* to *end_line*.
+This has no effect on fold levels or fold flags and the first line cannot be
+hidden.
+
+Parameters:
+
+* *`view`*: A view.
+* *`start_line`*: The start line of the range of lines in *view* to show.
+* *`end_line`*: The end line of the range of lines in *view* to show.
+
+<a id="view.split"></a>
+#### `view.split`(*view, vertical*)
+
+Splits the view into top and bottom views (unless *vertical* is `true`),
+focuses the new view, and returns both the old and new views.
+If *vertical* is `false`, splits the view vertically into left and
+right views.
+Emits a `VIEW_NEW` event.
+
+Parameters:
+
+* *`view`*: The view to split.
+* *`vertical`*: Optional flag indicating whether or not to split the view
+ vertically. The default value is `false`, for horizontal.
+
+Return:
+
+* old view and new view.
+
+See also:
+
+* [`events.VIEW_NEW`](#events.VIEW_NEW)
+
+<a id="view.style_clear_all"></a>
+#### `view.style_clear_all`(*view*)
+
+Reverts all styles to having the same properties as `view.STYLE_DEFAULT`.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.style_reset_default"></a>
+#### `view.style_reset_default`(*view*)
+
+Resets `view.STYLE_DEFAULT` to its initial state.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.text_height"></a>
+#### `view.text_height`(*view, line*)
+
+Returns the pixel height of line number *line*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to get the pixel height of.
+
+Return:
+
+* number
+
+<a id="view.text_width"></a>
+#### `view.text_width`(*view, style\_num, text*)
+
+Returns the pixel width string *text* would have when styled with style
+number *style_num*, in the range of `1` to `256`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`style_num`*: The style number between `1` and `256` to use.
+* *`text`*: The text to measure the width of.
+
+Return:
+
+* number
+
+<a id="view.toggle_fold"></a>
+#### `view.toggle_fold`(*view, line*)
+
+Toggles the fold point on line number *line* between expanded (where all of
+its child lines are displayed) and contracted (where all of its child lines
+are hidden).
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to toggle the fold on.
+
+See also:
+
+* [`view.set_default_fold_display_text`](#view.set_default_fold_display_text)
+
+<a id="view.toggle_fold_show_text"></a>
+#### `view.toggle_fold_show_text`(*view, line, text*)
+
+Toggles a fold point on line number *line* between expanded (where all of
+its child lines are displayed) and contracted (where all of its child lines
+are hidden), and shows string *text* next to that line.
+*text* is drawn with style number `view.STYLE_FOLDDISPLAYTEXT`.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to toggle the fold on and display
+ *text* after.
+* *`text`*: The text to display after the line.
+
+<a id="view.unsplit"></a>
+#### `view.unsplit`(*view*)
+
+Unsplits the view if possible, returning `true` on success.
+
+Parameters:
+
+* *`view`*: The view to unsplit.
+
+Return:
+
+* boolean if the view was unsplit or not.
+
+<a id="view.vertical_center_caret"></a>
+#### `view.vertical_center_caret`(*view*)
+
+Centers current line in the view.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.visible_from_doc_line"></a>
+#### `view.visible_from_doc_line`(*view, line*)
+
+Returns the displayed line number of actual line number *line*, taking
+wrapped, annotated, and hidden lines into account, or `-1` if *line* is
+outside the range of lines in the buffer.
+Lines can occupy more than one display line if they wrap.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to use.
+
+Return:
+
+* number
+
+<a id="view.wrap_count"></a>
+#### `view.wrap_count`(*view, line*)
+
+Returns the number of wrapped lines needed to fully display line number
+*line*.
+
+Parameters:
+
+* *`view`*: A view.
+* *`line`*: The line number in *view* to use.
+
+Return:
+
+* number
+
+<a id="view.zoom_in"></a>
+#### `view.zoom_in`(*view*)
+
+Increases the size of all fonts by one point, up to 20.
+
+Parameters:
+
+* *`view`*: A view.
+
+<a id="view.zoom_out"></a>
+#### `view.zoom_out`(*view*)
+
+Decreases the size of all fonts by one point, down to -10.
+
+Parameters:
+
+* *`view`*: A view.
+
+
+### Tables defined by `view`
+
+<a id="view.buffer"></a>
+#### `view.buffer`
+
+The [buffer](#buffer) the view currently contains. (Read-only)
+
+---
diff --git a/docs/book.md b/docs/book.md
new file mode 100644
index 00000000..3ff0c8dc
--- /dev/null
+++ b/docs/book.md
@@ -0,0 +1,50 @@
+## Textadept Quick Reference Book
+
+<div style="float: left; margin: 0 1em 0 1em;">
+ <img src="images/quickref_small.png" alt="" style="border-width: 1px;"/>
+</div>
+
+*Textadept Quick Reference*<br/>
+Fourth Edition
+
+Order the [e-book][] &ndash; $15 USD<br/>
+Order the [e-book bundle][] with [Lua Quick Reference][] &ndash; $27 USD<br/>
+Order the print book via Amazon [US][], [UK][], [DE][], [FR][], [IT][], [ES][]
+
+Published: Aug 2018
+ISBN: 978-0-9912379-4-4<br/>
+Pages: 174
+
+[Excerpt][]
+
+Textadept is a fast, minimalist, and remarkably extensible cross-platform text
+editor for programmers. This quick reference contains a wealth of knowledge on
+how to script and configure Textadept using the Lua programming language. It
+groups the editor's rich API into a series of tasks in a convenient and
+easy-to-use manner.
+
+This book covers how to:
+
+* Leverage Textadept's important files and folders
+* Adeptly navigate and manipulate text
+* Mark lines and text visually
+* Show interactive lists and call tips
+* Prompt for user input in various ways
+* Spawn asynchronous, interactive child processes
+* Configure colors, themes, and other settings
+* Define lexers for highlighting source code
+* And much more
+
+It serves as the perfect complement to Textadept's comprehensive Manual and
+exhaustive API documentation.
+
+[e-book]: https://gum.co/textadept_ebook
+[e-book bundle]: https://gum.co/qr_bundle
+[Lua Quick Reference]: https://foicica.com/lua
+[US]: https://www.amazon.com/Textadept-Quick-Reference-Mitchell/dp/0991237943/
+[UK]: https://www.amazon.co.uk/Textadept-Quick-Reference-Mitchell/dp/0991237943/
+[DE]: https://www.amazon.de/Textadept-Quick-Reference-Mitchell/dp/0991237943/
+[FR]: https://www.amazon.fr/Textadept-Quick-Reference-Mitchell/dp/0991237943/
+[IT]: https://www.amazon.it/Textadept-Quick-Reference-Mitchell/dp/0991237943/
+[ES]: https://www.amazon.es/Textadept-Quick-Reference-Mitchell/dp/0991237943/
+[Excerpt]: https://raw.githubusercontent.com/orbitalquark/textadept/default/docs/quickref_excerpt.pdf
diff --git a/docs/changelog.md b/docs/changelog.md
index a3561ed2..171ab75c 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -1,24 +1,25 @@
## Changelog
-[Atom Feed][] | [PGP Public Key][]
+[Atom Feed](https://github.com/orbitalquark/textadept/releases.atom)
-**Please [donate][] or purchase the [book][] to fund continuous development.**
+**Please [donate][] or purchase the [book][] to help fund continuous
+development.**
-[Atom Feed]: feed
-[PGP Public Key]: https://foicica.com/foicica.pgp
-[donate]: http://gum.co/textadept
-[book]: media.html#Book
+[donate]: https://gum.co/textadept
+[book]: book.html
### 11.0 alpha 3 (01 Aug 2020)
Please see the [10 to 11 migration guide][] for upgrading from Textadept 10 to
Textadept 11.
-* [Textadept 11.0 alpha 3 -- Win32][] | [PGP -- 11.0 alpha 3 Win32][]
-* [Textadept 11.0 alpha 3 -- Mac OSX 10.6+][] | [PGP -- 11.0 alpha 3 OSX][]
-* [Textadept 11.0 alpha 3 -- Linux][] | [PGP -- 11.0 alpha 3 Linux][]
-* [Textadept 11.0 alpha 3 -- Linux x86_64][] | [PGP -- 11.0 alpha 3 Linux x86_64][]
-* [Textadept 11.0 alpha 3 -- Modules][] | [PGP -- 11.0 alpha 3 Modules][]
+Download:
+
+* [Textadept 11.0 alpha 3 -- Win32][]
+* [Textadept 11.0 alpha 3 -- Mac OSX 10.6+][]
+* [Textadept 11.0 alpha 3 -- Linux][]
+* [Textadept 11.0 alpha 3 -- Linux x86_64][]
+* [Textadept 11.0 alpha 3 -- Modules][]
Bugfixes:
@@ -78,17 +79,12 @@ Changes:
* Scintilla: Fixed GTK on Linux bug when pasting from closed application.
* Updated to [Scintilla][] 3.21.0.
-[10 to 11 migration guide]: manual.html#Textadept.10.to.11
-[Textadept 11.0 alpha 3 -- Win32]: download/textadept_11.0_alpha_3.win32.zip
-[Textadept 11.0 alpha 3 -- Mac OSX 10.6+]: download/textadept_11.0_alpha_3.osx.zip
-[Textadept 11.0 alpha 3 -- Linux]: download/textadept_11.0_alpha_3.i386.tgz
-[Textadept 11.0 alpha 3 -- Linux x86_64]: download/textadept_11.0_alpha_3.x86_64.tgz
-[Textadept 11.0 alpha 3 -- Modules]: download/textadept_11.0_alpha_3.modules.zip
-[PGP -- 11.0 alpha 3 Win32]: download/textadept_11.0_alpha_3.win32.zip.asc
-[PGP -- 11.0 alpha 3 OSX]: download/textadept_11.0_alpha_3.osx.zip.asc
-[PGP -- 11.0 alpha 3 Linux]: download/textadept_11.0_alpha_3.i386.tgz.asc
-[PGP -- 11.0 alpha 3 Linux x86_64]: download/textadept_11.0_alpha_3.x86_64.tgz.asc
-[PGP -- 11.0 alpha 3 Modules]: download/textadept_11.0_alpha_3.modules.zip.asc
+[10 to 11 migration guide]: manual.html#migrating-from-textadept-10-to-11
+[Textadept 11.0 alpha 3 -- Win32]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_3/textadept_11.0_alpha_3.win32.zip
+[Textadept 11.0 alpha 3 -- Mac OSX 10.6+]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_3/textadept_11.0_alpha_3.osx.zip
+[Textadept 11.0 alpha 3 -- Linux]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_3/textadept_11.0_alpha_3.i386.tgz
+[Textadept 11.0 alpha 3 -- Linux x86_64]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_3/textadept_11.0_alpha_3.x86_64.tgz
+[Textadept 11.0 alpha 3 -- Modules]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_3/textadept_11.0_alpha_3.modules.zip
[`view:set_theme()`]: api.html#view.set_theme
[`lfs.walk()`]: api.html#lfs.walk
[`buffer:style_of_name()`]: api.html#buffer.style_of_name
@@ -97,18 +93,20 @@ Changes:
[`textadept.editing.highlight_words`]: api.html#textadept.editing.highlight_words
[`lexer.colors`]: api.html#lexer.colors
[`lexer.styles`]: api.html#lexer.styles
-[define and reference styles]: api.html#lexer.Styles.and.Styling
+[define and reference styles]: api.html#styles-and-styling
[`lexer.fold*`]: api.html#lexer.fold_by_indentation
[`buffer.eol_annotation_text`]: api.html#buffer.eol_annotation_text
[Scintilla]: https://scintilla.org
### 11.0 alpha 2 (01 Jun 2020)
-* [Textadept 11.0 alpha 2 -- Win32][] | [PGP -- 11.0 alpha 2 Win32][]
-* [Textadept 11.0 alpha 2 -- Mac OSX 10.6+][] | [PGP -- 11.0 alpha 2 OSX][]
-* [Textadept 11.0 alpha 2 -- Linux][] | [PGP -- 11.0 alpha 2 Linux][]
-* [Textadept 11.0 alpha 2 -- Linux x86_64][] | [PGP -- 11.0 alpha 2 Linux x86_64][]
-* [Textadept 11.0 alpha 2 -- Modules][] | [PGP -- 11.0 alpha 2 Modules][]
+Download:
+
+* [Textadept 11.0 alpha 2 -- Win32][]
+* [Textadept 11.0 alpha 2 -- Mac OSX 10.6+][]
+* [Textadept 11.0 alpha 2 -- Linux][]
+* [Textadept 11.0 alpha 2 -- Linux x86_64][]
+* [Textadept 11.0 alpha 2 -- Modules][]
Bugfixes:
@@ -134,18 +132,12 @@ Changes:
* Scintilla: Improved behavior of IME.
* Updated to [Scintilla][] 3.20.0.
-[10 to 11 migration guide]: manual.html#Textadept.10.to.11
-[Textadept 11.0 alpha 2 -- Win32]: download/textadept_11.0_alpha_2.win32.zip
-[Textadept 11.0 alpha 2 -- Mac OSX 10.6+]: download/textadept_11.0_alpha_2.osx.zip
-[Textadept 11.0 alpha 2 -- Linux]: download/textadept_11.0_alpha_2.i386.tgz
-[Textadept 11.0 alpha 2 -- Linux x86_64]: download/textadept_11.0_alpha_2.x86_64.tgz
-[Textadept 11.0 alpha 2 -- Modules]: download/textadept_11.0_alpha_2.modules.zip
-[PGP -- 11.0 alpha 2 Win32]: download/textadept_11.0_alpha_2.win32.zip.asc
-[PGP -- 11.0 alpha 2 OSX]: download/textadept_11.0_alpha_2.osx.zip.asc
-[PGP -- 11.0 alpha 2 Linux]: download/textadept_11.0_alpha_2.i386.tgz.asc
-[PGP -- 11.0 alpha 2 Linux x86_64]: download/textadept_11.0_alpha_2.x86_64.tgz.asc
-[PGP -- 11.0 alpha 2 Modules]: download/textadept_11.0_alpha_2.modules.zip.asc
-[API suggestions]: manual.html#View.API.Additions.and.Buffer.API.Changes
+[Textadept 11.0 alpha 2 -- Win32]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_2/textadept_11.0_alpha_2.win32.zip
+[Textadept 11.0 alpha 2 -- Mac OSX 10.6+]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_2/textadept_11.0_alpha_2.osx.zip
+[Textadept 11.0 alpha 2 -- Linux]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_2/textadept_11.0_alpha_2.i386.tgz
+[Textadept 11.0 alpha 2 -- Linux x86_64]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_2/textadept_11.0_alpha_2.x86_64.tgz
+[Textadept 11.0 alpha 2 -- Modules]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha_2/textadept_11.0_alpha_2.modules.zip
+[API suggestions]: manual.html#view-api-additions-and-buffer-api-changes
[`buffer:marker_handle_from_line()`]: api.html#buffer.marker_handle_from_line
[`buffer:marker_number_from_line()`]: api.html#buffer.marker_number_from_line
[`lexer.range()`]: api.html#lexer.range
@@ -155,11 +147,13 @@ Changes:
### 11.0 alpha (31 Mar 2020)
-* [Textadept 11.0 alpha -- Win32][] | [PGP -- 11.0 alpha Win32][]
-* [Textadept 11.0 alpha -- Mac OSX 10.6+][] | [PGP -- 11.0 alpha OSX][]
-* [Textadept 11.0 alpha -- Linux][] | [PGP -- 11.0 alpha Linux][]
-* [Textadept 11.0 alpha -- Linux x86_64][] | [PGP -- 11.0 alpha Linux x86_64][]
-* [Textadept 11.0 alpha -- Modules][] | [PGP -- 11.0 alpha Modules][]
+Download:
+
+* [Textadept 11.0 alpha -- Win32][]
+* [Textadept 11.0 alpha -- Mac OSX 10.6+][]
+* [Textadept 11.0 alpha -- Linux][]
+* [Textadept 11.0 alpha -- Linux x86_64][]
+* [Textadept 11.0 alpha -- Modules][]
Bugfixes:
@@ -190,7 +184,7 @@ Changes:
* `textadept.run.goto_error()` wraps searches now.
* Added snippet trigger autocompletion via
`textadept.editing.autocomplete('snippet')`.
-* Improved Lua API [documentation generator][].
+* Improved Lua API documentation generator.
* Localization keys in `_L` no longer contain GUI mnemonics ('\_').
* `textadept.snippets` functions no longer have a '\_' prefix.
* `--help` command line options are alphabetized.
@@ -229,17 +223,11 @@ Changes:
* Experimental set of "standard" modules is provided in the modules archive
instead of just language modules.
-[Textadept 11.0 alpha -- Win32]: download/textadept_11.0_alpha.win32.zip
-[Textadept 11.0 alpha -- Mac OSX 10.6+]: download/textadept_11.0_alpha.osx.zip
-[Textadept 11.0 alpha -- Linux]: download/textadept_11.0_alpha.i386.tgz
-[Textadept 11.0 alpha -- Linux x86_64]: download/textadept_11.0_alpha.x86_64.tgz
-[Textadept 11.0 alpha -- Modules]: download/textadept_11.0_alpha.modules.zip
-[PGP -- 11.0 alpha Win32]: download/textadept_11.0_alpha.win32.zip.asc
-[PGP -- 11.0 alpha OSX]: download/textadept_11.0_alpha.osx.zip.asc
-[PGP -- 11.0 alpha Linux]: download/textadept_11.0_alpha.i386.tgz.asc
-[PGP -- 11.0 alpha Linux x86_64]: download/textadept_11.0_alpha.x86_64.tgz.asc
-[PGP -- 11.0 alpha Modules]: download/textadept_11.0_alpha.modules.zip.asc
-[documentation generator]: manual.html#Generating.LuaDoc
+[Textadept 11.0 alpha -- Win32]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha/textadept_11.0_alpha.win32.zip
+[Textadept 11.0 alpha -- Mac OSX 10.6+]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha/textadept_11.0_alpha.osx.zip
+[Textadept 11.0 alpha -- Linux]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha/textadept_11.0_alpha.i386.tgz
+[Textadept 11.0 alpha -- Linux x86_64]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha/textadept_11.0_alpha.x86_64.tgz
+[Textadept 11.0 alpha -- Modules]: https://github.com/orbitalquark/textadept/releases/download/textadept_11.0_alpha/textadept_11.0_alpha.modules.zip
[`buffer:name_of_style()`]: api.html#buffer.name_of_style
[`events.SESSION_SAVE`]: api.html#events.SESSION_SAVE
[`events.SESSION_LOAD`]: api.html#events.SESSION_LOAD
@@ -251,11 +239,11 @@ Changes:
Download:
-* [Textadept 10.8 -- Win32][] | [PGP -- 10.8 Win32][]
-* [Textadept 10.8 -- Mac OSX 10.6+][] | [PGP -- 10.8 OSX][]
-* [Textadept 10.8 -- Linux][] | [PGP -- 10.8 Linux][]
-* [Textadept 10.8 -- Linux x86_64][] | [PGP -- 10.8 Linux x86_64][]
-* [Textadept 10.8 -- Modules][] | [PGP -- 10.8 Modules][]
+* [Textadept 10.8 -- Win32][]
+* [Textadept 10.8 -- Mac OSX 10.6+][]
+* [Textadept 10.8 -- Linux][]
+* [Textadept 10.8 -- Linux x86_64][]
+* [Textadept 10.8 -- Modules][]
Bugfixes:
@@ -277,29 +265,16 @@ Changes:
* Scintilla: The target can have virtual space.
* Updated to [Scintilla][] 3.11.2.
-[Textadept 10.8 -- Win32]: download/textadept_10.8.win32.zip
-[Textadept 10.8 -- Mac OSX 10.6+]: download/textadept_10.8.osx.zip
-[Textadept 10.8 -- Linux]: download/textadept_10.8.i386.tgz
-[Textadept 10.8 -- Linux x86_64]: download/textadept_10.8.x86_64.tgz
-[Textadept 10.8 -- Modules]: download/textadept_10.8.modules.zip
-[PGP -- 10.8 Win32]: download/textadept_10.8.win32.zip.asc
-[PGP -- 10.8 OSX]: download/textadept_10.8.osx.zip.asc
-[PGP -- 10.8 Linux]: download/textadept_10.8.i386.tgz.asc
-[PGP -- 10.8 Linux x86_64]: download/textadept_10.8.x86_64.tgz.asc
-[PGP -- 10.8 Modules]: download/textadept_10.8.modules.zip.asc
+[Textadept 10.8 -- Win32]: https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.win32.zip
+[Textadept 10.8 -- Mac OSX 10.6+]: https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.osx.zip
+[Textadept 10.8 -- Linux]: https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.i386.tgz
+[Textadept 10.8 -- Linux x86_64]: https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.x86_64.tgz
+[Textadept 10.8 -- Modules]: https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.modules.zip
[`events.TAB_CLICKED`]: api.html#events.TAB_CLICKED
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 10.7 (01 Nov 2019)
-Download:
-
-* [Textadept 10.7 -- Win32][] | [PGP -- 10.7 Win32][]
-* [Textadept 10.7 -- Mac OSX 10.6+][] | [PGP -- 10.7 OSX][]
-* [Textadept 10.7 -- Linux][] | [PGP -- 10.7 Linux][]
-* [Textadept 10.7 -- Linux x86_64][] | [PGP -- 10.7 Linux x86_64][]
-* [Textadept 10.7 -- Modules][] | [PGP -- 10.7 Modules][]
-
Bugfixes:
* Fixed scroll issues when toggling line wrap.
@@ -330,31 +305,13 @@ Changes:
* Scintilla: Updated case conversion and character categories to Unicode 12.1.
* Updated to [Scintilla][] 3.11.1.
-[Textadept 10.7 -- Win32]: download/textadept_10.7.win32.zip
-[Textadept 10.7 -- Mac OSX 10.6+]: download/textadept_10.7.osx.zip
-[Textadept 10.7 -- Linux]: download/textadept_10.7.i386.tgz
-[Textadept 10.7 -- Linux x86_64]: download/textadept_10.7.x86_64.tgz
-[Textadept 10.7 -- Modules]: download/textadept_10.7.modules.zip
-[PGP -- 10.7 Win32]: download/textadept_10.7.win32.zip.asc
-[PGP -- 10.7 OSX]: download/textadept_10.7.osx.zip.asc
-[PGP -- 10.7 Linux]: download/textadept_10.7.i386.tgz.asc
-[PGP -- 10.7 Linux x86_64]: download/textadept_10.7.x86_64.tgz.asc
-[PGP -- 10.7 Modules]: download/textadept_10.7.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[`textadept.editing.paste_reindent()`]: api.html#textadept.editing.paste_reindent
[`ui.command_entry.run()`]: api.html#ui.command_entry.run
[`textadept.macros.record()`]: api.html#textadept.macros.record
### 10.6 (01 Sep 2019)
-Download:
-
-* [Textadept 10.6 -- Win32][] | [PGP -- 10.6 Win32][]
-* [Textadept 10.6 -- Mac OSX 10.6+][] | [PGP -- 10.6 OSX][]
-* [Textadept 10.6 -- Linux][] | [PGP -- 10.6 Linux][]
-* [Textadept 10.6 -- Linux x86_64][] | [PGP -- 10.6 Linux x86_64][]
-* [Textadept 10.6 -- Modules][] | [PGP -- 10.6 Modules][]
-
Bugfixes:
* Fail more gracefully when users attempt to create buffers on init.
@@ -369,28 +326,10 @@ Changes:
* Added support for ksh and mksh.
* Updated to [Scintilla][] 3.11.0.
-[Textadept 10.6 -- Win32]: download/textadept_10.6.win32.zip
-[Textadept 10.6 -- Mac OSX 10.6+]: download/textadept_10.6.osx.zip
-[Textadept 10.6 -- Linux]: download/textadept_10.6.i386.tgz
-[Textadept 10.6 -- Linux x86_64]: download/textadept_10.6.x86_64.tgz
-[Textadept 10.6 -- Modules]: download/textadept_10.6.modules.zip
-[PGP -- 10.6 Win32]: download/textadept_10.6.win32.zip.asc
-[PGP -- 10.6 OSX]: download/textadept_10.6.osx.zip.asc
-[PGP -- 10.6 Linux]: download/textadept_10.6.i386.tgz.asc
-[PGP -- 10.6 Linux x86_64]: download/textadept_10.6.x86_64.tgz.asc
-[PGP -- 10.6 Modules]: download/textadept_10.6.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 10.5 (01 Jul 2019)
-Download:
-
-* [Textadept 10.5 -- Win32][] | [PGP -- 10.5 Win32][]
-* [Textadept 10.5 -- Mac OSX 10.6+][] | [PGP -- 10.5 OSX][]
-* [Textadept 10.5 -- Linux][] | [PGP -- 10.5 Linux][]
-* [Textadept 10.5 -- Linux x86_64][] | [PGP -- 10.5 Linux x86_64][]
-* [Textadept 10.5 -- Modules][] | [PGP -- 10.5 Modules][]
-
Bugfixes:
* Do not advance the caret on failed incremental find.
@@ -408,29 +347,11 @@ Changes:
option to treat only letters as word characters.
* Updated to [Scintilla][] 3.10.6.
-[Textadept 10.5 -- Win32]: download/textadept_10.5.win32.zip
-[Textadept 10.5 -- Mac OSX 10.6+]: download/textadept_10.5.osx.zip
-[Textadept 10.5 -- Linux]: download/textadept_10.5.i386.tgz
-[Textadept 10.5 -- Linux x86_64]: download/textadept_10.5.x86_64.tgz
-[Textadept 10.5 -- Modules]: download/textadept_10.5.modules.zip
-[PGP -- 10.5 Win32]: download/textadept_10.5.win32.zip.asc
-[PGP -- 10.5 OSX]: download/textadept_10.5.osx.zip.asc
-[PGP -- 10.5 Linux]: download/textadept_10.5.i386.tgz.asc
-[PGP -- 10.5 Linux x86_64]: download/textadept_10.5.x86_64.tgz.asc
-[PGP -- 10.5 Modules]: download/textadept_10.5.modules.zip.asc
[`textadept.editing.show_documentation()`]: api.html#textadept.editing.show_documentation
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 10.4 (01 May 2019)
-Download:
-
-* [Textadept 10.4 -- Win32][] | [PGP -- 10.4 Win32][]
-* [Textadept 10.4 -- Mac OSX 10.6+][] | [PGP -- 10.4 OSX][]
-* [Textadept 10.4 -- Linux][] | [PGP -- 10.4 Linux][]
-* [Textadept 10.4 -- Linux x86_64][] | [PGP -- 10.4 Linux x86_64][]
-* [Textadept 10.4 -- Modules][] | [PGP -- 10.4 Modules][]
-
Bugfixes:
* Fixed scrolling found text into view on long lines.
@@ -446,30 +367,12 @@ Changes:
* Updated to [Scintilla][] 3.10.4.
* Updated to [LuaFileSystem][] 1.7.0 and [LPeg][] 1.0.2.
-[Textadept 10.4 -- Win32]: download/textadept_10.4.win32.zip
-[Textadept 10.4 -- Mac OSX 10.6+]: download/textadept_10.4.osx.zip
-[Textadept 10.4 -- Linux]: download/textadept_10.4.i386.tgz
-[Textadept 10.4 -- Linux x86_64]: download/textadept_10.4.x86_64.tgz
-[Textadept 10.4 -- Modules]: download/textadept_10.4.modules.zip
-[PGP -- 10.4 Win32]: download/textadept_10.4.win32.zip.asc
-[PGP -- 10.4 OSX]: download/textadept_10.4.osx.zip.asc
-[PGP -- 10.4 Linux]: download/textadept_10.4.i386.tgz.asc
-[PGP -- 10.4 Linux x86_64]: download/textadept_10.4.x86_64.tgz.asc
-[PGP -- 10.4 Modules]: download/textadept_10.4.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[LuaFileSystem]: https://keplerproject.github.io/luafilesystem/
[LPeg]: http://www.inf.puc-rio.br/~roberto/lpeg/
### 10.3 (01 Mar 2019)
-Download:
-
-* [Textadept 10.3 -- Win32][] | [PGP -- 10.3 Win32][]
-* [Textadept 10.3 -- Mac OSX 10.6+][] | [PGP -- 10.3 OSX][]
-* [Textadept 10.3 -- Linux][] | [PGP -- 10.3 Linux][]
-* [Textadept 10.3 -- Linux x86_64][] | [PGP -- 10.3 Linux x86_64][]
-* [Textadept 10.3 -- Modules][] | [PGP -- 10.3 Modules][]
-
Bugfixes:
* Fixed block comment support for Nim.
@@ -481,28 +384,10 @@ Changes:
* Allow redefinition of `WGET` in Makefile for
* Updated to [Scintilla][] 3.10.2.
-[Textadept 10.3 -- Win32]: download/textadept_10.3.win32.zip
-[Textadept 10.3 -- Mac OSX 10.6+]: download/textadept_10.3.osx.zip
-[Textadept 10.3 -- Linux]: download/textadept_10.3.i386.tgz
-[Textadept 10.3 -- Linux x86_64]: download/textadept_10.3.x86_64.tgz
-[Textadept 10.3 -- Modules]: download/textadept_10.3.modules.zip
-[PGP -- 10.3 Win32]: download/textadept_10.3.win32.zip.asc
-[PGP -- 10.3 OSX]: download/textadept_10.3.osx.zip.asc
-[PGP -- 10.3 Linux]: download/textadept_10.3.i386.tgz.asc
-[PGP -- 10.3 Linux x86_64]: download/textadept_10.3.x86_64.tgz.asc
-[PGP -- 10.3 Modules]: download/textadept_10.3.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 10.3 beta (01 Jan 2019)
-Download:
-
-* [Textadept 10.3 beta -- Win32][] | [PGP -- 10.3 beta Win32][]
-* [Textadept 10.3 beta -- Mac OSX 10.6+][] | [PGP -- 10.3 beta OSX][]
-* [Textadept 10.3 beta -- Linux][] | [PGP -- 10.3 beta Linux][]
-* [Textadept 10.3 beta -- Linux x86_64][] | [PGP -- 10.3 beta Linux x86_64][]
-* [Textadept 10.3 beta -- Modules][] | [PGP -- 10.3 beta Modules][]
-
Bugfixes:
* Ensure `Esc` clears highlighted words.
@@ -526,30 +411,12 @@ Changes:
* Added `-l` and `--line` command line switches to jump to a buffer line.
* Updated to [PDCurses][] 3.6 for the Windows terminal version.
-[Textadept 10.3 beta -- Win32]: download/textadept_10.3_beta.win32.zip
-[Textadept 10.3 beta -- Mac OSX 10.6+]: download/textadept_10.3_beta.osx.zip
-[Textadept 10.3 beta -- Linux]: download/textadept_10.3_beta.i386.tgz
-[Textadept 10.3 beta -- Linux x86_64]: download/textadept_10.3_beta.x86_64.tgz
-[Textadept 10.3 beta -- Modules]: download/textadept_10.3_beta.modules.zip
-[PGP -- 10.3 beta Win32]: download/textadept_10.3_beta.win32.zip.asc
-[PGP -- 10.3 beta OSX]: download/textadept_10.3_beta.osx.zip.asc
-[PGP -- 10.3 beta Linux]: download/textadept_10.3_beta.i386.tgz.asc
-[PGP -- 10.3 beta Linux x86_64]: download/textadept_10.3_beta.x86_64.tgz.asc
-[PGP -- 10.3 beta Modules]: download/textadept_10.3_beta.modules.zip.asc
[`textadept.editing.show_documentation()`]: api.html#textadept.editing.show_documentation
[file filter]: api.html#io.quick_open
[PDCurses]: https://pdcurses.sourceforge.io/
### 10.2 (01 Nov 2018)
-Download:
-
-* [Textadept 10.2 -- Win32][] | [PGP -- 10.2 Win32][]
-* [Textadept 10.2 -- Mac OSX 10.6+][] | [PGP -- 10.2 OSX][]
-* [Textadept 10.2 -- Linux][] | [PGP -- 10.2 Linux][]
-* [Textadept 10.2 -- Linux x86_64][] | [PGP -- 10.2 Linux x86_64][]
-* [Textadept 10.2 -- Modules][] | [PGP -- 10.2 Modules][]
-
Bugfixes:
* Fixed error when performing "select enclosed" on a non-ASCII character.
@@ -576,30 +443,12 @@ Changes:
* Scintilla: Updated ConTeXt, HTML, and Markdown lexers.
* Updated to [Scintilla][] 3.10.1.
-[Textadept 10.2 -- Win32]: download/textadept_10.2.win32.zip
-[Textadept 10.2 -- Mac OSX 10.6+]: download/textadept_10.2.osx.zip
-[Textadept 10.2 -- Linux]: download/textadept_10.2.i386.tgz
-[Textadept 10.2 -- Linux x86_64]: download/textadept_10.2.x86_64.tgz
-[Textadept 10.2 -- Modules]: download/textadept_10.2.modules.zip
-[PGP -- 10.2 Win32]: download/textadept_10.2.win32.zip.asc
-[PGP -- 10.2 OSX]: download/textadept_10.2.osx.zip.asc
-[PGP -- 10.2 Linux]: download/textadept_10.2.i386.tgz.asc
-[PGP -- 10.2 Linux x86_64]: download/textadept_10.2.x86_64.tgz.asc
-[PGP -- 10.2 Modules]: download/textadept_10.2.modules.zip.asc
[`os.spawn()`]: api.html#os.spawn
[`textadept.macros`]: api.html#textadept.macros
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 10.1 (01 Oct 2018)
-Download:
-
-* [Textadept 10.1 -- Win32][] | [PGP -- 10.1 Win32][]
-* [Textadept 10.1 -- Mac OSX 10.6+][] | [PGP -- 10.1 OSX][]
-* [Textadept 10.1 -- Linux][] | [PGP -- 10.1 Linux][]
-* [Textadept 10.1 -- Linux x86_64][] | [PGP -- 10.1 Linux x86_64][]
-* [Textadept 10.1 -- Modules][] | [PGP -- 10.1 Modules][]
-
Bugfixes:
* Fixed view focus synchronization issues when dropping files into split views.
@@ -616,16 +465,6 @@ Changes:
* Updated to GTK 2.24.32 on Windows, which fixes a number of various GTK-related
issues.
-[Textadept 10.1 -- Win32]: download/textadept_10.1.win32.zip
-[Textadept 10.1 -- Mac OSX 10.6+]: download/textadept_10.1.osx.zip
-[Textadept 10.1 -- Linux]: download/textadept_10.1.i386.tgz
-[Textadept 10.1 -- Linux x86_64]: download/textadept_10.1.x86_64.tgz
-[Textadept 10.1 -- Modules]: download/textadept_10.1.modules.zip
-[PGP -- 10.1 Win32]: download/textadept_10.1.win32.zip.asc
-[PGP -- 10.1 OSX]: download/textadept_10.1.osx.zip.asc
-[PGP -- 10.1 Linux]: download/textadept_10.1.i386.tgz.asc
-[PGP -- 10.1 Linux x86_64]: download/textadept_10.1.x86_64.tgz.asc
-[PGP -- 10.1 Modules]: download/textadept_10.1.modules.zip.asc
[`events.RESET_BEFORE`]: api.html#events.RESET_BEFORE
[`events.RESET_AFTER`]: api.html#events.RESET_AFTER
[`ui.find.find_in_files_filters`]: api.html#ui.find.find_in_files_filters
@@ -635,14 +474,6 @@ Changes:
Please see the [9 to 10 migration guide][] for upgrading from Textadept 9 to
Textadept 10.
-Download:
-
-* [Textadept 10.0 -- Win32][] | [PGP -- 10.0 Win32][]
-* [Textadept 10.0 -- Mac OSX 10.6+][] | [PGP -- 10.0 OSX][]
-* [Textadept 10.0 -- Linux][] | [PGP -- 10.0 Linux][]
-* [Textadept 10.0 -- Linux x86_64][] | [PGP -- 10.0 Linux x86_64][]
-* [Textadept 10.0 -- Modules][] | [PGP -- 10.0 Modules][]
-
Bugfixes:
* Fixed markdown lexer lists and C# lexer keywords.
@@ -661,30 +492,12 @@ Changes:
* Updated to [Scintilla][] 3.10.0.
* Updated to [Lua][] 5.3.5.
-[9 to 10 migration guide]: manual.html#Textadept.9.to.10
-[Textadept 10.0 -- Win32]: download/textadept_10.0.win32.zip
-[Textadept 10.0 -- Mac OSX 10.6+]: download/textadept_10.0.osx.zip
-[Textadept 10.0 -- Linux]: download/textadept_10.0.i386.tgz
-[Textadept 10.0 -- Linux x86_64]: download/textadept_10.0.x86_64.tgz
-[Textadept 10.0 -- Modules]: download/textadept_10.0.modules.zip
-[PGP -- 10.0 Win32]: download/textadept_10.0.win32.zip.asc
-[PGP -- 10.0 OSX]: download/textadept_10.0.osx.zip.asc
-[PGP -- 10.0 Linux]: download/textadept_10.0.i386.tgz.asc
-[PGP -- 10.0 Linux x86_64]: download/textadept_10.0.x86_64.tgz.asc
-[PGP -- 10.0 Modules]: download/textadept_10.0.modules.zip.asc
-[Scintilla]: http://scintilla.org
-[Lua]: http://lua.org
+[9 to 10 migration guide]: manual.html#textadept-9-to-10
+[Scintilla]: https://scintilla.org
+[Lua]: https://lua.org
### 10.0 beta 2 (01 Jun 2018)
-Download:
-
-* [Textadept 10.0 beta 2 -- Win32][] | [PGP -- 10.0 beta 2 Win32][]
-* [Textadept 10.0 beta 2 -- Mac OSX 10.6+][] | [PGP -- 10.0 beta 2 OSX][]
-* [Textadept 10.0 beta 2 -- Linux][] | [PGP -- 10.0 beta 2 Linux][]
-* [Textadept 10.0 beta 2 -- Linux x86_64][] | [PGP -- 10.0 beta 2 Linux x86_64][]
-* [Textadept 10.0 beta 2 -- Modules][] | [PGP -- 10.0 beta 2 Modules][]
-
Bugfixes:
* Fixed unset lexer bug upon splitting a newly created buffer.
@@ -700,27 +513,8 @@ Changes:
* Makefile can be used to build on case-insensitive filesystems.
* Interpret `\uXXXX` sequences in regex replacement text.
-[Textadept 10.0 beta 2 -- Win32]: download/textadept_10.0_beta_2.win32.zip
-[Textadept 10.0 beta 2 -- Mac OSX 10.6+]: download/textadept_10.0_beta_2.osx.zip
-[Textadept 10.0 beta 2 -- Linux]: download/textadept_10.0_beta_2.i386.tgz
-[Textadept 10.0 beta 2 -- Linux x86_64]: download/textadept_10.0_beta_2.x86_64.tgz
-[Textadept 10.0 beta 2 -- Modules]: download/textadept_10.0_beta_2.modules.zip
-[PGP -- 10.0 beta 2 Win32]: download/textadept_10.0_beta_2.win32.zip.asc
-[PGP -- 10.0 beta 2 OSX]: download/textadept_10.0_beta_2.osx.zip.asc
-[PGP -- 10.0 beta 2 Linux]: download/textadept_10.0_beta_2.i386.tgz.asc
-[PGP -- 10.0 beta 2 Linux x86_64]: download/textadept_10.0_beta_2.x86_64.tgz.asc
-[PGP -- 10.0 beta 2 Modules]: download/textadept_10.0_beta_2.modules.zip.asc
-
### 10.0 beta (01 May 2018)
-Download:
-
-* [Textadept 10.0 beta -- Win32][] | [PGP -- 10.0 beta Win32][]
-* [Textadept 10.0 beta -- Mac OSX 10.6+][] | [PGP -- 10.0 beta OSX][]
-* [Textadept 10.0 beta -- Linux][] | [PGP -- 10.0 beta Linux][]
-* [Textadept 10.0 beta -- Linux x86_64][] | [PGP -- 10.0 beta Linux x86_64][]
-* [Textadept 10.0 beta -- Modules][] | [PGP -- 10.0 beta Modules][]
-
Bugfixes:
* Fixed incorrect style settings when splitting views.
@@ -734,27 +528,8 @@ Changes:
* Minimum required Mac OSX version is now 10.6 (Snow Leopard) or higher.
* Removed LuaJIT version of Textadept.
-[Textadept 10.0 beta -- Win32]: download/textadept_10.0_beta.win32.zip
-[Textadept 10.0 beta -- Mac OSX 10.6+]: download/textadept_10.0_beta.osx.zip
-[Textadept 10.0 beta -- Linux]: download/textadept_10.0_beta.i386.tgz
-[Textadept 10.0 beta -- Linux x86_64]: download/textadept_10.0_beta.x86_64.tgz
-[Textadept 10.0 beta -- Modules]: download/textadept_10.0_beta.modules.zip
-[PGP -- 10.0 beta Win32]: download/textadept_10.0_beta.win32.zip.asc
-[PGP -- 10.0 beta OSX]: download/textadept_10.0_beta.osx.zip.asc
-[PGP -- 10.0 beta Linux]: download/textadept_10.0_beta.i386.tgz.asc
-[PGP -- 10.0 beta Linux x86_64]: download/textadept_10.0_beta.x86_64.tgz.asc
-[PGP -- 10.0 beta Modules]: download/textadept_10.0_beta.modules.zip.asc
-
### 10.0 alpha 3 (01 Apr 2018)
-Download:
-
-* [Textadept 10.0 alpha 3 -- Win32][] | [PGP -- 10.0 alpha 3 Win32][]
-* [Textadept 10.0 alpha 3 -- Mac OSX Intel 10.5+][] | [PGP -- 10.0 alpha 3 OSX][]
-* [Textadept 10.0 alpha 3 -- Linux][] | [PGP -- 10.0 alpha 3 Linux][]
-* [Textadept 10.0 alpha 3 -- Linux x86_64][] | [PGP -- 10.0 alpha 3 Linux x86_64][]
-* [Textadept 10.0 alpha 3 -- Modules][] | [PGP -- 10.0 alpha 3 Modules][]
-
Bugfixes:
* Fixed hang in the terminal version on Windows.
@@ -774,29 +549,11 @@ Changes:
* Scintilla: Added [`events.AUTO_C_SELECTION_CHANGE`][] event.
* Updated to [Scintilla][] 3.8.0.
-[Textadept 10.0 alpha 3 -- Win32]: download/textadept_10.0_alpha_3.win32.zip
-[Textadept 10.0 alpha 3 -- Mac OSX Intel 10.5+]: download/textadept_10.0_alpha_3.osx.zip
-[Textadept 10.0 alpha 3 -- Linux]: download/textadept_10.0_alpha_3.i386.tgz
-[Textadept 10.0 alpha 3 -- Linux x86_64]: download/textadept_10.0_alpha_3.x86_64.tgz
-[Textadept 10.0 alpha 3 -- Modules]: download/textadept_10.0_alpha_3.modules.zip
-[PGP -- 10.0 alpha 3 Win32]: download/textadept_10.0_alpha_3.win32.zip.asc
-[PGP -- 10.0 alpha 3 OSX]: download/textadept_10.0_alpha_3.osx.zip.asc
-[PGP -- 10.0 alpha 3 Linux]: download/textadept_10.0_alpha_3.i386.tgz.asc
-[PGP -- 10.0 alpha 3 Linux x86_64]: download/textadept_10.0_alpha_3.x86_64.tgz.asc
-[PGP -- 10.0 alpha 3 Modules]: download/textadept_10.0_alpha_3.modules.zip.asc
[`events.AUTO_C_SELECTION_CHANGE`]: api.html#events.AUTO_C_SELECTION_CHANGE
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 10.0 alpha 2 (01 Mar 2018)
-Download:
-
-* [Textadept 10.0 alpha 2 -- Win32][] | [PGP -- 10.0 alpha 2 Win32][]
-* [Textadept 10.0 alpha 2 -- Mac OSX Intel 10.5+][] | [PGP -- 10.0 alpha 2 OSX][]
-* [Textadept 10.0 alpha 2 -- Linux][] | [PGP -- 10.0 alpha 2 Linux][]
-* [Textadept 10.0 alpha 2 -- Linux x86_64][] | [PGP -- 10.0 alpha 2 Linux x86_64][]
-* [Textadept 10.0 alpha 2 -- Modules][] | [PGP -- 10.0 alpha 2 Modules][]
-
Bugfixes:
* Fixed clang build warnings/errors regarding LuaJIT.
@@ -825,28 +582,10 @@ Changes:
* The terminal version can now remap `^H` (which was previously locked to
`Backspace`).
-[Textadept 10.0 alpha 2 -- Win32]: download/textadept_10.0_alpha_2.win32.zip
-[Textadept 10.0 alpha 2 -- Mac OSX Intel 10.5+]: download/textadept_10.0_alpha_2.osx.zip
-[Textadept 10.0 alpha 2 -- Linux]: download/textadept_10.0_alpha_2.i386.tgz
-[Textadept 10.0 alpha 2 -- Linux x86_64]: download/textadept_10.0_alpha_2.x86_64.tgz
-[Textadept 10.0 alpha 2 -- Modules]: download/textadept_10.0_alpha_2.modules.zip
-[PGP -- 10.0 alpha 2 Win32]: download/textadept_10.0_alpha_2.win32.zip.asc
-[PGP -- 10.0 alpha 2 OSX]: download/textadept_10.0_alpha_2.osx.zip.asc
-[PGP -- 10.0 alpha 2 Linux]: download/textadept_10.0_alpha_2.i386.tgz.asc
-[PGP -- 10.0 alpha 2 Linux x86_64]: download/textadept_10.0_alpha_2.x86_64.tgz.asc
-[PGP -- 10.0 alpha 2 Modules]: download/textadept_10.0_alpha_2.modules.zip.asc
[`buffer.move_extends_selection`]: api.html#buffer.move_extends_selection
### 10.0 alpha (01 Jan 2018)
-Download:
-
-* [Textadept 10.0 alpha -- Win32][] | [PGP -- 10.0 alpha Win32][]
-* [Textadept 10.0 alpha -- Mac OSX Intel 10.5+][] | [PGP -- 10.0 alpha OSX][]
-* [Textadept 10.0 alpha -- Linux][] | [PGP -- 10.0 alpha Linux][]
-* [Textadept 10.0 alpha -- Linux x86_64][] | [PGP -- 10.0 alpha Linux x86_64][]
-* [Textadept 10.0 alpha -- Modules][] | [PGP -- 10.0 alpha Modules][]
-
Bugfixes:
* Scintilla: Fixed a couple of wrapped line drawing cases.
@@ -870,30 +609,12 @@ Changes:
* Added [`events.ZOOM`][].
* New, object-oriented way to [create lexers][].
-[Textadept 10.0 alpha -- Win32]: download/textadept_10.0_alpha.win32.zip
-[Textadept 10.0 alpha -- Mac OSX Intel 10.5+]: download/textadept_10.0_alpha.osx.zip
-[Textadept 10.0 alpha -- Linux]: download/textadept_10.0_alpha.i386.tgz
-[Textadept 10.0 alpha -- Linux x86_64]: download/textadept_10.0_alpha.x86_64.tgz
-[Textadept 10.0 alpha -- Modules]: download/textadept_10.0_alpha.modules.zip
-[PGP -- 10.0 alpha Win32]: download/textadept_10.0_alpha.win32.zip.asc
-[PGP -- 10.0 alpha OSX]: download/textadept_10.0_alpha.osx.zip.asc
-[PGP -- 10.0 alpha Linux]: download/textadept_10.0_alpha.i386.tgz.asc
-[PGP -- 10.0 alpha Linux x86_64]: download/textadept_10.0_alpha.x86_64.tgz.asc
-[PGP -- 10.0 alpha Modules]: download/textadept_10.0_alpha.modules.zip.asc
[`buffer.brace_match()`]: api.html#buffer.brace_match
[`events.ZOOM`]: api.html#events.ZOOM
[create lexers]: api.html#lexer
### 9.6 (01 Nov 2017)
-Download:
-
-* [Textadept 9.6 -- Win32][] | [PGP -- 9.6 Win32][]
-* [Textadept 9.6 -- Mac OSX Intel 10.5+][] | [PGP -- 9.6 OSX][]
-* [Textadept 9.6 -- Linux][] | [PGP -- 9.6 Linux][]
-* [Textadept 9.6 -- Linux x86_64][] | [PGP -- 9.6 Linux x86_64][]
-* [Textadept 9.6 -- Modules][] | [PGP -- 9.6 Modules][]
-
Bugfixes:
* Regular expressions consider `\r` to be a newline character.
@@ -904,27 +625,8 @@ Changes:
* Scintilla: Block caret appears after selection end instead of on it. (Reverts
change from Textadept 9.3)
-[Textadept 9.6 -- Win32]: download/textadept_9.6.win32.zip
-[Textadept 9.6 -- Mac OSX Intel 10.5+]: download/textadept_9.6.osx.zip
-[Textadept 9.6 -- Linux]: download/textadept_9.6.i386.tgz
-[Textadept 9.6 -- Linux x86_64]: download/textadept_9.6.x86_64.tgz
-[Textadept 9.6 -- Modules]: download/textadept_9.6.modules.zip
-[PGP -- 9.6 Win32]: download/textadept_9.6.win32.zip.asc
-[PGP -- 9.6 OSX]: download/textadept_9.6.osx.zip.asc
-[PGP -- 9.6 Linux]: download/textadept_9.6.i386.tgz.asc
-[PGP -- 9.6 Linux x86_64]: download/textadept_9.6.x86_64.tgz.asc
-[PGP -- 9.6 Modules]: download/textadept_9.6.modules.zip.asc
-
### 9.5 (01 Sep 2017)
-Download:
-
-* [Textadept 9.5 -- Win32][] | [PGP -- 9.5 Win32][]
-* [Textadept 9.5 -- Mac OSX Intel 10.5+][] | [PGP -- 9.5 OSX][]
-* [Textadept 9.5 -- Linux][] | [PGP -- 9.5 Linux][]
-* [Textadept 9.5 -- Linux x86_64][] | [PGP -- 9.5 Linux x86_64][]
-* [Textadept 9.5 -- Modules][] | [PGP -- 9.5 Modules][]
-
Bugfixes:
* Do not attempt to provide code completions when there is no context.
@@ -943,29 +645,11 @@ Changes:
* The terminal version updates its cursor position for display in tools like
tmux.
-[Textadept 9.5 -- Win32]: download/textadept_9.5.win32.zip
-[Textadept 9.5 -- Mac OSX Intel 10.5+]: download/textadept_9.5.osx.zip
-[Textadept 9.5 -- Linux]: download/textadept_9.5.i386.tgz
-[Textadept 9.5 -- Linux x86_64]: download/textadept_9.5.x86_64.tgz
-[Textadept 9.5 -- Modules]: download/textadept_9.5.modules.zip
-[PGP -- 9.5 Win32]: download/textadept_9.5.win32.zip.asc
-[PGP -- 9.5 OSX]: download/textadept_9.5.osx.zip.asc
-[PGP -- 9.5 Linux]: download/textadept_9.5.i386.tgz.asc
-[PGP -- 9.5 Linux x86_64]: download/textadept_9.5.x86_64.tgz.asc
-[PGP -- 9.5 Modules]: download/textadept_9.5.modules.zip.asc
[`ui.switch_buffer()`]: api.html#ui.switch_buffer
[`io.open_file()`]: api.html#io.open_file
### 9.5 beta (01 Jul 2017)
-Download:
-
-* [Textadept 9.5 beta -- Win32][] | [PGP -- 9.5 beta Win32][]
-* [Textadept 9.5 beta -- Mac OSX Intel 10.5+][] | [PGP -- 9.5 beta OSX][]
-* [Textadept 9.5 beta -- Linux][] | [PGP -- 9.5 beta Linux][]
-* [Textadept 9.5 beta -- Linux x86_64][] | [PGP -- 9.5 beta Linux x86_64][]
-* [Textadept 9.5 beta -- Modules][] | [PGP -- 9.5 beta Modules][]
-
Bugfixes:
* Fixed bug that deleted characters outside of mangled snippets.
@@ -991,34 +675,16 @@ Changes:
* Scintilla: Update scroll bar when annotations are added, removed, or changed.
* Effectively updated to [Scintilla][] 3.7.5.
-[Textadept 9.5 beta -- Win32]: download/textadept_9.5_beta.win32.zip
-[Textadept 9.5 beta -- Mac OSX Intel 10.5+]: download/textadept_9.5_beta.osx.zip
-[Textadept 9.5 beta -- Linux]: download/textadept_9.5_beta.i386.tgz
-[Textadept 9.5 beta -- Linux x86_64]: download/textadept_9.5_beta.x86_64.tgz
-[Textadept 9.5 beta -- Modules]: download/textadept_9.5_beta.modules.zip
-[PGP -- 9.5 beta Win32]: download/textadept_9.5_beta.win32.zip.asc
-[PGP -- 9.5 beta OSX]: download/textadept_9.5_beta.osx.zip.asc
-[PGP -- 9.5 beta Linux]: download/textadept_9.5_beta.i386.tgz.asc
-[PGP -- 9.5 beta Linux x86_64]: download/textadept_9.5_beta.x86_64.tgz.asc
-[PGP -- 9.5 beta Modules]: download/textadept_9.5_beta.modules.zip.asc
[`buffer.caret_line_frame`]: api.html#buffer.caret_line_frame
[`buffer:line_reverse()`]: api.html#buffer.line_reverse
[`ui.dialogs.colorselect()`]: api.html#ui.dialogs.colorselect
[`ui.dialogs.fontselect()`]: api.html#ui.dialogs.fontselect
-[filter-through]: manual.html#Shell.Commands.and.Filtering.Text
-[Lua command entry]: manual.html#Lua.Command.Entry
-[Scintilla]: http://scintilla.org
+[filter-through]: manual.html#shell-commands-and-filtering-text
+[Lua command entry]: manual.html#lua-command-entry
+[Scintilla]: https://scintilla.org
### 9.4 (01 May 2017)
-Download:
-
-* [Textadept 9.4 -- Win32][] | [PGP -- 9.4 Win32][]
-* [Textadept 9.4 -- Mac OSX Intel 10.5+][] | [PGP -- 9.4 OSX][]
-* [Textadept 9.4 -- Linux][] | [PGP -- 9.4 Linux][]
-* [Textadept 9.4 -- Linux x86_64][] | [PGP -- 9.4 Linux x86_64][]
-* [Textadept 9.4 -- Modules][] | [PGP -- 9.4 Modules][]
-
Bugfixes:
* Fixed some C++ and Moonscript file associations.
@@ -1038,28 +704,10 @@ Changes:
* Scintilla: Accessibility improvements including the ability to turn it off.
* Effectively updated to [Scintilla][] 3.7.4.
-[Textadept 9.4 -- Win32]: download/textadept_9.4.win32.zip
-[Textadept 9.4 -- Mac OSX Intel 10.5+]: download/textadept_9.4.osx.zip
-[Textadept 9.4 -- Linux]: download/textadept_9.4.i386.tgz
-[Textadept 9.4 -- Linux x86_64]: download/textadept_9.4.x86_64.tgz
-[Textadept 9.4 -- Modules]: download/textadept_9.4.modules.zip
-[PGP -- 9.4 Win32]: download/textadept_9.4.win32.zip.asc
-[PGP -- 9.4 OSX]: download/textadept_9.4.osx.zip.asc
-[PGP -- 9.4 Linux]: download/textadept_9.4.i386.tgz.asc
-[PGP -- 9.4 Linux x86_64]: download/textadept_9.4.x86_64.tgz.asc
-[PGP -- 9.4 Modules]: download/textadept_9.4.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 9.3 (01 Mar 2017)
-Download:
-
-* [Textadept 9.3 -- Win32][] | [PGP -- 9.3 Win32][]
-* [Textadept 9.3 -- Mac OSX Intel 10.5+][] | [PGP -- 9.3 OSX][]
-* [Textadept 9.3 -- Linux][] | [PGP -- 9.3 Linux][]
-* [Textadept 9.3 -- Linux x86_64][] | [PGP -- 9.3 Linux x86_64][]
-* [Textadept 9.3 -- Modules][] | [PGP -- 9.3 Modules][]
-
Bugfixes:
* Improved LuaJIT compatibility with 3rd-party modules.
@@ -1087,29 +735,11 @@ Changes:
* Updated to [Scintilla][] 3.7.3.
* Updated to [Lua][] 5.3.4.
-[Textadept 9.3 -- Win32]: download/textadept_9.3.win32.zip
-[Textadept 9.3 -- Mac OSX Intel 10.5+]: download/textadept_9.3.osx.zip
-[Textadept 9.3 -- Linux]: download/textadept_9.3.i386.tgz
-[Textadept 9.3 -- Linux x86_64]: download/textadept_9.3.x86_64.tgz
-[Textadept 9.3 -- Modules]: download/textadept_9.3.modules.zip
-[PGP -- 9.3 Win32]: download/textadept_9.3.win32.zip.asc
-[PGP -- 9.3 OSX]: download/textadept_9.3.osx.zip.asc
-[PGP -- 9.3 Linux]: download/textadept_9.3.i386.tgz.asc
-[PGP -- 9.3 Linux x86_64]: download/textadept_9.3.x86_64.tgz.asc
-[PGP -- 9.3 Modules]: download/textadept_9.3.modules.zip.asc
-[Scintilla]: http://scintilla.org
-[Lua]: http://lua.org
+[Scintilla]: https://scintilla.org
+[Lua]: https://lua.org
### 9.2 (21 Dec 2016)
-Download:
-
-* [Textadept 9.2 -- Win32][] | [PGP -- 9.2 Win32][]
-* [Textadept 9.2 -- Mac OSX Intel 10.5+][] | [PGP -- 9.2 OSX][]
-* [Textadept 9.2 -- Linux][] | [PGP -- 9.2 Linux][]
-* [Textadept 9.2 -- Linux x86_64][] | [PGP -- 9.2 Linux x86_64][]
-* [Textadept 9.2 -- Modules][] | [PGP -- 9.2 Modules][]
-
Bugfixes:
* Scintilla: Fixed crash when destroying Scintilla objects.
@@ -1118,27 +748,8 @@ Changes:
* None.
-[Textadept 9.2 -- Win32]: download/textadept_9.2.win32.zip
-[Textadept 9.2 -- Mac OSX Intel 10.5+]: download/textadept_9.2.osx.zip
-[Textadept 9.2 -- Linux]: download/textadept_9.2.i386.tgz
-[Textadept 9.2 -- Linux x86_64]: download/textadept_9.2.x86_64.tgz
-[Textadept 9.2 -- Modules]: download/textadept_9.2.modules.zip
-[PGP -- 9.2 Win32]: download/textadept_9.2.win32.zip.asc
-[PGP -- 9.2 OSX]: download/textadept_9.2.osx.zip.asc
-[PGP -- 9.2 Linux]: download/textadept_9.2.i386.tgz.asc
-[PGP -- 9.2 Linux x86_64]: download/textadept_9.2.x86_64.tgz.asc
-[PGP -- 9.2 Modules]: download/textadept_9.2.modules.zip.asc
-
### 9.1 (11 Dec 2016)
-Download:
-
-* [Textadept 9.1 -- Win32][] | [PGP -- 9.1 Win32][]
-* [Textadept 9.1 -- Mac OSX Intel 10.5+][] | [PGP -- 9.1 OSX][]
-* [Textadept 9.1 -- Linux][] | [PGP -- 9.1 Linux][]
-* [Textadept 9.1 -- Linux x86_64][] | [PGP -- 9.1 Linux x86_64][]
-* [Textadept 9.1 -- Modules][] | [PGP -- 9.1 Modules][]
-
Bugfixes:
* Fixed bug in find/replace with consecutive matches.
@@ -1173,16 +784,6 @@ Changes:
selection.
* Updated to [Scintilla][] 3.7.1.
-[Textadept 9.1 -- Win32]: download/textadept_9.1.win32.zip
-[Textadept 9.1 -- Mac OSX Intel 10.5+]: download/textadept_9.1.osx.zip
-[Textadept 9.1 -- Linux]: download/textadept_9.1.i386.tgz
-[Textadept 9.1 -- Linux x86_64]: download/textadept_9.1.x86_64.tgz
-[Textadept 9.1 -- Modules]: download/textadept_9.1.modules.zip
-[PGP -- 9.1 Win32]: download/textadept_9.1.win32.zip.asc
-[PGP -- 9.1 OSX]: download/textadept_9.1.osx.zip.asc
-[PGP -- 9.1 Linux]: download/textadept_9.1.i386.tgz.asc
-[PGP -- 9.1 Linux x86_64]: download/textadept_9.1.x86_64.tgz.asc
-[PGP -- 9.1 Modules]: download/textadept_9.1.modules.zip.asc
[`buffer.EDGE_MULTILINE`]: api.html#buffer.EDGE_MULTILINE
[`buffer:multi_edge_add_line()`]: api.html#buffer.multi_edge_add_line
[`buffer:multi_edge_clear_all()`]: api.html#buffer.multi_edge_clear_all
@@ -1191,21 +792,13 @@ Changes:
[`buffer:toggle_fold_display_text()`]: api.html#buffer.toggle_fold_display_text
[`buffer.fold_display_text_style`]: api.html#buffer.fold_display_text_style
[`buffer.tab_draw_mode`]: api.html#buffer.tab_draw_mode
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 9.0 (01 Oct 2016)
Please see the [8 to 9 migration guide][] for upgrading from Textadept 8 to
Textadept 9.
-Download:
-
-* [Textadept 9.0 -- Win32][] | [PGP -- 9.0 Win32][]
-* [Textadept 9.0 -- Mac OSX Intel 10.5+][] | [PGP -- 9.0 OSX][]
-* [Textadept 9.0 -- Linux][] | [PGP -- 9.0 Linux][]
-* [Textadept 9.0 -- Linux x86_64][] | [PGP -- 9.0 Linux x86_64][]
-* [Textadept 9.0 -- Modules][] | [PGP -- 9.0 Modules][]
-
Bugfixes:
* Better error handling with "filter-through".
@@ -1223,29 +816,11 @@ Changes:
`buffer.virtual_space_options`.
* Updated to [Scintilla][] 3.6.7.
-[8 to 9 migration guide]: manual.html#Textadept.8.to.9
-[Textadept 9.0 -- Win32]: download/textadept_9.0.win32.zip
-[Textadept 9.0 -- Mac OSX Intel 10.5+]: download/textadept_9.0.osx.zip
-[Textadept 9.0 -- Linux]: download/textadept_9.0.i386.tgz
-[Textadept 9.0 -- Linux x86_64]: download/textadept_9.0.x86_64.tgz
-[Textadept 9.0 -- Modules]: download/textadept_9.0.modules.zip
-[PGP -- 9.0 Win32]: download/textadept_9.0.win32.zip.asc
-[PGP -- 9.0 OSX]: download/textadept_9.0.osx.zip.asc
-[PGP -- 9.0 Linux]: download/textadept_9.0.i386.tgz.asc
-[PGP -- 9.0 Linux x86_64]: download/textadept_9.0.x86_64.tgz.asc
-[PGP -- 9.0 Modules]: download/textadept_9.0.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[8 to 9 migration guide]: manual.html#textadept-8-to-9
+[Scintilla]: https://scintilla.org
### 9.0 beta (01 Sep 2016)
-Download:
-
-* [Textadept 9.0 beta -- Win32][] | [PGP -- 9.0 beta Win32][]
-* [Textadept 9.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 9.0 beta OSX][]
-* [Textadept 9.0 beta -- Linux][] | [PGP -- 9.0 beta Linux][]
-* [Textadept 9.0 beta -- Linux x86_64][] | [PGP -- 9.0 beta Linux x86_64][]
-* [Textadept 9.0 beta -- Modules][] | [PGP -- 9.0 beta Modules][]
-
Bugfixes:
* Fixed potential bug with `events.disconnect()`.
@@ -1261,28 +836,10 @@ Changes:
* Added [`events.TAB_CLICKED`][] event.
-[Textadept 9.0 beta -- Win32]: download/textadept_9.0_beta.win32.zip
-[Textadept 9.0 beta -- Mac OSX Intel 10.5+]: download/textadept_9.0_beta.osx.zip
-[Textadept 9.0 beta -- Linux]: download/textadept_9.0_beta.i386.tgz
-[Textadept 9.0 beta -- Linux x86_64]: download/textadept_9.0_beta.x86_64.tgz
-[Textadept 9.0 beta -- Modules]: download/textadept_9.0_beta.modules.zip
-[PGP -- 9.0 beta Win32]: download/textadept_9.0_beta.win32.zip.asc
-[PGP -- 9.0 beta OSX]: download/textadept_9.0_beta.osx.zip.asc
-[PGP -- 9.0 beta Linux]: download/textadept_9.0_beta.i386.tgz.asc
-[PGP -- 9.0 beta Linux x86_64]: download/textadept_9.0_beta.x86_64.tgz.asc
-[PGP -- 9.0 beta Modules]: download/textadept_9.0_beta.modules.zip.asc
[`events.TAB_CLICKED`]: api.html#events.TAB_CLICKED
### 9.0 alpha 2 (11 Jul 2016)
-Download:
-
-* [Textadept 9.0 alpha 2 -- Win32][] | [PGP -- 9.0 alpha 2 Win32][]
-* [Textadept 9.0 alpha 2 -- Mac OSX Intel 10.5+][] | [PGP -- 9.0 alpha 2 OSX][]
-* [Textadept 9.0 alpha 2 -- Linux][] | [PGP -- 9.0 alpha 2 Linux][]
-* [Textadept 9.0 alpha 2 -- Linux x86_64][] | [PGP -- 9.0 alpha 2 Linux x86_64][]
-* [Textadept 9.0 alpha 2 -- Modules][] | [PGP -- 9.0 alpha 2 Modules][]
-
Bugfixes:
* Check range bounds for `buffer:text_range()`.
@@ -1294,28 +851,10 @@ Changes:
* Added timeout prompt to Find in Files. (10 second default.)
* Better differentiation between Python 2 and 3 run commands.
-[Textadept 9.0 alpha 2 -- Win32]: download/textadept_9.0_alpha_2.win32.zip
-[Textadept 9.0 alpha 2 -- Mac OSX Intel 10.5+]: download/textadept_9.0_alpha_2.osx.zip
-[Textadept 9.0 alpha 2 -- Linux]: download/textadept_9.0_alpha_2.i386.tgz
-[Textadept 9.0 alpha 2 -- Linux x86_64]: download/textadept_9.0_alpha_2.x86_64.tgz
-[Textadept 9.0 alpha 2 -- Modules]: download/textadept_9.0_alpha_2.modules.zip
-[PGP -- 9.0 alpha 2 Win32]: download/textadept_9.0_alpha_2.win32.zip.asc
-[PGP -- 9.0 alpha 2 OSX]: download/textadept_9.0_alpha_2.osx.zip.asc
-[PGP -- 9.0 alpha 2 Linux]: download/textadept_9.0_alpha_2.i386.tgz.asc
-[PGP -- 9.0 alpha 2 Linux x86_64]: download/textadept_9.0_alpha_2.x86_64.tgz.asc
-[PGP -- 9.0 alpha 2 Modules]: download/textadept_9.0_alpha_2.modules.zip.asc
-[regular expressions]: manual.html#Regular.Expressions
+[regular expressions]: manual.html#regular-expressions
### 9.0 alpha (01 Jul 2016)
-Download:
-
-* [Textadept 9.0 alpha -- Win32][] | [PGP -- 9.0 alpha Win32][]
-* [Textadept 9.0 alpha -- Mac OSX Intel 10.5+][] | [PGP -- 9.0 alpha OSX][]
-* [Textadept 9.0 alpha -- Linux][] | [PGP -- 9.0 alpha Linux][]
-* [Textadept 9.0 alpha -- Linux x86_64][] | [PGP -- 9.0 alpha Linux x86_64][]
-* [Textadept 9.0 alpha -- Modules][] | [PGP -- 9.0 alpha Modules][]
-
Bugfixes:
* Fixed stack overflow when accessing `nil` keys in `textadept.menu`.
@@ -1364,25 +903,15 @@ Changes:
* Updated to [Scintilla][] 3.6.6.
* Updated to [Lua][] 5.3.3
-[Textadept 9.0 alpha -- Win32]: download/textadept_9.0_alpha.win32.zip
-[Textadept 9.0 alpha -- Mac OSX Intel 10.5+]: download/textadept_9.0_alpha.osx.zip
-[Textadept 9.0 alpha -- Linux]: download/textadept_9.0_alpha.i386.tgz
-[Textadept 9.0 alpha -- Linux x86_64]: download/textadept_9.0_alpha.x86_64.tgz
-[Textadept 9.0 alpha -- Modules]: download/textadept_9.0_alpha.modules.zip
-[PGP -- 9.0 alpha Win32]: download/textadept_9.0_alpha.win32.zip.asc
-[PGP -- 9.0 alpha OSX]: download/textadept_9.0_alpha.osx.zip.asc
-[PGP -- 9.0 alpha Linux]: download/textadept_9.0_alpha.i386.tgz.asc
-[PGP -- 9.0 alpha Linux x86_64]: download/textadept_9.0_alpha.x86_64.tgz.asc
-[PGP -- 9.0 alpha Modules]: download/textadept_9.0_alpha.modules.zip.asc
[`io.quick_open()`]: api.html#io.quick_open
[`io.quick_open_max`]: api.html#io.quick_open_max
[`io.quick_open_filters`]: api.html#io.quick_open_filters
-[must be Lua functions]: manual.html#Key.and.Menu.Command.Changes
+[must be Lua functions]: manual.html#key-and-menu-command-changes
[`lfs.default_filter`]: api.html#lfs.default_filter
[`ui.silent_print`]: api.html#ui.silent_print
[`textadept.editing`]: api.html#textadept.editing
[`textadept.editing.brace_matches`]: api.html#textadept.editing.brace_matches
-[no longer auto-loaded]: manual.html#Language.Module.Handling.Changes
+[no longer auto-loaded]: manual.html#language-module-handling-changes
[`events.LEXER_LOADED`]: api.html#events.LEXER_LOADED
[`ui.find.find_in_files_filter`]: api.html#ui.find.find_in_files_filter
[`ui.find.find_in_files()`]: api.html#ui.find.find_in_files
@@ -1393,20 +922,12 @@ Changes:
[`textadept.run.build()`]: api.html#textadept.run.build
[`textadept.run.error_patterns`]: api.html#textadept.run.error_patterns
[manual]: manual.html
-[file-based snippet]: manual.html#Snippet.Preferences
-[Scintilla]: http://scintilla.org
-[Lua]: http://www.lua.org
+[file-based snippet]: manual.html#snippet-preferences
+[Scintilla]: https://scintilla.org
+[Lua]: https://www.lua.org
### 8.7 (01 May 2016)
-Download:
-
-* [Textadept 8.7 -- Win32][] | [PGP -- 8.7 Win32][]
-* [Textadept 8.7 -- Mac OSX Intel 10.5+][] | [PGP -- 8.7 OSX][]
-* [Textadept 8.7 -- Linux][] | [PGP -- 8.7 Linux][]
-* [Textadept 8.7 -- Linux x86_64][] | [PGP -- 8.7 Linux x86_64][]
-* [Textadept 8.7 -- Modules][] | [PGP -- 8.7 Modules][]
-
Bugfixes:
* Much better UTF-8 support in the terminal version.
@@ -1448,38 +969,19 @@ Changes:
* Added new dialog for specifying compile/run command arguments to "Tools" menu.
* `textadept.editing.enclose()` works with multiple selections.
* Disabled `textadept.run.CHECK_SYNTAX` by default.
-* Updated to [lspawn][] 1.5.
+* Updated to lspawn 1.5.
* Updated to [Scintilla][] 3.6.5.
* Updated to Scinterm 1.8.
-[Textadept 8.7 -- Win32]: download/textadept_8.7.win32.zip
-[Textadept 8.7 -- Mac OSX Intel 10.5+]: download/textadept_8.7.osx.zip
-[Textadept 8.7 -- Linux]: download/textadept_8.7.i386.tgz
-[Textadept 8.7 -- Linux x86_64]: download/textadept_8.7.x86_64.tgz
-[Textadept 8.7 -- Modules]: download/textadept_8.7.modules.zip
-[PGP -- 8.7 Win32]: download/textadept_8.7.win32.zip.asc
-[PGP -- 8.7 OSX]: download/textadept_8.7.osx.zip.asc
-[PGP -- 8.7 Linux]: download/textadept_8.7.i386.tgz.asc
-[PGP -- 8.7 Linux x86_64]: download/textadept_8.7.x86_64.tgz.asc
-[PGP -- 8.7 Modules]: download/textadept_8.7.modules.zip.asc
[luautf8]: https://github.com/starwing/luautf8
[`textadept.menu.menubar`]: api.html#textadept.menu.menubar
-[this mailing list post]: http://foicica.com/lists/code/201604/3171.html
+[this mailing list post]: https://foicica.com/lists/code/201604/3171.html
[compile commands]: api.html#textadept.run.compile_commands
[run commands]: api.html#textadept.run.run_commands
-[lspawn]: http://foicica.com/hg/lspawn
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 8.6 (01 Mar 2016)
-Download:
-
-* [Textadept 8.6 -- Win32][] | [PGP -- 8.6 Win32][]
-* [Textadept 8.6 -- Mac OSX Intel 10.5+][] | [PGP -- 8.6 OSX][]
-* [Textadept 8.6 -- Linux][] | [PGP -- 8.6 Linux][]
-* [Textadept 8.6 -- Linux x86_64][] | [PGP -- 8.6 Linux x86_64][]
-* [Textadept 8.6 -- Modules][] | [PGP -- 8.6 Modules][]
-
Bugfixes:
* Prevent silent crash reports from being generated on Mac OSX when child
@@ -1508,37 +1010,18 @@ Changes:
* Recognize the `weight` [style property][].
* Added [`lexer.line_state`][] and [`lexer.line_from_position()`][] for
[stateful lexers][].
-* Updated to [lspawn][] 1.4.
+* Updated to lspawn 1.4.
* Updated to [Scintilla][] 3.6.3.
* Updated to Scinterm 1.7.
-[Textadept 8.6 -- Win32]: download/textadept_8.6.win32.zip
-[Textadept 8.6 -- Mac OSX Intel 10.5+]: download/textadept_8.6.osx.zip
-[Textadept 8.6 -- Linux]: download/textadept_8.6.i386.tgz
-[Textadept 8.6 -- Linux x86_64]: download/textadept_8.6.x86_64.tgz
-[Textadept 8.6 -- Modules]: download/textadept_8.6.modules.zip
-[PGP -- 8.6 Win32]: download/textadept_8.6.win32.zip.asc
-[PGP -- 8.6 OSX]: download/textadept_8.6.osx.zip.asc
-[PGP -- 8.6 Linux]: download/textadept_8.6.i386.tgz.asc
-[PGP -- 8.6 Linux x86_64]: download/textadept_8.6.x86_64.tgz.asc
-[PGP -- 8.6 Modules]: download/textadept_8.6.modules.zip.asc
-[style property]: api.html#lexer.Styles.and.Styling
+[style property]: api.html#styles-and-styling
[`lexer.line_state`]: api.html#lexer.line_state
[`lexer.line_from_position()`]: api.html#lexer.line_from_position
-[stateful lexers]: api.html#lexer.Lexers.with.Complex.State
-[lspawn]: http://foicica.com/hg/lspawn
-[Scintilla]: http://scintilla.org
+[stateful lexers]: api.html#lexers-with-complex-state
+[Scintilla]: https://scintilla.org
### 8.5 (01 Jan 2016)
-Download:
-
-* [Textadept 8.5 -- Win32][] | [PGP -- 8.5 Win32][]
-* [Textadept 8.5 -- Mac OSX Intel 10.5+][] | [PGP -- 8.5 OSX][]
-* [Textadept 8.5 -- Linux][] | [PGP -- 8.5 Linux][]
-* [Textadept 8.5 -- Linux x86_64][] | [PGP -- 8.5 Linux x86_64][]
-* [Textadept 8.5 -- Modules][] | [PGP -- 8.5 Modules][]
-
Bugfixes:
* Fixed some '%' escape sequences in snippets.
@@ -1557,29 +1040,11 @@ Changes:
* Added support for AutoIt.
* Updated to [Lua][] 5.3.2.
-[Textadept 8.5 -- Win32]: download/textadept_8.5.win32.zip
-[Textadept 8.5 -- Mac OSX Intel 10.5+]: download/textadept_8.5.osx.zip
-[Textadept 8.5 -- Linux]: download/textadept_8.5.i386.tgz
-[Textadept 8.5 -- Linux x86_64]: download/textadept_8.5.x86_64.tgz
-[Textadept 8.5 -- Modules]: download/textadept_8.5.modules.zip
-[PGP -- 8.5 Win32]: download/textadept_8.5.win32.zip.asc
-[PGP -- 8.5 OSX]: download/textadept_8.5.osx.zip.asc
-[PGP -- 8.5 Linux]: download/textadept_8.5.i386.tgz.asc
-[PGP -- 8.5 Linux x86_64]: download/textadept_8.5.x86_64.tgz.asc
-[PGP -- 8.5 Modules]: download/textadept_8.5.modules.zip.asc
[compile, run, and build commands]: api.html#textadept.run.build_commands
-[Lua]: http://www.lua.org
+[Lua]: https://www.lua.org
### 8.4 (11 Nov 2015)
-Download:
-
-* [Textadept 8.4 -- Win32][] | [PGP -- 8.4 Win32][]
-* [Textadept 8.4 -- Mac OSX Intel 10.5+][] | [PGP -- 8.4 OSX][]
-* [Textadept 8.4 -- Linux][] | [PGP -- 8.4 Linux][]
-* [Textadept 8.4 -- Linux x86_64][] | [PGP -- 8.4 Linux x86_64][]
-* [Textadept 8.4 -- Modules][] | [PGP -- 8.4 Modules][]
-
Bugfixes:
* Various fixes for snippet bugs introduced in the refactoring.
@@ -1601,29 +1066,11 @@ Changes:
* Updated to [Scintilla][] 3.6.2.
* Updated to [LPeg][] 1.0.
-[Textadept 8.4 -- Win32]: download/textadept_8.4.win32.zip
-[Textadept 8.4 -- Mac OSX Intel 10.5+]: download/textadept_8.4.osx.zip
-[Textadept 8.4 -- Linux]: download/textadept_8.4.i386.tgz
-[Textadept 8.4 -- Linux x86_64]: download/textadept_8.4.x86_64.tgz
-[Textadept 8.4 -- Modules]: download/textadept_8.4.modules.zip
-[PGP -- 8.4 Win32]: download/textadept_8.4.win32.zip.asc
-[PGP -- 8.4 OSX]: download/textadept_8.4.osx.zip.asc
-[PGP -- 8.4 Linux]: download/textadept_8.4.i386.tgz.asc
-[PGP -- 8.4 Linux x86_64]: download/textadept_8.4.x86_64.tgz.asc
-[PGP -- 8.4 Modules]: download/textadept_8.4.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[LPeg]: http://www.inf.puc-rio.br/~roberto/lpeg/
### 8.3 (01 Oct 2015)
-Download:
-
-* [Textadept 8.3 -- Win32][] | [PGP -- 8.3 Win32][]
-* [Textadept 8.3 -- Mac OSX Intel 10.5+][] | [PGP -- 8.3 OSX][]
-* [Textadept 8.3 -- Linux][] | [PGP -- 8.3 Linux][]
-* [Textadept 8.3 -- Linux x86_64][] | [PGP -- 8.3 Linux x86_64][]
-* [Textadept 8.3 -- Modules][] | [PGP -- 8.3 Modules][]
-
Bugfixes:
* Stop annoying black box from flashing when saving some files on Win32.
@@ -1641,30 +1088,12 @@ Changes:
* Added Gherkin lexer.
* Updated to [Scintilla][] 3.6.1.
-[Textadept 8.3 -- Win32]: download/textadept_8.3.win32.zip
-[Textadept 8.3 -- Mac OSX Intel 10.5+]: download/textadept_8.3.osx.zip
-[Textadept 8.3 -- Linux]: download/textadept_8.3.i386.tgz
-[Textadept 8.3 -- Linux x86_64]: download/textadept_8.3.x86_64.tgz
-[Textadept 8.3 -- Modules]: download/textadept_8.3.modules.zip
-[PGP -- 8.3 Win32]: download/textadept_8.3.win32.zip.asc
-[PGP -- 8.3 OSX]: download/textadept_8.3.osx.zip.asc
-[PGP -- 8.3 Linux]: download/textadept_8.3.i386.tgz.asc
-[PGP -- 8.3 Linux x86_64]: download/textadept_8.3.x86_64.tgz.asc
-[PGP -- 8.3 Modules]: download/textadept_8.3.modules.zip.asc
-[Refactored snippets]: http://foicica.com/lists/code/201509/2687.html
+[Refactored snippets]: https://foicica.com/lists/code/201509/2687.html
[`os.spawn()`]: api.html#os.spawn
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 8.2 (01 Sep 2015)
-Download:
-
-* [Textadept 8.2 -- Win32][] | [PGP -- 8.2 Win32][]
-* [Textadept 8.2 -- Mac OSX Intel 10.5+][] | [PGP -- 8.2 OSX][]
-* [Textadept 8.2 -- Linux][] | [PGP -- 8.2 Linux][]
-* [Textadept 8.2 -- Linux x86_64][] | [PGP -- 8.2 Linux x86_64][]
-* [Textadept 8.2 -- Modules][] | [PGP -- 8.2 Modules][]
-
Bugfixes:
* Fixed crash when quitting while the command entry is open.
@@ -1686,29 +1115,11 @@ Changes:
has been inserted.
* Updated to [Scintilla][] 3.6.0.
-[Textadept 8.2 -- Win32]: download/textadept_8.2.win32.zip
-[Textadept 8.2 -- Mac OSX Intel 10.5+]: download/textadept_8.2.osx.zip
-[Textadept 8.2 -- Linux]: download/textadept_8.2.i386.tgz
-[Textadept 8.2 -- Linux x86_64]: download/textadept_8.2.x86_64.tgz
-[Textadept 8.2 -- Modules]: download/textadept_8.2.modules.zip
-[PGP -- 8.2 Win32]: download/textadept_8.2.win32.zip.asc
-[PGP -- 8.2 OSX]: download/textadept_8.2.osx.zip.asc
-[PGP -- 8.2 Linux]: download/textadept_8.2.i386.tgz.asc
-[PGP -- 8.2 Linux x86_64]: download/textadept_8.2.x86_64.tgz.asc
-[PGP -- 8.2 Modules]: download/textadept_8.2.modules.zip.asc
[`events.AUTO_C_COMPLETED`]: api.html#events.AUTO_C_COMPLETED
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 8.1 (01 Jul 2015)
-Download:
-
-* [Textadept 8.1 -- Win32][] | [PGP -- 8.1 Win32][]
-* [Textadept 8.1 -- Mac OSX Intel 10.5+][] | [PGP -- 8.1 OSX][]
-* [Textadept 8.1 -- Linux][] | [PGP -- 8.1 Linux][]
-* [Textadept 8.1 -- Linux x86_64][] | [PGP -- 8.1 Linux x86_64][]
-* [Textadept 8.1 -- Modules][] | [PGP -- 8.1 Modules][]
-
Bugfixes:
* Detect `#!/usr/bin/env ...` properly.
@@ -1732,37 +1143,19 @@ Changes:
* Updated to [Scintilla][] 3.5.7.
* Updated to [Lua][] 5.3.1.
-[Textadept 8.1 -- Win32]: download/textadept_8.1.win32.zip
-[Textadept 8.1 -- Mac OSX Intel 10.5+]: download/textadept_8.1.osx.zip
-[Textadept 8.1 -- Linux]: download/textadept_8.1.i386.tgz
-[Textadept 8.1 -- Linux x86_64]: download/textadept_8.1.x86_64.tgz
-[Textadept 8.1 -- Modules]: download/textadept_8.1.modules.zip
-[PGP -- 8.1 Win32]: download/textadept_8.1.win32.zip.asc
-[PGP -- 8.1 OSX]: download/textadept_8.1.osx.zip.asc
-[PGP -- 8.1 Linux]: download/textadept_8.1.i386.tgz.asc
-[PGP -- 8.1 Linux x86_64]: download/textadept_8.1.x86_64.tgz.asc
-[PGP -- 8.1 Modules]: download/textadept_8.1.modules.zip.asc
[`textadept.editing.select_word()`]: api.html#textadept.editing.select_word
[`buffer:multiple_select_add_next()`]: api.html#buffer.multiple_select_add_next
[`buffer:multiple_select_add_each()`]: api.html#buffer.multiple_select_add_each
[`buffer:is_range_word()`]: api.html#buffer.is_range_word
[`buffer:target_whole_document()`]: api.html#buffer.target_whole_document
-[Scintilla]: http://scintilla.org
-[Lua]: http://lua.org
+[Scintilla]: https://scintilla.org
+[Lua]: https://lua.org
### 8.0 (01 May 2015)
Please see the [7 to 8 migration guide][] for upgrading from Textadept 7 to
Textadept 8.
-Download:
-
-* [Textadept 8.0 -- Win32][] | [PGP -- 8.0 Win32][]
-* [Textadept 8.0 -- Mac OSX Intel 10.5+][] | [PGP -- 8.0 OSX][]
-* [Textadept 8.0 -- Linux][] | [PGP -- 8.0 Linux][]
-* [Textadept 8.0 -- Linux x86_64][] | [PGP -- 8.0 Linux x86_64][]
-* [Textadept 8.0 -- Modules][] | [PGP -- 8.0 Modules][]
-
Bugfixes:
* Fixed filename encoding issues on Windows.
@@ -1771,29 +1164,11 @@ Changes:
* Added [`textadept.run.RUN_IN_BACKGROUND`][] for shell commands.
-[7 to 8 migration guide]: manual.html#Textadept.7.to.8
-[Textadept 8.0 -- Win32]: download/textadept_8.0.win32.zip
-[Textadept 8.0 -- Mac OSX Intel 10.5+]: download/textadept_8.0.osx.zip
-[Textadept 8.0 -- Linux]: download/textadept_8.0.i386.tgz
-[Textadept 8.0 -- Linux x86_64]: download/textadept_8.0.x86_64.tgz
-[Textadept 8.0 -- Modules]: download/textadept_8.0.modules.zip
-[PGP -- 8.0 Win32]: download/textadept_8.0.win32.zip.asc
-[PGP -- 8.0 OSX]: download/textadept_8.0.osx.zip.asc
-[PGP -- 8.0 Linux]: download/textadept_8.0.i386.tgz.asc
-[PGP -- 8.0 Linux x86_64]: download/textadept_8.0.x86_64.tgz.asc
-[PGP -- 8.0 Modules]: download/textadept_8.0.modules.zip.asc
+[7 to 8 migration guide]: manual.html#textadept-7-to-8
[`textadept.run.RUN_IN_BACKGROUND`]: api.html#textadept.run.run_in_background
### 8.0 beta (21 Apr 2015)
-Download:
-
-* [Textadept 8.0 beta -- Win32][] | [PGP -- 8.0 beta Win32][]
-* [Textadept 8.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 8.0 beta OSX][]
-* [Textadept 8.0 beta -- Linux][] | [PGP -- 8.0 beta Linux][]
-* [Textadept 8.0 beta -- Linux x86_64][] | [PGP -- 8.0 beta Linux x86_64][]
-* [Textadept 8.0 beta -- Modules][] | [PGP -- 8.0 beta Modules][]
-
Bugfixes:
* Fixed `require()` bug with lfs and utf8 libraries in LuaJIT version.
@@ -1807,31 +1182,13 @@ Changes:
* Added [`_FOLDBYINDENTATION`][] field for lexers that fold by indentation.
* Updated to [Scintilla][] 3.5.5.
-[Textadept 8.0 beta -- Win32]: download/textadept_8.0_beta.win32.zip
-[Textadept 8.0 beta -- Mac OSX Intel 10.5+]: download/textadept_8.0_beta.osx.zip
-[Textadept 8.0 beta -- Linux]: download/textadept_8.0_beta.i386.tgz
-[Textadept 8.0 beta -- Linux x86_64]: download/textadept_8.0_beta.x86_64.tgz
-[Textadept 8.0 beta -- Modules]: download/textadept_8.0_beta.modules.zip
-[PGP -- 8.0 beta Win32]: download/textadept_8.0_beta.win32.zip.asc
-[PGP -- 8.0 beta OSX]: download/textadept_8.0_beta.osx.zip.asc
-[PGP -- 8.0 beta Linux]: download/textadept_8.0_beta.i386.tgz.asc
-[PGP -- 8.0 beta Linux x86_64]: download/textadept_8.0_beta.x86_64.tgz.asc
-[PGP -- 8.0 beta Modules]: download/textadept_8.0_beta.modules.zip.asc
[`io.snapopen()`]: api.html#io.quick_open
[`ui.find.FILTER`]: api.html#ui.find.find_in_files_filter
-[`_FOLDBYINDENTATION`]: api.html#lexer.Fold.by.Indentation
-[Scintilla]: http://scintilla.org
+[`_FOLDBYINDENTATION`]: api.html#fold-by-indentation
+[Scintilla]: https://scintilla.org
### 8.0 alpha (01 Apr 2015)
-Download:
-
-* [Textadept 8.0 alpha -- Win32][] | [PGP -- 8.0 alpha Win32][]
-* [Textadept 8.0 alpha -- Mac OSX Intel 10.5+][] | [PGP -- 8.0 alpha OSX][]
-* [Textadept 8.0 alpha -- Linux][] | [PGP -- 8.0 alpha Linux][]
-* [Textadept 8.0 alpha -- Linux x86_64][] | [PGP -- 8.0 alpha Linux x86_64][]
-* [Textadept 8.0 alpha -- Modules][] | [PGP -- 8.0 alpha Modules][]
-
Bugfixes:
* Ensure `events.BUFFER_AFTER_SWITCH` is fired before `events.BUFFER_DELETED`.
@@ -1851,31 +1208,13 @@ Changes:
* New [`lexer._FOLDBYINDENTATION`][] field for lexers that fold based on
indentation.
-[Textadept 8.0 alpha -- Win32]: download/textadept_8.0_alpha.win32.zip
-[Textadept 8.0 alpha -- Mac OSX Intel 10.5+]: download/textadept_8.0_alpha.osx.zip
-[Textadept 8.0 alpha -- Linux]: download/textadept_8.0_alpha.i386.tgz
-[Textadept 8.0 alpha -- Linux x86_64]: download/textadept_8.0_alpha.x86_64.tgz
-[Textadept 8.0 alpha -- Modules]: download/textadept_8.0_alpha.modules.zip
-[PGP -- 8.0 alpha Win32]: download/textadept_8.0_alpha.win32.zip.asc
-[PGP -- 8.0 alpha OSX]: download/textadept_8.0_alpha.osx.zip.asc
-[PGP -- 8.0 alpha Linux]: download/textadept_8.0_alpha.i386.tgz.asc
-[PGP -- 8.0 alpha Linux x86_64]: download/textadept_8.0_alpha.x86_64.tgz.asc
-[PGP -- 8.0 alpha Modules]: download/textadept_8.0_alpha.modules.zip.asc
[compile and run macros]: api.html#textadept.run.compile\_commands
[`textadept.bookmarks.toggle()`]: api.html#textadept.bookmarks.toggle
[`spawn_proc:kill()`]: api.html#spawn_proc:kill
-[`lexer._FOLDBYINDENTATION`]: api.html#lexer.Fold.by.Indentation
+[`lexer._FOLDBYINDENTATION`]: api.html#fold-by-indentation
### 7.9 (11 Mar 2015)
-Download:
-
-* [Textadept 7.9 -- Win32][] | [PGP -- 7.9 Win32][]
-* [Textadept 7.9 -- Mac OSX Intel 10.5+][] | [PGP -- 7.9 OSX][]
-* [Textadept 7.9 -- Linux][] | [PGP -- 7.9 Linux][]
-* [Textadept 7.9 -- Linux x86_64][] | [PGP -- 7.9 Linux x86_64][]
-* [Textadept 7.9 -- Modules][] | [PGP -- 7.9 Modules][]
-
Bugfixes:
* Fixed command entry's abbreviated environment to allow functions to return
@@ -1904,33 +1243,15 @@ Changes:
`buffer.INDIC_TEXTFORE` indicators.
* Updated to [Scintilla][] 3.5.4.
-[Textadept 7.9 -- Win32]: download/textadept_7.9.win32.zip
-[Textadept 7.9 -- Mac OSX Intel 10.5+]: download/textadept_7.9.osx.zip
-[Textadept 7.9 -- Linux]: download/textadept_7.9.i386.tgz
-[Textadept 7.9 -- Linux x86_64]: download/textadept_7.9.x86_64.tgz
-[Textadept 7.9 -- Modules]: download/textadept_7.9.modules.zip
-[PGP -- 7.9 Win32]: download/textadept_7.9.win32.zip.asc
-[PGP -- 7.9 OSX]: download/textadept_7.9.osx.zip.asc
-[PGP -- 7.9 Linux]: download/textadept_7.9.i386.tgz.asc
-[PGP -- 7.9 Linux x86_64]: download/textadept_7.9.x86_64.tgz.asc
-[PGP -- 7.9 Modules]: download/textadept_7.9.modules.zip.asc
-[new repository]: http://foicica.com/hg/textadept_modules
+[new repository]: https://foicica.com/hg/textadept_modules
[`textadept.file_types.patterns`]: api.html#textadept.file_types.patterns
[`events.FILE_AFTER_SAVE`]: api.html#events.FILE_AFTER_SAVE
[`buffer.indic_hover_fore`]: api.html#buffer.indic_hover_fore
[`buffer.indic_hover_style`]: api.html#buffer.indic_hover_style
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.8 (01 Feb 2015)
-Download:
-
-* [Textadept 7.8 -- Win32][] | [PGP -- 7.8 Win32][]
-* [Textadept 7.8 -- Mac OSX Intel 10.5+][] | [PGP -- 7.8 OSX][]
-* [Textadept 7.8 -- Linux][] | [PGP -- 7.8 Linux][]
-* [Textadept 7.8 -- Linux x86_64][] | [PGP -- 7.8 Linux x86_64][]
-* [Textadept 7.8 -- Modules][] | [PGP -- 7.8 Modules][]
-
Bugfixes:
* Fixed snippets bug where name matches lexer name.
@@ -1940,27 +1261,8 @@ Changes:
* Removed language-specific context menus; manipulate
`textadept.menu.context_menu` directly from language modules.
-[Textadept 7.8 -- Win32]: download/textadept_7.8.win32.zip
-[Textadept 7.8 -- Mac OSX Intel 10.5+]: download/textadept_7.8.osx.zip
-[Textadept 7.8 -- Linux]: download/textadept_7.8.i386.tgz
-[Textadept 7.8 -- Linux x86_64]: download/textadept_7.8.x86_64.tgz
-[Textadept 7.8 -- Modules]: download/textadept_7.8.modules.zip
-[PGP -- 7.8 Win32]: download/textadept_7.8.win32.zip.asc
-[PGP -- 7.8 OSX]: download/textadept_7.8.osx.zip.asc
-[PGP -- 7.8 Linux]: download/textadept_7.8.i386.tgz.asc
-[PGP -- 7.8 Linux x86_64]: download/textadept_7.8.x86_64.tgz.asc
-[PGP -- 7.8 Modules]: download/textadept_7.8.modules.zip.asc
-
### 7.8 beta 3 (21 Jan 2015)
-Download:
-
-* [Textadept 7.8 beta 3 -- Win32][] | [PGP -- 7.8 beta 3 Win32][]
-* [Textadept 7.8 beta 3 -- Mac OSX Intel 10.5+][] | [PGP -- 7.8 beta 3 OSX][]
-* [Textadept 7.8 beta 3 -- Linux][] | [PGP -- 7.8 beta 3 Linux][]
-* [Textadept 7.8 beta 3 -- Linux x86_64][] | [PGP -- 7.8 beta 3 Linux x86_64][]
-* [Textadept 7.8 beta 3 -- Modules][] | [PGP -- 7.8 beta 3 Modules][]
-
Bugfixes:
* Fixed opening files with network paths on Win32.
@@ -1979,30 +1281,12 @@ Changes:
and resume.
* Updated to [Scintilla][] 3.5.3.
-[Textadept 7.8 beta 3 -- Win32]: download/textadept_7.8_beta_3.win32.zip
-[Textadept 7.8 beta 3 -- Mac OSX Intel 10.5+]: download/textadept_7.8_beta_3.osx.zip
-[Textadept 7.8 beta 3 -- Linux]: download/textadept_7.8_beta_3.i386.tgz
-[Textadept 7.8 beta 3 -- Linux x86_64]: download/textadept_7.8_beta_3.x86_64.tgz
-[Textadept 7.8 beta 3 -- Modules]: download/textadept_7.8_beta_3.modules.zip
-[PGP -- 7.8 beta 3 Win32]: download/textadept_7.8_beta_3.win32.zip.asc
-[PGP -- 7.8 beta 3 OSX]: download/textadept_7.8_beta_3.osx.zip.asc
-[PGP -- 7.8 beta 3 Linux]: download/textadept_7.8_beta_3.i386.tgz.asc
-[PGP -- 7.8 beta 3 Linux x86_64]: download/textadept_7.8_beta_3.x86_64.tgz.asc
-[PGP -- 7.8 beta 3 Modules]: download/textadept_7.8_beta_3.modules.zip.asc
[`events.SUSPEND`]: api.html#events.SUSPEND
[`events.RESUME`]: api.html#events.RESUME
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.8 beta 2 (11 Jan 2015)
-Download:
-
-* [Textadept 7.8 beta 2 -- Win32][] | [PGP -- 7.8 beta 2 Win32][]
-* [Textadept 7.8 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 7.8 beta 2 OSX][]
-* [Textadept 7.8 beta 2 -- Linux][] | [PGP -- 7.8 beta 2 Linux][]
-* [Textadept 7.8 beta 2 -- Linux x86_64][] | [PGP -- 7.8 beta 2 Linux x86_64][]
-* [Textadept 7.8 beta 2 -- Modules][] | [PGP -- 7.8 beta 2 Modules][]
-
Bugfixes:
* Improved C module's ctags lookups and autocompletion.
@@ -2025,29 +1309,11 @@ Changes:
terminal version.
* Updated to [Scintilla][] 3.5.2.
-[Textadept 7.8 beta 2 -- Win32]: download/textadept_7.8_beta_2.win32.zip
-[Textadept 7.8 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_7.8_beta_2.osx.zip
-[Textadept 7.8 beta 2 -- Linux]: download/textadept_7.8_beta_2.i386.tgz
-[Textadept 7.8 beta 2 -- Linux x86_64]: download/textadept_7.8_beta_2.x86_64.tgz
-[Textadept 7.8 beta 2 -- Modules]: download/textadept_7.8_beta_2.modules.zip
-[PGP -- 7.8 beta 2 Win32]: download/textadept_7.8_beta_2.win32.zip.asc
-[PGP -- 7.8 beta 2 OSX]: download/textadept_7.8_beta_2.osx.zip.asc
-[PGP -- 7.8 beta 2 Linux]: download/textadept_7.8_beta_2.i386.tgz.asc
-[PGP -- 7.8 beta 2 Linux x86_64]: download/textadept_7.8_beta_2.x86_64.tgz.asc
-[PGP -- 7.8 beta 2 Modules]: download/textadept_7.8_beta_2.modules.zip.asc
[`spawn_proc:close()`]: api.html#spawn_proc:close
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.8 beta (01 Dec 2014)
-Download:
-
-* [Textadept 7.8 beta -- Win32][] | [PGP -- 7.8 beta Win32][]
-* [Textadept 7.8 beta -- Mac OSX Intel 10.5+][] | [PGP -- 7.8 beta OSX][]
-* [Textadept 7.8 beta -- Linux][] | [PGP -- 7.8 beta Linux][]
-* [Textadept 7.8 beta -- Linux x86_64][] | [PGP -- 7.8 beta Linux x86_64][]
-* [Textadept 7.8 beta -- Modules][] | [PGP -- 7.8 beta Modules][]
-
Bugfixes:
* Fixed extra space pasting from external Win32 apps.
@@ -2084,34 +1350,16 @@ Changes:
* Added UTF-8 input mode for Mac OSX (`⌘⇧U`) and the terminal version (`M-U`).
* Show character information in "Show Style" popup.
-[Textadept 7.8 beta -- Win32]: download/textadept_7.8_beta.win32.zip
-[Textadept 7.8 beta -- Mac OSX Intel 10.5+]: download/textadept_7.8_beta.osx.zip
-[Textadept 7.8 beta -- Linux]: download/textadept_7.8_beta.i386.tgz
-[Textadept 7.8 beta -- Linux x86_64]: download/textadept_7.8_beta.x86_64.tgz
-[Textadept 7.8 beta -- Modules]: download/textadept_7.8_beta.modules.zip
-[PGP -- 7.8 beta Win32]: download/textadept_7.8_beta.win32.zip.asc
-[PGP -- 7.8 beta OSX]: download/textadept_7.8_beta.osx.zip.asc
-[PGP -- 7.8 beta Linux]: download/textadept_7.8_beta.i386.tgz.asc
-[PGP -- 7.8 beta Linux x86_64]: download/textadept_7.8_beta.x86_64.tgz.asc
-[PGP -- 7.8 beta Modules]: download/textadept_7.8_beta.modules.zip.asc
[`ui.command_entry.editing_keys`]: api.html#ui.command_entry.editing_keys
[CSI events]: api.html#events.CSI
-[terminal version incompatibilities]: manual.html#Terminal.Version.Compatibility
+[terminal version incompatibilities]: manual.html#terminal-version-compatibility
[`_G.LINUX`]: api.html#LINUX
[`_G.BSD`]: api.html#BSD
-[Rectangular selections]: manual.html#Rectangular.Selection
+[Rectangular selections]: manual.html#rectangular-selection
[`_SCINTILLA.next_image_type()`]: api.html#_SCINTILLA.next_image_type
### 7.7 (01 Oct 2014)
-Download:
-
-* [Textadept 7.7 -- Win32][] | [PGP -- 7.7 Win32][]
-* [Textadept 7.7 -- Mac OSX Intel 10.5+][] | [PGP -- 7.7 OSX][]
-* [Textadept 7.7 -- Linux][] | [PGP -- 7.7 Linux][]
-* [Textadept 7.7 -- Linux x86_64][] | [PGP -- 7.7 Linux x86_64][]
-* [Textadept 7.7 -- Modules][] | [PGP -- 7.7 Modules][]
-
Bugfixes:
* Fixed corner-case in switching to most recent buffer after closing.
@@ -2125,28 +1373,10 @@ Changes:
* Improved performance for lexers with no grammars and no fold rules.
* Updated to [Scintilla][] 3.5.1.
-[Textadept 7.7 -- Win32]: download/textadept_7.7.win32.zip
-[Textadept 7.7 -- Mac OSX Intel 10.5+]: download/textadept_7.7.osx.zip
-[Textadept 7.7 -- Linux]: download/textadept_7.7.i386.tgz
-[Textadept 7.7 -- Linux x86_64]: download/textadept_7.7.x86_64.tgz
-[Textadept 7.7 -- Modules]: download/textadept_7.7.modules.zip
-[PGP -- 7.7 Win32]: download/textadept_7.7.win32.zip.asc
-[PGP -- 7.7 OSX]: download/textadept_7.7.osx.zip.asc
-[PGP -- 7.7 Linux]: download/textadept_7.7.i386.tgz.asc
-[PGP -- 7.7 Linux x86_64]: download/textadept_7.7.x86_64.tgz.asc
-[PGP -- 7.7 Modules]: download/textadept_7.7.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.6 (01 Sep 2014)
-Download:
-
-* [Textadept 7.6 -- Win32][] | [PGP -- 7.6 Win32][]
-* [Textadept 7.6 -- Mac OSX Intel 10.5+][] | [PGP -- 7.6 OSX][]
-* [Textadept 7.6 -- Linux][] | [PGP -- 7.6 Linux][]
-* [Textadept 7.6 -- Linux x86_64][] | [PGP -- 7.6 Linux x86_64][]
-* [Textadept 7.6 -- Modules][] | [PGP -- 7.6 Modules][]
-
Bugfixes:
* Recognize DEL when emitted by the Backspace key in the terminal version.
@@ -2163,28 +1393,10 @@ Changes:
* More options for `lfs.dir_foreach()`.
* Updated to [Scintilla][] 3.5.0.
-[Textadept 7.6 -- Win32]: download/textadept_7.6.win32.zip
-[Textadept 7.6 -- Mac OSX Intel 10.5+]: download/textadept_7.6.osx.zip
-[Textadept 7.6 -- Linux]: download/textadept_7.6.i386.tgz
-[Textadept 7.6 -- Linux x86_64]: download/textadept_7.6.x86_64.tgz
-[Textadept 7.6 -- Modules]: download/textadept_7.6.modules.zip
-[PGP -- 7.6 Win32]: download/textadept_7.6.win32.zip.asc
-[PGP -- 7.6 OSX]: download/textadept_7.6.osx.zip.asc
-[PGP -- 7.6 Linux]: download/textadept_7.6.i386.tgz.asc
-[PGP -- 7.6 Linux x86_64]: download/textadept_7.6.x86_64.tgz.asc
-[PGP -- 7.6 Modules]: download/textadept_7.6.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.5 (11 Jul 2014)
-Download:
-
-* [Textadept 7.5 -- Win32][] | [PGP -- 7.5 Win32][]
-* [Textadept 7.5 -- Mac OSX Intel 10.5+][] | [PGP -- 7.5 OSX][]
-* [Textadept 7.5 -- Linux][] | [PGP -- 7.5 Linux][]
-* [Textadept 7.5 -- Linux x86_64][] | [PGP -- 7.5 Linux x86_64][]
-* [Textadept 7.5 -- Modules][] | [PGP -- 7.5 Modules][]
-
Bugfixes:
* Fixed Bash heredoc highlighting.
@@ -2200,30 +1412,12 @@ Changes:
selections.
* Updated to [Scintilla][] 3.4.4.
-[Textadept 7.5 -- Win32]: download/textadept_7.5.win32.zip
-[Textadept 7.5 -- Mac OSX Intel 10.5+]: download/textadept_7.5.osx.zip
-[Textadept 7.5 -- Linux]: download/textadept_7.5.i386.tgz
-[Textadept 7.5 -- Linux x86_64]: download/textadept_7.5.x86_64.tgz
-[Textadept 7.5 -- Modules]: download/textadept_7.5.modules.zip
-[PGP -- 7.5 Win32]: download/textadept_7.5.win32.zip.asc
-[PGP -- 7.5 OSX]: download/textadept_7.5.osx.zip.asc
-[PGP -- 7.5 Linux]: download/textadept_7.5.i386.tgz.asc
-[PGP -- 7.5 Linux x86_64]: download/textadept_7.5.x86_64.tgz.asc
-[PGP -- 7.5 Modules]: download/textadept_7.5.modules.zip.asc
[`events.FOCUS`]: api.html#events.FOCUS
[`buffer.auto_c_multi`]: api.html#buffer.auto_c_multi
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.4 (11 Jun 2014)
-Download:
-
-* [Textadept 7.4 -- Win32][] | [PGP -- 7.4 Win32][]
-* [Textadept 7.4 -- Mac OSX Intel 10.5+][] | [PGP -- 7.4 OSX][]
-* [Textadept 7.4 -- Linux][] | [PGP -- 7.4 Linux][]
-* [Textadept 7.4 -- Linux x86_64][] | [PGP -- 7.4 Linux x86_64][]
-* [Textadept 7.4 -- Modules][] | [PGP -- 7.4 Modules][]
-
Bugfixes:
* Fix crash in Windows with sending input to spawned processes.
@@ -2236,27 +1430,8 @@ Changes:
* Pressing the Enter key in the message buffer and find in files buffer
simulates a double-click.
-[Textadept 7.4 -- Win32]: download/textadept_7.4.win32.zip
-[Textadept 7.4 -- Mac OSX Intel 10.5+]: download/textadept_7.4.osx.zip
-[Textadept 7.4 -- Linux]: download/textadept_7.4.i386.tgz
-[Textadept 7.4 -- Linux x86_64]: download/textadept_7.4.x86_64.tgz
-[Textadept 7.4 -- Modules]: download/textadept_7.4.modules.zip
-[PGP -- 7.4 Win32]: download/textadept_7.4.win32.zip.asc
-[PGP -- 7.4 OSX]: download/textadept_7.4.osx.zip.asc
-[PGP -- 7.4 Linux]: download/textadept_7.4.i386.tgz.asc
-[PGP -- 7.4 Linux x86_64]: download/textadept_7.4.x86_64.tgz.asc
-[PGP -- 7.4 Modules]: download/textadept_7.4.modules.zip.asc
-
### 7.3 (01 Jun 2014)
-Download:
-
-* [Textadept 7.3 -- Win32][] | [PGP -- 7.3 Win32][]
-* [Textadept 7.3 -- Mac OSX Intel 10.5+][] | [PGP -- 7.3 OSX][]
-* [Textadept 7.3 -- Linux][] | [PGP -- 7.3 Linux][]
-* [Textadept 7.3 -- Linux x86_64][] | [PGP -- 7.3 Linux x86_64][]
-* [Textadept 7.3 -- Modules][] | [PGP -- 7.3 Modules][]
-
Bugfixes:
* Export Lua symbols correctly on Windows.
@@ -2292,16 +1467,6 @@ Changes:
* Scintilla: added `buffer.FOLDFLAG_LINESTATE` for lexer debugging aid.
* Updated to [Scintilla][] 3.4.2.
-[Textadept 7.3 -- Win32]: download/textadept_7.3.win32.zip
-[Textadept 7.3 -- Mac OSX Intel 10.5+]: download/textadept_7.3.osx.zip
-[Textadept 7.3 -- Linux]: download/textadept_7.3.i386.tgz
-[Textadept 7.3 -- Linux x86_64]: download/textadept_7.3.x86_64.tgz
-[Textadept 7.3 -- Modules]: download/textadept_7.3.modules.zip
-[PGP -- 7.3 Win32]: download/textadept_7.3.win32.zip.asc
-[PGP -- 7.3 OSX]: download/textadept_7.3.osx.zip.asc
-[PGP -- 7.3 Linux]: download/textadept_7.3.i386.tgz.asc
-[PGP -- 7.3 Linux x86_64]: download/textadept_7.3.x86_64.tgz.asc
-[PGP -- 7.3 Modules]: download/textadept_7.3.modules.zip.asc
[`buffer:set_encoding()`]: api.html#buffer.set_encoding
[autocompleter functions]: api.html#textadept.editing.autocompleters
[api file format]: api.html#textadept.editing.api_files
@@ -2310,18 +1475,10 @@ Changes:
[`textadept.menu.menubar`]: api.html#textadept.menu.menubar
[`textadept.menu.context_menu`]: api.html#textadept.menu.context_menu
[`textadept.menu.tab_context_menu`]: api.html#textadept.menu.tab_context_menu
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.2 (01 May 2014)
-Download:
-
-* [Textadept 7.2 -- Win32][] | [PGP -- 7.2 Win32][]
-* [Textadept 7.2 -- Mac OSX Intel 10.5+][] | [PGP -- 7.2 OSX][]
-* [Textadept 7.2 -- Linux][] | [PGP -- 7.2 Linux][]
-* [Textadept 7.2 -- Linux x86_64][] | [PGP -- 7.2 Linux x86_64][]
-* [Textadept 7.2 -- Modules][] | [PGP -- 7.2 Modules][]
-
Bugfixes:
* Fixed cases of incorrect Markdown header highlighting.
@@ -2330,27 +1487,8 @@ Changes:
* Message buffer can send input to spawned processes.
-[Textadept 7.2 -- Win32]: download/textadept_7.2.win32.zip
-[Textadept 7.2 -- Mac OSX Intel 10.5+]: download/textadept_7.2.osx.zip
-[Textadept 7.2 -- Linux]: download/textadept_7.2.i386.tgz
-[Textadept 7.2 -- Linux x86_64]: download/textadept_7.2.x86_64.tgz
-[Textadept 7.2 -- Modules]: download/textadept_7.2.modules.zip
-[PGP -- 7.2 Win32]: download/textadept_7.2.win32.zip.asc
-[PGP -- 7.2 OSX]: download/textadept_7.2.osx.zip.asc
-[PGP -- 7.2 Linux]: download/textadept_7.2.i386.tgz.asc
-[PGP -- 7.2 Linux x86_64]: download/textadept_7.2.x86_64.tgz.asc
-[PGP -- 7.2 Modules]: download/textadept_7.2.modules.zip.asc
-
### 7.2 beta 4 (11 Apr 2014)
-Download:
-
-* [Textadept 7.2 beta 4 -- Win32][] | [PGP -- 7.2 beta 4 Win32][]
-* [Textadept 7.2 beta 4 -- Mac OSX Intel 10.5+][] | [PGP -- 7.2 beta 4 OSX][]
-* [Textadept 7.2 beta 4 -- Linux][] | [PGP -- 7.2 beta 4 Linux][]
-* [Textadept 7.2 beta 4 -- Linux x86_64][] | [PGP -- 7.2 beta 4 Linux x86_64][]
-* [Textadept 7.2 beta 4 -- Modules][] | [PGP -- 7.2 beta 4 Modules][]
-
Bugfixes:
* Fixed bug in parsing output from a canceled dropdown dialog.
@@ -2361,27 +1499,8 @@ Changes:
* None.
-[Textadept 7.2 beta 4 -- Win32]: download/textadept_7.2_beta_4.win32.zip
-[Textadept 7.2 beta 4 -- Mac OSX Intel 10.5+]: download/textadept_7.2_beta_4.osx.zip
-[Textadept 7.2 beta 4 -- Linux]: download/textadept_7.2_beta_4.i386.tgz
-[Textadept 7.2 beta 4 -- Linux x86_64]: download/textadept_7.2_beta_4.x86_64.tgz
-[Textadept 7.2 beta 4 -- Modules]: download/textadept_7.2_beta_4.modules.zip
-[PGP -- 7.2 beta 4 Win32]: download/textadept_7.2_beta_4.win32.zip.asc
-[PGP -- 7.2 beta 4 OSX]: download/textadept_7.2_beta_4.osx.zip.asc
-[PGP -- 7.2 beta 4 Linux]: download/textadept_7.2_beta_4.i386.tgz.asc
-[PGP -- 7.2 beta 4 Linux x86_64]: download/textadept_7.2_beta_4.x86_64.tgz.asc
-[PGP -- 7.2 beta 4 Modules]: download/textadept_7.2_beta_4.modules.zip.asc
-
### 7.2 beta 3 (01 Apr 2014)
-Download:
-
-* [Textadept 7.2 beta 3 -- Win32][] | [PGP -- 7.2 beta 3 Win32][]
-* [Textadept 7.2 beta 3 -- Mac OSX Intel 10.5+][] | [PGP -- 7.2 beta 3 OSX][]
-* [Textadept 7.2 beta 3 -- Linux][] | [PGP -- 7.2 beta 3 Linux][]
-* [Textadept 7.2 beta 3 -- Linux x86_64][] | [PGP -- 7.2 beta 3 Linux x86_64][]
-* [Textadept 7.2 beta 3 -- Modules][] | [PGP -- 7.2 beta 3 Modules][]
-
Bugfixes:
* Fixed bug in Win32 terminal version with "shifted" character input.
@@ -2406,34 +1525,16 @@ Changes:
* Updated to [LuaJIT][] 2.0.3.
* Updated to [Scintilla][] 3.4.1.
-[Textadept 7.2 beta 3 -- Win32]: download/textadept_7.2_beta_3.win32.zip
-[Textadept 7.2 beta 3 -- Mac OSX Intel 10.5+]: download/textadept_7.2_beta_3.osx.zip
-[Textadept 7.2 beta 3 -- Linux]: download/textadept_7.2_beta_3.i386.tgz
-[Textadept 7.2 beta 3 -- Linux x86_64]: download/textadept_7.2_beta_3.x86_64.tgz
-[Textadept 7.2 beta 3 -- Modules]: download/textadept_7.2_beta_3.modules.zip
-[PGP -- 7.2 beta 3 Win32]: download/textadept_7.2_beta_3.win32.zip.asc
-[PGP -- 7.2 beta 3 OSX]: download/textadept_7.2_beta_3.osx.zip.asc
-[PGP -- 7.2 beta 3 Linux]: download/textadept_7.2_beta_3.i386.tgz.asc
-[PGP -- 7.2 beta 3 Linux x86_64]: download/textadept_7.2_beta_3.x86_64.tgz.asc
-[PGP -- 7.2 beta 3 Modules]: download/textadept_7.2_beta_3.modules.zip.asc
[optionselect]: api.html#ui.dialogs.optionselect
[`ui.SILENT_PRINT`]: api.html#ui.silent_print
[spawn processes]: api.html#os.spawn
-[Snapopen]: manual.html#Quick.Open
+[Snapopen]: manual.html#quick-open
[building projects]: api.html#_M.Build.a.Project
-[LuaJIT]: http://luajit.org
-[Scintilla]: http://scintilla.org
+[LuaJIT]: https://luajit.org
+[Scintilla]: https://scintilla.org
### 7.2 beta 2 (01 Mar 2014)
-Download:
-
-* [Textadept 7.2 beta 2 -- Win32][] | [PGP -- 7.2 beta 2 Win32][]
-* [Textadept 7.2 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 7.2 beta 2 OSX][]
-* [Textadept 7.2 beta 2 -- Linux][] | [PGP -- 7.2 beta 2 Linux][]
-* [Textadept 7.2 beta 2 -- Linux x86_64][] | [PGP -- 7.2 beta 2 Linux x86_64][]
-* [Textadept 7.2 beta 2 -- Modules][] | [PGP -- 7.2 beta 2 Modules][]
-
Bugfixes:
* Fixed bug with empty entries in multiple entry inputboxes.
@@ -2442,27 +1543,8 @@ Changes:
* Terminal version now has split views along with key bindings for them.
-[Textadept 7.2 beta 2 -- Win32]: download/textadept_7.2_beta_2.win32.zip
-[Textadept 7.2 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_7.2_beta_2.osx.zip
-[Textadept 7.2 beta 2 -- Linux]: download/textadept_7.2_beta_2.i386.tgz
-[Textadept 7.2 beta 2 -- Linux x86_64]: download/textadept_7.2_beta_2.x86_64.tgz
-[Textadept 7.2 beta 2 -- Modules]: download/textadept_7.2_beta_2.modules.zip
-[PGP -- 7.2 beta 2 Win32]: download/textadept_7.2_beta_2.win32.zip.asc
-[PGP -- 7.2 beta 2 OSX]: download/textadept_7.2_beta_2.osx.zip.asc
-[PGP -- 7.2 beta 2 Linux]: download/textadept_7.2_beta_2.i386.tgz.asc
-[PGP -- 7.2 beta 2 Linux x86_64]: download/textadept_7.2_beta_2.x86_64.tgz.asc
-[PGP -- 7.2 beta 2 Modules]: download/textadept_7.2_beta_2.modules.zip.asc
-
### 7.2 beta (11 Feb 2014)
-Download:
-
-* [Textadept 7.2 beta -- Win32][] | [PGP -- 7.2 beta Win32][]
-* [Textadept 7.2 beta -- Mac OSX Intel 10.5+][] | [PGP -- 7.2 beta OSX][]
-* [Textadept 7.2 beta -- Linux][] | [PGP -- 7.2 beta Linux][]
-* [Textadept 7.2 beta -- Linux x86_64][] | [PGP -- 7.2 beta Linux x86_64][]
-* [Textadept 7.2 beta -- Modules][] | [PGP -- 7.2 beta Modules][]
-
Bugfixes:
* Handle *./* and *../* sequences in filepaths.
@@ -2482,30 +1564,12 @@ Changes:
* Scintilla: better marker drawing.
* Updated to [Scintilla][] 3.3.9.
-[Textadept 7.2 beta -- Win32]: download/textadept_7.2_beta.win32.zip
-[Textadept 7.2 beta -- Mac OSX Intel 10.5+]: download/textadept_7.2_beta.osx.zip
-[Textadept 7.2 beta -- Linux]: download/textadept_7.2_beta.i386.tgz
-[Textadept 7.2 beta -- Linux x86_64]: download/textadept_7.2_beta.x86_64.tgz
-[Textadept 7.2 beta -- Modules]: download/textadept_7.2_beta.modules.zip
-[PGP -- 7.2 beta Win32]: download/textadept_7.2_beta.win32.zip.asc
-[PGP -- 7.2 beta OSX]: download/textadept_7.2_beta.osx.zip.asc
-[PGP -- 7.2 beta Linux]: download/textadept_7.2_beta.i386.tgz.asc
-[PGP -- 7.2 beta Linux x86_64]: download/textadept_7.2_beta.x86_64.tgz.asc
-[PGP -- 7.2 beta Modules]: download/textadept_7.2_beta.modules.zip.asc
[inputdialogs]: api.html#ui.dialogs.inputbox
[`buffer:drop_selection_n()`]: api.html#buffer.drop_selection_n
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.2 alpha (01 Jan 2014)
-Download:
-
-* [Textadept 7.2 alpha -- Win32][] | [PGP -- 7.2 alpha Win32][]
-* [Textadept 7.2 alpha -- Mac OSX Intel 10.5+][] | [PGP -- 7.2 alpha OSX][]
-* [Textadept 7.2 alpha -- Linux][] | [PGP -- 7.2 alpha Linux][]
-* [Textadept 7.2 alpha -- Linux x86_64][] | [PGP -- 7.2 alpha Linux x86_64][]
-* [Textadept 7.2 alpha -- Modules][] | [PGP -- 7.2 alpha Modules][]
-
Bugfixes:
* Honor `ui.maximized` setting in session files.
@@ -2544,33 +1608,15 @@ Changes:
* Updated to [Lua][] 5.2.3.
* Updated to [Scintilla][] 3.3.7.
-[Textadept 7.2 alpha -- Win32]: download/textadept_7.2_alpha.win32.zip
-[Textadept 7.2 alpha -- Mac OSX Intel 10.5+]: download/textadept_7.2_alpha.osx.zip
-[Textadept 7.2 alpha -- Linux]: download/textadept_7.2_alpha.i386.tgz
-[Textadept 7.2 alpha -- Linux x86_64]: download/textadept_7.2_alpha.x86_64.tgz
-[Textadept 7.2 alpha -- Modules]: download/textadept_7.2_alpha.modules.zip
-[PGP -- 7.2 alpha Win32]: download/textadept_7.2_alpha.win32.zip.asc
-[PGP -- 7.2 alpha OSX]: download/textadept_7.2_alpha.osx.zip.asc
-[PGP -- 7.2 alpha Linux]: download/textadept_7.2_alpha.i386.tgz.asc
-[PGP -- 7.2 alpha Linux x86_64]: download/textadept_7.2_alpha.x86_64.tgz.asc
-[PGP -- 7.2 alpha Modules]: download/textadept_7.2_alpha.modules.zip.asc
-[OSX environment variables]: manual.html#Mac.OSX.Environment.Variables
+[OSX environment variables]: manual.html#mac-osx-environment-variables
[`buffer.representation`]: api.html#buffer.representation
[`buffer:position_relative()`]: api.html#buffer.position_relative
[`buffer.mouse_selection_rectangular_switch`]: api.html#buffer.mouse_selection_rectangular_switch
-[Lua]: http://lua.org
-[Scintilla]: http://scintilla.org
+[Lua]: https://lua.org
+[Scintilla]: https://scintilla.org
### 7.1 (11 Nov 2013)
-Download:
-
-* [Textadept 7.1 -- Win32][] | [PGP -- 7.1 Win32][]
-* [Textadept 7.1 -- Mac OSX Intel 10.5+][] | [PGP -- 7.1 OSX][]
-* [Textadept 7.1 -- Linux][] | [PGP -- 7.1 Linux][]
-* [Textadept 7.1 -- Linux x86_64][] | [PGP -- 7.1 Linux x86_64][]
-* [Textadept 7.1 -- Modules][] | [PGP -- 7.1 Modules][]
-
Bugfixes:
* Textbox dialogs' `scroll_to` option works correctly.
@@ -2589,16 +1635,6 @@ Changes:
* `ui.clipboard_text` is no longer read-only.
* Added [`events.FILE_CHANGED`][] event.
-[Textadept 7.1 -- Win32]: download/textadept_7.1.win32.zip
-[Textadept 7.1 -- Mac OSX Intel 10.5+]: download/textadept_7.1.osx.zip
-[Textadept 7.1 -- Linux]: download/textadept_7.1.i386.tgz
-[Textadept 7.1 -- Linux x86_64]: download/textadept_7.1.x86_64.tgz
-[Textadept 7.1 -- Modules]: download/textadept_7.1.modules.zip
-[PGP -- 7.1 Win32]: download/textadept_7.1.win32.zip.asc
-[PGP -- 7.1 OSX]: download/textadept_7.1.osx.zip.asc
-[PGP -- 7.1 Linux]: download/textadept_7.1.i386.tgz.asc
-[PGP -- 7.1 Linux x86_64]: download/textadept_7.1.x86_64.tgz.asc
-[PGP -- 7.1 Modules]: download/textadept_7.1.modules.zip.asc
[`ui.tabs`]: api.html#ui.tabs
[`events.FILE_CHANGED`]: api.html#events.FILE_CHANGED
@@ -2607,14 +1643,6 @@ Changes:
Please see the [6 to 7 migration guide][] for upgrading from Textadept 6 to
Textadept 7.
-Download:
-
-* [Textadept 7.0 -- Win32][] | [PGP -- 7.0 Win32][]
-* [Textadept 7.0 -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 OSX][]
-* [Textadept 7.0 -- Linux][] | [PGP -- 7.0 Linux][]
-* [Textadept 7.0 -- Linux x86_64][] | [PGP -- 7.0 Linux x86_64][]
-* [Textadept 7.0 -- Modules][] | [PGP -- 7.0 Modules][]
-
Bugfixes:
* Fixed bug with `buffer.SCFIND_REGEX` flag.
@@ -2628,28 +1656,10 @@ Changes:
* `textadept.adeptsense.goto_ctag()` can show all known tags now.
* `textadept.editing.enclose()` encloses the whole current word.
-[6 to 7 migration guide]: manual.html#Textadept.6.to.7
-[Textadept 7.0 -- Win32]: download/textadept_7.0.win32.zip
-[Textadept 7.0 -- Mac OSX Intel 10.5+]: download/textadept_7.0.osx.zip
-[Textadept 7.0 -- Linux]: download/textadept_7.0.i386.tgz
-[Textadept 7.0 -- Linux x86_64]: download/textadept_7.0.x86_64.tgz
-[Textadept 7.0 -- Modules]: download/textadept_7.0.modules.zip
-[PGP -- 7.0 Win32]: download/textadept_7.0.win32.zip.asc
-[PGP -- 7.0 OSX]: download/textadept_7.0.osx.zip.asc
-[PGP -- 7.0 Linux]: download/textadept_7.0.i386.tgz.asc
-[PGP -- 7.0 Linux x86_64]: download/textadept_7.0.x86_64.tgz.asc
-[PGP -- 7.0 Modules]: download/textadept_7.0.modules.zip.asc
+[6 to 7 migration guide]: manual.html#textadept-6-to-7
### 7.0 beta 5 (21 Oct 2013)
-Download:
-
-* [Textadept 7.0 beta 5 -- Win32][] | [PGP -- 7.0 beta 5 Win32][]
-* [Textadept 7.0 beta 5 -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 beta 5 OSX][]
-* [Textadept 7.0 beta 5 -- Linux][] | [PGP -- 7.0 beta 5 Linux][]
-* [Textadept 7.0 beta 5 -- Linux x86_64][] | [PGP -- 7.0 beta 5 Linux x86_64][]
-* [Textadept 7.0 beta 5 -- Modules][] | [PGP -- 7.0 beta 5 Modules][]
-
Bugfixes:
* Show more helpful user-init startup error messages.
@@ -2673,31 +1683,13 @@ Changes:
* [Child lexers][] do not need an explicit `M._lexer = parent` declaration
anymore; it is done automatically.
-[Textadept 7.0 beta 5 -- Win32]: download/textadept_7.0_beta_5.win32.zip
-[Textadept 7.0 beta 5 -- Mac OSX Intel 10.5+]: download/textadept_7.0_beta_5.osx.zip
-[Textadept 7.0 beta 5 -- Linux]: download/textadept_7.0_beta_5.i386.tgz
-[Textadept 7.0 beta 5 -- Linux x86_64]: download/textadept_7.0_beta_5.x86_64.tgz
-[Textadept 7.0 beta 5 -- Modules]: download/textadept_7.0_beta_5.modules.zip
-[PGP -- 7.0 beta 5 Win32]: download/textadept_7.0_beta_5.win32.zip.asc
-[PGP -- 7.0 beta 5 OSX]: download/textadept_7.0_beta_5.osx.zip.asc
-[PGP -- 7.0 beta 5 Linux]: download/textadept_7.0_beta_5.i386.tgz.asc
-[PGP -- 7.0 beta 5 Linux x86_64]: download/textadept_7.0_beta_5.x86_64.tgz.asc
-[PGP -- 7.0 beta 5 Modules]: download/textadept_7.0_beta_5.modules.zip.asc
[`textadept.editing.INDIC_BRACEMATCH`]: api.html#textadept.editing.INDIC_BRACEMATCH
[`lexer.load()`]: api.html#lexer.load
-[rule]: api.html#lexer.Rules
-[Child lexers]: api.html#lexer.Child.Lexer
+[rule]: api.html#rules
+[Child lexers]: api.html#child-lexer
### 7.0 beta 4 (01 Oct 2013)
-Download:
-
-* [Textadept 7.0 beta 4 -- Win32][] | [PGP -- 7.0 beta 4 Win32][]
-* [Textadept 7.0 beta 4 -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 beta 4 OSX][]
-* [Textadept 7.0 beta 4 -- Linux][] | [PGP -- 7.0 beta 4 Linux][]
-* [Textadept 7.0 beta 4 -- Linux x86_64][] | [PGP -- 7.0 beta 4 Linux x86_64][]
-* [Textadept 7.0 beta 4 -- Modules][] | [PGP -- 7.0 beta 4 Modules][]
-
Bugfixes:
* Fixed various compile and install errors.
@@ -2736,16 +1728,6 @@ Changes:
* Only enable `fold.by.indentation` property by default in
whitespace-significant languages.
-[Textadept 7.0 beta 4 -- Win32]: download/textadept_7.0_beta_4.win32.zip
-[Textadept 7.0 beta 4 -- Mac OSX Intel 10.5+]: download/textadept_7.0_beta_4.osx.zip
-[Textadept 7.0 beta 4 -- Linux]: download/textadept_7.0_beta_4.i386.tgz
-[Textadept 7.0 beta 4 -- Linux x86_64]: download/textadept_7.0_beta_4.x86_64.tgz
-[Textadept 7.0 beta 4 -- Modules]: download/textadept_7.0_beta_4.modules.zip
-[PGP -- 7.0 beta 4 Win32]: download/textadept_7.0_beta_4.win32.zip.asc
-[PGP -- 7.0 beta 4 OSX]: download/textadept_7.0_beta_4.osx.zip.asc
-[PGP -- 7.0 beta 4 Linux]: download/textadept_7.0_beta_4.i386.tgz.asc
-[PGP -- 7.0 beta 4 Linux x86_64]: download/textadept_7.0_beta_4.x86_64.tgz.asc
-[PGP -- 7.0 beta 4 Modules]: download/textadept_7.0_beta_4.modules.zip.asc
[`events.disconnect()`]: api.html#events.disconnect
[`_CHARSET`]: api.html#_CHARSET
[`convert_eols()`]: api.html#buffer.convert_eols
@@ -2767,14 +1749,6 @@ Changes:
### 7.0 beta 3 (11 Sep 2013)
-Download:
-
-* [Textadept 7.0 beta 3 -- Win32][] | [PGP -- 7.0 beta 3 Win32][]
-* [Textadept 7.0 beta 3 -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 beta 3 OSX][]
-* [Textadept 7.0 beta 3 -- Linux][] | [PGP -- 7.0 beta 3 Linux][]
-* [Textadept 7.0 beta 3 -- Linux x86_64][] | [PGP -- 7.0 beta 3 Linux x86_64][]
-* [Textadept 7.0 beta 3 -- Modules][] | [PGP -- 7.0 beta 3 Modules][]
-
Bugfixes:
* User functions that connect to `events.BUFFER_NEW` and `events.VIEW_NEW` are
@@ -2796,33 +1770,15 @@ Changes:
* Moved buffer IO functions into [`io` module][].
* Updated to [CDK][] 5.0-20130901.
-[Textadept 7.0 beta 3 -- Win32]: download/textadept_7.0_beta_3.win32.zip
-[Textadept 7.0 beta 3 -- Mac OSX Intel 10.5+]: download/textadept_7.0_beta_3.osx.zip
-[Textadept 7.0 beta 3 -- Linux]: download/textadept_7.0_beta_3.i386.tgz
-[Textadept 7.0 beta 3 -- Linux x86_64]: download/textadept_7.0_beta_3.x86_64.tgz
-[Textadept 7.0 beta 3 -- Modules]: download/textadept_7.0_beta_3.modules.zip
-[PGP -- 7.0 beta 3 Win32]: download/textadept_7.0_beta_3.win32.zip.asc
-[PGP -- 7.0 beta 3 OSX]: download/textadept_7.0_beta_3.osx.zip.asc
-[PGP -- 7.0 beta 3 Linux]: download/textadept_7.0_beta_3.i386.tgz.asc
-[PGP -- 7.0 beta 3 Linux x86_64]: download/textadept_7.0_beta_3.x86_64.tgz.asc
-[PGP -- 7.0 beta 3 Modules]: download/textadept_7.0_beta_3.modules.zip.asc
[`events.LEXER_LOADED`]: api.html#events.LEXER_LOADED
[`ui`]: api.html#ui
[`textadept`]: api.html#textadept
[`events.INITIALIZED`]: api.html#events.INITIALIZED
[`io` module]: api.html#io
-[CDK]: http://invisible-island.net/cdk/cdk.html
+[CDK]: https://invisible-island.net/cdk/cdk.html
### 7.0 beta 2 (11 Aug 2013)
-Download:
-
-* [Textadept 7.0 beta 2 -- Win32][] | [PGP -- 7.0 beta 2 Win32][]
-* [Textadept 7.0 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 beta 2 OSX][]
-* [Textadept 7.0 beta 2 -- Linux][] | [PGP -- 7.0 beta 2 Linux][]
-* [Textadept 7.0 beta 2 -- Linux x86_64][] | [PGP -- 7.0 beta 2 Linux x86_64][]
-* [Textadept 7.0 beta 2 -- Modules][] | [PGP -- 7.0 beta 2 Modules][]
-
Bugfixes:
* Fixed bug with theme loading when resetting.
@@ -2838,29 +1794,11 @@ Changes:
* Scintilla: improved UTF-8 case-insensitive searching.
* Updated to [Scintilla][] 3.3.4.
-[Textadept 7.0 beta 2 -- Win32]: download/textadept_7.0_beta_2.win32.zip
-[Textadept 7.0 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_7.0_beta_2.osx.zip
-[Textadept 7.0 beta 2 -- Linux]: download/textadept_7.0_beta_2.i386.tgz
-[Textadept 7.0 beta 2 -- Linux x86_64]: download/textadept_7.0_beta_2.x86_64.tgz
-[Textadept 7.0 beta 2 -- Modules]: download/textadept_7.0_beta_2.modules.zip
-[PGP -- 7.0 beta 2 Win32]: download/textadept_7.0_beta_2.win32.zip.asc
-[PGP -- 7.0 beta 2 OSX]: download/textadept_7.0_beta_2.osx.zip.asc
-[PGP -- 7.0 beta 2 Linux]: download/textadept_7.0_beta_2.i386.tgz.asc
-[PGP -- 7.0 beta 2 Linux x86_64]: download/textadept_7.0_beta_2.x86_64.tgz.asc
-[PGP -- 7.0 beta 2 Modules]: download/textadept_7.0_beta_2.modules.zip.asc
[`gui.maximized`]: api.html#ui.maximized
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 7.0 beta (11 Jul 2013)
-Download:
-
-* [Textadept 7.0 beta -- Win32][] | [PGP -- 7.0 beta Win32][]
-* [Textadept 7.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 beta OSX][]
-* [Textadept 7.0 beta -- Linux][] | [PGP -- 7.0 beta Linux][]
-* [Textadept 7.0 beta -- Linux x86_64][] | [PGP -- 7.0 beta Linux x86_64][]
-* [Textadept 7.0 beta -- Modules][] | [PGP -- 7.0 beta Modules][]
-
Bugfixes:
* Added file type for Go.
@@ -2874,29 +1812,11 @@ Changes:
[directly][].
* Changed scrollbar look and feel on Mac OSX.
-[Textadept 7.0 beta -- Win32]: download/textadept_7.0_beta.win32.zip
-[Textadept 7.0 beta -- Mac OSX Intel 10.5+]: download/textadept_7.0_beta.osx.zip
-[Textadept 7.0 beta -- Linux]: download/textadept_7.0_beta.i386.tgz
-[Textadept 7.0 beta -- Linux x86_64]: download/textadept_7.0_beta.x86_64.tgz
-[Textadept 7.0 beta -- Modules]: download/textadept_7.0_beta.modules.zip
-[PGP -- 7.0 beta Win32]: download/textadept_7.0_beta.win32.zip.asc
-[PGP -- 7.0 beta OSX]: download/textadept_7.0_beta.osx.zip.asc
-[PGP -- 7.0 beta Linux]: download/textadept_7.0_beta.i386.tgz.asc
-[PGP -- 7.0 beta Linux x86_64]: download/textadept_7.0_beta.x86_64.tgz.asc
-[PGP -- 7.0 beta Modules]: download/textadept_7.0_beta.modules.zip.asc
[`_M.textadept.file_types`]: api.html#textadept.file_types
-[directly]: manual.html#File.Types
+[directly]: manual.html#file-types
### 7.0 alpha 2 (01 Jul 2013)
-Download:
-
-* [Textadept 7.0 alpha 2 -- Win32][] | [PGP -- 7.0 alpha 2 Win32][]
-* [Textadept 7.0 alpha 2 -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 alpha 2 OSX][]
-* [Textadept 7.0 alpha 2 -- Linux][] | [PGP -- 7.0 alpha 2 Linux][]
-* [Textadept 7.0 alpha 2 -- Linux x86_64][] | [PGP -- 7.0 alpha 2 Linux x86_64][]
-* [Textadept 7.0 alpha 2 -- Modules][] | [PGP -- 7.0 alpha 2 Modules][]
-
Bugfixes:
* Fixed bug in user theme loading.
@@ -2924,32 +1844,13 @@ Changes:
* Updated to [LuaJIT][] 2.0.2.
* New [nightly builds][].
-[Textadept 7.0 alpha 2 -- Win32]: download/textadept_7.0_alpha_2.win32.zip
-[Textadept 7.0 alpha 2 -- Mac OSX Intel 10.5+]: download/textadept_7.0_alpha_2.osx.zip
-[Textadept 7.0 alpha 2 -- Linux]: download/textadept_7.0_alpha_2.i386.tgz
-[Textadept 7.0 alpha 2 -- Linux x86_64]: download/textadept_7.0_alpha_2.x86_64.tgz
-[Textadept 7.0 alpha 2 -- Modules]: download/textadept_7.0_alpha_2.modules.zip
-[PGP -- 7.0 alpha 2 Win32]: download/textadept_7.0_alpha_2.win32.zip.asc
-[PGP -- 7.0 alpha 2 OSX]: download/textadept_7.0_alpha_2.osx.zip.asc
-[PGP -- 7.0 alpha 2 Linux]: download/textadept_7.0_alpha_2.i386.tgz.asc
-[PGP -- 7.0 alpha 2 Linux x86_64]: download/textadept_7.0_alpha_2.x86_64.tgz.asc
-[PGP -- 7.0 alpha 2 Modules]: download/textadept_7.0_alpha_2.modules.zip.asc
-[compiling]: manual.html#Compiling
+[compiling]: manual.html#compiling
[`_M.textadept.bookmarks.goto_mark()`]: api.html#textadept.bookmarks.goto_mark
-[LuaJIT]: http://luajit.org
-[nightly builds]: README.html#Download
+[LuaJIT]: https://luajit.org
+[nightly builds]: index.html
### 7.0 alpha (01 Jun 2013)
-Download:
-
-* [Textadept 7.0 alpha -- Win32][] | [PGP -- 7.0 alpha Win32][]
-* [Textadept 7.0 alpha -- Mac OSX Intel 10.5+][] | [PGP -- 7.0 alpha OSX][]
-* [Textadept 7.0 alpha -- Linux][] | [PGP -- 7.0 alpha Linux][]
-* [Textadept 7.0 alpha -- Linux x86_64][] | [PGP -- 7.0 alpha Linux x86_64][]
-* [Textadept 7.0 alpha -- Source][] | [PGP -- 7.0 alpha Source][]
-* [Textadept 7.0 alpha -- Modules][] | [PGP -- 7.0 alpha Modules][]
-
Bugfixes:
* Scintilla: fixed memory access bug.
@@ -2963,33 +1864,12 @@ Changes:
* New [*properties.lua*][] for custom buffer and view properties.
* Updated to [Scintilla][] 3.3.3.
-[Textadept 7.0 alpha -- Win32]: download/textadept_7.0_alpha.win32.zip
-[Textadept 7.0 alpha -- Mac OSX Intel 10.5+]: download/textadept_7.0_alpha.osx.zip
-[Textadept 7.0 alpha -- Linux]: download/textadept_7.0_alpha.i386.tgz
-[Textadept 7.0 alpha -- Linux x86_64]: download/textadept_7.0_alpha.x86_64.tgz
-[Textadept 7.0 alpha -- Source]: download/textadept_7.0_alpha.src.zip
-[Textadept 7.0 alpha -- Modules]: download/textadept_7.0_alpha.modules.zip
-[PGP -- 7.0 alpha Win32]: download/textadept_7.0_alpha.win32.zip.asc
-[PGP -- 7.0 alpha OSX]: download/textadept_7.0_alpha.osx.zip.asc
-[PGP -- 7.0 alpha Linux]: download/textadept_7.0_alpha.i386.tgz.asc
-[PGP -- 7.0 alpha Linux x86_64]: download/textadept_7.0_alpha.x86_64.tgz.asc
-[PGP -- 7.0 alpha Source]: download/textadept_7.0_alpha.src.zip.asc
-[PGP -- 7.0 alpha Modules]: download/textadept_7.0_alpha.modules.zip.asc
-[theme implementation]: manual.html#Themes
-[*properties.lua*]: manual.html#Buffer.Settings
-[Scintilla]: http://scintilla.org
+[theme implementation]: manual.html#themes
+[*properties.lua*]: manual.html#buffer-settings
+[Scintilla]: https://scintilla.org
### 6.6 (01 Jun 2013)
-Download:
-
-* [Textadept 6.6 -- Win32][] | [PGP -- 6.6 Win32][]
-* [Textadept 6.6 -- Mac OSX Intel 10.5+][] | [PGP -- 6.6 OSX][]
-* [Textadept 6.6 -- Linux][] | [PGP -- 6.6 Linux][]
-* [Textadept 6.6 -- Linux x86_64][] | [PGP -- 6.6 Linux x86_64][]
-* [Textadept 6.6 -- Source][] | [PGP -- 6.6 Source][]
-* [Textadept 6.6 -- Modules][] | [PGP -- 6.6 Modules][]
-
Bugfixes:
* Fixed GTK assertion errors in find/replace history.
@@ -3009,31 +1889,10 @@ Changes:
* Scintilla: added `buffer.INDIC_COMPOSITIONTHICK` indicator.
* Updated to [Scintilla][] 3.3.2.
-[Textadept 6.6 -- Win32]: download/textadept_6.6.win32.zip
-[Textadept 6.6 -- Mac OSX Intel 10.5+]: download/textadept_6.6.osx.zip
-[Textadept 6.6 -- Linux]: download/textadept_6.6.i386.tgz
-[Textadept 6.6 -- Linux x86_64]: download/textadept_6.6.x86_64.tgz
-[Textadept 6.6 -- Source]: download/textadept_6.6.src.zip
-[Textadept 6.6 -- Modules]: download/textadept_6.6.modules.zip
-[PGP -- 6.6 Win32]: download/textadept_6.6.win32.zip.asc
-[PGP -- 6.6 OSX]: download/textadept_6.6.osx.zip.asc
-[PGP -- 6.6 Linux]: download/textadept_6.6.i386.tgz.asc
-[PGP -- 6.6 Linux x86_64]: download/textadept_6.6.x86_64.tgz.asc
-[PGP -- 6.6 Source]: download/textadept_6.6.src.zip.asc
-[PGP -- 6.6 Modules]: download/textadept_6.6.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 6.6 beta (01 May 2013)
-Download:
-
-* [Textadept 6.6 beta -- Win32][] | [PGP -- 6.6 beta Win32][]
-* [Textadept 6.6 beta -- Mac OSX Intel 10.5+][] | [PGP -- 6.6 beta OSX][]
-* [Textadept 6.6 beta -- Linux][] | [PGP -- 6.6 beta Linux][]
-* [Textadept 6.6 beta -- Linux x86_64][] | [PGP -- 6.6 beta Linux x86_64][]
-* [Textadept 6.6 beta -- Source][] | [PGP -- 6.6 beta Source][]
-* [Textadept 6.6 beta -- Modules][] | [PGP -- 6.6 beta Modules][]
-
Bugfixes:
* Fixed rendering on Mac OSX retina displays.
@@ -3069,22 +1928,10 @@ Changes:
* Renamed `io.try_encodings` to [`io.encodings`][].
* No need for '!' in front of font faces anymore.
-[Textadept 6.6 beta -- Win32]: download/textadept_6.6_beta.win32.zip
-[Textadept 6.6 beta -- Mac OSX Intel 10.5+]: download/textadept_6.6_beta.osx.zip
-[Textadept 6.6 beta -- Linux]: download/textadept_6.6_beta.i386.tgz
-[Textadept 6.6 beta -- Linux x86_64]: download/textadept_6.6_beta.x86_64.tgz
-[Textadept 6.6 beta -- Source]: download/textadept_6.6_beta.src.zip
-[Textadept 6.6 beta -- Modules]: download/textadept_6.6_beta.modules.zip
-[PGP -- 6.6 beta Win32]: download/textadept_6.6_beta.win32.zip.asc
-[PGP -- 6.6 beta OSX]: download/textadept_6.6_beta.osx.zip.asc
-[PGP -- 6.6 beta Linux]: download/textadept_6.6_beta.i386.tgz.asc
-[PGP -- 6.6 beta Linux x86_64]: download/textadept_6.6_beta.x86_64.tgz.asc
-[PGP -- 6.6 beta Source]: download/textadept_6.6_beta.src.zip.asc
-[PGP -- 6.6 beta Modules]: download/textadept_6.6_beta.modules.zip.asc
-[Messagebox]: http://foicica.com/gtdialog/manual.html#Messageboxes
-[key modes]: api.html#keys.Modes
+[Messagebox]: https://orbitalquark.github.io/gtdialog/manual.html#messageboxes
+[key modes]: api.html#modes
[`buffer.auto_c_order`]: api.html#buffer.auto_c_order
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[`buffer.new()`]: api.html#buffer.new
[`_M.textadept.editing.filter_through()`]: api.html#textadept.editing.filter_through
[`_M.textadept.run.goto_error()`]: api.html#textadept.run.goto_error
@@ -3094,15 +1941,6 @@ Changes:
### 6.5 (01 Apr 2013)
-Download:
-
-* [Textadept 6.5 -- Win32][] | [PGP -- 6.5 Win32][]
-* [Textadept 6.5 -- Mac OSX Intel 10.5+][] | [PGP -- 6.5 OSX][]
-* [Textadept 6.5 -- Linux][] | [PGP -- 6.5 Linux][]
-* [Textadept 6.5 -- Linux x86_64][] | [PGP -- 6.5 Linux x86_64][]
-* [Textadept 6.5 -- Source][] | [PGP -- 6.5 Source][]
-* [Textadept 6.5 -- Modules][] | [PGP -- 6.5 Modules][]
-
Bugfixes:
* Only consider visible directories in *_USERHOME/themes/* as themes.
@@ -3131,35 +1969,14 @@ Changes:
* Updated to [Scintilla][] 3.3.0.
* Updated to [Lua][] 5.2.2.
-[Textadept 6.5 -- Win32]: download/textadept_6.5.win32.zip
-[Textadept 6.5 -- Mac OSX Intel 10.5+]: download/textadept_6.5.osx.zip
-[Textadept 6.5 -- Linux]: download/textadept_6.5.i386.tgz
-[Textadept 6.5 -- Linux x86_64]: download/textadept_6.5.x86_64.tgz
-[Textadept 6.5 -- Source]: download/textadept_6.5.src.zip
-[Textadept 6.5 -- Modules]: download/textadept_6.5.modules.zip
-[PGP -- 6.5 Win32]: download/textadept_6.5.win32.zip.asc
-[PGP -- 6.5 OSX]: download/textadept_6.5.osx.zip.asc
-[PGP -- 6.5 Linux]: download/textadept_6.5.i386.tgz.asc
-[PGP -- 6.5 Linux x86_64]: download/textadept_6.5.x86_64.tgz.asc
-[PGP -- 6.5 Source]: download/textadept_6.5.src.zip.asc
-[PGP -- 6.5 Modules]: download/textadept_6.5.modules.zip.asc
[filtering]: api.html#ui.find.find_in_files_filter
[`lexer` constants]: api.html#lexer.FOLD_BASE
[`buffer:scroll_range()`]: api.html#buffer.scroll_range
-[Scintilla]: http://scintilla.org
-[Lua]: http://lua.org
+[Scintilla]: https://scintilla.org
+[Lua]: https://lua.org
### 6.4 (01 Mar 2013)
-Download:
-
-* [Textadept 6.4 -- Win32][] | [PGP -- 6.4 Win32][]
-* [Textadept 6.4 -- Mac OSX Intel 10.5+][] | [PGP -- 6.4 OSX][]
-* [Textadept 6.4 -- Linux][] | [PGP -- 6.4 Linux][]
-* [Textadept 6.4 -- Linux x86_64][] | [PGP -- 6.4 Linux x86_64][]
-* [Textadept 6.4 -- Source][] | [PGP -- 6.4 Source][]
-* [Textadept 6.4 -- Modules][] | [PGP -- 6.4 Modules][]
-
Bugfixes:
* Dialogs belong to the Textadept window.
@@ -3176,33 +1993,12 @@ Changes:
* Updated to [Scintilla][] 3.2.5.
* Updated to [LuaJIT][] 2.0.1.
-[Textadept 6.4 -- Win32]: download/textadept_6.4.win32.zip
-[Textadept 6.4 -- Mac OSX Intel 10.5+]: download/textadept_6.4.osx.zip
-[Textadept 6.4 -- Linux]: download/textadept_6.4.i386.tgz
-[Textadept 6.4 -- Linux x86_64]: download/textadept_6.4.x86_64.tgz
-[Textadept 6.4 -- Source]: download/textadept_6.4.src.zip
-[Textadept 6.4 -- Modules]: download/textadept_6.4.modules.zip
-[PGP -- 6.4 Win32]: download/textadept_6.4.win32.zip.asc
-[PGP -- 6.4 OSX]: download/textadept_6.4.osx.zip.asc
-[PGP -- 6.4 Linux]: download/textadept_6.4.i386.tgz.asc
-[PGP -- 6.4 Linux x86_64]: download/textadept_6.4.x86_64.tgz.asc
-[PGP -- 6.4 Source]: download/textadept_6.4.src.zip.asc
-[PGP -- 6.4 Modules]: download/textadept_6.4.modules.zip.asc
-[command line switches]: manual.html#Command.Line.Parameters
-[Scintilla]: http://scintilla.org
-[LuaJIT]: http://luajit.org
+[command line switches]: manual.html#command-line-parameters
+[Scintilla]: https://scintilla.org
+[LuaJIT]: https://luajit.org
### 6.3 (01 Feb 2013)
-Download:
-
-* [Textadept 6.3 -- Win32][] | [PGP -- 6.3 Win32][]
-* [Textadept 6.3 -- Mac OSX Intel 10.5+][] | [PGP -- 6.3 OSX][]
-* [Textadept 6.3 -- Linux][] | [PGP -- 6.3 Linux][]
-* [Textadept 6.3 -- Linux x86_64][] | [PGP -- 6.3 Linux x86_64][]
-* [Textadept 6.3 -- Source][] | [PGP -- 6.3 Source][]
-* [Textadept 6.3 -- Modules][] | [PGP -- 6.3 Modules][]
-
Bugfixes:
* Do not error on non-existant dropped URIs.
@@ -3221,33 +2017,12 @@ Changes:
* Updated to [Scintilla][] 3.2.4.
* Added [typeover characters][].
-[Textadept 6.3 -- Win32]: download/textadept_6.3.win32.zip
-[Textadept 6.3 -- Mac OSX Intel 10.5+]: download/textadept_6.3.osx.zip
-[Textadept 6.3 -- Linux]: download/textadept_6.3.i386.tgz
-[Textadept 6.3 -- Linux x86_64]: download/textadept_6.3.x86_64.tgz
-[Textadept 6.3 -- Source]: download/textadept_6.3.src.zip
-[Textadept 6.3 -- Modules]: download/textadept_6.3.modules.zip
-[PGP -- 6.3 Win32]: download/textadept_6.3.win32.zip.asc
-[PGP -- 6.3 OSX]: download/textadept_6.3.osx.zip.asc
-[PGP -- 6.3 Linux]: download/textadept_6.3.i386.tgz.asc
-[PGP -- 6.3 Linux x86_64]: download/textadept_6.3.x86_64.tgz.asc
-[PGP -- 6.3 Source]: download/textadept_6.3.src.zip.asc
-[PGP -- 6.3 Modules]: download/textadept_6.3.modules.zip.asc
[`buffer.caret_line_visible_always`]: api.html#buffer.caret_line_visible_always
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[typeover characters]: api.html#textadept.editing.typeover_chars
### 6.2 (01 Jan 2013)
-Download:
-
-* [Textadept 6.2 -- Win32][] | [PGP -- 6.2 Win32][]
-* [Textadept 6.2 -- Mac OSX Intel 10.5+][] | [PGP -- 6.2 OSX][]
-* [Textadept 6.2 -- Linux][] | [PGP -- 6.2 Linux][]
-* [Textadept 6.2 -- Linux x86_64][] | [PGP -- 6.2 Linux x86_64][]
-* [Textadept 6.2 -- Source][] | [PGP -- 6.2 Source][]
-* [Textadept 6.2 -- Modules][] | [PGP -- 6.2 Modules][]
-
Bugfixes:
* None.
@@ -3258,31 +2033,10 @@ Changes:
* `make install` and `make ncurses install` install separate binaries on Linux.
* Changed API for [`_M.textadept.snapopen.open()`][] and removed `PATHS`.
-[Textadept 6.2 -- Win32]: download/textadept_6.2.win32.zip
-[Textadept 6.2 -- Mac OSX Intel 10.5+]: download/textadept_6.2.osx.zip
-[Textadept 6.2 -- Linux]: download/textadept_6.2.i386.tgz
-[Textadept 6.2 -- Linux x86_64]: download/textadept_6.2.x86_64.tgz
-[Textadept 6.2 -- Source]: download/textadept_6.2.src.zip
-[Textadept 6.2 -- Modules]: download/textadept_6.2.modules.zip
-[PGP -- 6.2 Win32]: download/textadept_6.2.win32.zip.asc
-[PGP -- 6.2 OSX]: download/textadept_6.2.osx.zip.asc
-[PGP -- 6.2 Linux]: download/textadept_6.2.i386.tgz.asc
-[PGP -- 6.2 Linux x86_64]: download/textadept_6.2.x86_64.tgz.asc
-[PGP -- 6.2 Source]: download/textadept_6.2.src.zip.asc
-[PGP -- 6.2 Modules]: download/textadept_6.2.modules.zip.asc
[`_M.textadept.snapopen.open()`]: api.html#io.quick_open
### 6.1 (11 Dec 2012)
-Download:
-
-* [Textadept 6.1 -- Win32][] | [PGP -- 6.1 Win32][]
-* [Textadept 6.1 -- Mac OSX Intel 10.5+][] | [PGP -- 6.1 OSX][]
-* [Textadept 6.1 -- Linux][] | [PGP -- 6.1 Linux][]
-* [Textadept 6.1 -- Linux x86_64][] | [PGP -- 6.1 Linux x86_64][]
-* [Textadept 6.1 -- Source][] | [PGP -- 6.1 Source][]
-* [Textadept 6.1 -- Modules][] | [PGP -- 6.1 Modules][]
-
Bugfixes:
* Do not set current directory when opening/saving files.
@@ -3302,35 +2056,14 @@ Changes:
* Improved speed and memory usage of lexers.
* Updated Java lexer.
-[Textadept 6.1 -- Win32]: download/textadept_6.1.win32.zip
-[Textadept 6.1 -- Mac OSX Intel 10.5+]: download/textadept_6.1.osx.zip
-[Textadept 6.1 -- Linux]: download/textadept_6.1.i386.tgz
-[Textadept 6.1 -- Linux x86_64]: download/textadept_6.1.x86_64.tgz
-[Textadept 6.1 -- Source]: download/textadept_6.1.src.zip
-[Textadept 6.1 -- Modules]: download/textadept_6.1.modules.zip
-[PGP -- 6.1 Win32]: download/textadept_6.1.win32.zip.asc
-[PGP -- 6.1 OSX]: download/textadept_6.1.osx.zip.asc
-[PGP -- 6.1 Linux]: download/textadept_6.1.i386.tgz.asc
-[PGP -- 6.1 Linux x86_64]: download/textadept_6.1.x86_64.tgz.asc
-[PGP -- 6.1 Source]: download/textadept_6.1.src.zip.asc
-[PGP -- 6.1 Modules]: download/textadept_6.1.modules.zip.asc
[API documentation]: api.html
-[LuaJIT]: http://luajit.org
+[LuaJIT]: https://luajit.org
### 6.0 (01 Nov 2012)
Please see the [5 to 6 migration guide][] for upgrading from Textadept 5 to
Textadept 6.
-Download:
-
-* [Textadept 6.0 -- Win32][] | [PGP -- 6.0 Win32][]
-* [Textadept 6.0 -- Mac OSX Intel 10.5+][] | [PGP -- 6.0 OSX][]
-* [Textadept 6.0 -- Linux][] | [PGP -- 6.0 Linux][]
-* [Textadept 6.0 -- Linux x86_64][] | [PGP -- 6.0 Linux x86_64][]
-* [Textadept 6.0 -- Source][] | [PGP -- 6.0 Source][]
-* [Textadept 6.0 -- Modules][] | [PGP -- 6.0 Modules][]
-
Bugfixes:
* Handle rapidly pressing `Esc` twice in ncurses dialogs.
@@ -3360,35 +2093,14 @@ Changes:
* Updated to [Scintilla][] 3.2.3.
* Updated to [LuaJIT][] 2.0.0-beta11.
-[5 to 6 migration guide]: manual.html#Textadept.5.to.6
-[Textadept 6.0 -- Win32]: download/textadept_6.0.win32.zip
-[Textadept 6.0 -- Mac OSX Intel 10.5+]: download/textadept_6.0.osx.zip
-[Textadept 6.0 -- Linux]: download/textadept_6.0.i386.tgz
-[Textadept 6.0 -- Linux x86_64]: download/textadept_6.0.x86_64.tgz
-[Textadept 6.0 -- Source]: download/textadept_6.0.src.zip
-[Textadept 6.0 -- Modules]: download/textadept_6.0.modules.zip
-[PGP -- 6.0 Win32]: download/textadept_6.0.win32.zip.asc
-[PGP -- 6.0 OSX]: download/textadept_6.0.osx.zip.asc
-[PGP -- 6.0 Linux]: download/textadept_6.0.i386.tgz.asc
-[PGP -- 6.0 Linux x86_64]: download/textadept_6.0.x86_64.tgz.asc
-[PGP -- 6.0 Source]: download/textadept_6.0.src.zip.asc
-[PGP -- 6.0 Modules]: download/textadept_6.0.modules.zip.asc
+[5 to 6 migration guide]: manual.html#textadept-5-to-6
[`event.FIND_WRAPPED`]: api.html#events.FIND_WRAPPED
[Python module]: api.html#_M.python
-[Scintilla]: http://scintilla.org
-[LuaJIT]: http://luajit.org
+[Scintilla]: https://scintilla.org
+[LuaJIT]: https://luajit.org
### 6.0 beta 3 (01 Oct 2012)
-Download:
-
-* [Textadept 6.0 beta 3 -- Win32][] | [PGP -- 6.0 beta 3 Win32][]
-* [Textadept 6.0 beta 3 -- Mac OSX Intel 10.5+][] | [PGP -- 6.0 beta 3 OSX][]
-* [Textadept 6.0 beta 3 -- Linux][] | [PGP -- 6.0 beta 3 Linux][]
-* [Textadept 6.0 beta 3 -- Linux x86_64][] | [PGP -- 6.0 beta 3 Linux x86_64][]
-* [Textadept 6.0 beta 3 -- Source][] | [PGP -- 6.0 beta 3 Source][]
-* [Textadept 6.0 beta 3 -- Modules][] | [PGP -- 6.0 beta 3 Modules][]
-
Bugfixes:
* Canceling in `buffer:close()` caused unwanted key propagation.
@@ -3413,31 +2125,10 @@ Changes:
respectively.
* Added marks for making selections in ncurses.
-[Textadept 6.0 beta 3 -- Win32]: download/textadept_6.0_beta_3.win32.zip
-[Textadept 6.0 beta 3 -- Mac OSX Intel 10.5+]: download/textadept_6.0_beta_3.osx.zip
-[Textadept 6.0 beta 3 -- Linux]: download/textadept_6.0_beta_3.i386.tgz
-[Textadept 6.0 beta 3 -- Linux x86_64]: download/textadept_6.0_beta_3.x86_64.tgz
-[Textadept 6.0 beta 3 -- Source]: download/textadept_6.0_beta_3.src.zip
-[Textadept 6.0 beta 3 -- Modules]: download/textadept_6.0_beta_3.modules.zip
-[PGP -- 6.0 beta 3 Win32]: download/textadept_6.0_beta_3.win32.zip.asc
-[PGP -- 6.0 beta 3 OSX]: download/textadept_6.0_beta_3.osx.zip.asc
-[PGP -- 6.0 beta 3 Linux]: download/textadept_6.0_beta_3.i386.tgz.asc
-[PGP -- 6.0 beta 3 Linux x86_64]: download/textadept_6.0_beta_3.x86_64.tgz.asc
-[PGP -- 6.0 beta 3 Source]: download/textadept_6.0_beta_3.src.zip.asc
-[PGP -- 6.0 beta 3 Modules]: download/textadept_6.0_beta_3.modules.zip.asc
[`_M.textadept.keys`]: api.html#textadept.keys
### 6.0 beta 2 (01 Sep 2012)
-Download:
-
-* [Textadept 6.0 beta 2 -- Win32][] | [PGP -- 6.0 beta 2 Win32][]
-* [Textadept 6.0 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 6.0 beta 2 OSX][]
-* [Textadept 6.0 beta 2 -- Linux][] | [PGP -- 6.0 beta 2 Linux][]
-* [Textadept 6.0 beta 2 -- Linux x86_64][] | [PGP -- 6.0 beta 2 Linux x86_64][]
-* [Textadept 6.0 beta 2 -- Source][] | [PGP -- 6.0 beta 2 Source][]
-* [Textadept 6.0 beta 2 -- Modules][] | [PGP -- 6.0 beta 2 Modules][]
-
Bugfixes:
* Disabled `--help` switch to ncurses version due to terminal output mangling.
@@ -3466,36 +2157,15 @@ Changes:
[`buffer:vc_home_display_extend()`][] for navigating wrapped lines.
* Updated to [Scintilla][] 3.2.2.
-[Textadept 6.0 beta 2 -- Win32]: download/textadept_6.0_beta_2.win32.zip
-[Textadept 6.0 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_6.0_beta_2.osx.zip
-[Textadept 6.0 beta 2 -- Linux]: download/textadept_6.0_beta_2.i386.tgz
-[Textadept 6.0 beta 2 -- Linux x86_64]: download/textadept_6.0_beta_2.x86_64.tgz
-[Textadept 6.0 beta 2 -- Source]: download/textadept_6.0_beta_2.src.zip
-[Textadept 6.0 beta 2 -- Modules]: download/textadept_6.0_beta_2.modules.zip
-[PGP -- 6.0 beta 2 Win32]: download/textadept_6.0_beta_2.win32.zip.asc
-[PGP -- 6.0 beta 2 OSX]: download/textadept_6.0_beta_2.osx.zip.asc
-[PGP -- 6.0 beta 2 Linux]: download/textadept_6.0_beta_2.i386.tgz.asc
-[PGP -- 6.0 beta 2 Linux x86_64]: download/textadept_6.0_beta_2.x86_64.tgz.asc
-[PGP -- 6.0 beta 2 Source]: download/textadept_6.0_beta_2.src.zip.asc
-[PGP -- 6.0 beta 2 Modules]: download/textadept_6.0_beta_2.modules.zip.asc
[`_M.textadept.bookmarks.toggle()`]: api.html#textadept.bookmarks.toggle
[`lexer.last_char_includes()`]: api.html#lexer.last_char_includes
[`buffer.selection_empty`]: api.html#buffer.selection_empty
[`buffer:vc_home_display()`]: api.html#buffer.vc_home_display
[`buffer:vc_home_display_extend()`]: api.html#buffer.vc_home_display_extend
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 6.0 beta (01 Aug 2012)
-Download:
-
-* [Textadept 6.0 beta -- Win32][] | [PGP -- 6.0 beta Win32][]
-* [Textadept 6.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 6.0 beta OSX][]
-* [Textadept 6.0 beta -- Linux][] | [PGP -- 6.0 beta Linux][]
-* [Textadept 6.0 beta -- Linux x86_64][] | [PGP -- 6.0 beta Linux x86_64][]
-* [Textadept 6.0 beta -- Source][] | [PGP -- 6.0 beta Source][]
-* [Textadept 6.0 beta -- Modules][] | [PGP -- 6.0 beta Modules][]
-
Bugfixes:
* Lots of bugfixes to the experimental ncurses version.
@@ -3527,36 +2197,15 @@ Changes:
[`buffer.whitespace_chars`][] for manipulating character sets.
* Updated to [Scintilla][] 3.2.1.
-[Textadept 6.0 beta -- Win32]: download/textadept_6.0_beta.win32.zip
-[Textadept 6.0 beta -- Mac OSX Intel 10.5+]: download/textadept_6.0_beta.osx.zip
-[Textadept 6.0 beta -- Linux]: download/textadept_6.0_beta.i386.tgz
-[Textadept 6.0 beta -- Linux x86_64]: download/textadept_6.0_beta.x86_64.tgz
-[Textadept 6.0 beta -- Source]: download/textadept_6.0_beta.src.zip
-[Textadept 6.0 beta -- Modules]: download/textadept_6.0_beta.modules.zip
-[PGP -- 6.0 beta Win32]: download/textadept_6.0_beta.win32.zip.asc
-[PGP -- 6.0 beta OSX]: download/textadept_6.0_beta.osx.zip.asc
-[PGP -- 6.0 beta Linux]: download/textadept_6.0_beta.i386.tgz.asc
-[PGP -- 6.0 beta Linux x86_64]: download/textadept_6.0_beta.x86_64.tgz.asc
-[PGP -- 6.0 beta Source]: download/textadept_6.0_beta.src.zip.asc
-[PGP -- 6.0 beta Modules]: download/textadept_6.0_beta.modules.zip.asc
[`_M.textadept.session.load()`]: api.html#textadept.session.load
[`_M.textadept.session.save()`]: api.html#textadept.session.save
[`buffer.punctuation_chars`]: api.html#buffer.punctuation_chars
[`buffer.word_chars`]: api.html#buffer.word_chars
[`buffer.whitespace_chars`]: api.html#buffer.whitespace_chars
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 5.5 beta (01 Jul 2012)
-Download:
-
-* [Textadept 5.5 beta -- Win32][] | [PGP -- 5.5 beta Win32][]
-* [Textadept 5.5 beta -- Mac OSX Intel 10.5+][] | [PGP -- 5.5 beta OSX][]
-* [Textadept 5.5 beta -- Linux][] | [PGP -- 5.5 beta Linux][]
-* [Textadept 5.5 beta -- Linux x86_64][] | [PGP -- 5.5 beta Linux x86_64][]
-* [Textadept 5.5 beta -- Source][] | [PGP -- 5.5 beta Source][]
-* [Textadept 5.5 beta -- Modules][] | [PGP -- 5.5 beta Modules][]
-
Bugfixes:
* None.
@@ -3577,34 +2226,13 @@ Changes:
* Updated to [Lua 5.2.1][].
* Updated to [LuaJIT][] 2.0.0-beta10.
-[Textadept 5.5 beta -- Win32]: download/textadept_5.5_beta.win32.zip
-[Textadept 5.5 beta -- Mac OSX Intel 10.5+]: download/textadept_5.5_beta.osx.zip
-[Textadept 5.5 beta -- Linux]: download/textadept_5.5_beta.i386.tgz
-[Textadept 5.5 beta -- Linux x86_64]: download/textadept_5.5_beta.x86_64.tgz
-[Textadept 5.5 beta -- Source]: download/textadept_5.5_beta.src.zip
-[Textadept 5.5 beta -- Modules]: download/textadept_5.5_beta.modules.zip
-[PGP -- 5.5 beta Win32]: download/textadept_5.5_beta.win32.zip.asc
-[PGP -- 5.5 beta OSX]: download/textadept_5.5_beta.osx.zip.asc
-[PGP -- 5.5 beta Linux]: download/textadept_5.5_beta.i386.tgz.asc
-[PGP -- 5.5 beta Linux x86_64]: download/textadept_5.5_beta.x86_64.tgz.asc
-[PGP -- 5.5 beta Source]: download/textadept_5.5_beta.src.zip.asc
-[PGP -- 5.5 beta Modules]: download/textadept_5.5_beta.modules.zip.asc
[`gui.menu()`]: api.html#ui.menu
-[compiling]: manual.html#Compiling
-[Lua 5.2.1]: http://www.lua.org/manual/5.2/
-[LuaJIT]: http://luajit.org
+[compiling]: manual.html#compiling
+[Lua 5.2.1]: https://www.lua.org/manual/5.2/
+[LuaJIT]: https://luajit.org
### 5.4 (01 Jun 2012)
-Download:
-
-* [Textadept 5.4 -- Win32][] | [PGP -- 5.4 Win32][]
-* [Textadept 5.4 -- Mac OSX Intel 10.5+][] | [PGP -- 5.4 OSX][]
-* [Textadept 5.4 -- Linux][] | [PGP -- 5.4 Linux][]
-* [Textadept 5.4 -- Linux x86_64][] | [PGP -- 5.4 Linux x86_64][]
-* [Textadept 5.4 -- Source][] | [PGP -- 5.4 Source][]
-* [Textadept 5.4 -- Modules][] | [PGP -- 5.4 Modules][]
-
Bugfixes:
* Scintilla: fixed boxed annotation drawing.
@@ -3626,32 +2254,11 @@ Changes:
* Scintilla: improved UTF-8 validity checks.
* Updated to [Scintilla][] 3.2.0.
-[Textadept 5.4 -- Win32]: download/textadept_5.4.win32.zip
-[Textadept 5.4 -- Mac OSX Intel 10.5+]: download/textadept_5.4.osx.zip
-[Textadept 5.4 -- Linux]: download/textadept_5.4.tgz
-[Textadept 5.4 -- Linux x86_64]: download/textadept_5.4.x86_64.tgz
-[Textadept 5.4 -- Source]: download/textadept_5.4.src.zip
-[Textadept 5.4 -- Modules]: download/textadept_5.4.modules.zip
-[PGP -- 5.4 Win32]: download/textadept_5.4.win32.zip.asc
-[PGP -- 5.4 OSX]: download/textadept_5.4.osx.zip.asc
-[PGP -- 5.4 Linux]: download/textadept_5.4.tgz.asc
-[PGP -- 5.4 Linux x86_64]: download/textadept_5.4.x86_64.tgz.asc
-[PGP -- 5.4 Source]: download/textadept_5.4.src.zip.asc
-[PGP -- 5.4 Modules]: download/textadept_5.4.modules.zip.asc
[`buffer:delete_range()`]: api.html#buffer.delete_range
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 5.3 (01 May 2012)
-Download:
-
-* [Textadept 5.3 -- Win32][] | [PGP -- 5.3 Win32][]
-* [Textadept 5.3 -- Mac OSX Intel 10.5+][] | [PGP -- 5.3 OSX][]
-* [Textadept 5.3 -- Linux][] | [PGP -- 5.3 Linux][]
-* [Textadept 5.3 -- Linux x86_64][] | [PGP -- 5.3 Linux x86_64][]
-* [Textadept 5.3 -- Source][] | [PGP -- 5.3 Source][]
-* [Textadept 5.3 -- Modules][] | [PGP -- 5.3 Modules][]
-
Bugfixes:
* Fixed bug with run/compile commands in LuaJIT version.
@@ -3675,35 +2282,14 @@ Changes:
* Scintilla: `\0` in regex replacements represents the full found text.
* Updated to [Scintilla][] 3.1.0.
-[Textadept 5.3 -- Win32]: download/textadept_5.3.win32.zip
-[Textadept 5.3 -- Mac OSX Intel 10.5+]: download/textadept_5.3.osx.zip
-[Textadept 5.3 -- Linux]: download/textadept_5.3.tgz
-[Textadept 5.3 -- Linux x86_64]: download/textadept_5.3.x86_64.tgz
-[Textadept 5.3 -- Source]: download/textadept_5.3.src.zip
-[Textadept 5.3 -- Modules]: download/textadept_5.3.modules.zip
-[PGP -- 5.3 Win32]: download/textadept_5.3.win32.zip.asc
-[PGP -- 5.3 OSX]: download/textadept_5.3.osx.zip.asc
-[PGP -- 5.3 Linux]: download/textadept_5.3.tgz.asc
-[PGP -- 5.3 Linux x86_64]: download/textadept_5.3.x86_64.tgz.asc
-[PGP -- 5.3 Source]: download/textadept_5.3.src.zip.asc
-[PGP -- 5.3 Modules]: download/textadept_5.3.modules.zip.asc
-[single-instance]: manual.html#Single.Instance
-[GTK]: http://gtk.org
-[require]: manual.html#Requirements
-[GLib]: http://gtk.org/download/linux.php
-[Scintilla]: http://scintilla.org
+[single-instance]: manual.html#single-instance
+[GTK]: https://gtk.org
+[require]: manual.html#requirements
+[GLib]: https://gtk.org/download/linux.php
+[Scintilla]: https://scintilla.org
### 5.2 (01 Apr 2012)
-Download:
-
-* [Textadept 5.2 -- Win32][] | [PGP -- 5.2 Win32][]
-* [Textadept 5.2 -- Mac OSX Intel 10.5+][] | [PGP -- 5.2 OSX][]
-* [Textadept 5.2 -- Linux][] | [PGP -- 5.2 Linux][]
-* [Textadept 5.2 -- Linux x86_64][] | [PGP -- 5.2 Linux x86_64][]
-* [Textadept 5.2 -- Source][] | [PGP -- 5.2 Source][]
-* [Textadept 5.2 -- Modules][] | [PGP -- 5.2 Modules][]
-
Bugfixes:
* Fixed LuaDoc for `buffer:get_lexer()`.
@@ -3735,33 +2321,12 @@ Changes:
* Use [GTK][] 2.24 on Windows.
* Updated to [Scintilla][] 3.0.4.
-[Textadept 5.2 -- Win32]: download/textadept_5.2.win32.zip
-[Textadept 5.2 -- Mac OSX Intel 10.5+]: download/textadept_5.2.osx.zip
-[Textadept 5.2 -- Linux]: download/textadept_5.2.tgz
-[Textadept 5.2 -- Linux x86_64]: download/textadept_5.2.x86_64.tgz
-[Textadept 5.2 -- Source]: download/textadept_5.2.src.zip
-[Textadept 5.2 -- Modules]: download/textadept_5.2.modules.zip
-[PGP -- 5.2 Win32]: download/textadept_5.2.win32.zip.asc
-[PGP -- 5.2 OSX]: download/textadept_5.2.osx.zip.asc
-[PGP -- 5.2 Linux]: download/textadept_5.2.tgz.asc
-[PGP -- 5.2 Linux x86_64]: download/textadept_5.2.x86_64.tgz.asc
-[PGP -- 5.2 Source]: download/textadept_5.2.src.zip.asc
-[PGP -- 5.2 Modules]: download/textadept_5.2.modules.zip.asc
-[generating LuaDoc]: manual.html#Generating.LuaDoc
-[GTK]: http://gtk.org
-[Scintilla]: http://scintilla.org
+[generating LuaDoc]: manual.html#generating-luadoc
+[GTK]: https://gtk.org
+[Scintilla]: https://scintilla.org
### 5.1 (01 Mar 2012)
-Download:
-
-* [Textadept 5.1 -- Win32][] | [PGP -- 5.1 Win32][]
-* [Textadept 5.1 -- Mac OSX Intel 10.5+][] | [PGP -- 5.1 OSX][]
-* [Textadept 5.1 -- Linux][] | [PGP -- 5.1 Linux][]
-* [Textadept 5.1 -- Linux x86_64][] | [PGP -- 5.1 Linux x86_64][]
-* [Textadept 5.1 -- Source][] | [PGP -- 5.1 Source][]
-* [Textadept 5.1 -- Modules][] | [PGP -- 5.1 Modules][]
-
Bugfixes:
* Fixed crash caused by `gui.filteredlist()` dialogs.
@@ -3775,18 +2340,6 @@ Changes:
* Lexers with no tokens can be styled manually.
* Added more OSX default key shortcuts.
-[Textadept 5.1 -- Win32]: download/textadept_5.1.win32.zip
-[Textadept 5.1 -- Mac OSX Intel 10.5+]: download/textadept_5.1.osx.zip
-[Textadept 5.1 -- Linux]: download/textadept_5.1.tgz
-[Textadept 5.1 -- Linux x86_64]: download/textadept_5.1.x86_64.tgz
-[Textadept 5.1 -- Source]: download/textadept_5.1.src.zip
-[Textadept 5.1 -- Modules]: download/textadept_5.1.modules.zip
-[PGP -- 5.1 Win32]: download/textadept_5.1.win32.zip.asc
-[PGP -- 5.1 OSX]: download/textadept_5.1.osx.zip.asc
-[PGP -- 5.1 Linux]: download/textadept_5.1.tgz.asc
-[PGP -- 5.1 Linux x86_64]: download/textadept_5.1.x86_64.tgz.asc
-[PGP -- 5.1 Source]: download/textadept_5.1.src.zip.asc
-[PGP -- 5.1 Modules]: download/textadept_5.1.modules.zip.asc
[GtkOSXApplication]: https://live.gnome.org/GTK%2B/OSX/Integration#Gtk-mac-integration.2BAC8-GtkOSXApplication
### 5.0 (01 Feb 2012)
@@ -3794,15 +2347,6 @@ Changes:
Please see the [4 to 5 migration guide][] for upgrading from Textadept 4 to
Textadept 5.
-Download:
-
-* [Textadept 5.0 -- Win32][] | [PGP -- 5.0 Win32][]
-* [Textadept 5.0 -- Mac OSX Intel 10.5+][] | [PGP -- 5.0 OSX][]
-* [Textadept 5.0 -- Linux][] | [PGP -- 5.0 Linux][]
-* [Textadept 5.0 -- Linux x86_64][] | [PGP -- 5.0 Linux x86_64][]
-* [Textadept 5.0 -- Source][] | [PGP -- 5.0 Source][]
-* [Textadept 5.0 -- Modules][] | [PGP -- 5.0 Modules][]
-
Bugfixes:
* Fixed bug with recent files in sessions.
@@ -3818,33 +2362,12 @@ Changes:
* Updated to [Scintilla][] 3.0.3.
* Also include [LuaJIT][] executables in releases.
-[4 to 5 migration guide]: manual.html#Textadept.4.to.5
-[Textadept 5.0 -- Win32]: download/textadept_5.0.win32.zip
-[Textadept 5.0 -- Mac OSX Intel 10.5+]: download/textadept_5.0.osx.zip
-[Textadept 5.0 -- Linux]: download/textadept_5.0.tgz
-[Textadept 5.0 -- Linux x86_64]: download/textadept_5.0.x86_64.tgz
-[Textadept 5.0 -- Source]: download/textadept_5.0.src.zip
-[Textadept 5.0 -- Modules]: download/textadept_5.0.modules.zip
-[PGP -- 5.0 Win32]: download/textadept_5.0.win32.zip.asc
-[PGP -- 5.0 OSX]: download/textadept_5.0.osx.zip.asc
-[PGP -- 5.0 Linux]: download/textadept_5.0.tgz.asc
-[PGP -- 5.0 Linux x86_64]: download/textadept_5.0.x86_64.tgz.asc
-[PGP -- 5.0 Source]: download/textadept_5.0.src.zip.asc
-[PGP -- 5.0 Modules]: download/textadept_5.0.modules.zip.asc
-[Scintilla]: http://scintilla.org
-[LuaJIT]: http://luajit.org
+[4 to 5 migration guide]: manual.html#textadept-4-to-5
+[Scintilla]: https://scintilla.org
+[LuaJIT]: https://luajit.org
### 5.0 beta (11 Jan 2012)
-Download:
-
-* [Textadept 5.0 beta -- Win32][] | [PGP -- 5.0 beta Win32][]
-* [Textadept 5.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 5.0 beta OSX][]
-* [Textadept 5.0 beta -- Linux][] | [PGP -- 5.0 beta Linux][]
-* [Textadept 5.0 beta -- Linux x86_64][] | [PGP -- 5.0 beta Linux x86_64][]
-* [Textadept 5.0 beta -- Source][] | [PGP -- 5.0 beta Source][]
-* [Textadept 5.0 beta -- Modules][] | [PGP -- 5.0 beta Modules][]
-
Bugfixes:
* Fixed bug in `reset()` from update to Lua 5.2.
@@ -3859,18 +2382,6 @@ Changes:
* Updated [manual][].
* Updated D lexer.
-[Textadept 5.0 beta -- Win32]: download/textadept_5.0_beta.win32.zip
-[Textadept 5.0 beta -- Mac OSX Intel 10.5+]: download/textadept_5.0_beta.osx.zip
-[Textadept 5.0 beta -- Linux]: download/textadept_5.0_beta.tgz
-[Textadept 5.0 beta -- Linux x86_64]: download/textadept_5.0_beta.x86_64.tgz
-[Textadept 5.0 beta -- Source]: download/textadept_5.0_beta.src.zip
-[Textadept 5.0 beta -- Modules]: download/textadept_5.0_beta.modules.zip
-[PGP -- 5.0 beta Win32]: download/textadept_5.0_beta.win32.zip.asc
-[PGP -- 5.0 beta OSX]: download/textadept_5.0_beta.osx.zip.asc
-[PGP -- 5.0 beta Linux]: download/textadept_5.0_beta.tgz.asc
-[PGP -- 5.0 beta Linux x86_64]: download/textadept_5.0_beta.x86_64.tgz.asc
-[PGP -- 5.0 beta Source]: download/textadept_5.0_beta.src.zip.asc
-[PGP -- 5.0 beta Modules]: download/textadept_5.0_beta.modules.zip.asc
[`_L`]: api.html#_L
[`_M`]: api.html#_M
[manual]: manual.html
@@ -3878,15 +2389,6 @@ Changes:
### 5.0 alpha (21 Dec 2011)
-Download:
-
-* [Textadept 5.0 alpha -- Win32][] | [PGP -- 5.0 alpha Win32][]
-* [Textadept 5.0 alpha -- Mac OSX Intel 10.5+][] | [PGP -- 5.0 alpha OSX][]
-* [Textadept 5.0 alpha -- Linux][] | [PGP -- 5.0 alpha Linux][]
-* [Textadept 5.0 alpha -- Linux x86_64][] | [PGP -- 5.0 alpha Linux x86_64][]
-* [Textadept 5.0 alpha -- Source][] | [PGP -- 5.0 alpha Source][]
-* [Textadept 5.0 alpha -- Modules][] | [PGP -- 5.0 alpha Modules][]
-
Bugfixes:
* Fixed bug in Matlab lexer for operators.
@@ -3899,33 +2401,12 @@ Changes:
* Updated sections in the [manual][] to reflect Lua 5.2 changes.
* Textadept can be compiled with [LuaJIT][].
-[Textadept 5.0 alpha -- Win32]: download/textadept_5.0_alpha.win32.zip
-[Textadept 5.0 alpha -- Mac OSX Intel 10.5+]: download/textadept_5.0_alpha.osx.zip
-[Textadept 5.0 alpha -- Linux]: download/textadept_5.0_alpha.tgz
-[Textadept 5.0 alpha -- Linux x86_64]: download/textadept_5.0_alpha.x86_64.tgz
-[Textadept 5.0 alpha -- Source]: download/textadept_5.0_alpha.src.zip
-[Textadept 5.0 alpha -- Modules]: download/textadept_5.0_alpha.modules.zip
-[PGP -- 5.0 alpha Win32]: download/textadept_5.0_alpha.win32.zip.asc
-[PGP -- 5.0 alpha OSX]: download/textadept_5.0_alpha.osx.zip.asc
-[PGP -- 5.0 alpha Linux]: download/textadept_5.0_alpha.tgz.asc
-[PGP -- 5.0 alpha Linux x86_64]: download/textadept_5.0_alpha.x86_64.tgz.asc
-[PGP -- 5.0 alpha Source]: download/textadept_5.0_alpha.src.zip.asc
-[PGP -- 5.0 alpha Modules]: download/textadept_5.0_alpha.modules.zip.asc
-[Lua 5.2]: http://www.lua.org/manual/5.2/
+[Lua 5.2]: https://www.lua.org/manual/5.2/
[manual]: manual.html
-[LuaJIT]: http://luajit.org
+[LuaJIT]: https://luajit.org
### 4.3 (01 Dec 2011)
-Download:
-
-* [Textadept 4.3 -- Win32][] | [PGP -- 4.3 Win32][]
-* [Textadept 4.3 -- Mac OSX Intel 10.5+][] | [PGP -- 4.3 OSX][]
-* [Textadept 4.3 -- Linux][] | [PGP -- 4.3 Linux][]
-* [Textadept 4.3 -- Linux x86_64][] | [PGP -- 4.3 Linux x86_64][]
-* [Textadept 4.3 -- Source][] | [PGP -- 4.3 Source][]
-* [Textadept 4.3 -- Modules][] | [PGP -- 4.3 Modules][]
-
Bugfixes:
* Fixed bug with opening files in the current directory from the command line.
@@ -3943,34 +2424,13 @@ Changes:
* Added [`lexer.REGEX`][] and [`lexer.LABEL`][] tokens.
* Updated to [Scintilla][] 3.0.1.
-[Textadept 4.3 -- Win32]: download/textadept_4.3.win32.zip
-[Textadept 4.3 -- Mac OSX Intel 10.5+]: download/textadept_4.3.osx.zip
-[Textadept 4.3 -- Linux]: download/textadept_4.3.tgz
-[Textadept 4.3 -- Linux x86_64]: download/textadept_4.3.x86_64.tgz
-[Textadept 4.3 -- Source]: download/textadept_4.3.src.zip
-[Textadept 4.3 -- Modules]: download/textadept_4.3.modules.zip
-[PGP -- 4.3 Win32]: download/textadept_4.3.win32.zip.asc
-[PGP -- 4.3 OSX]: download/textadept_4.3.osx.zip.asc
-[PGP -- 4.3 Linux]: download/textadept_4.3.tgz.asc
-[PGP -- 4.3 Linux x86_64]: download/textadept_4.3.x86_64.tgz.asc
-[PGP -- 4.3 Source]: download/textadept_4.3.src.zip.asc
-[PGP -- 4.3 Modules]: download/textadept_4.3.modules.zip.asc
-[gtkrc]: manual.html#GUI.Theme
+[gtkrc]: manual.html#gui-theme
[`lexer.REGEX`]: api.html#lexer.REGEX
[`lexer.LABEL`]: api.html#lexer.LABEL
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 4.2 (01 Nov 2011)
-Download:
-
-* [Textadept 4.2 -- Win32][] | [PGP -- 4.2 Win32][]
-* [Textadept 4.2 -- Mac OSX Intel 10.5+][] | [PGP -- 4.2 OSX][]
-* [Textadept 4.2 -- Linux][] | [PGP -- 4.2 Linux][]
-* [Textadept 4.2 -- Linux x86_64][] | [PGP -- 4.2 Linux x86_64][]
-* [Textadept 4.2 -- Source][] | [PGP -- 4.2 Source][]
-* [Textadept 4.2 -- Modules][] | [PGP -- 4.2 Modules][]
-
Bugfixes:
* Fixed bug with `%n` in Replace introduced in 4.1.
@@ -3983,31 +2443,10 @@ Changes:
* Scintilla: call tips can be displayed above text.
* Updated to [Scintilla][] 3.0.0.
-[Textadept 4.2 -- Win32]: download/textadept_4.2.win32.zip
-[Textadept 4.2 -- Mac OSX Intel 10.5+]: download/textadept_4.2.osx.zip
-[Textadept 4.2 -- Linux]: download/textadept_4.2.tgz
-[Textadept 4.2 -- Linux x86_64]: download/textadept_4.2.x86_64.tgz
-[Textadept 4.2 -- Source]: download/textadept_4.2.src.zip
-[Textadept 4.2 -- Modules]: download/textadept_4.2.modules.zip
-[PGP -- 4.2 Win32]: download/textadept_4.2.win32.zip.asc
-[PGP -- 4.2 OSX]: download/textadept_4.2.osx.zip.asc
-[PGP -- 4.2 Linux]: download/textadept_4.2.tgz.asc
-[PGP -- 4.2 Linux x86_64]: download/textadept_4.2.x86_64.tgz.asc
-[PGP -- 4.2 Source]: download/textadept_4.2.src.zip.asc
-[PGP -- 4.2 Modules]: download/textadept_4.2.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 4.1 (01 Oct 2011)
-Download:
-
-* [Textadept 4.1 -- Win32][] | [PGP -- 4.1 Win32][]
-* [Textadept 4.1 -- Mac OSX Intel 10.5+][] | [PGP -- 4.1 OSX][]
-* [Textadept 4.1 -- Linux][] | [PGP -- 4.1 Linux][]
-* [Textadept 4.1 -- Linux x86_64][] | [PGP -- 4.1 Linux x86_64][]
-* [Textadept 4.1 -- Source][] | [PGP -- 4.1 Source][]
-* [Textadept 4.1 -- Modules][] | [PGP -- 4.1 Modules][]
-
Bugfixes:
* Only fold when clicking on fold margin, not any sensitive one.
@@ -4035,18 +2474,6 @@ Changes:
dialogs, respectively.
* Updated to [Scintilla][] 2.29.
-[Textadept 4.1 -- Win32]: download/textadept_4.1.win32.zip
-[Textadept 4.1 -- Mac OSX Intel 10.5+]: download/textadept_4.1.osx.zip
-[Textadept 4.1 -- Linux]: download/textadept_4.1.tgz
-[Textadept 4.1 -- Linux x86_64]: download/textadept_4.1.x86_64.tgz
-[Textadept 4.1 -- Source]: download/textadept_4.1.src.zip
-[Textadept 4.1 -- Modules]: download/textadept_4.1.modules.zip
-[PGP -- 4.1 Win32]: download/textadept_4.1.win32.zip.asc
-[PGP -- 4.1 OSX]: download/textadept_4.1.osx.zip.asc
-[PGP -- 4.1 Linux]: download/textadept_4.1.tgz.asc
-[PGP -- 4.1 Linux x86_64]: download/textadept_4.1.x86_64.tgz.asc
-[PGP -- 4.1 Source]: download/textadept_4.1.src.zip.asc
-[PGP -- 4.1 Modules]: download/textadept_4.1.modules.zip.asc
[dwell events]: api.html#events
[`_BUFFERS`]: api.html#_BUFFERS
[`_VIEWS`]: api.html#_VIEWS
@@ -4054,23 +2481,14 @@ Changes:
[`view:goto_buffer()`]: api.html#view.goto_buffer
[`gui.goto_view()`]: api.html#ui.goto_view
[context menu]: api.html#_M.Context.Menu
-[LuaCoco]: http://coco.luajit.org/
-[Scintilla]: http://scintilla.org
+[LuaCoco]: https://coco.luajit.org/
+[Scintilla]: https://scintilla.org
### 4.0 (01 Sep 2011)
Please see the [3 to 4 migration guide][] for upgrading from Textadept 3 to
Textadept 4.
-Download:
-
-* [Textadept 4.0 -- Win32][] | [PGP -- 4.0 Win32][]
-* [Textadept 4.0 -- Mac OSX Intel 10.5+][] | [PGP -- 4.0 OSX][]
-* [Textadept 4.0 -- Linux][] | [PGP -- 4.0 Linux][]
-* [Textadept 4.0 -- Linux x86_64][] | [PGP -- 4.0 Linux x86_64][]
-* [Textadept 4.0 -- Source][] | [PGP -- 4.0 Source][]
-* [Textadept 4.0 -- Modules][] | [PGP -- 4.0 Modules][]
-
Bugfixes:
* Makefile should only link to `libdl.so` on Linux/BSD.
@@ -4086,31 +2504,10 @@ Changes:
* Changed some key bindings from 4.0 beta 2.
* Do not hide the statusbar when the command entry has focus.
-[3 to 4 migration guide]: manual.html#Textadept.3.to.4
-[Textadept 4.0 -- Win32]: download/textadept_4.0.win32.zip
-[Textadept 4.0 -- Mac OSX Intel 10.5+]: download/textadept_4.0.osx.zip
-[Textadept 4.0 -- Linux]: download/textadept_4.0.tgz
-[Textadept 4.0 -- Linux x86_64]: download/textadept_4.0.x86_64.tgz
-[Textadept 4.0 -- Source]: download/textadept_4.0.src.zip
-[Textadept 4.0 -- Modules]: download/textadept_4.0.modules.zip
-[PGP -- 4.0 Win32]: download/textadept_4.0.win32.zip.asc
-[PGP -- 4.0 OSX]: download/textadept_4.0.osx.zip.asc
-[PGP -- 4.0 Linux]: download/textadept_4.0.tgz.asc
-[PGP -- 4.0 Linux x86_64]: download/textadept_4.0.x86_64.tgz.asc
-[PGP -- 4.0 Source]: download/textadept_4.0.src.zip.asc
-[PGP -- 4.0 Modules]: download/textadept_4.0.modules.zip.asc
+[3 to 4 migration guide]: manual.html#textadept-3-to-4
### 4.0 beta 2 (11 Aug 2011)
-Download:
-
-* [Textadept 4.0 beta 2 -- Win32][] | [PGP -- 4.0 beta 2 Win32][]
-* [Textadept 4.0 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 4.0 beta 2 OSX][]
-* [Textadept 4.0 beta 2 -- Linux][] | [PGP -- 4.0 beta 2 Linux][]
-* [Textadept 4.0 beta 2 -- Linux x86_64][] | [PGP -- 4.0 beta 2 Linux x86_64][]
-* [Textadept 4.0 beta 2 -- Source][] | [PGP -- 4.0 beta 2 Source][]
-* [Textadept 4.0 beta 2 -- Modules][] | [PGP -- 4.0 beta 2 Modules][]
-
Bugfixes:
* Fixed transpose characters bug at end of buffer.
@@ -4126,31 +2523,10 @@ Changes:
* Swapped OSX `c` and `m` key command definition modifiers.
* Changed some key bindings from 4.0 beta.
-[Textadept 4.0 beta 2 -- Win32]: download/textadept_4.0_beta_2.win32.zip
-[Textadept 4.0 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_4.0_beta_2.osx.zip
-[Textadept 4.0 beta 2 -- Linux]: download/textadept_4.0_beta_2.tgz
-[Textadept 4.0 beta 2 -- Linux x86_64]: download/textadept_4.0_beta_2.x86_64.tgz
-[Textadept 4.0 beta 2 -- Source]: download/textadept_4.0_beta_2.src.zip
-[Textadept 4.0 beta 2 -- Modules]: download/textadept_4.0_beta_2.modules.zip
-[PGP -- 4.0 beta 2 Win32]: download/textadept_4.0_beta_2.win32.zip.asc
-[PGP -- 4.0 beta 2 OSX]: download/textadept_4.0_beta_2.osx.zip.asc
-[PGP -- 4.0 beta 2 Linux]: download/textadept_4.0_beta_2.tgz.asc
-[PGP -- 4.0 beta 2 Linux x86_64]: download/textadept_4.0_beta_2.x86_64.tgz.asc
-[PGP -- 4.0 beta 2 Source]: download/textadept_4.0_beta_2.src.zip.asc
-[PGP -- 4.0 beta 2 Modules]: download/textadept_4.0_beta_2.modules.zip.asc
[recent file list]: api.html#io.recent_files
### 4.0 beta (01 Aug 2011)
-Download:
-
-* [Textadept 4.0 beta -- Win32][] | [PGP -- 4.0 beta Win32][]
-* [Textadept 4.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 4.0 beta OSX][]
-* [Textadept 4.0 beta -- Linux][] | [PGP -- 4.0 beta Linux][]
-* [Textadept 4.0 beta -- Linux x86_64][] | [PGP -- 4.0 beta Linux x86_64][]
-* [Textadept 4.0 beta -- Source][] | [PGP -- 4.0 beta Source][]
-* [Textadept 4.0 beta -- Modules][] | [PGP -- 4.0 beta Modules][]
-
Bugfixes:
* Fixed Markdown lexer styles.
@@ -4183,35 +2559,14 @@ Changes:
* Scintilla: `Ctrl+Shift+U` used for Unicode input.
* Updated to [Scintilla][] 2.28.
-[Textadept 4.0 beta -- Win32]: download/textadept_4.0_beta.win32.zip
-[Textadept 4.0 beta -- Mac OSX Intel 10.5+]: download/textadept_4.0_beta.osx.zip
-[Textadept 4.0 beta -- Linux]: download/textadept_4.0_beta.tgz
-[Textadept 4.0 beta -- Linux x86_64]: download/textadept_4.0_beta.x86_64.tgz
-[Textadept 4.0 beta -- Source]: download/textadept_4.0_beta.src.zip
-[Textadept 4.0 beta -- Modules]: download/textadept_4.0_beta.modules.zip
-[PGP -- 4.0 beta Win32]: download/textadept_4.0_beta.win32.zip.asc
-[PGP -- 4.0 beta OSX]: download/textadept_4.0_beta.osx.zip.asc
-[PGP -- 4.0 beta Linux]: download/textadept_4.0_beta.tgz.asc
-[PGP -- 4.0 beta Linux x86_64]: download/textadept_4.0_beta.x86_64.tgz.asc
-[PGP -- 4.0 beta Source]: download/textadept_4.0_beta.src.zip.asc
-[PGP -- 4.0 beta Modules]: download/textadept_4.0_beta.modules.zip.asc
[`io.open_recent_file()`]: api.html#io.open_recent_file
[`buffer`]: api.html#buffer
[`_m.textadept.editing.STRIP_WHITESPACE_ON_SAVE`]: api.html#textadept.editing.STRIP_WHITESPACE_ON_SAVE
[menu]: api.html#ui.menu
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 3.9 (01 Jul 2011)
-Download:
-
-* [Textadept 3.9 -- Win32][] | [PGP -- 3.9 Win32][]
-* [Textadept 3.9 -- Mac OSX Intel 10.5+][] | [PGP -- 3.9 OSX][]
-* [Textadept 3.9 -- Linux][] | [PGP -- 3.9 Linux][]
-* [Textadept 3.9 -- Linux x86_64][] | [PGP -- 3.9 Linux x86_64][]
-* [Textadept 3.9 -- Source][] | [PGP -- 3.9 Source][]
-* [Textadept 3.9 -- Modules][] | [PGP -- 3.9 Modules][]
-
Bugfixes:
* Fixed bug for when `gui.dialog()` steals focus.
@@ -4245,36 +2600,15 @@ Changes:
* Multiple single-line comments can be folded with the `fold.line.comments`
property set to `1`.
-[Textadept 3.9 -- Win32]: download/textadept_3.9.win32.zip
-[Textadept 3.9 -- Mac OSX Intel 10.5+]: download/textadept_3.9.osx.zip
-[Textadept 3.9 -- Linux]: download/textadept_3.9.tgz
-[Textadept 3.9 -- Linux x86_64]: download/textadept_3.9.x86_64.tgz
-[Textadept 3.9 -- Source]: download/textadept_3.9.src.zip
-[Textadept 3.9 -- Modules]: download/textadept_3.9.modules.zip
-[PGP -- 3.9 Win32]: download/textadept_3.9.win32.zip.asc
-[PGP -- 3.9 OSX]: download/textadept_3.9.osx.zip.asc
-[PGP -- 3.9 Linux]: download/textadept_3.9.tgz.asc
-[PGP -- 3.9 Linux x86_64]: download/textadept_3.9.x86_64.tgz.asc
-[PGP -- 3.9 Source]: download/textadept_3.9.src.zip.asc
-[PGP -- 3.9 Modules]: download/textadept_3.9.modules.zip.asc
-[GTK]: http://gtk.org
+[GTK]: https://gtk.org
[functions]: api.html#_SCINTILLA
[`buffer:set_empty_selection()`]: api.html#buffer.set_empty_selection
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[emit events]: api.html#events.COMPILE_OUTPUT
[find]: api.html#ui.find
### 3.8 (11 Jun 2011)
-Download:
-
-* [Textadept 3.8 -- Win32][] | [PGP -- 3.8 Win32][]
-* [Textadept 3.8 -- Mac OSX Intel 10.5+][] | [PGP -- 3.8 OSX][]
-* [Textadept 3.8 -- Linux][] | [PGP -- 3.8 Linux][]
-* [Textadept 3.8 -- Linux x86_64][] | [PGP -- 3.8 Linux x86_64][]
-* [Textadept 3.8 -- Source][] | [PGP -- 3.8 Source][]
-* [Textadept 3.8 -- Modules][] | [PGP -- 3.8 Modules][]
-
Bugfixes:
* Removed non-existant key chain.
@@ -4305,37 +2639,16 @@ Changes:
* Added regex support for Coffeescript lexer.
* Embed Coffeescript lexer in HTML lexer.
-[Textadept 3.8 -- Win32]: download/textadept_3.8.win32.zip
-[Textadept 3.8 -- Mac OSX Intel 10.5+]: download/textadept_3.8.osx.zip
-[Textadept 3.8 -- Linux]: download/textadept_3.8.tgz
-[Textadept 3.8 -- Linux x86_64]: download/textadept_3.8.x86_64.tgz
-[Textadept 3.8 -- Source]: download/textadept_3.8.src.zip
-[Textadept 3.8 -- Modules]: download/textadept_3.8.modules.zip
-[PGP -- 3.8 Win32]: download/textadept_3.8.win32.zip.asc
-[PGP -- 3.8 OSX]: download/textadept_3.8.osx.zip.asc
-[PGP -- 3.8 Linux]: download/textadept_3.8.tgz.asc
-[PGP -- 3.8 Linux x86_64]: download/textadept_3.8.x86_64.tgz.asc
-[PGP -- 3.8 Source]: download/textadept_3.8.src.zip.asc
-[PGP -- 3.8 Modules]: download/textadept_3.8.modules.zip.asc
[events]: api.html#events
-[documentation]: manual.html#Getting.Modules
-[official modules]: http://foicica.com/hg
+[documentation]: manual.html#getting-modules
+[official modules]: https://foicica.com/hg
[`buffer:move_selected_lines_up()`]: api.html#buffer.move_selected_lines_up
[`buffer:move_selected_lines_down()`]: api.html#buffer.move_selected_lines_down
-[Scintilla]: http://scintilla.org
-[easier]: api.html#lexer.Code.Folding
+[Scintilla]: https://scintilla.org
+[easier]: api.html#code-folding
### 3.7 (01 May 2011)
-Download:
-
-* [Textadept 3.7 -- Win32][] | [PGP -- 3.7 Win32][]
-* [Textadept 3.7 -- Mac OSX Intel 10.5+][] | [PGP -- 3.7 OSX][]
-* [Textadept 3.7 -- Linux][] | [PGP -- 3.7 Linux][]
-* [Textadept 3.7 -- Linux x86_64][] | [PGP -- 3.7 Linux x86_64][]
-* [Textadept 3.7 -- Source][] | [PGP -- 3.7 Source][]
-* [Textadept 3.7 -- Modules][] | [PGP -- 3.7 Modules][]
-
Bugfixes:
* Fixed bug in `buffer:get_lexer()`.
@@ -4345,30 +2658,8 @@ Changes:
* Changed Mac OSX Adeptsense complete key command from `~` to `Ctrl+Escape`.
* Added PHP module.
-[Textadept 3.7 -- Win32]: download/textadept_3.7.win32.zip
-[Textadept 3.7 -- Mac OSX Intel 10.5+]: download/textadept_3.7.osx.zip
-[Textadept 3.7 -- Linux]: download/textadept_3.7.tgz
-[Textadept 3.7 -- Linux x86_64]: download/textadept_3.7.x86_64.tgz
-[Textadept 3.7 -- Source]: download/textadept_3.7.src.zip
-[Textadept 3.7 -- Modules]: download/textadept_3.7.modules.zip
-[PGP -- 3.7 Win32]: download/textadept_3.7.win32.zip.asc
-[PGP -- 3.7 OSX]: download/textadept_3.7.osx.zip.asc
-[PGP -- 3.7 Linux]: download/textadept_3.7.tgz.asc
-[PGP -- 3.7 Linux x86_64]: download/textadept_3.7.x86_64.tgz.asc
-[PGP -- 3.7 Source]: download/textadept_3.7.src.zip.asc
-[PGP -- 3.7 Modules]: download/textadept_3.7.modules.zip.asc
-
### 3.7 beta 3 (01 Apr 2011)
-Download:
-
-* [Textadept 3.7 beta 3 -- Win32][] | [PGP -- 3.7 beta 3 Win32][]
-* [Textadept 3.7 beta 3 -- Mac OSX Intel 10.5+][] | [PGP -- 3.7 beta 3 OSX][]
-* [Textadept 3.7 beta 3 -- Linux][] | [PGP -- 3.7 beta 3 Linux][]
-* [Textadept 3.7 beta 3 -- Linux x86_64][] | [PGP -- 3.7 beta 3 Linux x86_64][]
-* [Textadept 3.7 beta 3 -- Source][] | [PGP -- 3.7 beta 3 Source][]
-* [Textadept 3.7 beta 3 -- Modules][] | [PGP -- 3.7 beta 3 Modules][]
-
Bugfixes:
* Small Adeptsense bugfixes.
@@ -4403,32 +2694,12 @@ Changes:
as a separate download.
* Added cancel button to standard dialogs.
-[Textadept 3.7 beta 3 -- Win32]: download/textadept_3.7_beta_3.win32.zip
-[Textadept 3.7 beta 3 -- Mac OSX Intel 10.5+]: download/textadept_3.7_beta_3.osx.zip
-[Textadept 3.7 beta 3 -- Linux]: download/textadept_3.7_beta_3.tgz
-[Textadept 3.7 beta 3 -- Linux x86_64]: download/textadept_3.7_beta_3.x86_64.tgz
-[Textadept 3.7 beta 3 -- Source]: download/textadept_3.7_beta_3.src.zip
-[Textadept 3.7 beta 3 -- Modules]: download/textadept_3.7_beta_3.modules.zip
-[PGP -- 3.7 beta 3 Win32]: download/textadept_3.7_beta_3.win32.zip.asc
-[PGP -- 3.7 beta 3 OSX]: download/textadept_3.7_beta_3.osx.zip.asc
-[PGP -- 3.7 beta 3 Linux]: download/textadept_3.7_beta_3.tgz.asc
-[PGP -- 3.7 beta 3 Linux x86_64]: download/textadept_3.7_beta_3.x86_64.tgz.asc
-[PGP -- 3.7 beta 3 Source]: download/textadept_3.7_beta_3.src.zip.asc
-[PGP -- 3.7 beta 3 Modules]: download/textadept_3.7_beta_3.modules.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[`_m.textadept.snippets`]: api.html#textadept.snippets
-[repositories]: http://foicica.com/hg
+[repositories]: https://foicica.com/hg
### 3.7 beta 2 (01 Mar 2011)
-Download:
-
-* [Textadept 3.7 beta 2 -- Win32][] | [PGP -- 3.7 beta 2 Win32][]
-* [Textadept 3.7 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 3.7 beta 2 OSX][]
-* [Textadept 3.7 beta 2 -- Linux][] | [PGP -- 3.7 beta 2 Linux][]
-* [Textadept 3.7 beta 2 -- Linux x86_64][] | [PGP -- 3.7 beta 2 Linux x86_64][]
-* [Textadept 3.7 beta 2 -- Source][] | [PGP -- 3.7 beta 2 Source][]
-
Bugfixes:
* Fixed bug with Win32 paths in Adeptsense `goto_ctag()`.
@@ -4469,31 +2740,13 @@ Changes:
* Added [CSS][], [HTML][], Java, and [Ruby][] modules with Adeptsenses.
* Updated BibTeX lexer.
-[Textadept 3.7 beta 2 -- Win32]: download/textadept_3.7_beta_2.win32.zip
-[Textadept 3.7 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_3.7_beta_2.osx.zip
-[Textadept 3.7 beta 2 -- Linux]: download/textadept_3.7_beta_2.tgz
-[Textadept 3.7 beta 2 -- Linux x86_64]: download/textadept_3.7_beta_2.x86_64.tgz
-[Textadept 3.7 beta 2 -- Source]: download/textadept_3.7_beta_2.src.zip
-[PGP -- 3.7 beta 2 Win32]: download/textadept_3.7_beta_2.win32.zip.asc
-[PGP -- 3.7 beta 2 OSX]: download/textadept_3.7_beta_2.osx.zip.asc
-[PGP -- 3.7 beta 2 Linux]: download/textadept_3.7_beta_2.tgz.asc
-[PGP -- 3.7 beta 2 Linux x86_64]: download/textadept_3.7_beta_2.x86_64.tgz.asc
-[PGP -- 3.7 beta 2 Source]: download/textadept_3.7_beta_2.src.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[CSS]: api.html#_M.css
[HTML]: api.html#_M.html
[Ruby]: api.html#_M.ruby
### 3.7 beta (01 Feb 2011)
-Download:
-
-* [Textadept 3.7 beta -- Win32][] | [PGP -- 3.7 beta Win32][]
-* [Textadept 3.7 beta -- Mac OSX Intel 10.5+][] | [PGP -- 3.7 beta OSX][]
-* [Textadept 3.7 beta -- Linux][] | [PGP -- 3.7 beta Linux][]
-* [Textadept 3.7 beta -- Linux x86_64][] | [PGP -- 3.7 beta Linux x86_64][]
-* [Textadept 3.7 beta -- Source][] | [PGP -- 3.7 beta Source][]
-
Bugfixes:
* `update_ui` is called properly for `buffer_new` and `view_new` events.
@@ -4512,29 +2765,11 @@ Changes:
* `command_entry_keypress` event accepts modifier keys.
* Updated BibTeX and Lua lexers.
-[Textadept 3.7 beta -- Win32]: download/textadept_3.7_beta.win32.zip
-[Textadept 3.7 beta -- Mac OSX Intel 10.5+]: download/textadept_3.7_beta.osx.zip
-[Textadept 3.7 beta -- Linux]: download/textadept_3.7_beta.tgz
-[Textadept 3.7 beta -- Linux x86_64]: download/textadept_3.7_beta.x86_64.tgz
-[Textadept 3.7 beta -- Source]: download/textadept_3.7_beta.src.zip
-[PGP -- 3.7 beta Win32]: download/textadept_3.7_beta.win32.zip.asc
-[PGP -- 3.7 beta OSX]: download/textadept_3.7_beta.osx.zip.asc
-[PGP -- 3.7 beta Linux]: download/textadept_3.7_beta.tgz.asc
-[PGP -- 3.7 beta Linux x86_64]: download/textadept_3.7_beta.x86_64.tgz.asc
-[PGP -- 3.7 beta Source]: download/textadept_3.7_beta.src.zip.asc
[`char_matches`]: api.html#textadept.editing.auto_pairs
[`braces`]: api.html#textadept.editing.brace_matches
### 3.6 (01 Jan 2011)
-Download:
-
-* [Textadept 3.6 -- Win32][] | [PGP -- 3.6 Win32][]
-* [Textadept 3.6 -- Mac OSX Intel 10.5+][] | [PGP -- 3.6 OSX][]
-* [Textadept 3.6 -- Linux][] | [PGP -- 3.6 Linux][]
-* [Textadept 3.6 -- Linux x86_64][] | [PGP -- 3.6 Linux x86_64][]
-* [Textadept 3.6 -- Source][] | [PGP -- 3.6 Source][]
-
Bugfixes:
* Fixed infinite recursion errors caused in events.
@@ -4552,29 +2787,11 @@ Changes:
* Moved GUI events from `core/events.lua` to `core/gui.lua`.
* Separated key command manager from key command definitions.
-[Textadept 3.6 -- Win32]: download/textadept_3.6.win32.zip
-[Textadept 3.6 -- Mac OSX Intel 10.5+]: download/textadept_3.6.osx.zip
-[Textadept 3.6 -- Linux]: download/textadept_3.6.tgz
-[Textadept 3.6 -- Linux x86_64]: download/textadept_3.6.x86_64.tgz
-[Textadept 3.6 -- Source]: download/textadept_3.6.src.zip
-[PGP -- 3.6 Win32]: download/textadept_3.6.win32.zip.asc
-[PGP -- 3.6 OSX]: download/textadept_3.6.osx.zip.asc
-[PGP -- 3.6 Linux]: download/textadept_3.6.tgz.asc
-[PGP -- 3.6 Linux x86_64]: download/textadept_3.6.x86_64.tgz.asc
-[PGP -- 3.6 Source]: download/textadept_3.6.src.zip.asc
[`_m.textadept.filter_through`]: api.html#textadept.editing.filter_through
-[shell commands]: manual.html#Shell.Commands.and.Filtering.Text
+[shell commands]: manual.html#shell-commands-and-filtering-text
### 3.5 (01 Dec 2010)
-Download:
-
-* [Textadept 3.5 -- Win32][] | [PGP -- 3.5 Win32][]
-* [Textadept 3.5 -- Mac OSX Intel 10.5+][] | [PGP -- 3.5 OSX][]
-* [Textadept 3.5 -- Linux][] | [PGP -- 3.5 Linux][]
-* [Textadept 3.5 -- Linux x86_64][] | [PGP -- 3.5 Linux x86_64][]
-* [Textadept 3.5 -- Source][] | [PGP -- 3.5 Source][]
-
Bugfixes:
* Fixed bug introduced when exposing Find in Files API.
@@ -4590,30 +2807,12 @@ Changes:
* New [manual][].
* Added [`file_after_save`][] event.
-[Textadept 3.5 -- Win32]: download/textadept_3.5.win32.zip
-[Textadept 3.5 -- Mac OSX Intel 10.5+]: download/textadept_3.5.osx.zip
-[Textadept 3.5 -- Linux]: download/textadept_3.5.tgz
-[Textadept 3.5 -- Linux x86_64]: download/textadept_3.5.x86_64.tgz
-[Textadept 3.5 -- Source]: download/textadept_3.5.src.zip
-[PGP -- 3.5 Win32]: download/textadept_3.5.win32.zip.asc
-[PGP -- 3.5 OSX]: download/textadept_3.5.osx.zip.asc
-[PGP -- 3.5 Linux]: download/textadept_3.5.tgz.asc
-[PGP -- 3.5 Linux x86_64]: download/textadept_3.5.x86_64.tgz.asc
-[PGP -- 3.5 Source]: download/textadept_3.5.src.zip.asc
[Menus]: api.html#textadept.menu
[manual]: manual.html
[`file_after_save`]: api.html#events.FILE_AFTER_SAVE
### 3.4 (01 Nov 2010)
-Download:
-
-* [Textadept 3.4 -- Win32][] | [PGP -- 3.4 Win32][]
-* [Textadept 3.4 -- Mac OSX Intel 10.5+][] | [PGP -- 3.4 OSX][]
-* [Textadept 3.4 -- Linux][] | [PGP -- 3.4 Linux][]
-* [Textadept 3.4 -- Linux x86_64][] | [PGP -- 3.4 Linux x86_64][]
-* [Textadept 3.4 -- Source][] | [PGP -- 3.4 Source][]
-
Bugfixes:
* Fixed menu item conflicts.
@@ -4660,35 +2859,17 @@ Changes:
* Updated to [Scintilla][] 2.22.
* Renamed `_G.MAC` to [`_G.OSX`][].
-[Textadept 3.4 -- Win32]: download/textadept_3.4.win32.zip
-[Textadept 3.4 -- Mac OSX Intel 10.5+]: download/textadept_3.4.osx.zip
-[Textadept 3.4 -- Linux]: download/textadept_3.4.tgz
-[Textadept 3.4 -- Linux x86_64]: download/textadept_3.4.x86_64.tgz
-[Textadept 3.4 -- Source]: download/textadept_3.4.src.zip
-[PGP -- 3.4 Win32]: download/textadept_3.4.win32.zip.asc
-[PGP -- 3.4 OSX]: download/textadept_3.4.osx.zip.asc
-[PGP -- 3.4 Linux]: download/textadept_3.4.tgz.asc
-[PGP -- 3.4 Linux x86_64]: download/textadept_3.4.x86_64.tgz.asc
-[PGP -- 3.4 Source]: download/textadept_3.4.src.zip.asc
-[Switch Buffers]: manual.html#Buffers
+[Switch Buffers]: manual.html#buffers
[`_m.textadept.snapopen.open()`]: api.html#io.quick_open
-[highlight]: manual.html#Word.Highlight
+[highlight]: manual.html#word-highlight
[`_G.timeout()`]: api.html#timeout
[find API]: api.html#ui.find.find_in_files
[`buffer:contracted_fold_next()`]: api.html#buffer.contracted_fold_next
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[`_G.OSX`]: api.html#OSX
### 3.3 (01 Oct 2010)
-Download:
-
-* [Textadept 3.3 -- Win32][] | [PGP -- 3.3 Win32][]
-* [Textadept 3.3 -- Mac OSX Intel 10.5+][] | [PGP -- 3.3 OSX][]
-* [Textadept 3.3 -- Linux][] | [PGP -- 3.3 Linux][]
-* [Textadept 3.3 -- Linux x86_64][] | [PGP -- 3.3 Linux x86_64][]
-* [Textadept 3.3 -- Source][] | [PGP -- 3.3 Source][]
-
Bugfixes:
* Fixed buggy snippet menu.
@@ -4701,28 +2882,10 @@ Changes:
* Added coffeescript lexer.
* Updated D and Java lexers.
-[Textadept 3.3 -- Win32]: download/textadept_3.3.win32.zip
-[Textadept 3.3 -- Mac OSX Intel 10.5+]: download/textadept_3.3.osx.zip
-[Textadept 3.3 -- Linux]: download/textadept_3.3.tgz
-[Textadept 3.3 -- Linux x86_64]: download/textadept_3.3.x86_64.tgz
-[Textadept 3.3 -- Source]: download/textadept_3.3.src.zip
-[PGP -- 3.3 Win32]: download/textadept_3.3.win32.zip.asc
-[PGP -- 3.3 OSX]: download/textadept_3.3.osx.zip.asc
-[PGP -- 3.3 Linux]: download/textadept_3.3.tgz.asc
-[PGP -- 3.3 Linux x86_64]: download/textadept_3.3.x86_64.tgz.asc
-[PGP -- 3.3 Source]: download/textadept_3.3.src.zip.asc
[`_m.textadept.snapopen`]: api.html#io.quick_open
### 3.2 (01 Sep 2010)
-Download:
-
-* [Textadept 3.2 -- Win32][] | [PGP -- 3.2 Win32][]
-* [Textadept 3.2 -- Mac OSX Intel 10.5+][] | [PGP -- 3.2 OSX][]
-* [Textadept 3.2 -- Linux][] | [PGP -- 3.2 Linux][]
-* [Textadept 3.2 -- Linux x86_64][] | [PGP -- 3.2 Linux x86_64][]
-* [Textadept 3.2 -- Source][] | [PGP -- 3.2 Source][]
-
Bugfixes:
* Fixed "Replace All" infinite loop bug.
@@ -4735,28 +2898,10 @@ Changes:
* Updated to the new Scintillua that does not required patched Scintilla.
* Updated to [Scintilla][] 2.21.
-[Textadept 3.2 -- Win32]: download/textadept_3.2.win32.zip
-[Textadept 3.2 -- Mac OSX Intel 10.5+]: download/textadept_3.2.osx.zip
-[Textadept 3.2 -- Linux]: download/textadept_3.2.tgz
-[Textadept 3.2 -- Linux x86_64]: download/textadept_3.2.x86_64.tgz
-[Textadept 3.2 -- Source]: download/textadept_3.2.src.zip
-[PGP -- 3.2 Win32]: download/textadept_3.2.win32.zip.asc
-[PGP -- 3.2 OSX]: download/textadept_3.2.osx.zip.asc
-[PGP -- 3.2 Linux]: download/textadept_3.2.tgz.asc
-[PGP -- 3.2 Linux x86_64]: download/textadept_3.2.x86_64.tgz.asc
-[PGP -- 3.2 Source]: download/textadept_3.2.src.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 3.1 (21 Aug 2010)
-Download:
-
-* [Textadept 3.1 -- Win32][] | [PGP -- 3.1 Win32][]
-* [Textadept 3.1 -- Mac OSX Intel 10.5+][] | [PGP -- 3.1 OSX][]
-* [Textadept 3.1 -- Linux][] | [PGP -- 3.1 Linux][]
-* [Textadept 3.1 -- Linux x86_64][] | [PGP -- 3.1 Linux x86_64][]
-* [Textadept 3.1 -- Source][] | [PGP -- 3.1 Source][]
-
Bugfixes:
* Fixed memory leak in Mac OSX.
@@ -4778,31 +2923,13 @@ Changes:
* Updated to [Scintilla][] 2.20.
* Added Lua autocompletion.
-[Textadept 3.1 -- Win32]: download/textadept_3.1.win32.zip
-[Textadept 3.1 -- Mac OSX Intel 10.5+]: download/textadept_3.1.osx.zip
-[Textadept 3.1 -- Linux]: download/textadept_3.1.tgz
-[Textadept 3.1 -- Linux x86_64]: download/textadept_3.1.x86_64.tgz
-[Textadept 3.1 -- Source]: download/textadept_3.1.src.zip
-[PGP -- 3.1 Win32]: download/textadept_3.1.win32.zip.asc
-[PGP -- 3.1 OSX]: download/textadept_3.1.osx.zip.asc
-[PGP -- 3.1 Linux]: download/textadept_3.1.tgz.asc
-[PGP -- 3.1 Linux x86_64]: download/textadept_3.1.x86_64.tgz.asc
-[PGP -- 3.1 Source]: download/textadept_3.1.src.zip.asc
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 3.0 (01 Jul 2010)
Please see the [2 to 3 migration guide][] for upgrading from Textadept 2 to
Textadept 3.
-Download:
-
-* [Textadept 3.0 -- Win32][] | [PGP -- 3.0 Win32][]
-* [Textadept 3.0 -- Mac OSX Intel 10.5+][] | [PGP -- 3.0 OSX][]
-* [Textadept 3.0 -- Linux][] | [PGP -- 3.0 Linux][]
-* [Textadept 3.0 -- Linux x86_64][] | [PGP -- 3.0 Linux x86_64][]
-* [Textadept 3.0 -- Source][] | [PGP -- 3.0 Source][]
-
Bugfixes:
* None
@@ -4811,28 +2938,10 @@ Changes:
* More accurate CSS and Diff lexers.
-[2 to 3 migration guide]: manual.html#Textadept.2.to.3
-[Textadept 3.0 -- Win32]: download/textadept_3.0.win32.zip
-[Textadept 3.0 -- Mac OSX Intel 10.5+]: download/textadept_3.0.osx.zip
-[Textadept 3.0 -- Linux]: download/textadept_3.0.tgz
-[Textadept 3.0 -- Linux x86_64]: download/textadept_3.0.x86_64.tgz
-[Textadept 3.0 -- Source]: download/textadept_3.0.src.zip
-[PGP -- 3.0 Win32]: download/textadept_3.0.win32.zip.asc
-[PGP -- 3.0 OSX]: download/textadept_3.0.osx.zip.asc
-[PGP -- 3.0 Linux]: download/textadept_3.0.tgz.asc
-[PGP -- 3.0 Linux x86_64]: download/textadept_3.0.x86_64.tgz.asc
-[PGP -- 3.0 Source]: download/textadept_3.0.src.zip.asc
+[2 to 3 migration guide]: manual.html#textadept-2-to-3
### 3.0 beta (21 Jun 2010)
-Download:
-
-* [Textadept 3.0 beta -- Win32][] | [PGP -- 3.0 beta Win32][]
-* [Textadept 3.0 beta -- Mac OSX Intel 10.5+][] | [PGP -- 3.0 beta OSX][]
-* [Textadept 3.0 beta -- Linux][] | [PGP -- 3.0 beta Linux][]
-* [Textadept 3.0 beta -- Linux x86_64][] | [PGP -- 3.0 beta Linux x86_64][]
-* [Textadept 3.0 beta -- Source][] | [PGP -- 3.0 beta Source][]
-
Bugfixes:
* Fixed Mac OSX paste issue.
@@ -4870,33 +2979,15 @@ Changes:
* Added statusbar notification on `reset()`.
* Added Gtkrc, Prolog, and Go lexers.
-[Textadept 3.0 beta -- Win32]: download/textadept_3.0_beta.win32.zip
-[Textadept 3.0 beta -- Mac OSX Intel 10.5+]: download/textadept_3.0_beta.osx.zip
-[Textadept 3.0 beta -- Linux]: download/textadept_3.0_beta.tgz
-[Textadept 3.0 beta -- Linux x86_64]: download/textadept_3.0_beta.x86_64.tgz
-[Textadept 3.0 beta -- Source]: download/textadept_3.0_beta.src.zip
-[PGP -- 3.0 beta Win32]: download/textadept_3.0_beta.win32.zip.asc
-[PGP -- 3.0 beta OSX]: download/textadept_3.0_beta.osx.zip.asc
-[PGP -- 3.0 beta Linux]: download/textadept_3.0_beta.tgz.asc
-[PGP -- 3.0 beta Linux x86_64]: download/textadept_3.0_beta.x86_64.tgz.asc
-[PGP -- 3.0 beta Source]: download/textadept_3.0_beta.src.zip.asc
[`textadept`]: api.html#textadept
[API]: api.html
[`buffer.multi_paste`]: api.html#buffer.multi_paste
-[Scintilla]: http://scintilla.org
-[Abbreviated]: manual.html#Lua.Command.Entry
+[Scintilla]: https://scintilla.org
+[Abbreviated]: manual.html#lua-command-entry
[arguments]: api.html#args
### 2.2 (11 May 2010)
-Download:
-
-* [Textadept 2.2 -- Win32][] | [PGP -- 2.2 Win32][]
-* [Textadept 2.2 -- Mac OSX Intel 10.5+][] | [PGP -- 2.2 OSX][]
-* [Textadept 2.2 -- Linux][] | [PGP -- 2.2 Linux][]
-* [Textadept 2.2 -- Linux x86_64][] | [PGP -- 2.2 Linux x86_64][]
-* [Textadept 2.2 -- Source][] | [PGP -- 2.2 Source][]
-
Bugfixes:
* Save buffer before compiling or running.
@@ -4908,27 +2999,8 @@ Changes:
* `_USERHOME` comes before `_HOME` in `package.path` so `require` searches
`~/.textadept/` first.
-[Textadept 2.2 -- Win32]: download/textadept_2.2.win32.zip
-[Textadept 2.2 -- Mac OSX Intel 10.5+]: download/textadept_2.2.osx.zip
-[Textadept 2.2 -- Linux]: download/textadept_2.2.tgz
-[Textadept 2.2 -- Linux x86_64]: download/textadept_2.2.x86_64.tgz
-[Textadept 2.2 -- Source]: download/textadept_2.2.src.zip
-[PGP -- 2.2 Win32]: download/textadept_2.2.win32.zip.asc
-[PGP -- 2.2 OSX]: download/textadept_2.2.osx.zip.asc
-[PGP -- 2.2 Linux]: download/textadept_2.2.tgz.asc
-[PGP -- 2.2 Linux x86_64]: download/textadept_2.2.x86_64.tgz.asc
-[PGP -- 2.2 Source]: download/textadept_2.2.src.zip.asc
-
### 2.2 beta 2 (01 May 2010)
-Download:
-
-* [Textadept 2.2 beta 2 -- Win32][] | [PGP -- 2.2 beta 2 Win32][]
-* [Textadept 2.2 beta 2 -- Mac OSX Intel 10.5+][] | [PGP -- 2.2 beta 2 OSX][]
-* [Textadept 2.2 beta 2 -- Linux][] | [PGP -- 2.2 beta 2 Linux][]
-* [Textadept 2.2 beta 2 -- Linux x86_64][] | [PGP -- 2.2 beta 2 Linux x86_64][]
-* [Textadept 2.2 beta 2 -- Source][] | [PGP -- 2.2 beta 2 Source][]
-
Bugfixes:
* Fixed crash with `buffer:text_range()`.
@@ -4952,29 +3024,11 @@ Changes:
* `_m.textadept.editing.enclosure` is now an accessible table.
* Updated D, Java, and LaTeX lexers.
-[Textadept 2.2 beta 2 -- Win32]: download/textadept_2.2_beta2.win32.zip
-[Textadept 2.2 beta 2 -- Mac OSX Intel 10.5+]: download/textadept_2.2_beta2.osx.zip
-[Textadept 2.2 beta 2 -- Linux]: download/textadept_2.2_beta2.tgz
-[Textadept 2.2 beta 2 -- Linux x86_64]: download/textadept_2.2_beta2.x86_64.tgz
-[Textadept 2.2 beta 2 -- Source]: download/textadept_2.2_beta2.src.zip
-[PGP -- 2.2 beta 2 Win32]: download/textadept_2.2_beta_2.win32.zip.asc
-[PGP -- 2.2 beta 2 OSX]: download/textadept_2.2_beta_2.osx.zip.asc
-[PGP -- 2.2 beta 2 Linux]: download/textadept_2.2_beta_2.tgz.asc
-[PGP -- 2.2 beta 2 Linux x86_64]: download/textadept_2.2_beta_2.x86_64.tgz.asc
-[PGP -- 2.2 beta 2 Source]: download/textadept_2.2_beta_2.src.zip.asc
[Compile and run]: api.html#_M.Compile.and.Run
[Block comment]: api.html#textadept.editing.comment_string
### 2.2 beta (01 Apr 2010)
-Download:
-
-* [Textadept 2.2 beta -- Win32][] | [PGP -- 2.2 beta Win32][]
-* [Textadept 2.2 beta -- Mac OSX Intel 10.5+][] | [PGP -- 2.2 beta OSX][]
-* [Textadept 2.2 beta -- Linux][] | [PGP -- 2.2 beta Linux][]
-* [Textadept 2.2 beta -- Linux x86_64][] | [PGP -- 2.2 beta Linux x86_64][]
-* [Textadept 2.2 beta -- Source][] | [PGP -- 2.2 beta Source][]
-
Bugfixes:
* Fixed transform bug in snippets.
@@ -4998,29 +3052,11 @@ Changes:
* Snippets use multiple carets.
* Removed api file support.
-[Textadept 2.2 beta -- Win32]: download/textadept_2.2_beta.win32.zip
-[Textadept 2.2 beta -- Mac OSX Intel 10.5+]: download/textadept_2.2_beta.osx.zip
-[Textadept 2.2 beta -- Linux]: download/textadept_2.2_beta.tgz
-[Textadept 2.2 beta -- Linux x86_64]: download/textadept_2.2_beta.x86_64.tgz
-[Textadept 2.2 beta -- Source]: download/textadept_2.2_beta.src.zip
-[PGP -- 2.2 beta Win32]: download/textadept_2.2_beta.win32.zip.asc
-[PGP -- 2.2 beta OSX]: download/textadept_2.2_beta.osx.zip.asc
-[PGP -- 2.2 beta Linux]: download/textadept_2.2_beta.tgz.asc
-[PGP -- 2.2 beta Linux x86_64]: download/textadept_2.2_beta.x86_64.tgz.asc
-[PGP -- 2.2 beta Source]: download/textadept_2.2_beta.src.zip.asc
-[gtdialog]: http://foicica.com/gtdialog
+[gtdialog]: https://orbitalquark.github.io/gtdialog
[`gui.dialog('filteredlist', ...)]: api.html#ui.dialog
### 2.1 (01 Mar 2010)
-Download:
-
-* [Textadept 2.1 -- Win32][] | [PGP -- 2.1 Win32][]
-* [Textadept 2.1 -- Mac OSX Intel 10.5+][] | [PGP -- 2.1 OSX][]
-* [Textadept 2.1 -- Linux][] | [PGP -- 2.1 Linux][]
-* [Textadept 2.1 -- Linux x86_64][] | [PGP -- 2.1 Linux x86_64][]
-* [Textadept 2.1 -- Source][] | [PGP -- 2.1 Source][]
-
Bugfixes:
* Do not close files opened from command line when loading PM session.
@@ -5061,30 +3097,12 @@ Changes:
* Updated to [Scintilla][] 2.03.
* Modified quit and close dialogs to be more readable.
-[Textadept 2.1 -- Win32]: download/textadept_2.1.win32.zip
-[Textadept 2.1 -- Mac OSX Intel 10.5+]: download/textadept_2.1.osx.zip
-[Textadept 2.1 -- Linux]: download/textadept_2.1.tgz
-[Textadept 2.1 -- Linux x86_64]: download/textadept_2.1.x86_64.tgz
-[Textadept 2.1 -- Source]: download/textadept_2.1.src.zip
-[PGP -- 2.1 Win32]: download/textadept_2.1.win32.zip.asc
-[PGP -- 2.1 OSX]: download/textadept_2.1.osx.zip.asc
-[PGP -- 2.1 Linux]: download/textadept_2.1.tgz.asc
-[PGP -- 2.1 Linux x86_64]: download/textadept_2.1.x86_64.tgz.asc
-[PGP -- 2.1 Source]: download/textadept_2.1.src.zip.asc
[`buffer.whitespace_size`]: api.html#buffer.whitespace_size
[`buffer.auto_c_current_text`]: api.html#buffer.auto_c_current_text
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
### 2.0 (01 Oct 2009)
-Download:
-
-* [Textadept 2.0 -- Win32][] | [PGP -- 2.0 Win32][]
-* [Textadept 2.0 -- Mac OSX Intel 10.5+][] | [PGP -- 2.0 OSX][]
-* [Textadept 2.0 -- Linux][] | [PGP -- 2.0 Linux][]
-* [Textadept 2.0 -- Linux x86_64][] | [PGP -- 2.0 Linux x86_64][]
-* [Textadept 2.0 -- Source][] | [PGP -- 2.0 Source][]
-
Bugfixes:
* Fixed bug with reloading PM width from session file.
@@ -5103,28 +3121,11 @@ Changes:
* Added [`style_whitespace`][] to [lexers][] for custom styles.
* Added standard `F3` key command for "Find Next" for Windows/Linux.
-[Textadept 2.0 -- Win32]: download/textadept_2.0.win32.zip
-[Textadept 2.0 -- Mac OSX Intel 10.5+]: download/textadept_2.0.dmg
-[Textadept 2.0 -- Linux]: download/textadept_2.0.tgz
-[Textadept 2.0 -- Linux x86_64]: download/textadept_2.0.x86_64.tgz
-[Textadept 2.0 -- Source]: download/textadept_2.0.src.zip
-[PGP -- 2.0 Win32]: download/textadept_2.0.win32.zip.asc
-[PGP -- 2.0 OSX]: download/textadept_2.0.dmg.asc
-[PGP -- 2.0 Linux]: download/textadept_2.0.tgz.asc
-[PGP -- 2.0 Linux x86_64]: download/textadept_2.0.x86_64.tgz.asc
-[PGP -- 2.0 Source]: download/textadept_2.0.src.zip.asc
[`style_whitespace`]: api.html#lexer.STYLE_WHITESPACE
[lexers]: api.html#lexer
### 2.0 beta (31 Jul 2009)
-Download:
-
-* [Textadept 2.0 beta -- Win32][] | [PGP -- 2.0 beta Win32][]
-* [Textadept 2.0 beta -- Linux][] | [PGP -- 2.0 beta Linux][]
-* [Textadept 2.0 beta -- Linux x86_64][] | [PGP -- 2.0 beta Linux x86_64][]
-* [Textadept 2.0 beta -- Source][] | [PGP -- 2.0 beta Source][]
-
Bugfixes:
* Alphabetize lexer list.
@@ -5164,35 +3165,19 @@ Changes:
* Removed confusing `local function` and `local table` LuaDoc.
* Rewrote the manual and most of the documentation.
-[Textadept 2.0 beta -- Win32]: download/textadept_2.0_beta.win32.zip
-[Textadept 2.0 beta -- Linux]: download/textadept_2.0_beta.tgz
-[Textadept 2.0 beta -- Linux x86_64]: download/textadept_2.0_beta.x86_64.tgz
-[Textadept 2.0 beta -- Source]: download/textadept_2.0_beta.src.zip
-[PGP -- 2.0 beta Win32]: download/textadept_2.0_beta.win32.zip.asc
-[PGP -- 2.0 beta Linux]: download/textadept_2.0_beta.tgz.asc
-[PGP -- 2.0 beta Linux x86_64]: download/textadept_2.0_beta.x86_64.tgz.asc
-[PGP -- 2.0 beta Source]: download/textadept_2.0_beta.src.zip.asc
[list of encodings]: api.html#io.encodings
[events]: api.html#events
-[Scintilla]: http://scintilla.org
+[Scintilla]: https://scintilla.org
[compile commands]: api.html#textadept.run.compile_commands
[run commands]: api.html#textadept.run.run_commands
-[gtdialog]: http://foicica.com/gtdialog
+[gtdialog]: https://orbitalquark.github.io/gtdialog
[lua_dialog]: http://luaforge.net/projects/lua-dialog
[cocoaDialog]: http://cocoadialog.sf.net
-[Incremental find]: manual.html#Incremental.Find
-[GTK]: http://gtk.org
+[Incremental find]: manual.html#incremental-find
+[GTK]: https://gtk.org
### 1.6 (01 Apr 2009)
-Download:
-
-* [Textadept 1.6 -- Win32][] | [PGP -- 1.6 Win32][]
-* [Textadept 1.6 -- Mac OSX Intel 10.5+][] | [PGP -- 1.6 OSX][]
-* [Textadept 1.6 -- Linux][] | [PGP -- 1.6 Linux][]
-* [Textadept 1.6 -- Linux x86_64][] | [PGP -- 1.6 Linux x86_64][]
-* [Textadept 1.6 -- Source][] | [PGP -- 1.6 Source][]
-
Bugfixes:
* Fixed `NULL` byte bug associated with Lua interface due to multi-encoding
@@ -5206,28 +3191,10 @@ Updates:
* Trimmed theme files.
* Added [`file_before_save`][] event.
-[Textadept 1.6 -- Win32]: download/textadept_1.6.win32.zip
-[Textadept 1.6 -- Mac OSX Intel 10.5+]: download/textadept_1.6.dmg
-[Textadept 1.6 -- Linux]: download/textadept_1.6.tgz
-[Textadept 1.6 -- Linux x86_64]: download/textadept_1.6.x86_64.tgz
-[Textadept 1.6 -- Source]: download/textadept_1.6.src.zip
-[PGP -- 1.6 Win32]: download/textadept_1.6.win32.zip.asc
-[PGP -- 1.6 OSX]: download/textadept_1.6.dmg.asc
-[PGP -- 1.6 Linux]: download/textadept_1.6.tgz.asc
-[PGP -- 1.6 Linux x86_64]: download/textadept_1.6.x86_64.tgz.asc
-[PGP -- 1.6 Source]: download/textadept_1.6.src.zip.asc
[`file_before_save`]: api.html#events.FILE_BEFORE_SAVE
### 1.6 beta (01 Mar 2009)
-Download:
-
-* [Textadept 1.6 beta -- Win32][] | [PGP -- 1.6 beta Win32][]
-* [Textadept 1.6 beta -- Mac OSX Intel 10.5+][] | [PGP -- 1.6 beta OSX][]
-* [Textadept 1.6 beta -- Linux][] | [PGP -- 1.6 beta Linux][]
-* [Textadept 1.6 beta -- Linux x86_64][] | [PGP -- 1.6 beta Linux x86_64][]
-* [Textadept 1.6 beta -- Source][] | [PGP -- 1.6 beta Source][]
-
Bugfixes:
* Fixed bookmarks bugs.
@@ -5249,27 +3216,8 @@ Updates:
* Removed `project` PM browser.
* Multiple character encoding support for opening and saving files.
-[Textadept 1.6 beta -- Win32]: download/textadept_1.6beta.win32.zip
-[Textadept 1.6 beta -- Mac OSX Intel 10.5+]: download/textadept_1.6beta.dmg
-[Textadept 1.6 beta -- Linux]: download/textadept_1.6beta.tgz
-[Textadept 1.6 beta -- Linux x86_64]: download/textadept_1.6beta.x86_64.tgz
-[Textadept 1.6 beta -- Source]: download/textadept_1.6beta.src.zip
-[PGP -- 1.6 beta Win32]: download/textadept_1.6beta.win32.zip.asc
-[PGP -- 1.6 beta OSX]: download/textadept_1.6beta.dmg.asc
-[PGP -- 1.6 beta Linux]: download/textadept_1.6beta.tgz.asc
-[PGP -- 1.6 beta Linux x86_64]: download/textadept_1.6beta.x86_64.tgz.asc
-[PGP -- 1.6 beta Source]: download/textadept_1.6beta.src.zip.asc
-
### 1.5 (20 Feb 2009)
-Download:
-
-* [Textadept 1.5 -- Win32][] | [PGP -- 1.5 Win32][]
-* [Textadept 1.5 -- Mac OSX Intel 10.5+][] | [PGP -- 1.5 OSX][]
-* [Textadept 1.5 -- Linux][] | [PGP -- 1.5 Linux][]
-* [Textadept 1.5 -- Linux x86_64][] | [PGP -- 1.5 Linux x86_64][]
-* [Textadept 1.5 -- Source][] | [PGP -- 1.5 Source][]
-
Bugfixes:
* Fixed some corner cases in Find in Files user interface.
@@ -5294,27 +3242,8 @@ Updates:
* Moved mime-types into *core/ext/mime_types.conf* configuration file.
* Moved localization into *core/locale.conf* configuration file.
-[Textadept 1.5 -- Win32]: download/textadept_1.5.win32.zip
-[Textadept 1.5 -- Mac OSX Intel 10.5+]: download/textadept_1.5.dmg
-[Textadept 1.5 -- Linux]: download/textadept_1.5.tgz
-[Textadept 1.5 -- Linux x86_64]: download/textadept_1.5.x86_64.tgz
-[Textadept 1.5 -- Source]: download/textadept_1.5.src.zip
-[PGP -- 1.5 Win32]: download/textadept_1.5.win32.zip.asc
-[PGP -- 1.5 OSX]: download/textadept_1.5.dmg.asc
-[PGP -- 1.5 Linux]: download/textadept_1.5.tgz.asc
-[PGP -- 1.5 Linux x86_64]: download/textadept_1.5.x86_64.tgz.asc
-[PGP -- 1.5 Source]: download/textadept_1.5.src.zip.asc
-
### 1.4 (10 Feb 2009)
-Download:
-
-* [Textadept 1.4 -- Win32][] | [PGP -- 1.4 Win32][]
-* [Textadept 1.4 -- Mac OSX Intel 10.5+][] | [PGP -- 1.4 OSX][]
-* [Textadept 1.4 -- Linux][] | [PGP -- 1.4 Linux][]
-* [Textadept 1.4 -- Linux x86_64][] | [PGP -- 1.4 Linux x86_64][]
-* [Textadept 1.4 -- Source][] | [PGP -- 1.4 Source][]
-
Bugfixes:
* Handle empty clipboard properly.
@@ -5331,27 +3260,8 @@ Updates:
* Special buffers are not "Untitled" anymore.
* Moved `textadept.locale` table to `_G`.
-[Textadept 1.4 -- Win32]: download/textadept_1.4.win32.zip
-[Textadept 1.4 -- Mac OSX Intel 10.5+]: download/textadept_1.4.dmg
-[Textadept 1.4 -- Linux]: download/textadept_1.4.tgz
-[Textadept 1.4 -- Linux x86_64]: download/textadept_1.4.x86_64.tgz
-[Textadept 1.4 -- Source]: download/textadept_1.4.src.zip
-[PGP -- 1.4 Win32]: download/textadept_1.4.win32.zip.asc
-[PGP -- 1.4 OSX]: download/textadept_1.4.dmg.asc
-[PGP -- 1.4 Linux]: download/textadept_1.4.tgz.asc
-[PGP -- 1.4 Linux x86_64]: download/textadept_1.4.x86_64.tgz.asc
-[PGP -- 1.4 Source]: download/textadept_1.4.src.zip.asc
-
### 1.3 (30 Jan 2009)
-Download:
-
-* [Textadept 1.3 -- Win32][] | [PGP -- 1.3 Win32][]
-* [Textadept 1.3 -- Mac OSX Intel 10.5+][] | [PGP -- 1.3 OSX][]
-* [Textadept 1.3 -- Linux][] | [PGP -- 1.3 Linux][]
-* [Textadept 1.3 -- Linux x86_64][] | [PGP -- 1.3 Linux x86_64][]
-* [Textadept 1.3 -- Source][] | [PGP -- 1.3 Source][]
-
Bugfixes:
* Binary files are opened and handled properly.
@@ -5379,25 +3289,8 @@ Updates:
* Use a combo entry for the Project Manager browser entry.
* Print messages to a split view instead of switching buffers.
-[Textadept 1.3 -- Win32]: download/textadept_1.3.win32.zip
-[Textadept 1.3 -- Mac OSX Intel 10.5+]: download/textadept_1.3.dmg
-[Textadept 1.3 -- Linux]: download/textadept_1.3.tgz
-[Textadept 1.3 -- Linux x86_64]: download/textadept_1.3.x86_64.tgz
-[Textadept 1.3 -- Source]: download/textadept_1.3.src.zip
-[PGP -- 1.3 Win32]: download/textadept_1.3.win32.zip.asc
-[PGP -- 1.3 OSX]: download/textadept_1.3.dmg.asc
-[PGP -- 1.3 Linux]: download/textadept_1.3.tgz.asc
-[PGP -- 1.3 Linux x86_64]: download/textadept_1.3.x86_64.tgz.asc
-[PGP -- 1.3 Source]: download/textadept_1.3.src.zip.asc
-
### 1.2 (21 Jan 2009)
-Download:
-
-* [Textadept 1.2 -- Win32][] | [PGP -- 1.2 Win32][]
-* [Textadept 1.2 -- Mac OSX Intel 10.5+][] | [PGP -- 1.2 OSX][]
-* [Textadept 1.2 -- Linux][] | [PGP -- 1.2 Linux][]
-
Bugfixes:
* None.
@@ -5409,22 +3302,10 @@ Updates:
is displayed in a message buffer and you can double-click errors and warnings
to go to them in the source file.
-[Textadept 1.2 -- Win32]: download/textadept_1.2.win32.zip
-[Textadept 1.2 -- Mac OSX Intel 10.5+]: download/textadept_1.2.dmg
-[Textadept 1.2 -- Linux]: download/textadept_1.2.tgz
-[PGP -- 1.2 Win32]: download/textadept_1.2.win32.zip.asc
-[PGP -- 1.2 OSX]: download/textadept_1.2.dmg.asc
-[PGP -- 1.2 Linux]: download/textadept_1.2.tgz.asc
[`_m.textadept.run`]: api.html#textadept.run
### 1.1 (11 Jan 2009)
-Download:
-
-* [Textadept 1.1 -- Win32][] | [PGP -- 1.1 Win32][]
-* [Textadept 1.1 -- Mac OSX Intel 10.5+][] | [PGP -- 1.1 OSX][]
-* [Textadept 1.1 -- Linux][] | [PGP -- 1.1 Linux][]
-
Bugfixes:
* Fixed *core/ext/key_commands_std.lua* key conflict (`Ctrl+V`).
@@ -5439,23 +3320,11 @@ Updates:
* Various improvements to efficiency, speed, and readability of source code.
* Manually parse *~/.gtkrc-2.0* on Mac since GTK-OSX does not do it.
-[Textadept 1.1 -- Win32]: download/textadept_1.1_win32.zip
-[Textadept 1.1 -- Mac OSX Intel 10.5+]: download/textadept_1.1.dmg
-[Textadept 1.1 -- Linux]: download/textadept_1.1.tgz
-[PGP -- 1.1 Win32]: download/textadept_1.1.win32.zip.asc
-[PGP -- 1.1 OSX]: download/textadept_1.1.dmg.asc
-[PGP -- 1.1 Linux]: download/textadept_1.1.tgz.asc
[localization]: api.html#_L
[bookmarks]: api.html#textadept.bookmarks
### 1.0 (01 Jan 2009)
-Download:
-
-* [Textadept 1.0 -- Win32][] | [PGP -- 1.0 Win32][]
-* [Textadept 1.0 -- Mac OSX Intel 10.5+][] | [PGP -- 1.0 OSX][]
-* [Textadept 1.0 -- Linux][] | [PGP -- 1.0 Linux][]
-
Bugfixes:
* Fixed bug with placeholders in Lua-style snippets.
@@ -5475,25 +3344,13 @@ Updates:
* New Textadept icons.
* Added a true project manager.
-[Textadept 1.0 -- Win32]: download/textadept_1.0_win32.zip
-[Textadept 1.0 -- Mac OSX Intel 10.5+]: download/textadept_1.0.dmg
-[Textadept 1.0 -- Linux]: download/textadept_1.0.tgz
-[PGP -- 1.0 Win32]: download/textadept_1.0.win32.zip.asc
-[PGP -- 1.0 OSX]: download/textadept_1.0.dmg.asc
-[PGP -- 1.0 Linux]: download/textadept_1.0.tgz.asc
[find]: api.html#ui.find
-[GTK-OSX]: http://www.gtk.org/download/macos.php
+[GTK-OSX]: https://www.gtk.org/download/macos.php
[LPeg]: http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html
-[LuaFileSystem]: http://keplerproject.github.com/luafilesystem/
+[LuaFileSystem]: https://keplerproject.github.com/luafilesystem/
### 0.6 (03 Oct 2008)
-Download:
-
-* [Textadept 0.6 -- Win32][] | [PGP -- 0.6 Win32][]
-* [Textadept 0.6 -- Linux][] | [PGP -- 0.6 Linux][]
-* [Textadept 0.6 -- Linux x86_64][] | [PGP -- 0.6 Linux x86_64][]
-
Bugfixes:
* Gracefully exit when *core/init.lua* fails to load.
@@ -5510,23 +3367,12 @@ Updates:
"buffer_new" and "view_new" event handlers respectively.
* File types can be recognized by [pattern matching][] the first line.
-[Textadept 0.6 -- Win32]: download/ta_beta_r6_win32.zip
-[Textadept 0.6 -- Linux]: download/ta_beta_r6.tgz
-[Textadept 0.6 -- Linux x86_64]: download/ta_beta_r6_x86_64.tgz
-[PGP -- 0.6 Win32]: download/ta_beta_r6_win32.zip.asc
-[PGP -- 0.6 Linux]: download/ta_beta_r6.tgz.asc
-[PGP -- 0.6 Linux x86_64]: download/ta_beta_r6_x86_64.tgz.asc
-[Theming]: manual.html#Themes
+[Theming]: manual.html#themes
[manual]: manual.html
-[pattern matching]: manual.html#File.Types
+[pattern matching]: manual.html#file-types
### 0.5 (23 Jul 2008)
-Download:
-
-* [Textadept 0.5 -- Linux][] | [PGP -- 0.5 Linux][]
-* [Textadept 0.5 -- Linux x86_64][] | [PGP -- 0.5 Linux x86_64][]
-
Bugfixes:
* Fixed bug in Lua module when there is no matching file to go to.
@@ -5539,19 +3385,8 @@ Updates:
module.
* Updated some Luadoc.
-[Textadept 0.5 -- Linux]: download/ta_beta_r5.tgz
-[Textadept 0.5 -- Linux x86_64]: download/ta_beta_r5_x86_64.tgz
-[PGP -- 0.5 Linux]: download/ta_beta_r5.tgz.asc
-[PGP -- 0.5 Linux x86_64]: download/ta_beta_r5_x86_64.tgz.asc
-
### 0.4 (25 Jun 2008)
-Download:
-
-* [Textadept 0.4 -- Mac OSX Intel 10.5+][] | [PGP -- 0.4 OSX][]
-* [Textadept 0.4 -- Linux][] | [PGP -- 0.4 Linux][]
-* [Textadept 0.4 -- Linux x86_64][] | [PGP -- 0.4 Linux x86_64][]
-
Bugfixes:
* Fixed bug with "%" being contained in text to replace.
@@ -5572,21 +3407,11 @@ Updates:
* Added Doxygen documentation for C source files.
* Updated Luadoc, and added Textadept manual.
-[Textadept 0.4 -- Mac OSX Intel 10.5+]: download/ta_beta_r4_osx.tgz
-[Textadept 0.4 -- Linux]: download/ta_beta_r4.tgz
-[Textadept 0.4 -- Linux x86_64]: download/ta_beta_r4_x86_64.tgz
-[PGP -- 0.4 OSX]: download/ta_beta_r4_osx.tgz.asc
-[PGP -- 0.4 Linux]: download/ta_beta_r4.tgz.asc
-[PGP -- 0.4 Linux x86_64]: download/ta_beta_r4_x86_64.tgz.asc
[bookmark]: api.html#textadept.bookmarks
-[tab-completion]: manual.html#Command.Entry.Tab.Completion
+[tab-completion]: manual.html#command-entry-tab-completion
### 0.3 (04 Mar 2008)
-Download:
-
-* [Textadept 0.3 -- Linux][] | [PGP -- 0.3 Linux][]
-
Bugfixes:
* Fixed bug in editing module's `select_indented_block()`.
@@ -5603,18 +3428,11 @@ Updates:
* Added new find in files project manager browser.
* Fixed some code redundancy and typos in documentation.
-[Textadept 0.3 -- Linux]: download/ta_beta_r3.tgz
-[PGP -- 0.3 Linux]: download/ta_beta_r3.tgz.asc
-[Zenity]: http://live.gnome.org/Zenity
+[Zenity]: https://live.gnome.org/Zenity
[lua_dialog]: http://luaforge.net/projects/lua-dialog
### 0.2 (20 Dec 2007)
-Download:
-
-* [Textadept 0.2 -- Mac OSX Intel 10.5+][] | [PGP -- 0.2 OSX][]
-* [Textadept 0.2 -- Linux][] | [PGP -- 0.2 Linux][]
-
Bugfixes:
* Fixed command line parameters bug.
@@ -5627,21 +3445,6 @@ Updates:
* Lexers.
* Improved support for embedded language-specific snippets.
-[Textadept 0.2 -- Mac OSX Intel 10.5+]: download/ta_beta_r2.1_osx.tgz
-[Textadept 0.2 -- Linux]: download/ta_beta_r2.tgz
-[PGP -- 0.2 OSX]: download/ta_beta_r2.1_osx.tgz.asc
-[PGP -- 0.2 Linux]: download/ta_beta_r2.tgz.asc
-
### 0.1 (01 Dec 2007)
-Download:
-
-* [Textadept 0.1 -- Mac OSX Intel 10.5+][] | [PGP -- 0.1 OSX][]
-* [Textadept 0.1 -- Linux][] | [PGP -- 0.1 Linux][]
-
Initial Release
-
-[Textadept 0.1 -- Mac OSX Intel 10.5+]: download/ta_beta_r1_osx.tgz
-[Textadept 0.1 -- Linux]: download/ta_beta_r1.tgz
-[PGP -- 0.1 OSX]: download/ta_beta_r1_osx.tgz.asc
-[PGP -- 0.1 Linux]: download/ta_beta_r1.tgz.asc
diff --git a/docs/faq.md b/docs/faq.md
index 75022e22..12b56ecb 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -38,7 +38,7 @@ recently, some distributions have started using "libncurses6" while many
distributions are still on "libncurses5". The only way to avoid problems that
stem from these cases is to compile Textadept for the target system.
-[compile]: manual.html#Compiling
+[compile]: manual.html#compiling
- - -
@@ -69,7 +69,7 @@ When I open a file in a non-English language, I see a lot of strange characters.
Textadept was not able to detect the file's encoding correctly. You'll need to
[help it][].
-[help it]: manual.html#Encoding
+[help it]: manual.html#encoding
- - -
@@ -129,7 +129,7 @@ Please see the [terminal version compatibility][] section of the appendix. If
the feature in question is not listed there, it may be a bug. Please contact
me (mitchell.att.foicica.com) with any bug reports.
-[terminal version compatibility]: manual.html#Terminal.Version.Compatibility
+[terminal version compatibility]: manual.html#terminal-version-compatibility
- - -
diff --git a/docs/images/quickref_small.png b/docs/images/quickref_small.png
new file mode 100644
index 00000000..e7cf619e
--- /dev/null
+++ b/docs/images/quickref_small.png
Binary files differ
diff --git a/docs/index.html b/docs/index.html
index 4c289c62..0b519113 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -56,32 +56,31 @@
<div id="left">
<a id="download"></a>
<h2>Download (v10.8)</h2>
- <a href="feed">
+ <a href="https://github.com/orbitalquark/textadept/releases.atom">
<img src="images/feed.png" style="float: right; margin: 0.25em;"
alt="Atom" />
</a>
<ul>
- <li><a href="download/textadept_LATEST.win32.zip">Win32</a></li>
- <li><a href="download/textadept_LATEST.osx.zip">Mac OSX</a></li>
- <li><a href="download/textadept_LATEST.i386.tgz">Linux</a></li>
- <li>
- <a href="download/textadept_LATEST.x86_64.tgz">Linux x86_64</a>
- </li>
- <li><a href="download/textadept_LATEST.modules.zip">Modules</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.win32.zip">Win32</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.macOS.zip">macOS</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.linux.tgz">Linux</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_10.8/textadept_10.8.modules.zip">Modules</a></li>
</ul>
<hr style="margin: 0.25em 0.5em 0.25em 0.5em;" />
<ul>
- <li><a href="http://foicica.com/hg/textadept">Source</a></li>
+ <li>
+ <a href="https://github.com/orbitalquark/textadept">Source</a>
+ </li>
<li><a href="changelog.html">Other versions</a></li>
<li><a href="changelog.html">PGP signatures</a></li>
</ul>
<h2>Nightly<a href="#nightly">*</a> Builds</h2>
<ul>
- <li><a href="download/textadept_nightly.win32.zip">Win32</a></li>
- <li><a href="download/textadept_nightly.macOS.zip">macOS</a></li>
- <li><a href="download/textadept_nightly.linux.tgz">Linux</a></li>
- <li><a href="download/textadept_nightly.modules.zip">Modules</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_nightly/textadept_nightly.win32.zip">Win32</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_nightly/textadept_nightly.macOS.zip">macOS</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_nightly/textadept_nightly.linux.tgz">Linux</a></li>
+ <li><a href="https://github.com/orbitalquark/textadept/releases/download/textadept_nightly/textadept_nightly.modules.zip">Modules</a></li>
</ul>
</div>
@@ -90,14 +89,14 @@
<ul>
<li><a href="manual.html">Manual</a></li>
<li><a href="api.html">API</a></li>
- <li><a href="http://foicica.com/lists">Mailing list</a></li>
- <li><a href="http://foicica.com/wiki/textadept">Wiki</a></li>
+ <li><a href="https://foicica.com/lists">Mailing list</a></li>
+ <li><a href="https://foicica.com/wiki/textadept">Wiki</a></li>
</ul>
<h2>Quick Reference</h2>
<p style="margin: 0.25em 0 0.25em 0.5em;">
- <a href="media.html#Book">
- <img src="book/ta_quickref_small.png" alt="Cover"
+ <a href="book.html">
+ <img src="images/quickref_small.png" alt="Cover"
style="border-width: 1px; margin-top: 0.25em;" />
</a>
</p>
@@ -110,7 +109,7 @@
<p style="font-size: smaller; font-weight: bold;">
Please
<a href="https://gum.co/textadept?wanted=true">donate</a> or purchase
- the <a href="media.html#Book">quick reference</a> to fund continuous
+ the <a href="book.html">quick reference</a> to help fund continuous
development.
</p>
@@ -130,7 +129,7 @@
Textadept&rsquo;s user interface is sleek and simple. Relentlessly
optimized for speed and minimalism over the years, the editor
consists of less than 2000 lines of C code and less than 4000 lines
- of <a href="http://lua.org">Lua</a> code.
+ of <a href="https://lua.org">Lua</a> code.
</p>
<p class="center">
<img src="images/textadept.png" alt="Textadept" />
@@ -139,12 +138,12 @@
<div class="right-col">
<h3>Cross Platform</h3>
<p>
- Textadept runs on Windows, Mac OSX, Linux, and BSD. It also has a
+ Textadept runs on Windows, macOS, Linux, and BSD. It also has a
terminal version, which is ideal for work on remote machines.
</p>
<p class="center">
<img src="images/linux.png" alt="Linux" />&nbsp;&nbsp;
- <img src="images/macosx.png" alt="Mac OSX" />
+ <img src="images/macosx.png" alt="macOS" />
</p>
<p class="center">
<img src="images/win32.png" alt="Win32" />&nbsp;&nbsp;
@@ -234,29 +233,29 @@
<div class="left-col">
<h3>Comprehensive Manual</h3>
<p>
- Textadept comes with a comprehensive user manual in the
- application&rsquo;s <em>docs/</em> directory. This manual is also
- available <a href="manual.html">online</a>. It covers all of
- Textadept&rsquo;s main features, including installation, usage,
- configuration, theming, scripting, and compilation.
+ Textadept comes with a comprehensive <a href="manual.html">user
+ manual</a> in the application&rsquo;s <em>docs/</em> directory. It
+ covers all of Textadept&rsquo;s main features, including
+ installation, usage, configuration, theming, scripting, and
+ compilation.
</p>
</div>
<div class="right-col">
<h3>Exhaustive API Documentation</h3>
<p>
Since Textadept is entirely scriptable with Lua, its API is heavily
- documented. This documentation is also located in <em>docs/</em>, is
- available <a href="api.html">online</a>, and is the ultimate
- resource on scripting Textadept. (The editor&rsquo;s Lua internals
- also provide abundant scripting examples.)
+ <a href="api.html">documented</a>. This documentation is also
+ located in <em>docs/</em> and is the ultimate resource on scripting
+ Textadept. (The editor&rsquo;s Lua internals also provide abundant
+ scripting examples.)
</p>
</div>
<div class="clear-col"></div>
<div class="left-col">
<h3>Quick Reference</h3>
<p style="float: left; margin-top: 0;">
- <a href="media.html#Book">
- <img src="book/ta_quickref_small.png" alt="Cover2"
+ <a href="book.html">
+ <img src="images/quickref_small.png" alt="Cover2"
style="border-width: 1px;" />
</a>
</p>
@@ -273,9 +272,9 @@
<p>
Learn even more about Textadept by downloading and trying it out
yourself. If you&rsquo;re not completely satisfied, contact us on
- the <a href="http://foicica.com/lists">mailing list</a> or e-mail me
- personally (mitchell.att.foicica.com). You may also fork the
- project, submit patches, or <a href="thanks.html#Sponsors">sponsor a
+ the <a href="https://foicica.com/lists">mailing list</a> or e-mail
+ me personally (mitchell.att.foicica.com). You may also fork the
+ project, submit patches, or <a href="thanks.html#sponsors">sponsor a
feature</a>. Textadept is 100% open source.
</p>
<p style="background-color: #80cc80; color: #4d4d4d; font-size: 1.5em;
@@ -300,19 +299,19 @@
<li>
Textadept is a real cross-platform desktop application, backed by a
world-class editing engine that
- <a href="http://www.scintilla.org/ScintillaRelated.html">dozens</a>
+ <a href="https://www.scintilla.org/ScintillaRelated.html">dozens</a>
of editors and IDEs have depended on for
- <a href="http://www.scintilla.org/ScintillaHistory.html">over 19
+ <a href="https://www.scintilla.org/ScintillaHistory.html">over 19
years</a>.
</li>
<li>
Textadept is scriptable in a language that was
- <em><a href="http://www.lua.org/history.html">carefully
+ <em><a href="https://www.lua.org/history.html">carefully
designed</a></em> to run on any platform at high speed and with a
minimal memory footprint. Lua is used <a
href="https://sites.google.com/site/marbux/home/where-lua-is-used"
>everywhere</a> from video games to embedded devices. It is easy to
- <a href="http://www.lua.org/start.html">learn</a> too!
+ <a href="https://www.lua.org/start.html">learn</a> too!
</li>
<li>
Textadept is very resource efficient, consuming merely 15MB of RAM
@@ -348,8 +347,7 @@
<hr style="clear: both;" />
<p style="text-align: center;">
<a href="faq.html">FAQ</a> &middot;
- <a href="media.html">Media</a> &middot;
- <a href="/stats.html#Textadept">Stats</a> &middot;
+ <a href="https://foicica.com/stats.html#Textadept">Stats</a> &middot;
<a href="thanks.html">Credits</a>
</p>
@@ -365,7 +363,7 @@
<div id="footer">
<p style="text-align:center;">
- &copy; 2007-2020 <a href="http://foicica.com">Mitchell</a>
+ &copy; 2007-2020 <a href="https://foicica.com">Mitchell</a>
mitchell.att.foicica.com
</p>
</div>
diff --git a/docs/manual.md b/docs/manual.md
index 61802db0..0000c03a 100644
--- a/docs/manual.md
+++ b/docs/manual.md
@@ -2,17 +2,17 @@
**Contents**
-1. [Introduction](#Introduction)
-2. [Installation](#Installation)
-3. [User Interface](#User.Interface)
-4. [Working with Files and Projects](#Working.with.Files.and.Projects)
-5. [Adept Editing](#Adept.Editing)
-6. [Compile, Run, and Build](#Compile..Run..and.Build)
-7. [Modules](#Modules)
-8. [Themes](#Themes)
-9. [Scripting](#Scripting)
-10. [Compiling](#Compiling)
-11. [Appendix](#Appendix)
+1. [Introduction](#introduction)
+2. [Installation](#installation)
+3. [User Interface](#user-interface)
+4. [Working with Files and Projects](#working-with-files-and-projects)
+5. [Adept Editing](#adept-editing)
+6. [Compile, Run, and Build](#compile-run-and-build)
+7. [Modules](#modules)
+8. [Themes](#themes)
+9. [Scripting](#scripting)
+10. [Compiling](#compiling)
+11. [Appendix](#appendix)
--------------------------------------------------------------------------------
### Introduction
@@ -92,7 +92,7 @@ programming language that you can understand the simple code samples spread
throughout the manual's contents. If you would like to quickly get up to speed,
or need a refresher, the excerpt from [Lua Quick Reference][] may be of help.
-[Lua Quick Reference]: https://foicica.com/lua/
+[Lua Quick Reference]: https://foicica.com/lua
#### ~/.textadept
@@ -182,15 +182,10 @@ Linux and BSD have no defined minimum.
#### Download
-Download Textadept from the project's [download page][] by selecting the
-appropriate package for your platform. You can also download a separate set of
-modules that provide extra features and functionality to the core application.
-
-The download page also has PGP signatures along with a public key should you
-wish to manually verify download integrity. For example, on Linux:
-
- gpg --import foicica.pgp
- gpg --verify [package].asc
+Textadept releases can be found [here][1]. Select the appropriate package for
+your platform. A comprehensive list of changes between releases can be found
+[here][2]. You can also download a separate set of modules that provide extra
+features and functionality to the core application.
**Windows Note:** antivirus software may flag the Windows package as containing
a virus or malware. This is a false-positive, likely due to Textadept's terminal
@@ -208,7 +203,8 @@ Windows |16 MB |41 MB (23 MB without bundled GTK Runtime)
**Note:** each platform package contains two executables, one for the GUI
version of Textadept, and one for the terminal version.
-[download page]: https://foicica.com/textadept/download
+[1]: https://github.com/orbitalquark/textadept/releases
+[2]: changelog.html
#### Installation
@@ -226,7 +222,7 @@ Linux, and BSD. On macOS, it is recommended to create a *~/.textadept/*
directory (if it does not already exist) and unpack the modules there (thus
creating or merging the *modules/* directory).
-**Note:** Textadept generally does not auto-load [modules](#Modules), so you
+**Note:** Textadept generally does not auto-load [modules](#modules), so you
will need to load at least some of those extra modules manually. For example, in
your *~/.textadept/init.lua*:
@@ -325,10 +321,8 @@ English. You can manually set your locale by copying one of the locale
configuration files from Textadept's *core/locales/* to your *~/.textadept/*
directory and renaming it *locale.conf*. If you would like to translate
Textadept into your language, please translate the English messages in
-*core/locale.conf* and [send me][] the modified file for inclusion in a future
-release.
-
-[send me]: README.html#Contact
+*core/locale.conf* and send me (mitchell.att.foicica.com) the modified file for
+inclusion in a future release.
**macOS Tip:** by default, macOS does not allow GUI applications like
*Textadept.app* to see shell environment variables like `$PATH`. (The terminal
@@ -349,7 +343,7 @@ distribution to distribution. If you get errors like:
file: No such file or directory`
* `/<path>/libc.so.6: version 'GLIBC_<version>' not found`
-you will need to [compile](#Compiling) Textadept manually for your system, which
+you will need to [compile](#compiling) Textadept manually for your system, which
is a very straightforward and easy process.
![Linux](images/linux.png)
@@ -516,7 +510,7 @@ distractions.
You can summon the find & replace pane via `Ctrl+F` on Windows, Linux and BSD,
`⌘F` on macOS, and `M-F` or `M-S-F` in the terminal version. It has the usual
find and replace functionality you would expect, along with "Match Case",
-"Whole Word", "[Regex](#Regex.and.Lua.Pattern.Syntax)", and "In Files" options.
+"Whole Word", "[Regex](#regex-and-lua-pattern-syntax)", and "In Files" options.
The pane also stores find and replace history, up to 10 entries for each. As you
search, Textadept can automatically highlight all instances of found text in the
current buffer by setting [`ui.find.highlight_all_matches`][]. For example, in
@@ -576,7 +570,7 @@ been substituted for a "Filter" entry that contains files and directories to
include or exclude from the search.
A filter consists of a comma-separated list of
-[Lua patterns](#Regex.and.Lua.Pattern.Syntax) that match filenames and
+[Lua patterns](#regex-and-lua-pattern-syntax) that match filenames and
directories to include or exclude. Patterns are inclusive by default. Exclusive
patterns begin with a '!'. If no inclusive patterns are given, any filename is
initially considered. As a convenience, file extensions can be specified
@@ -769,7 +763,7 @@ setting [`io.quick_open_max`][]. For example, in your *~/.textadept/init.lua*:
io.quick_open_max = 10000 -- support huge projects
A filter consists of a comma-separated list of
-[Lua patterns](#Regex.and.Lua.Pattern.Syntax) that match filenames and
+[Lua patterns](#regex-and-lua-pattern-syntax) that match filenames and
directories to include or exclude. Patterns are inclusive by default. Exclusive
patterns begin with a '!'. If no inclusive patterns are given, any filename is
initially considered. As a convenience, file extensions can be specified
@@ -1027,7 +1021,7 @@ documentation support for Lua and C, including for its own Lua API.
Textadept's framework for providing symbol autocompletion and documentation
relies on [autocompleter][] functions and [API files][], which are often
-supplied by [language][] [modules](#Modules). You can use this framework to
+supplied by [language][] [modules](#modules). You can use this framework to
write your own autocompletion routines.
[`textadept.editing.autocomplete_all_words`]: api.html#textadept.editing.autocomplete_all_words
@@ -1192,7 +1186,7 @@ calls, and more.
A snippet has a trigger word associated with snippet text in the [`snippets`][]
table. Language-specific snippets are in a subtable assigned to their language's
-lexer name, and are often supplied by [language][] [modules](#Modules). Snippets
+lexer name, and are often supplied by [language][] [modules](#modules). Snippets
may also be the contents of files in a snippet directory, with file names being
the trigger word. The [snippets documentation][] describes snippets and their
contents in more detail.
@@ -1250,7 +1244,7 @@ modifier keys followed by either the key's inserted character or, if no such
character exists, the string representation of the key according to
[`keys.KEYSYMS`][]. Language-specific keys are in a subtable assigned to their
language's lexer name, and are often supplied by [language][]
-[modules](#Modules). Key sequences can also be assigned tables of key bindings
+[modules](#modules). Key sequences can also be assigned tables of key bindings
to create key chains (e.g. Emacs `C-x` prefix). Key bindings can be grouped into
modes such that while a mode is active, Textadept ignores all key bindings
outside that mode until the mode is unset (e.g. Vim-style modal editing). The
@@ -1455,7 +1449,7 @@ theme's styles on a per-language basis. For example, in your
end)
**Tip:** you can experiment with themes without having to restart Textadept by
-using the [`reset()`][] command in the [Lua Command Entry](#Lua.Command.Entry).
+using the [`reset()`][] command in the [Lua Command Entry](#lua-command-entry).
Once you make changes to either your *~/.textadept/init.lua* or theme file,
issuing the `reset` command will reload your changes.
@@ -1533,18 +1527,18 @@ If you are looking for a more structured scripting resource,
and configure Textadept. It groups the editor's rich API into a series of tasks
in a convenient and easy-to-use manner.
-[Lua 5.3]: https://www.lua.org/manual/5.3/
+[Lua 5.3]: https://www.lua.org/manual/5.3
[`buffer`]: api.html#buffer
[interactive dialog]: api.html#ui.dialogs
[event]: api.html#events
[spawn]: api.html#os.spawn
[Lua API]: api.html
-[Textadept Quick Reference]: media.html#Book
+[Textadept Quick Reference]: book.html
#### Generate Autocompletion and Documentation Files
You can generate for use with Textadept
-[autocompletion and documentation](#Autocompletion.and.Documentation) files for
+[autocompletion and documentation](#autocompletion-and-documentation) files for
your Lua modules. Simply run [LuaDoc][] with Textadept's *modules/lua/tadoc.lua*
doclet. For example:
@@ -1563,7 +1557,7 @@ editing Lua code. For example, in your *~/.textadept/init.lua*:
end)
table.insert(textadept.editing.api_files.lua, '/path/to/api')
-[LuaDoc]: https://keplerproject.github.com/luadoc/
+[LuaDoc]: https://keplerproject.github.com/luadoc
--------------------------------------------------------------------------------
### Compiling
@@ -1623,16 +1617,16 @@ macOS cross-compiling requirements:
**Note:** Textadept's *src/Dockerfile* contains an example of how to build an
OSX cross toolchain.
-[Docker]: https://www.docker.com/
+[Docker]: https://www.docker.com
[image]: https://hub.docker.com/repository/docker/textadept/build
[GNU C compiler]: https://gcc.gnu.org
-[GNU Make]: https://www.gnu.org/software/make/
-[Clang]: https://clang.llvm.org/
-[pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config/
-[libiconv]: https://www.gnu.org/software/libiconv/
+[GNU Make]: https://www.gnu.org/software/make
+[Clang]: https://clang.llvm.org
+[pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config
+[libiconv]: https://www.gnu.org/software/libiconv
[GTK]: https://www.gtk.org/download/linux.php
[ncurses]: https://invisible-island.net/ncurses/#download_ncurses
-[mingw-w64]: http://mingw-w64.org/
+[mingw-w64]: http://mingw-w64.org
[OSX cross toolchain]: https://github.com/tpoechtrager/osxcross
#### Compiling
@@ -1649,7 +1643,6 @@ Command |Description
---------------------|-----------
`make deps` |Downloads and builds all of Textadept's core dependencies
`make deps NIGHTLY=1`|Optionally downloads and builds bleeding-edge dependencies
-`make verify-deps` |Optionally verifies integrity of downloads (for security)
`make` |Builds Textadept, provided all dependencies are in place
`make DEBUG=1` |Optionally builds Textadept with debug symbols
`make install` |Optionally installs Textadept (to */usr/local* by default)
@@ -1711,7 +1704,7 @@ If you still get an error, this time like
`/<path>/libc.so.6: version 'GLIBC_<version>' not found`, then you will have to
compile Textadept manually without Docker.
-[Docker]: https://www.docker.com/
+[Docker]: https://www.docker.com
[image]: https://github.com/users/orbitalquark/packages/container/textadept-build
--------------------------------------------------------------------------------
@@ -1829,20 +1822,24 @@ Textadept is composed of the following technologies:
* [cdk][]: terminal UI widget toolkit
* [libtermkey][]: terminal keyboard entry handling library
* [Scintilla][]: core text editing component
+* [Scinterm][]: curses (terminal) platform for Scintilla
+* [Scintillua][]: syntax highlighting for Scintilla using Lua lexers
* [Lua][]: core scripting language
* [LPeg][]: Lua pattern matching library for syntax highlighting
* [LuaFileSystem][]: Lua library for accessing the host filesystem
[GTK]: https://www.gtk.org
[Scintilla]: https://scintilla.org
+[Scinterm]: https://orbitalquark.github.io/scinterm
+[Scintillua]: https://orbitalquark.github.io/scintillua
[Lua]: https://www.lua.org
[LPeg]: http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html
-[LuaFileSystem]: https://keplerproject.github.io/luafilesystem/
-[gtDialog]: https://foicica.com/gtdialog/
-[ncurses]: https://invisible-island.net/ncurses/
-[pdcurses]: http://pdcurses.sourceforge.net/
-[cdk]: https://invisible-island.net/cdk/
-[libtermkey]: http://www.leonerd.org.uk/code/libtermkey/
+[LuaFileSystem]: https://keplerproject.github.io/luafilesystem
+[gtDialog]: https://orbitalquark.github.io/gtdialog
+[ncurses]: https://invisible-island.net/ncurses
+[pdcurses]: http://pdcurses.sourceforge.net
+[cdk]: https://invisible-island.net/cdk
+[libtermkey]: http://www.leonerd.org.uk/code/libtermkey
#### Migrating from Textadept 10 to 11
@@ -1911,7 +1908,7 @@ find\_in\_files\_timeout |Removed |N/A
**view** | |
N/A |Added |_buffer functions and fields_<sup>d</sup>
-<sup>a</sup>Returns prefix and function, instead of just function.
+<sup>a</sup>Returns prefix and function, instead of just function.<br/>
<sup>b</sup>Use `for name in buffer:private_lexer_call(_SCINTILLA.functions.property_names[1]):gmatch('[^\n]+') do ... end`.<br/>
<sup>c</sup>Use `textadept.menu.menubar[_L['Search']][_L['Find Incremental']][2]`.<br/>
<sup>d</sup>Most buffer functions and fields are available in views now. See
diff --git a/docs/markdowndoc.lua b/docs/markdowndoc.lua
index 35d161a3..f443fe73 100644
--- a/docs/markdowndoc.lua
+++ b/docs/markdowndoc.lua
@@ -5,7 +5,7 @@
local M = {}
local TOC = '1. [%s](%s)\n'
-local MODULE = '<a id="%s"></a>\n## The `%s` Module\n\n'
+local MODULE = '<a id="%s"></a>\n## The `%s` Module\n'
local FIELD = '<a id="%s"></a>\n#### `%s` %s\n\n'
local FUNCTION = '<a id="%s"></a>\n#### `%s`(*%s*)\n\n'
local FUNCTION_NO_PARAMS = '<a id="%s"></a>\n#### `%s`()\n\n'
@@ -28,13 +28,6 @@ local titles = {
-- @param name The name of the module the description belongs to. Used for
-- headers in module descriptions.
local function write_description(f, description, name)
- if name then
- -- Add anchors for module description headers.
- description = description:gsub('\n(#+%s+([^\n]+))', function(header, text)
- return string.format(
- '\n\n<a id="%s.%s"></a>\n\n%s', name, text:gsub('[%s%p]', '.'), header)
- end)
- end
-- Substitute custom [`code`]() link convention with [`code`](#code) links.
local self_link = '(%[`([^`(]+)%(?%)?`%])%(%)'
description = description:gsub(self_link, function(link, id)
@@ -104,7 +97,7 @@ function M.start(doc)
-- Write the header and description.
f:write(string.format(MODULE, name, name))
- f:write('- - -\n\n')
+ f:write('---\n\n')
write_description(f, module.description, name)
-- Write fields.
@@ -170,7 +163,7 @@ function M.start(doc)
write_list(f, SEE, tbl.see, name)
end
end
- f:write('- - -\n\n')
+ f:write('---\n')
end
end
diff --git a/docs/media.md b/docs/media.md
deleted file mode 100644
index 6669e39d..00000000
--- a/docs/media.md
+++ /dev/null
@@ -1,74 +0,0 @@
-## Media
-
-### Book
-
-<div style="float: left; margin: 0 1em 0 1em;">
- <a href="book/ta_quickref.png">
- <img src="book/ta_quickref_small.png" alt="" style="border-width: 1px;"/>
- </a>
-</div>
-
-*Textadept Quick Reference*<br/>
-Fourth Edition
-
-Order the [e-book][] &ndash; $15 USD<br/>
-Order the [e-book bundle][] with [Lua Quick Reference][] &ndash; $27 USD<br/>
-Order the print book via Amazon [US][], [UK][], [DE][], [FR][], [IT][], [ES][]
-
-Published: Aug 2018
-ISBN: 978-0-9912379-4-4<br/>
-Pages: 174
-
-[Excerpt][]
-
-Textadept is a fast, minimalist, and remarkably extensible cross-platform text
-editor for programmers. This quick reference contains a wealth of knowledge on
-how to script and configure Textadept using the Lua programming language. It
-groups the editor's rich API into a series of tasks in a convenient and
-easy-to-use manner.
-
-This book covers how to:
-
-* Leverage Textadept's important files and folders
-* Adeptly navigate and manipulate text
-* Mark lines and text visually
-* Show interactive lists and call tips
-* Prompt for user input in various ways
-* Spawn asynchronous, interactive child processes
-* Configure colors, themes, and other settings
-* Define lexers for highlighting source code
-* And much more
-
-It serves as the perfect complement to Textadept's comprehensive Manual and
-exhaustive API documentation.
-
-[e-book]: https://gum.co/textadept_ebook
-[e-book bundle]: https://gum.co/qr_bundle
-[Lua Quick Reference]: http://foicica.com/lua
-[US]: http://www.amazon.com/Textadept-Quick-Reference-Mitchell/dp/0991237943/
-[UK]: http://www.amazon.co.uk/Textadept-Quick-Reference-Mitchell/dp/0991237943/
-[DE]: http://www.amazon.de/Textadept-Quick-Reference-Mitchell/dp/0991237943/
-[FR]: http://www.amazon.fr/Textadept-Quick-Reference-Mitchell/dp/0991237943/
-[IT]: http://www.amazon.it/Textadept-Quick-Reference-Mitchell/dp/0991237943/
-[ES]: http://www.amazon.es/Textadept-Quick-Reference-Mitchell/dp/0991237943/
-[Excerpt]: download/ta_quickref4_excerpt.pdf
-
-### Lua Workshop 2012
-
-*Textadept - Behind the Scenes* ([slides][])
-
-Textadept is a fast, minimalist, and ridiculously extensible cross-platform text
-editor for programmers. It is written in a combination of C and Lua. Textadept
-uses Lua to solve many interesting and complex problems encountered in text
-editor design, including syntax highlighting, syntax-based code completion, and
-scripting external C libraries and GUI components. This talk will focus on
-examining the internals of Textadept, from its innovative LPeg syntax
-highlighting engine to the embedded Lua scripting environment that provides
-nearly all of the editor's features. Come learn about Textadept and also about
-how you can use and extend it to fit your workflow.
-
-<iframe width="560" height="315" style="margin-left: 1em;"
- src="http://www.youtube.com/embed/-rMC2s0s-zA" frameborder="0"
- allowfullscreen></iframe>
-
-[slides]: download/textadept_lua_wshop2012.pdf
diff --git a/docs/quickref_excerpt.pdf b/docs/quickref_excerpt.pdf
new file mode 100644
index 00000000..cf8bc0cb
--- /dev/null
+++ b/docs/quickref_excerpt.pdf
Binary files differ
diff --git a/docs/style.css b/docs/style.css
index aede8b9b..ab4f1455 100644
--- a/docs/style.css
+++ b/docs/style.css
@@ -25,10 +25,10 @@ del { color: #994d4d; }
h1 { margin: 0 0 1em 0; }
h2, h3, h4, h5, h6 { margin: 1em 0 1em 0; }
h1 { font-size: 1.3em; }
-h2 { font-size: 1.1em; }
-h3 { font-size: 1em; }
-h4 { font-size: 0.9em; }
-h5 { font-size: 0.8em; }
+h2 { font-size: 1.2em; }
+h3 { font-size: 1.1em; }
+h4 { font-size: 1.0em; }
+h5 { font-size: 0.9em; }
hr {
border: 1px solid #d9d9d9;
diff --git a/modules/lua/ta_api b/modules/lua/ta_api
index 1f31cc2e..87541d1e 100644
--- a/modules/lua/ta_api
+++ b/modules/lua/ta_api
@@ -48,23 +48,7 @@ CURSORARROW view.CURSORARROW (number, Read-only)\n
CURSORNORMAL view.CURSORNORMAL (number, Read-only)\n
CURSORREVERSEARROW view.CURSORREVERSEARROW (number, Read-only)\n
CURSORWAIT view.CURSORWAIT (number, Read-only)\n
-DEBUGGER_BREAKPOINT_ADDED events.DEBUGGER_BREAKPOINT_ADDED (string)\nEmitted when a breakpoint is added.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint). Breakpoints added while the debugger is not running are queued\nup until the debugger starts.\nArguments:\n\n* _`lang`_: The lexer name of the language to add a breakpoint for.\n* _`filename`_: The filename to add a breakpoint in.\n* _`line`_: The 1-based line number to break on.
-DEBUGGER_BREAKPOINT_REMOVED events.DEBUGGER_BREAKPOINT_REMOVED (string)\nEmitted when a breakpoint is removed.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`filename`_: The filename to remove a breakpoint from.\n* _`line`_: The 1-based line number to stop breaking on.
-DEBUGGER_COMMAND events.DEBUGGER_COMMAND (string)\nEmitted when a debugger command should be run.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`text`_: The text of the command to run.
-DEBUGGER_CONTINUE events.DEBUGGER_CONTINUE (string)\nEmitted when a execution should be continued.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`...`_: Any arguments passed to `debugger.continue()`.
-DEBUGGER_INSPECT events.DEBUGGER_INSPECT (string)\nEmitted when a symbol should be inspected.\nDebuggers typically show a symbol's value in a calltip via\n`view:call_tip_show()`.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`position`_: The buffer position of the symbol to inspect. The debugger\n responsible for identifying the symbol's name, as symbol characters vary\n from language to language.
-DEBUGGER_PAUSE events.DEBUGGER_PAUSE (string)\nEmitted when execution should be paused.\nThis is only emitted when the debugger is running and executing (e.g. not\nat a breakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`...`_: Any arguments passed to `debugger.pause()`.
-DEBUGGER_RESTART events.DEBUGGER_RESTART (string)\nEmitted when execution should restart from the beginning.\nThis is only emitted when the debugger is running.\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`...`_: Any arguments passed to `debugger.restart()`.
-DEBUGGER_SET_FRAME events.DEBUGGER_SET_FRAME (string)\nEmitted when a stack frame should be switched to.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`level`_: The 1-based stack level number to switch to. This value\n depends on the stack levels given to `debugger.update_state()`.
-DEBUGGER_START events.DEBUGGER_START (string)\nEmitted when a debugger should be started.\nThe debugger should not start executing yet, as there will likely be\nincoming breakpoint and watch add events. Subsequent events will instruct\nthe debugger to begin executing.\nIf a listener creates a debugger, it *must* return `true`. Otherwise, it is\nassumed that no debugger was created and subsequent debugger functions will\nnot work. Listeners *must not* return `false` (they can return `nil`).\nArguments:\n\n* _`lang`_: The lexer name of the language to start debugging.\n* _`...`_: Any arguments passed to `debugger.start()`.
-DEBUGGER_STEP_INTO events.DEBUGGER_STEP_INTO (string)\nEmitted when execution should continue by one line, stepping into\nfunctions.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`...`_: Any arguments passed to `debugger.step_into()`.
-DEBUGGER_STEP_OUT events.DEBUGGER_STEP_OUT (string)\nEmitted when execution should continue, stepping out of the current\nfunction.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`...`_: Any arguments passed to `debugger.step_out()`.
-DEBUGGER_STEP_OVER events.DEBUGGER_STEP_OVER (string)\nEmitted when execution should continue by one line, stepping over\nfunctions.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`...`_: Any arguments passed to `debugger.step_over()`.
-DEBUGGER_STOP events.DEBUGGER_STOP (string)\nEmitted when a debugger should be stopped.\nThis is only emitted when the debugger is running.\nArguments:\n\n* _`lang`_: The lexer name of the language to stop debugging.\n* _`...`_: Any arguments passed to `debugger.stop()`.
-DEBUGGER_WATCH_ADDED events.DEBUGGER_WATCH_ADDED (string)\nEmitted when a watch is added.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint). Watches added while the debugger is not running are queued up\nuntil the debugger starts.\nArguments:\n\n* _`lang`_: The lexer name of the language to add a watch for.\n* _`expr`_: The expression or variable to watch, depending on what the\n debugger supports.\n* _`id`_: The expression's ID number.
-DEBUGGER_WATCH_REMOVED events.DEBUGGER_WATCH_REMOVED (string)\nEmitted when a breakpoint is removed.\nThis is only emitted when the debugger is running and paused (e.g. at a\nbreakpoint).\nArguments:\n\n* _`lang`_: The lexer name of the language being debugged.\n* _`expr`_: The expression to stop watching.\n* _`id`_: The expression's ID number.
DEFAULT lexer.DEFAULT (string)\nThe token name for default tokens.
-DOCUTILS_PATH _M.rest.DOCUTILS_PATH (string)\nThe absolute path to the directory that contains the Python Docutils\nlibrary if it is not in the environment's `PYTHONPATH`.\nThe default value is `nil`, which indicates Docutils is installed.
DOUBLE_CLICK events.DOUBLE_CLICK (string)\nEmitted after double-clicking the mouse button.\nArguments:\n\n* _`position`_: The position double-clicked.\n* _`line`_: The line number of the position double-clicked.\n* _`modifiers`_: A bit-mask of any modifier keys used: `view.MOD_CTRL`,\n `view.MOD_SHIFT`, `view.MOD_ALT`, and `view.MOD_META`.\n On macOS, the Command modifier key is reported as `view.MOD_CTRL` and\n Ctrl is `view.MOD_META`.\n Note: If you set `view.rectangular_selection_modifier` to\n `view.MOD_CTRL`, the "Control" modifier is reported as *both* "Control"\n and "Alt" due to a Scintilla limitation with GTK.
DWELL_END events.DWELL_END (string)\nEmitted after `DWELL_START` when the user moves the mouse, presses a key,\nor scrolls the view.\nArguments:\n\n* _`position`_: The position closest to *x* and *y*.\n* _`x`_: The x-coordinate of the mouse in the view.\n* _`y`_: The y-coordinate of the mouse in the view.
DWELL_START events.DWELL_START (string)\nEmitted when the mouse is stationary for `view.mouse_dwell_time`\nmilliseconds.\nArguments:\n\n* _`position`_: The position closest to *x* and *y*.\n* _`x`_: The x-coordinate of the mouse in the view.\n* _`y`_: The y-coordinate of the mouse in the view.
@@ -84,6 +68,7 @@ FILE_OPENED events.FILE_OPENED (string)\nEmitted after opening a file in a new b
FIND events.FIND (string)\nEmitted to find text via the Find & Replace Pane.\nArguments:\n\n* _`text`_: The text to search for.\n* _`next`_: Whether or not to search forward.
FIND_MATCHCASE buffer.FIND_MATCHCASE (number, Read-only)\n
FIND_REGEXP buffer.FIND_REGEXP (number, Read-only)\n
+FIND_RESULT_FOUND events.FIND_RESULT_FOUND (string)\nEmitted when a result is found. It is selected and has been scrolled into\nview.
FIND_TEXT_CHANGED events.FIND_TEXT_CHANGED (string)\nEmitted when the text in the "Find" field of the Find & Replace Pane\nchanges.\n`ui.find.find_entry_text` contains the current text.
FIND_WHOLEWORD buffer.FIND_WHOLEWORD (number, Read-only)\n
FIND_WORDSTART buffer.FIND_WORDSTART (number, Read-only)\n
@@ -113,17 +98,14 @@ IDENTIFIER lexer.IDENTIFIER (string)\nThe token name for identifier tokens.
INDICATOR_CLICK events.INDICATOR_CLICK (string)\nEmitted when clicking the mouse on text that has an indicator present.\nArguments:\n\n* _`position`_: The clicked text's position.\n* _`modifiers`_: A bit-mask of any modifier keys used: `view.MOD_CTRL`,\n `view.MOD_SHIFT`, `view.MOD_ALT`, and `view.MOD_META`.\n On macOS, the Command modifier key is reported as `view.MOD_CTRL` and\n Ctrl is `view.MOD_META`.\n Note: If you set `view.rectangular_selection_modifier` to\n `view.MOD_CTRL`, the "Control" modifier is reported as *both* "Control"\n and "Alt" due to a Scintilla limitation with GTK.
INDICATOR_MAX buffer.INDICATOR_MAX (number, Read-only)\n
INDICATOR_RELEASE events.INDICATOR_RELEASE (string)\nEmitted when releasing the mouse after clicking on text that has an\nindicator present.\nArguments:\n\n* _`position`_: The clicked text's position.
-INDIC_ADDITION file_diff.INDIC_ADDITION (number)\nThe indicator number for text added within lines.
INDIC_BOX view.INDIC_BOX (number, Read-only)\n
INDIC_BRACEMATCH textadept.editing.INDIC_BRACEMATCH (number)\nThe matching brace highlight indicator number.
INDIC_COMPOSITIONTHICK view.INDIC_COMPOSITIONTHICK (number, Read-only)\n
INDIC_COMPOSITIONTHIN view.INDIC_COMPOSITIONTHIN (number, Read-only)\n
INDIC_DASH view.INDIC_DASH (number, Read-only)\n
-INDIC_DELETION file_diff.INDIC_DELETION (number)\nThe indicator number for text deleted within lines.
INDIC_DIAGONAL view.INDIC_DIAGONAL (number, Read-only)\n
INDIC_DOTBOX view.INDIC_DOTBOX (number, Read-only)\n
INDIC_DOTS view.INDIC_DOTS (number, Read-only)\n
-INDIC_ERROR lsp.INDIC_ERROR (number)\nThe error diagnostic indicator number.
INDIC_FIND ui.find.INDIC_FIND (number)\nThe find results highlight indicator number.
INDIC_FULLBOX view.INDIC_FULLBOX (number, Read-only)\n
INDIC_GRADIENT view.INDIC_GRADIENT (number, Read-only)\n
@@ -135,7 +117,6 @@ INDIC_PLAIN view.INDIC_PLAIN (number, Read-only)\n
INDIC_POINT view.INDIC_POINT (number, Read-only)\n
INDIC_POINTCHARACTER view.INDIC_POINTCHARACTER (number, Read-only)\n
INDIC_ROUNDBOX view.INDIC_ROUNDBOX (number, Read-only)\n
-INDIC_SPELLING spellcheck.INDIC_SPELLING (number)\nThe spelling error indicator number.
INDIC_SQUIGGLE view.INDIC_SQUIGGLE (number, Read-only)\n
INDIC_SQUIGGLELOW view.INDIC_SQUIGGLELOW (number, Read-only)\n
INDIC_SQUIGGLEPIXMAP view.INDIC_SQUIGGLEPIXMAP (number, Read-only)\n
@@ -143,7 +124,6 @@ INDIC_STRAIGHTBOX view.INDIC_STRAIGHTBOX (number, Read-only)\n
INDIC_STRIKE view.INDIC_STRIKE (number, Read-only)\n
INDIC_TEXTFORE view.INDIC_TEXTFORE (number, Read-only)\n
INDIC_TT view.INDIC_TT (number, Read-only)\n
-INDIC_WARN lsp.INDIC_WARN (number)\nThe warning diagnostic indicator number.
INITIALIZED events.INITIALIZED (string)\nEmitted after Textadept finishes initializing.
IV_LOOKBOTH view.IV_LOOKBOTH (number, Read-only)\n
IV_LOOKFORWARD view.IV_LOOKFORWARD (number, Read-only)\n
@@ -155,10 +135,6 @@ KEYWORD lexer.KEYWORD (string)\nThe token name for keyword tokens.
LABEL lexer.LABEL (string)\nThe token name for label tokens.
LEXER_LOADED events.LEXER_LOADED (string)\nEmitted after loading a language lexer.\nThis is useful for overriding a language module's key bindings or other\nproperties since the module is not loaded when Textadept starts.\nArguments:\n\n* _`name`_: The language lexer's name.
LINUX _G.LINUX (bool)\nWhether or not Textadept is running on Linux.
-LSP_INITIALIZED events.LSP_INITIALIZED (string)\nEmitted when an LSP connection has been initialized.\nThis is useful for sending server-specific notifications to the server upon\ninit via `Server:notify()`.\nEmitted by `lsp.start()`.\nArguments:\n\n* _`lang`_: The lexer name of the LSP language.\n* _`server`_: The LSP server.
-LSP_NOTIFICATION events.LSP_NOTIFICATION (string)\nEmitted when an LSP server emits an unhandled notification.\nThis is useful for handling server-specific notifications. Responses can be\nsent via `Server:respond()`.\nAn event handler should return `true`.\nArguments:\n\n* _`lang`_: The lexer name of the LSP language.\n* _`server`_: The LSP server.\n* _`method`_: The string LSP notification method name.\n* _`params`_: The table of LSP notification params. Contents may be\n server-specific.
-LUA_FLAGS ctags.LUA_FLAGS (string)\nA set of command-line options for ctags that better parses Lua code.\nCombine this with other flags in `ctags.ctags_flags` if Lua files will\nbe parsed.
-LUA_GENERATOR ctags.LUA_GENERATOR (string)\nPlaceholder value that indicates Textadept's built-in Lua tags and api file\ngenerator should be used instead of ctags. Requires LuaDoc to be installed.
MARGINOPTION_NONE view.MARGINOPTION_NONE (number, Read-only)\n
MARGINOPTION_SUBLINESELECT view.MARGINOPTION_SUBLINESELECT (number, Read-only)\n
MARGIN_BACK view.MARGIN_BACK (number, Read-only)\n
@@ -177,7 +153,6 @@ MARKNUM_FOLDEROPEN buffer.MARKNUM_FOLDEROPEN (number, Read-only)\n
MARKNUM_FOLDEROPENMID buffer.MARKNUM_FOLDEROPENMID (number, Read-only)\n
MARKNUM_FOLDERSUB buffer.MARKNUM_FOLDERSUB (number, Read-only)\n
MARKNUM_FOLDERTAIL buffer.MARKNUM_FOLDERTAIL (number, Read-only)\n
-MARK_ADDITION file_diff.MARK_ADDITION (number)\nThe marker for line additions.
MARK_ARROW view.MARK_ARROW (number, Read-only)\n
MARK_ARROWDOWN view.MARK_ARROWDOWN (number, Read-only)\n
MARK_ARROWS view.MARK_ARROWS (number, Read-only)\n
@@ -189,15 +164,12 @@ MARK_BOXMINUS view.MARK_BOXMINUS (number, Read-only)\n
MARK_BOXMINUSCONNECTED view.MARK_BOXMINUSCONNECTED (number, Read-only)\n
MARK_BOXPLUS view.MARK_BOXPLUS (number, Read-only)\n
MARK_BOXPLUSCONNECTED view.MARK_BOXPLUSCONNECTED (number, Read-only)\n
-MARK_BREAKPOINT_COLOR debugger.MARK_BREAKPOINT_COLOR (number)\nThe color of breakpoint markers.
MARK_CHARACTER view.MARK_CHARACTER (number, Read-only)\n
MARK_CIRCLE view.MARK_CIRCLE (number, Read-only)\n
MARK_CIRCLEMINUS view.MARK_CIRCLEMINUS (number, Read-only)\n
MARK_CIRCLEMINUSCONNECTED view.MARK_CIRCLEMINUSCONNECTED (number, Read-only)\n
MARK_CIRCLEPLUS view.MARK_CIRCLEPLUS (number, Read-only)\n
MARK_CIRCLEPLUSCONNECTED view.MARK_CIRCLEPLUSCONNECTED (number, Read-only)\n
-MARK_DEBUGLINE_COLOR debugger.MARK_DEBUGLINE_COLOR (number)\nThe color of the current debug line marker.
-MARK_DELETION file_diff.MARK_DELETION (number)\nThe marker for line deletions.
MARK_DOTDOTDOT view.MARK_DOTDOTDOT (number, Read-only)\n
MARK_EMPTY view.MARK_EMPTY (number, Read-only)\n
MARK_ERROR textadept.run.MARK_ERROR (number)\nThe run or compile error marker number.
@@ -206,7 +178,6 @@ MARK_LCORNER view.MARK_LCORNER (number, Read-only)\n
MARK_LCORNERCURVE view.MARK_LCORNERCURVE (number, Read-only)\n
MARK_LEFTRECT view.MARK_LEFTRECT (number, Read-only)\n
MARK_MINUS view.MARK_MINUS (number, Read-only)\n
-MARK_MODIFICATION file_diff.MARK_MODIFICATION (number)\nThe marker for line modifications.
MARK_PIXMAP view.MARK_PIXMAP (number, Read-only)\n
MARK_PLUS view.MARK_PLUS (number, Read-only)\n
MARK_RGBAIMAGE view.MARK_RGBAIMAGE (number, Read-only)\n
@@ -332,13 +303,12 @@ _VIEWS _G._VIEWS (table)\nTable of all views in Textadept.\nNumeric keys have vi
_print ui._print(buffer_type, ...)\nPrints the given string messages to the buffer of string type *buffer_type*.\nOpens a new buffer for printing messages to if necessary. If the message\nbuffer is already open in a view, the message is printed to that view.\nOtherwise the view is split (unless `ui.tabs` is `true`) and the message\nbuffer is displayed before being printed to.\n@param buffer_type String type of message buffer.\n@param ... Message strings.\n@usage ui._print(_L['[Message Buffer]'], message)
abspath lfs.abspath(filename, prefix)\nReturns the absolute path to string *filename*.\n*prefix* or `lfs.currentdir()` is prepended to a relative filename. The\nreturned path is not guaranteed to exist.\n@param filename The relative or absolute path to a file.\n@param prefix Optional prefix path prepended to a relative filename.\n@return string absolute path
active ui.command_entry.active (boolean)\nWhether or not the command entry is active.
-add_dic spellchecker:add_dic(dic)\nAdds words from dictionary file path *dic* to the spellchecker.\n@param dic Path to the Hunspell dictionary file to load.
+active ui.find.active (boolean)\nWhether or not the Find & Replace pane is active.
add_fold_point lexer.add_fold_point(lexer, token_name, start_symbol, end_symbol)\nAdds to lexer *lexer* a fold point whose beginning and end tokens are string\n*token_name* tokens with string content *start_symbol* and *end_symbol*,\nrespectively.\nIn the event that *start_symbol* may or may not be a fold point depending on\ncontext, and that additional processing is required, *end_symbol* may be a\nfunction that ultimately returns `1` (indicating a beginning fold point),\n`-1` (indicating an ending fold point), or `0` (indicating no fold point).\nThat function is passed the following arguments:\n\n * `text`: The text being processed for fold points.\n * `pos`: The position in *text* of the beginning of the line currently\n being processed.\n * `line`: The text of the line currently being processed.\n * `s`: The position of *start_symbol* in *line*.\n * `symbol`: *start_symbol* itself.\n@param lexer The lexer to add a fold point to.\n@param token_name The token name of text that indicates a fold point.\n@param start_symbol The text that indicates the beginning of a fold point.\n@param end_symbol Either the text that indicates the end of a fold point, or\n a function that returns whether or not *start_symbol* is a beginning fold\n point (1), an ending fold point (-1), or not a fold point at all (0).\n@usage lex:add_fold_point(lexer.OPERATOR, '{', '}')\n@usage lex:add_fold_point(lexer.KEYWORD, 'if', 'end')\n@usage lex:add_fold_point(lexer.COMMENT, lexer.fold_consecutive_lines('#'))\n@usage lex:add_fold_point('custom', function(text, pos, line, s, symbol)\n ... end)
add_rule lexer.add_rule(lexer, id, rule)\nAdds pattern *rule* identified by string *id* to the ordered list of rules\nfor lexer *lexer*.\n@param lexer The lexer to add the given rule to.\n@param id The id associated with this rule. It does not have to be the same\n as the name passed to `token()`.\n@param rule The LPeg pattern of the rule.\n@see modify_rule
add_selection buffer.add_selection(buffer, end_pos, start_pos)\nSelects the range of text between positions *start_pos* to *end_pos* as the\nmain selection, retaining all other selections as additional selections.\nSince an empty selection (i.e. the current position) still counts as a\nselection, use `buffer.set_selection()` first when setting a list of\nselections.\n@param buffer A buffer.\n@param end_pos The caret position of the range of text to select in *buffer*.\n@param start_pos The anchor position of the range of text to select in\n *buffer*.\n@see set_selection
add_style lexer.add_style(lexer, token_name, style)\nAssociates string *token_name* in lexer *lexer* with style table *style*.\n*style* may have the following fields:\n\n* `font`: String font name.\n* `size`: Integer font size.\n* `bold`: Whether or not the font face is bold. The default value is `false`.\n* `weight`: Integer weight or boldness of a font, between 1 and 999.\n* `italics`: Whether or not the font face is italic. The default value is\n `false`.\n* `underlined`: Whether or not the font face is underlined. The default value\n is `false`.\n* `fore`: Font face foreground color in `0xBBGGRR` or `"#RRGGBB"` format.\n* `back`: Font face background color in `0xBBGGRR` or `"#RRGGBB"` format.\n* `eolfilled`: Whether or not the background color extends to the end of the\n line. The default value is `false`.\n* `case`: Font case, `'u'` for upper, `'l'` for lower, and `'m'` for normal,\n mixed case. The default value is `'m'`.\n* `visible`: Whether or not the text is visible. The default value is `true`.\n* `changeable`: Whether the text is changeable instead of read-only. The\n default value is `true`.\n\nField values may also contain "$(property.name)" expansions for properties\ndefined in Scintilla, theme files, etc.\n@param lexer The lexer to add a style to.\n@param token_name The name of the token to associated with the style.\n@param style A style string for Scintilla.\n@usage lex:add_style('longstring', lexer.styles.string)\n@usage lex:add_style('deprecated_func', lexer.styles['function'] ..\n {italics = true}\n@usage lex:add_style('visible_ws', lexer.styles.whitespace ..\n {back = lexer.colors.grey}
add_text buffer.add_text(buffer, text)\nAdds string *text* to the buffer at the caret position and moves the caret to\nthe end of the added text without scrolling it into view.\n@param buffer A buffer.\n@param text The text to add.
-add_word spellchecker:add_word(word)\nAdds string *word* to the spellchecker.\nNote: this is not a permanent addition. It only persists for the life of\nthis spellchecker and applies only to this spellchecker.\n@param word The word to add.
additional_caret_fore view.additional_caret_fore (number)\nThe foreground color, in "0xBBGGRR" format, of additional carets.
additional_carets_blink view.additional_carets_blink (bool)\nAllow additional carets to blink.\nThe default value is `true`.
additional_carets_visible view.additional_carets_visible (bool)\nDisplay additional carets.\nThe default value is `true`.
@@ -358,11 +328,8 @@ annotation_visible view.annotation_visible (number)\nThe annotation visibility m
ansi_c _G.keys.ansi_c (table)\nTable of C-specific key bindings.
ansi_c _G.snippets.ansi_c (table)\nTable of C-specific snippets.
ansi_c _M.ansi_c (module)\nThe ansi_c module.\nIt provides utilities for editing C code.
-ansi_c debugger.ansi_c (module)\nLanguage debugging support for C and C++.
any lexer.any (pattern)\nA pattern that matches any single character.
-api_commands ctags.api_commands (table)\nMap of project root paths to string commands, or functions that return such\nstrings, that generate an *api* file that Textadept can read via\n`textadept.editing.show_documentation()`.\nThe user is responsible for adding the generated api file to\n`textadept.editing.api_files[lexer]` for each lexer name the file applies to.\n@see textadept.editing.api_files
api_files textadept.editing.api_files (table)\nMap of lexer names to API documentation file tables.\nFile tables contain API file paths or functions that return such paths.\nEach line in an API file consists of a symbol name (not a fully qualified\nsymbol name), a space character, and that symbol's documentation. "\\n"\nrepresents a newline character.\n@see show_documentation
-append history.append(filename, line, column)\nAppends the given location to the current view's history.\n@param filename String filename, buffer type, or identifier of the buffer to\n store.\n@param line Integer line number starting from 0 to store.\n@param column Integer column number starting from 0 to store.
append_text buffer.append_text(buffer, text)\nAppends string *text* to the end of the buffer without modifying any existing\nselections or scrolling the text into view.\n@param buffer A buffer.\n@param text The text to append.
arg _G.arg (table)\nTable of command line parameters passed to Textadept.\n@see args
args _G.args (module)\nProcesses command line arguments for Textadept.
@@ -400,7 +367,6 @@ autocomplete_all_words textadept.editing.autocomplete_all_words (bool)\nAutocomp
autocomplete_snippets _M.ansi_c.autocomplete_snippets (boolean)\nWhether or not to include snippets in autocompletion lists.\nThe default value is `true`.
autocomplete_snippets _M.lua.autocomplete_snippets (boolean)\nWhether or not to include snippets in autocompletion lists.\nThe default value is `false`.
autocompleters textadept.editing.autocompleters (table)\nMap of autocompleter names to autocompletion functions.\nNames are typically lexer names and autocompletion functions typically\nautocomplete symbols.\nAutocompletion functions must return two values: the number of characters\nbehind the caret that are used as the prefix of the entity to be\nautocompleted, and a list of completions to be shown. Autocompletion lists\nare sorted automatically.\n@see autocomplete
-back history.back()\nNavigates backwards through the current view's history.
back_space_un_indents buffer.back_space_un_indents (bool)\nUn-indent text when backspacing within indentation.\nThe default value is `false`.
back_tab buffer.back_tab(buffer)\nUn-indents the text on the selected lines.\n@param buffer A buffer.
begin_undo_action buffer.begin_undo_action(buffer)\nStarts a sequence of actions to be undone or redone as a single action.\nMay be nested.\n@param buffer A buffer.
@@ -411,7 +377,6 @@ brace_highlight view.brace_highlight(view, pos1, pos2)\nHighlights the character
brace_highlight_indicator view.brace_highlight_indicator(view, use_indicator, indicator)\nHighlights matching brace characters with indicator number *indicator*, in\nthe range of `1` to `32`, instead of the\n`view.STYLE_BRACELIGHT` style if *use_indicator* is `true`.\n@param view A view.\n@param use_indicator Whether or not to use an indicator.\n@param indicator The indicator number to use.
brace_match buffer.brace_match(buffer, pos, max_re_style)\nReturns the position of the matching brace for the brace character at\nposition *pos*, taking nested braces into account, or `-1`.\nThe brace characters recognized are '(', ')', '[', ']', '{', '}', '<', and\n'>' and must have the same style.\n@param buffer A buffer.\n@param pos The position of the brace in *buffer* to match.\n@param max_re_style Must be `0`. Reserved for expansion.\n@return number
brace_matches textadept.editing.brace_matches (table)\nTable of brace characters to highlight.\nThe ASCII values of brace characters are keys and are assigned non-`nil`\nvalues. The default brace characters are '(', ')', '[', ']', '{', and '}'.
-browser export.browser (string)\nPath to or the name of the browser executable to show exported HTML files\nin.\nThe default value is 'firefox'.
buffer _G.buffer (module)\nA Textadept buffer object.\nConstants are documented in the fields they apply to.\nWhile you can work with individual buffer instances, it is really only useful\nto work with the global one.\nMany of these functions and fields are derived from buffer-specific\nfunctionality of the Scintilla editing component, and additional information\ncan be found on the Scintilla website:\nhttp://scintilla.org/ScintillaDoc.html.\nNote that with regard to Scintilla-specific functionality, this API is a\n_suggestion_, not a hard requirement. All of that functionality also exists\nin `view`, even if undocumented.\nAny buffer fields set on startup (e.g. in *~/.textadept/init.lua*) will be\nthe default, initial values for all buffers.
buffer _G.buffer (table)\nThe current buffer in the current view.
buffer view.buffer (table)\nThe buffer the view currently contains. (Read-only)
@@ -448,8 +413,6 @@ char_left_rect_extend buffer.char_left_rect_extend(buffer)\nMoves the caret left
char_right buffer.char_right(buffer)\nMoves the caret right one character.\n@param buffer A buffer.
char_right_extend buffer.char_right_extend(buffer)\nMoves the caret right one character, extending the selected text to the new\nposition.\n@param buffer A buffer.
char_right_rect_extend buffer.char_right_rect_extend(buffer)\nMoves the caret right one character, extending the rectangular selection to\nthe new position.\n@param buffer A buffer.
-check_spelling spellcheck.check_spelling(interactive, wrapped)\nChecks the buffer for spelling errors, marks misspelled words, and optionally\nshows suggestions for the next misspelled word if *interactive* is `true`.\n@param interactive Flag indicating whether or not to display suggestions for\n the next misspelled word. The default value is `false`.\n@param wrapped Utility flag indicating whether or not the spellchecker has\n wrapped for displaying useful statusbar information. This flag is used and\n set internally, and should not be set otherwise.
-check_spelling_on_save spellcheck.check_spelling_on_save (bool)\nCheck spelling after saving files.\nThe default value is `true`.
choose_caret_x buffer.choose_caret_x(buffer)\nIdentifies the current horizontal caret position as the caret's preferred\nhorizontal position when moving between lines.\n@param buffer A buffer.\n@see caret_sticky
clear buffer.clear(buffer)\nDeletes the selected text or the character at the caret.\n@param buffer A buffer.
clear textadept.bookmarks.clear()\nClears all bookmarks in the current buffer.
@@ -470,33 +433,20 @@ command_entry ui.command_entry (module)\nTextadept's Command Entry.\nIt supports
comment_string textadept.editing.comment_string (table)\nMap of lexer names to line comment strings for programming languages, used by\nthe `toggle_comment()` function.\nKeys are lexer names and values are either the language's line comment\nprefixes or block comment delimiters separated by a '|' character.\n@see toggle_comment
compile textadept.run.compile(filename)\nCompiles file *filename* or the current file using an appropriate shell\ncommand from the `compile_commands` table.\nThe shell command is determined from the file's filename, extension, or\nlanguage in that order.\nEmits `COMPILE_OUTPUT` events.\n@param filename Optional path to the file to compile. The default value is\n the current file's filename.\n@see compile_commands\n@see _G.events
compile_commands textadept.run.compile_commands (table)\nMap of filenames, file extensions, and lexer names to their associated\n"compile" shell command line strings or functions that return such strings.\nCommand line strings may have the following macros:\n\n + `%f`: The file's name, including its extension.\n + `%e`: The file's name, excluding its extension.\n + `%d`: The file's directory path.\n + `%p`: The file's full path.\n\nFunctions may also return a working directory to operate in. By default, it\nis the current file's parent directory.
-complete_lua lua_repl.complete_lua()\nShows a set of Lua code completions for the current position.
connect events.connect(event, f, index)\nAdds function *f* to the set of event handlers for event *event* at position\n*index*.\nIf *index* not given, appends *f* to the set of handlers. *event* may be any\narbitrary string and does not need to have been previously defined.\n@param event The string event name.\n@param f The Lua function to connect to *event*.\n@param index Optional index to insert the handler into.\n@usage events.connect('my_event', function(msg) ui.print(msg) end)\n@see disconnect
constants _SCINTILLA.constants (table)\nMap of Scintilla constant names to their numeric values.\n@see _G.buffer
context_menu textadept.menu.context_menu (table)\nThe default right-click context menu.\nSubmenus, and menu items can be retrieved by name in addition to table index\nnumber.
context_menu ui.context_menu (userdata)\nThe buffer's context menu, a `ui.menu()`.\nThis is a low-level field. You probably want to use the higher-level\n`textadept.menu.context_menu`.
-continue debugger.continue(lang, ...)\nContinue debugger execution unless the debugger is already executing (e.g.\nnot at a breakpoint).\nIf no debugger is running, starts one, then continues execution.\nEmits a `DEBUGGER_CONTINUE` event, passing along any arguments given.\n@param lang Optional lexer name of the language to continue executing. The\n default value is the name of the current lexer.
contracted_fold_next view.contracted_fold_next(view, line)\nReturns the line number of the next contracted fold point starting from line\nnumber *line*, or `-1` if none exists.\n@param view A view.\n@param line The line number in *view* to start at.\n@return number
-control_structure_patterns _M.ruby.control_structure_patterns (table)\nPatterns for auto `end` completion for control structures.\n@see try_to_autocomplete_end
convert_eols buffer.convert_eols(buffer, mode)\nConverts all end of line characters to those in end of line mode *mode*.\n@param buffer A buffer.\n@param mode The end of line mode to convert to. Valid values are:\n * `buffer.EOL_CRLF`\n * `buffer.EOL_CR`\n * `buffer.EOL_LF`
convert_indentation textadept.editing.convert_indentation()\nConverts indentation between tabs and spaces according to `buffer.use_tabs`.\nIf `buffer.use_tabs` is `true`, `buffer.tab_width` indenting spaces are\nconverted to tabs. Otherwise, all indenting tabs are converted to\n`buffer.tab_width` spaces.\n@see buffer.use_tabs
copy buffer.copy(buffer)\nCopies the selected text to the clipboard.\nMultiple selections are copied in order with no delimiters. Rectangular\nselections are copied from top to bottom with end of line characters. Virtual\nspace is not copied.\n@param buffer A buffer.
copy_range buffer.copy_range(buffer, start_pos, end_pos)\nCopies the range of text between positions *start_pos* and *end_pos* to the\nclipboard.\n@param buffer A buffer.\n@param start_pos The start position of the range of text in *buffer* to copy.\n@param end_pos The end position of the range of text in *buffer* to copy.
copy_text buffer.copy_text(buffer, text)\nCopies string *text* to the clipboard.\n@param buffer A buffer.\n@param text The text to copy.
count_characters buffer.count_characters(buffer, start_pos, end_pos)\nReturns the number of whole characters (taking multi-byte characters into\naccount) between positions *start_pos* and *end_pos*.\n@param buffer A buffer.\n@param start_pos The start position of the range of text in *buffer* to start\n counting at.\n@param end_pos The end position of the range of text in *buffer* to stop\n counting at.\n@return number
-css _G.keys.css (table)\nContainer for CSS-specific key bindings.
-css _G.snippets.css (table)\nContainer for CSS-specific snippets.
-css _M.css (module)\nThe css module.\nIt provides utilities for editing CSS code.
-ctag textadept.editing.autocompleters.ctag (function)\nAutocompleter function for ctags. (Names only; not context-sensitive).
-ctags _G.ctags (module)\n[Experimental]\nUtilize Ctags with Textadept.\n\nThis module is not loaded by default. `require('ctags')` must be called from\n*~/.textadept/init.lua*.\n\nThere are four ways to tell Textadept about *tags* files:\n\n 1. Place a *tags* file in a project's root directory. This file will be\n used in a tag search from any of that project's source files.\n 2. Add a *tags* file or list of *tags* files to the `ctags` module for\n a project root key. This file(s) will be used in a tag search from any\n of that project's source files.\n For example: `ctags['/path/to/project'] = '/path/to/tags'`.\n 3. Add a *tags* file to the `ctags` module. This file will be used in\n any tag search.\n For example: `ctags[#ctags + 1] = '/path/to/tags'`.\n 4. As a last resort, if no *tags* files were found, or if there is no match\n for a given symbol, a temporary *tags* file is generated for the current\n file and used.\n\nTextadept will use any and all *tags* files based on the above rules.
-ctags ctags.ctags (string)\nPath to the ctags executable.\nThe default value is `'ctags'`.
-ctags_flags ctags.ctags_flags (table)\nMap of project root paths to string command-line options, or functions that\nreturn such strings, that are passed to ctags when generating project tags.\n@see LUA_FLAGS
current_pos buffer.current_pos (number)\nThe caret's position.\nWhen set, does not scroll the caret into view.
cursor view.cursor (number)\nThe display cursor type.\n\n* `view.CURSORNORMAL`\n The text insert cursor.\n* `view.CURSORARROW`\n The arrow cursor.\n* `view.CURSORWAIT`\n The wait cursor.\n* `view.CURSORREVERSEARROW`\n The reversed arrow cursor.\n\nThe default value is `view.CURSORNORMAL`.
cut buffer.cut(buffer)\nCuts the selected text to the clipboard.\nMultiple selections are copied in order with no delimiters. Rectangular\nselections are copied from top to bottom with end of line characters. Virtual\nspace is not copied.\n@param buffer A buffer.
-cycle_history_next lua_repl.cycle_history_next()\nCycle forward through command history, taking into account commands with\nmultiple lines.
-cycle_history_prev lua_repl.cycle_history_prev()\nCycle backward through command history, taking into account commands with\nmultiple lines.
-debugger _G.debugger (module)\n[Experimental]\nLanguage debugging support.\n\nAll this module does is emit debugger events. Submodules that implement\ndebuggers listen for these events and act on them.\n\nThis module is not loaded by default. `require('debugger')` must be called\nfrom *~/.textadept/init.lua*.
dec_num lexer.dec_num (pattern)\nA pattern that matches a decimal number.
default_filter lfs.default_filter (table)\nThe filter table containing common binary file extensions and version control\ndirectories to exclude when iterating over files and directories using\n`walk`.\nExtensions excluded: a, bmp, bz2, class, dll, exe, gif, gz, jar, jpeg, jpg,\no, pdf, png, so, tar, tgz, tif, tiff, xz, and zip.\nDirectories excluded: .bzr, .git, .hg, .svn, _FOSSIL_, and node_modules.\n@see walk
del_line_left buffer.del_line_left(buffer)\nDeletes the range of text from the caret to the beginning of the current\nline.\n@param buffer A buffer.
@@ -510,9 +460,7 @@ delete_back_not_line buffer.delete_back_not_line(buffer)\nDeletes the character
delete_range buffer.delete_range(buffer, pos, length)\nDeletes the range of text from position *pos* to *pos* + *length*.\n@param buffer A buffer.\n@param pos The start position of the range of text in *buffer* to delete.\n@param length The number of characters in the range of text to delete.
dialog ui.dialog(kind, ...)\nLow-level function for prompting the user with a gtdialog of kind *kind*\nwith the given string and table arguments, returning a formatted string of\nthe dialog's output.\nYou probably want to use the higher-level functions in the `ui.dialogs`\nmodule.\nTable arguments containing strings are allowed and expanded in place. This is\nuseful for filtered list dialogs with many items.\n@param kind The kind of gtdialog.\n@param ... Parameters to the gtdialog.\n@return string gtdialog result.
dialogs ui.dialogs (module)\nProvides a set of interactive dialog prompts for user input.
-diff _G.diff(text1, text2)\nReturns a list that represents the differences between strings *text1* and\n*text2*.\nEach consecutive pair of elements in the returned list represents a "diff".\nThe first element is an integer: 0 for a deletion, 1 for an insertion, and 2\nfor equality. The second element is the associated diff text.\n@param text1 String to compare against.\n@param text2 String to compare.\n@usage diffs = diff(text1, text2)\n for i = 1, #diffs, 2 do print(diffs[i], diffs[i + 1]) end\n@return list of differences
digit lexer.digit (pattern)\nA pattern that matches any digit ('0'-'9').
-disable_listening history.disable_listening()\nDisables recording of edit locations and clears all view history.
disconnect events.disconnect(event, f)\nRemoves function *f* from the set of handlers for event *event*.\n@param event The string event name.\n@param f The Lua function connected to *event*.\n@see connect
doc_line_from_visible view.doc_line_from_visible(view, display_line)\nReturns the actual line number of displayed line number *display_line*,\ntaking wrapped, annotated, and hidden lines into account.\nIf *display_line* is less than or equal to `1`, returns `1`. If\n*display_line* is greater than the number of displayed lines, returns\n`buffer.line_count`.\n@param view A view.\n@param display_line The display line number to use.\n@return number
document_end buffer.document_end(buffer)\nMoves the caret to the end of the buffer.\n@param buffer A buffer.
@@ -530,7 +478,6 @@ editing_keys ui.command_entry.editing_keys (table)\nA metatable with typical pla
embed lexer.embed(lexer, child, start_rule, end_rule)\nEmbeds child lexer *child* in parent lexer *lexer* using patterns\n*start_rule* and *end_rule*, which signal the beginning and end of the\nembedded lexer, respectively.\n@param lexer The parent lexer.\n@param child The child lexer.\n@param start_rule The pattern that signals the beginning of the embedded\n lexer.\n@param end_rule The pattern that signals the end of the embedded lexer.\n@usage html:embed(css, css_start_rule, css_end_rule)\n@usage html:embed(lex, php_start_rule, php_end_rule) -- from php lexer
emit events.emit(event, ...)\nSequentially calls all handler functions for event *event* with the given\narguments.\n*event* may be any arbitrary string and does not need to have been previously\ndefined. If any handler explicitly returns a value that is not `nil`,\n`emit()` returns that value and ceases to call subsequent handlers. This is\nuseful for stopping the propagation of an event like a keypress after it has\nbeen handled, or for passing back values from handlers.\n@param event The string event name.\n@param ... Arguments passed to the handler.\n@usage events.emit('my_event', 'my message')\n@return `nil` unless any any handler explicitly returned a non-`nil` value;\n otherwise returns that value
empty_undo_buffer buffer.empty_undo_buffer(buffer)\nDeletes the undo and redo history.\n@param buffer A buffer.
-enable_listening history.enable_listening()\nEnables recording of edit locations.
enclose textadept.editing.enclose(left, right)\nEncloses the selected text or the current word within strings *left* and\n*right*, taking multiple selections into account.\n@param left The left part of the enclosure.\n@param right The right part of the enclosure.
encoding buffer.encoding (string or nil)\nThe string encoding of the file, or `nil` for binary files.
encodings io.encodings (table)\nList of encodings to attempt to decode files as.\nYou should add to this list if you get a "Conversion failed" error when\ntrying to open a file whose encoding is not recognized. Valid encodings are\nGNU iconv's encodings and include:\n\n * European: ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U,\n KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131},\n Mac{Roman,CentralEurope,Iceland,Croatian,Romania},\n Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh.\n * Unicode: UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16,\n UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, C99, JAVA.
@@ -545,18 +492,13 @@ eol_annotation_text buffer.eol_annotation_text (table)\nTable of EOL annotation
eol_annotation_visible view.eol_annotation_visible (number)\nThe EOL annotation visibility mode.\n\n* `view.EOLANNOTATION_HIDDEN`\n EOL Annotations are invisible.\n* `view.EOLANNOTATION_STANDARD`\n Draw EOL annotations no decoration.\n* `view.EOLANNOTATION_BOXED`\n Draw EOL annotations outlined with a box.\n\nThe default value is `view.EOLANNOTATION_HIDDEN`.
eol_mode buffer.eol_mode (number)\nThe current end of line mode. Changing the current mode does not convert\nany of the buffer's existing end of line characters.\nUse `buffer.convert_eols()` to do so.\n\n* `buffer.EOL_CRLF`\n Carriage return with line feed ("\r\\n").\n* `buffer.EOL_CR`\n Carriage return ("\r").\n* `buffer.EOL_LF`\n Line feed ("\\n").\n\nThe default value is `buffer.EOL_CRLF` on Windows platforms,\n`buffer.EOL_LF` otherwise.
error_patterns textadept.run.error_patterns (table)\nMap of file extensions and lexer names to their associated lists of string\npatterns that match warning and error messages emitted by compile and run\ncommands for those file extensions and lexers.\nPatterns match single lines and contain captures for a filename, line number,\ncolumn number (optional), and warning or error message (optional).\nDouble-clicking a warning or error message takes the user to the source of\nthat warning/error.\nNote: `(.-)` captures in patterns are interpreted as filenames; `(%d+)`\ncaptures are interpreted as line numbers first, and then column numbers; and\nany other capture is treated as warning/error message text.
-evaluate_repl lua_repl.evaluate_repl()\nEvaluates as Lua code the current line or the text on the currently selected\nlines.\nIf the current line has a syntax error, it is ignored and treated as a line\ncontinuation.
events _G.events (module)\nTextadept's core event structure and handlers.\n\nTextadept emits events when you do things like create a new buffer, press a\nkey, click on a menu, etc. You can even emit events yourself using Lua. Each\nevent has a set of event handlers, which are simply Lua functions called in\nthe order they were connected to an event. For example, if you created a\nmodule that needs to do something each time Textadept creates a new buffer,\nconnect a Lua function to the `events.BUFFER_NEW` event:\n\n events.connect(events.BUFFER_NEW, function()\n -- Do something here.\n end)\n\nEvents themselves are nothing special. You do not have to declare one before\nusing it. Events are simply strings containing arbitrary event names. When\neither you or Textadept emits an event, Textadept runs all event handlers\nconnected to the event, passing any given arguments to the event's handler\nfunctions. If an event handler explicitly returns a value that is not `nil`,\nTextadept will not call subsequent handlers. This is useful if you want to\nstop the propagation of an event like a keypress if your event handler\nhandled it, or if you want to use the event framework to pass values.\n
events _SCINTILLA.events (table)\nMap of Scintilla event IDs to tables of event names and event parameters.
-export _G.export (module)\n[Experimental]\nOutputs source files into various formats like HTML.\n\nThis module is not loaded by default. `require('export')` must be called from\n*~/.textadept/init.lua*.\n
expr_types _M.lua.expr_types (table)\nMap of expression patterns to their types.\nUsed for type-hinting when showing autocompletions for variables.\nExpressions are expected to match after the '=' sign of a statement.
-expr_types _M.python.expr_types (table)\nMap of expression patterns to their types.\nExpressions are expected to match after the '=' sign of a statement.
-expr_types _M.ruby.expr_types (table)\nMap of expression patterns to their types.\nExpressions are expected to match after the '=' sign of a statement.
extend lexer.extend (pattern)\nA pattern that matches any ASCII extended character (codes 0 to 255).
extensions textadept.file_types.extensions (table)\nMap of file extensions to their associated lexer names.\nIf the file type is not recognized by its first-line, each file extension is\nmatched against the file's extension.
extra_ascent view.extra_ascent (number)\nThe amount of pixel padding above lines.\nThe default value is `0`.
extra_descent view.extra_descent (number)\nThe amount of pixel padding below lines.\nThe default is `0`.
-file_diff _G.file_diff (module)\n[Experimental]\nTwo-way file comparison for Textadept.\n\nThis module is not loaded by default. `require('file_diff')` must be called\nfrom *~/.textadept/init.lua*.
file_types textadept.file_types (module)\nHandles file type detection for Textadept.
filename buffer.filename (string)\nThe absolute file path associated with the buffer.
filesave ui.dialogs.filesave(options)\nPrompts the user with a file save dialog defined by dialog options table\n*options*, returning the string file chosen.\nIf the user canceled the dialog, returns `nil`.\n@param options Table of key-value option pairs for the dialog.\n\n * `title`: The dialog's title text.\n * `with_directory`: The initial filesystem directory to show.\n * `with_file`: The initially chosen filename. This option requires\n `with_directory` to be set.\n * `with_extension`: The list of extensions selectable files must have.\n * `no_create_directories`: Prevent the user from creating new directories.\n The default value is `false`.\n@return filename or nil
@@ -573,7 +515,6 @@ find_next ui.find.find_next()\nMimics pressing the "Find Next" button.
find_next_button_text ui.find.find_next_button_text (string, Write-only)\nThe text of the "Find Next" button.\nThis is primarily used for localization.
find_prev ui.find.find_prev()\nMimics pressing the "Find Prev" button.
find_prev_button_text ui.find.find_prev_button_text (string, Write-only)\nThe text of the "Find Prev" button.\nThis is primarily used for localization.
-find_references lsp.find_references()\nSearches for project references to the current symbol and prints them.
first_visible_line view.first_visible_line (number)\nThe line number of the line at the top of the view.
float lexer.float (pattern)\nA pattern that matches a floating point number.
focus ui.command_entry.focus()\nOpens the command entry.
@@ -593,11 +534,9 @@ fold_line view.fold_line(view, line, action)\nContracts, expands, or toggles the
fold_line_groups lexer.fold_line_groups (boolean)\nWhether or not to fold multiple, consecutive line groups (such as line\ncomments and import statements) and only show the top line.\nThis option is disabled by default.\nThis is an alias for `lexer.property['fold.line.groups'] = '1|0'`.
fold_on_zero_sum_lines lexer.fold_on_zero_sum_lines (boolean)\nWhether or not to mark as a fold point lines that contain both an ending\nand starting fold point. For example, `} else {` would be marked as a fold\npoint.\nThis option is disabled by default.\nThis is an alias for `lexer.property['fold.on.zero.sum.lines'] = '1|0'`.
fold_parent buffer.fold_parent (table, Read-only)\nTable of fold point line numbers per child line number.\nA line number of `-1` means no line was found.
-folding lexer.folding (boolean)\nWhether or not folding is enabled.\nThis option is disabled by default.\nThis is an alias for `lexer.property['fold'] = '1|0'`.
+folding lexer.folding (boolean)\nWhether or not folding is enabled for the lexers that support it.\nThis option is disabled by default.\nThis is an alias for `lexer.property['fold'] = '1|0'`.
fontselect ui.dialogs.fontselect(options)\nPrompts the user with a font selection dialog defined by dialog options\ntable *options*, returning the font selected (including style and size).\nIf the user canceled the dialog, returns `nil`.\n@param options Table of key-value option pairs for the option select dialog.\n\n * `title`: The dialog's title text.\n * `text`: The font preview text.\n * `font_name`: The initially selected font name.\n * `font_size`: The initially selected font size. The default value is `12`.\n * `font_style`: The initially selected font style. The available options\n are `"regular"`, `"bold"`, `"italic"`, and `"bold italic"`. The default\n value is `"regular"`.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n@usage ui.dialogs.fontselect{title = 'Font', font_name = 'Monospace',\n font_size = 10}\n@return selected font, including style and size
-forward history.forward()\nNavigates forwards through the current view's history.
functions _SCINTILLA.functions (table)\nMap of Scintilla function names to tables containing their IDs, return types,\nwParam types, and lParam types. Types are as follows:\n\n + `0`: Void.\n + `1`: Integer.\n + `2`: Length of the given lParam string.\n + `3`: Integer position.\n + `4`: Color, in "0xBBGGRR" format.\n + `5`: Boolean `true` or `false`.\n + `6`: Bitmask of Scintilla key modifiers and a key value.\n + `7`: String parameter.\n + `8`: String return value.
-generate_default_api ctags.generate_default_api (bool)\nWhether or not to generate simple api documentation files based on *tags*\nfile contents. For example, functions are documented with their signatures\nand source file paths.\nThis *api* file is generated in the same directory as *tags* and can be\nread by `textadept.editing.show_documentation` as long as it was added\nto `textadept.editing.api_files` for a given language.\nThe default value is `true`.
get_cur_line buffer.get_cur_line(buffer)\nReturns the current line's text and the caret's position on that line.\n@param buffer A buffer.\n@return string, number
get_default_fold_display_text view.get_default_fold_display_text(view)\nReturns the default fold display text.\n@param view A view.
get_last_child buffer.get_last_child(buffer, line, level)\nReturns the line number of the last line after line number *line* whose fold\nlevel is greater than *level*.\nIf *level* is `-1`, returns the level of *line*.\n@param buffer A buffer.\n@param line The line number in *buffer* of a header line.\n@param level The fold level, or `-1` for the level of *line*.
@@ -608,35 +547,23 @@ get_rule lexer.get_rule(lexer, id)\nReturns the rule identified by string *id*.\
get_sel_text buffer.get_sel_text(buffer)\nReturns the selected text.\nMultiple selections are included in order with no delimiters. Rectangular\nselections are included from top to bottom with end of line characters.\nVirtual space is not included.\n@param buffer A buffer.\n@return string, number
get_split_table ui.get_split_table()\nReturns a split table that contains Textadept's current split view structure.\nThis is primarily used in session saving.\n@return table of split views. Each split view entry is a table with 4\n fields: `1`, `2`, `vertical`, and `size`. `1` and `2` have values of either\n nested split view entries or the views themselves; `vertical` is a flag\n that indicates if the split is vertical or not; and `size` is the integer\n position of the split resizer.
get_text buffer.get_text(buffer)\nReturns the buffer's text.\n@param buffer A buffer.
-goto_anchor _M.yaml.goto_anchor()\nJumps to the anchor for the alias underneath the caret.
goto_buffer view.goto_buffer(view, buffer)\nSwitches to buffer *buffer* or the buffer *buffer* number of buffers relative\nto the current one.\nEmits `BUFFER_BEFORE_SWITCH` and `BUFFER_AFTER_SWITCH` events.\n@param view The view to switch buffers in.\n@param buffer A buffer or relative buffer number (typically 1 or -1).\n@see _G._BUFFERS\n@see events.BUFFER_BEFORE_SWITCH\n@see events.BUFFER_AFTER_SWITCH
-goto_change file_diff.goto_change(next)\nJumps to the next or previous difference between the two files depending on\nboolean *next*.\n`start()` must have been called previously.\n@param next Whether to go to the next or previous difference relative to the\n current line.
-goto_definition lsp.goto_definition()\nJumps to the definition of the current symbol, returning whether or not a\ndefinition was found.\n@return `true` if a definition was found; `false` otherwise.
goto_error textadept.run.goto_error(line_num, next)\nJumps to the source of the recognized compile/run warning or error on line\nnumber *line_num* in the message buffer.\nIf *line_num* is `nil`, jumps to the next or previous warning or error,\ndepending on boolean *next*. Displays an annotation with the warning or error\nmessage if possible.\n@param line_num Optional line number in the message buffer that contains the\n compile/run warning or error to go to. This parameter may be omitted\n completely.\n@param next Optional flag indicating whether to go to the next recognized\n warning/error or the previous one. Only applicable when *line_num* is\n `nil`.\n@see error_patterns
goto_file ui.goto_file(filename, split, preferred_view, sloppy)\nSwitches to the existing view whose buffer's filename is *filename*.\nIf no view was found and *split* is `true`, splits the current view in order\nto show the requested file. If *split* is `false`, shifts to the next or\n*preferred_view* view in order to show the requested file. If *sloppy* is\n`true`, requires only the basename of *filename* to match a buffer's\n`filename`. If the requested file was not found, it is opened in the desired\nview.\n@param filename The filename of the buffer to go to.\n@param split Optional flag that indicates whether or not to open the buffer\n in a split view if there is only one view. The default value is `false`.\n@param preferred_view Optional view to open the desired buffer in if the\n buffer is not visible in any other view.\n@param sloppy Optional flag that indicates whether or not to not match\n *filename* to `buffer.filename` exactly. When `true`, matches *filename* to\n only the last part of `buffer.filename` This is useful for run and compile\n commands which output relative filenames and paths instead of full ones and\n it is likely that the file in question is already open. The default value\n is `false`.
goto_file_found ui.find.goto_file_found(line_num, next)\nJumps to the source of the find in files search result on line number\n*line_num* in the buffer titled "Files Found" or, if *line_num* is `nil`,\njumps to the next or previous search result, depending on boolean *next*.\n@param line_num Optional line number in the files found buffer that contains\n the search result to go to. This parameter may be omitted completely.\n@param next Optional flag indicating whether to go to the next search result\n or the previous one. Only applicable when *line_num* is `nil`.
-goto_implementation lsp.goto_implementation()\nJumps to the implementation of the current symbol, returning whether or not\nan implementation was found.\n@return `true` if an implementation was found; `false` otherwise.
goto_line buffer.goto_line(buffer, line)\nMoves the caret to the beginning of line number *line* and scrolls it into\nview, regardless of whether or not *line* is hidden.\n@param buffer A buffer.\n@param line The line number in *buffer* to go to.
goto_line textadept.editing.goto_line(line)\nMoves the caret to the beginning of line number *line* or the user-specified\nline, ensuring *line* is visible.\n@param line Optional line number to go to. If `nil`, the user is prompted for\n one.
goto_mark textadept.bookmarks.goto_mark(next)\nPrompts the user to select a bookmarked line to move the caret to the\nbeginning of unless *next* is given.\nIf *next* is `true` or `false`, moves the caret to the beginning of the next\nor previously bookmarked line, respectively.\n@param next Optional flag indicating whether to go to the next or previous\n bookmarked line relative to the current line. The default value is `nil`,\n prompting the user for a bookmarked line to go to.
goto_pos buffer.goto_pos(buffer, pos)\nMoves the caret to position *pos* and scrolls it into view.\n@param buffer A buffer.\n@param pos The position in *buffer* to go to.
-goto_section _M.rest.goto_section()\nPrompts the user to select a section title to jump to.\nRequires the entire document to be styled.
-goto_symbol lsp.goto_symbol(symbol)\nJumps to a symbol selected from a list based on project symbols that match\nthe given symbol, or based on buffer symbols.\n@param symbol Optional string symbol to query for in the current project. If\n `nil`, symbols are presented from the current buffer.
-goto_tag ctags.goto_tag(tag)\nJumps to the source of string *tag* or the source of the word under the\ncaret.\nPrompts the user when multiple sources are found.\n@param tag The tag to jump to the source of.
-goto_type_definition lsp.goto_type_definition()\nJumps to the definition of the current type, returning whether or not a\ndefinition was found.\n@return `true` if a definition was found; `false` otherwise.
goto_view ui.goto_view(view)\nShifts to view *view* or the view *view* number of views relative to the\ncurrent one.\nEmits `VIEW_BEFORE_SWITCH` and `VIEW_AFTER_SWITCH` events.\n@param view A view or relative view number (typically 1 or -1).\n@see _G._VIEWS\n@see events.VIEW_BEFORE_SWITCH\n@see events.VIEW_AFTER_SWITCH
graph lexer.graph (pattern)\nA pattern that matches any graphical character ('!' to '~').
h_scroll_bar view.h_scroll_bar (bool)\nDisplay the horizontal scroll bar.\nThe default value is `true`.
-handle_notification Server:handle_notification(method, params)\nHandles an unsolicited notification from this language server.\n@param method String method name of the notification.\n@param params Table of parameters for the notification.
-handle_stdout Server:handle_stdout(output)\nProcesses unsolicited, incoming stdout from the Language Server, primarily to\nlook for notifications and act on them.\n@param output String stdout from the Language Server.
height ui.command_entry.height (number)\nThe height in pixels of the command entry.
hex_num lexer.hex_num (pattern)\nA pattern that matches a hexadecimal number.
hide_lines view.hide_lines(view, start_line, end_line)\nHides the range of lines between line numbers *start_line* to *end_line*.\nThis has no effect on fold levels or fold flags and the first line cannot be\nhidden.\n@param view A view.\n@param start_line The start line of the range of lines in *view* to hide.\n@param end_line The end line of the range of lines in *view* to hide.
highlight_all_matches ui.find.highlight_all_matches (boolean)\nWhether or not to highlight all occurrences of found text in the current\nbuffer.\nThe default value is `false`.
highlight_guide view.highlight_guide (number)\nThe indentation guide column number to also highlight when highlighting\nmatching braces, or `0` to stop indentation guide highlighting.
highlight_words textadept.editing.highlight_words (number)\nThe word highlight mode.\n\n* `textadept.editing.HIGHLIGHT_CURRENT`\n Automatically highlight all instances of the current word.\n* `textadept.editing.HIGHLIGHT_SELECTED`\n Automatically highlight all instances of the selected word.\n* `textadept.editing.HIGHLIGHT_NONE`\n Do not automatically highlight words.\n\nThe default value is `textadept.editing.HIGHLIGHT_NONE`.
-history _G.history (module)\n[Experimental]\nRecords buffer positions within Textadept views over time and allows for\nnavigating through that history.\n\nThis module is not loaded by default. `require('history')` must be called\nfrom *~/.textadept/init.lua*.\n\nBy default, this module listens for text edit events, and each time an\ninsertion or deletion occurs, its location is appended to the current view's\nlocation history. If the edit is close enough to the previous record, the\nprevious record is amended.
-history lua_repl.history (table)\nLua command history.\nIt has a numeric `pos` field that indicates where in the history the user\ncurrently is.
home buffer.home(buffer)\nMoves the caret to the beginning of the current line.\n@param buffer A buffer.
home_display buffer.home_display(buffer)\nMoves the caret to the beginning of the current wrapped line.\n@param buffer A buffer.
home_display_extend buffer.home_display_extend(buffer)\nMoves the caret to the beginning of the current wrapped line, extending the\nselected text to the new position.\n@param buffer A buffer.
@@ -644,10 +571,6 @@ home_extend buffer.home_extend(buffer)\nMoves the caret to the beginning of the
home_rect_extend buffer.home_rect_extend(buffer)\nMoves the caret to the beginning of the current line, extending the\nrectangular selection to the new position.\n@param buffer A buffer.
home_wrap buffer.home_wrap(buffer)\nMoves the caret to the beginning of the current wrapped line or, if already\nthere, to the beginning of the actual line.\n@param buffer A buffer.
home_wrap_extend buffer.home_wrap_extend(buffer)\nLike `buffer.home_wrap()`, but extends the selected text to the new position.\n@param buffer A buffer.
-hover lsp.hover(position)\nShows a calltip with information about the identifier at the given or current\nposition.\n@param position Optional buffer position of the identifier to show\n information for. If `nil`, uses the current buffer position.
-html _G.keys.html (table)\nContainer for HTML-specific key bindings.
-html _G.snippets.html (table)\nContainer for HTML-specific snippets.
-html _M.html (module)\nThe html module.\nIt provides utilities for editing HTML code.
iconv string.iconv(text, new, old)\nConverts string *text* from encoding *old* to encoding *new* using GNU\nlibiconv, returning the string result.\nValid encodings are GNU libiconv's encodings and include:\n\n * European: ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U,\n KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131},\n Mac{Roman,CentralEurope,Iceland,Croatian,Romania},\n Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh.\n * Semitic: ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}.\n * Japanese: EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2,\n ISO-2022-JP-1.\n * Chinese: EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950,\n BIG5-HKSCS, BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999,\n ISO-2022-CN, ISO-2022-CN-EXT.\n * Korean: EUC-KR, CP949, ISO-2022-KR, JOHAB.\n * Armenian: ARMSCII-8.\n * Georgian: Georgian-Academy, Georgian-PS.\n * Tajik: KOI8-T.\n * Kazakh: PT154, RK1048.\n * Thai: ISO-8859-11, TIS-620, CP874, MacThai.\n * Laotian: MuleLao-1, CP1133.\n * Vietnamese: VISCII, TCVN, CP1258.\n * Unicode: UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16,\n UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, C99, JAVA.\n@param text The text to convert.\n@param new The string encoding to convert to.\n@param old The string encoding to convert from.
idle_styling view.idle_styling (number)\nThe idle styling mode.\nThis mode has no effect when `view.wrap_mode` is on.\n\n* `view.IDLESTYLING_NONE`\n Style all the currently visible text before displaying it.\n* `view.IDLESTYLING_TOVISIBLE`\n Style some text before displaying it and then style the rest\n incrementally in the background as an idle-time task.\n* `view.IDLESTYLING_AFTERVISIBLE`\n Style text after the currently visible portion in the background.\n* `view.IDLESTYLING_ALL`\n Style text both before and after the visible text in the background.\n\nThe default value is `view.IDLESTYLING_NONE`.
in_files ui.find.in_files (bool)\nFind search text in a directory of files.\nThe default value is `false`.
@@ -672,7 +595,6 @@ indicator_start buffer.indicator_start(buffer, indicator, pos)\nReturns the prev
inputbox ui.dialogs.inputbox(options)\nPrompts the user with an inputbox dialog defined by dialog options table\n*options*, returning the selected button's index along with the user's\ninput text (the latter as a string or table, depending on the type of\n*options*.`informative_text`).\nIf *options*.`string_output` is `true`, returns the selected button's label\nalong with the user's input text.\nIf the dialog timed out, returns `0` or `"timeout"`. If the user canceled the\ndialog, returns `-1` or `"delete"`.\n@param options Table of key-value option pairs for the inputbox.\n\n * `title`: The dialog's title text.\n * `informative_text`: The dialog's main message text. If the value is a\n table, the first table value is the main message text and any subsequent\n values are used as the labels for multiple entry boxes. Providing a\n single label has no effect.\n * `text`: The dialog's initial input text. If the value is a table, the\n table values are used to populate the multiple entry boxes defined by\n `informative_text`.\n * `button1`: The right-most button's label. The default value is\n `_L['OK']`.\n * `button2`: The middle button's label.\n * `button3`: The left-most button's label. This option requires `button2`\n to be set.\n * `string_output`: Return the selected button's label (instead of its\n index) or the dialog's exit status instead of the button's index (instead\n of its exit code). The default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@usage ui.dialogs.inputbox{title = 'Goto Line', informative_text = 'Line:',\n text = '1'}\n@return selected button or exit code, input text
insert textadept.snippets.insert(text)\nInserts snippet text *text* or the snippet assigned to the trigger word\nbehind the caret.\nOtherwise, if a snippet is active, goes to the active snippet's next\nplaceholder. Returns `false` if no action was taken.\n@param text Optional snippet text to insert. If `nil`, attempts to insert a\n new snippet based on the trigger, the word behind caret, and the current\n lexer.\n@return `false` if no action was taken; `nil` otherwise.\n@see buffer.word_chars
insert_text buffer.insert_text(buffer, pos, text)\nInserts string *text* at position *pos*, removing any selections.\nIf *pos* is `-1`, inserts *text* at the caret position.\nIf the caret is after the *pos*, it is moved appropriately, but not scrolled\ninto view.\n@param buffer A buffer.\n@param pos The position in *buffer* to insert text at, or `-1` for the\n current position.\n@param text The text to insert.
-inspect debugger.inspect(position)\nInspects the symbol (if any) at buffer position *position*, unless the\ndebugger is executing (e.g. not at a breakpoint).\nEmits a `DEBUGGER_INSPECT` event.\n@param position The buffer position to inspect.
integer lexer.integer (pattern)\nA pattern that matches either a decimal, hexadecimal, or octal number.
io _G.io (module)\nExtends Lua's `io` library with Textadept functions for working with files.
is_range_word buffer.is_range_word(buffer, start_pos, end_pos)\nReturns whether or not the the positions *start_pos* and *end_pos* are at\nword boundaries.\n@param buffer A buffer.\n@param start_pos The start position of the range of text in *buffer* to\n check for a word boundary at.\n@param end_pos The end position of the range of text in *buffer* to check for\n a word boundary at.
@@ -680,7 +602,6 @@ join_lines textadept.editing.join_lines()\nJoins the currently selected lines or
keychain keys.keychain (table)\nThe current chain of key sequences. (Read-only.)
keys _G.keys (module)\nManages key bindings in Textadept.
keys _G.keys (table)\nMap of key bindings to commands, with language-specific key tables assigned\nto a lexer name key.
-keys lua_repl.keys (table)\nTable of key bindings for the REPL.
keys textadept.keys (module)\nDefines key bindings for Textadept.\nThis set of key bindings is pretty standard among other text editors, at\nleast for basic editing commands and movements.
kill spawn_proc:kill(signal)\nKills running process *spawn_proc*, or sends it Unix signal *signal*.\n@param signal Optional Unix signal to send to *spawn_proc*. The default value\n is 9 (`SIGKILL`), which kills the process.
last_char_includes lexer.last_char_includes(s)\nCreates and returns a pattern that verifies the first non-whitespace\ncharacter behind the current match position is in string set *s*.\n@param s String character set like one passed to `lpeg.S()`.\n@usage local regex = lexer.last_char_includes('+-*!%^&|=,([{') *\n lexer.range('/')\n@return pattern
@@ -709,7 +630,6 @@ line_from_position lexer.line_from_position(pos)\nReturns the line number (start
line_indent_position buffer.line_indent_position (table, Read-only)\nTable of positions at the ends of indentation per line number.
line_indentation buffer.line_indentation (table)\nTable of column indentation amounts per line number.
line_length buffer.line_length(buffer, line)\nReturns the number of bytes on line number *line*, including end of line\ncharacters.\nTo get line length excluding end of line characters, use\n`buffer.line_end_position[line] - buffer.position_from_line(line)`.\n@param buffer A buffer.\n@param line The line number in *buffer* to get the length of.\n@return number
-line_numbers export.line_numbers (boolean)\nWhether or not to show line numbers in exported output.\nThe default value is `true`.
line_reverse buffer.line_reverse(buffer)\nReverses the order of the selected lines.\n@param buffer A buffer.
line_scroll view.line_scroll(view, columns, lines)\nScrolls the buffer right *columns* columns and down *lines* lines.\nNegative values are allowed.\n@param view A view.\n@param columns The number of columns to scroll horizontally.\n@param lines The number of lines to scroll vertically.
line_scroll_down view.line_scroll_down(view)\nScrolls the buffer down one line, keeping the caret visible.\n@param view A view.
@@ -723,22 +643,14 @@ line_visible view.line_visible (table, Read-only)\nTable of flags per line numbe
lines_join buffer.lines_join(buffer)\nJoins the lines in the target range, inserting spaces between the words\njoined at line boundaries.\n@param buffer A buffer.
lines_on_screen view.lines_on_screen (number, Read-only)\nThe number of completely visible lines in the view.\nIt is possible to have a partial line visible at the bottom of the view.
lines_split buffer.lines_split(buffer, pixel_width, width)\nSplits the lines in the target range into lines *width* pixels wide.\nIf *width* is `0`, splits the lines in the target range into lines as wide as\nthe view.\n@param buffer A buffer.\n@param width The pixel width to split lines at. When `0`, uses the width of\n the view.
-load lexer.load(name, alt_name, cache)\nInitializes or loads and returns the lexer of string name *name*.\nScintilla calls this function in order to load a lexer. Parent lexers also\ncall this function in order to load child lexers and vice-versa. The user\ncalls this function in order to load a lexer when using this module as a Lua\nlibrary.\n@param name The name of the lexing language.\n@param alt_name The alternate name of the lexing language. This is useful for\n embedding the same child lexer with multiple sets of start and end tokens.\n@param cache Flag indicating whether or not to load lexers from the cache.\n This should only be `true` when initially loading a lexer (e.g. not from\n within another lexer for embedding purposes).\n The default value is `false`.\n@return lexer object
+load lexer.load(name, alt_name, cache)\nInitializes or loads and returns the lexer of string name *name*.\nScintilla calls this function in order to load a lexer. Parent lexers also\ncall this function in order to load child lexers and vice-versa. The user\ncalls this function in order to load a lexer when using Scintillua as a Lua\nlibrary.\n@param name The name of the lexing language.\n@param alt_name The alternate name of the lexing language. This is useful for\n embedding the same child lexer with multiple sets of start and end tokens.\n@param cache Flag indicating whether or not to load lexers from the cache.\n This should only be `true` when initially loading a lexer (e.g. not from\n within another lexer for embedding purposes).\n The default value is `false`.\n@return lexer object
load textadept.macros.load(filename)\nLoads a macro from file *filename* or the user-selected file.\n@param filename Optional macro file to load. If `nil`, the user is prompted\n for one.
load textadept.session.load(filename)\nLoads session file *filename* or the user-selected session, returning `true`\nif a session file was opened and read.\nTextadept restores split views, opened buffers, cursor information, recent\nfiles, and bookmarks.\n@param filename Optional absolute path to the session file to load. If `nil`,\n the user is prompted for one.\n@usage textadept.session.load(filename)\n@return `true` if the session file was opened and read; `nil` otherwise.
-log Server:log(message)\nSilently logs the given message.\n@param message String message to log.
-log_rpc lsp.log_rpc (bool)\nLog RPC correspondence to the LSP message buffer.\nThe default value is `false`.
-logging debugger.ansi_c.logging (boolean)\nWhether or not to enable logging. Log messages are printed to stdout.
-logging debugger.lua.logging (boolean)\nWhether or not to enable logging. Log messages are printed to stdout.
lower lexer.lower (pattern)\nA pattern that matches any lower case character ('a'-'z').
lower_case buffer.lower_case(buffer)\nConverts the selected text to lower case letters.\n@param buffer A buffer.
-lsp _G.lsp (module)\n[Experimental]\nA client for Textadept that communicates over the [Language Server\nProtocol][] (LSP) with language servers in order to provide autocompletion,\ncalltips, go to definition, and more.\n\nThis module is not loaded by default. `require('lsp')` must be called from\n*~/.textadept/init.lua*.\n\nThis module implements version 3.12.0 of the protocol, but does not support\nall protocol features. The `Server.new()` function contains the client's\ncurrent set of capabilities.
-lsp textadept.editing.autocompleters.lsp (function)\nAutocompleter function for a language server.
lua _G.keys.lua (table)\nContainer for Lua-specific key bindings.
lua _G.snippets.lua (table)\nContainer for Lua-specific snippets.
lua _M.lua (module)\nThe lua module.\nIt provides utilities for editing Lua code.
-lua debugger.lua (module)\nLanguage debugging support for Lua.\nRequires LuaSocket to be installed. Textadept's `package.cpath` may need to\nbe modified in order to find it.
-lua_repl _G.lua_repl (module)\n[Experimental]\nAn interactive Lua REPL using Textadept's Lua State, similar to Lua's\ninteractive REPL.\n\nThis is an alternative to the single-line Lua command entry.\n\nThis module is not loaded by default. `require('lua_repl')` must be called\nfrom *~/.textadept/init.lua*.
macros textadept.macros (module)\nA module for recording, playing, saving, and loading keyboard macros.\nMenu commands are also recorded.\nAt this time, typing into multiple cursors during macro playback is not\nsupported.
main_selection buffer.main_selection (number)\nThe number of the main or most recent selection.\nOnly an existing selection can be made main.
margin_back_n view.margin_back_n (table)\nTable of background colors, in "0xBBGGRR" format, of margin numbers from\n`1` to `view.margins` (`5` by default).\nOnly affects margins of type `view.MARGIN_COLOR`.
@@ -777,13 +689,10 @@ marker_symbol_defined view.marker_symbol_defined(view, marker)\nReturns the symb
match_case ui.find.match_case (bool)\nMatch search text case sensitively.\nThe default value is `false`.
match_case_label_text ui.find.match_case_label_text (string, Write-only)\nThe text of the "Match case" label.\nThis is primarily used for localization.
maximized ui.maximized (bool)\nWhether or not Textadept's window is maximized.
-maximum_history_size history.maximum_history_size (number)\nThe maximum number of history records to keep per view.\nThe default value is `100`.
menu textadept.menu (module)\nDefines the menus used by Textadept.\nMenus are simply tables of menu items and submenus and may be edited in\nplace. A menu item itself is a table whose first element is a menu label and\nwhose second element is a menu command to run. Submenus have `title` keys\nassigned to string text.
menu ui.menu(menu_table)\nLow-level function for creating a menu from table *menu_table* and returning\nthe userdata.\nYou probably want to use the higher-level `textadept.menu.menubar`,\n`textadept.menu.context_menu`, or `textadept.menu.tab_context_menu` tables.\nEmits a `MENU_CLICKED` event when a menu item is selected.\n@param menu_table A table defining the menu. It is an ordered list of tables\n with a string menu item, integer menu ID, and optional GDK keycode and\n modifier mask. The latter two are used to display key shortcuts in the\n menu. '_' characters are treated as a menu mnemonics. If the menu item is\n empty, a menu separator item is created. Submenus are just nested\n menu-structure tables. Their title text is defined with a `title` key.\n@usage ui.menu{{'_New', 1}, {'_Open', 2}, {''}, {'_Quit', 4}}\n@usage ui.menu{{'_New', 1, string.byte('n'), 4}} -- 'Ctrl+N'\n@see events.MENU_CLICKED\n@see textadept.menu.menubar\n@see textadept.menu.context_menu\n@see textadept.menu.tab_context_menu
menubar textadept.menu.menubar (table)\nThe default main menubar.\nIndividual menus, submenus, and menu items can be retrieved by name in\naddition to table index number.
menubar ui.menubar (table)\nA table of menus defining a menubar. (Write-only).\nThis is a low-level field. You probably want to use the higher-level\n`textadept.menu.menubar`.\n@see textadept.menu.menubar
-merge file_diff.merge(left)\nMerges a change from one buffer to another, depending on the change under\nthe caret and the merge direction.\n@param left Whether to merge from right to left or left to right.
-minimum_line_distance history.minimum_line_distance (number)\nThe minimum number of lines between distinct history records.\nThe default value is `3`.
mode keys.mode (string)\nThe current key mode.\nWhen non-`nil`, all key bindings defined outside of `keys[mode]` are\nignored.\nThe default value is `nil`.
modify buffer.modify (bool, Read-only)\nWhether or not the buffer has unsaved changes.
modify_rule lexer.modify_rule(lexer, id, rule)\nReplaces in lexer *lexer* the existing rule identified by string *id* with\npattern *rule*.\n@param lexer The lexer to modify.\n@param id The id associated with this rule.\n@param rule The LPeg pattern of the rule.
@@ -801,7 +710,6 @@ multiple_select_add_each buffer.multiple_select_add_each(buffer)\nAdds to the se
multiple_select_add_next buffer.multiple_select_add_next(buffer)\nAdds to the set of selections the next occurrence of the main selection\nwithin the target range, makes that occurrence the new main selection, and\nscrolls it into view.\nIf there is no selected text, the current word is used.\n@param buffer A buffer.
multiple_selection buffer.multiple_selection (bool)\nEnable multiple selection.\nThe default value is `false`.
name_of_style buffer.name_of_style(buffer, style)\nReturns the name of style number *style*, which is between `1` and `256`.\n@param buffer A buffer.\n@param style The style number between `1` and `256` to get the name of.\n@return string
-new Server.new(lang, cmd, init_options)\nStarts, initializes, and returns a new language server.\n@param lang Lexer name of the language server.\n@param cmd String command to start the language server.\n@param init_options Optional table of options to be passed to the language\n server for initialization.
new buffer.new()\nCreates a new buffer, displays it in the current view, and returns it.\nEmits a `BUFFER_NEW` event.\n@return the new buffer.\n@see events.BUFFER_NEW
new lexer.new(name, opts)\nCreates a returns a new lexer with the given name.\n@param name The lexer's name.\n@param opts Table of lexer options. Options currently supported:\n * `lex_by_line`: Whether or not the lexer only processes whole lines of\n text (instead of arbitrary chunks of text) at a time.\n Line lexers cannot look ahead to subsequent lines.\n The default value is `false`.\n * `fold_by_indentation`: Whether or not the lexer does not define any fold\n points and that fold points should be calculated based on changes in line\n indentation.\n The default value is `false`.\n * `case_insensitive_fold_points`: Whether or not fold points added via\n `lexer.add_fold_point()` ignore case.\n The default value is `false`.\n * `inherit`: Lexer to inherit from.\n The default value is `nil`.\n@usage lexer.new('rhtml', {inherit = lexer.load('html')})
new_line buffer.new_line(buffer)\nTypes a new line at the caret position according to `buffer.eol_mode`.\n@param buffer A buffer.
@@ -811,15 +719,10 @@ next_indic_number _SCINTILLA.next_indic_number()\nReturns a unique indicator num
next_marker_number _SCINTILLA.next_marker_number()\nReturns a unique marker number for use with `view.marker_define()`.\nUse this function for custom markers in order to prevent clashes with\nidentifiers of other custom markers.\n@usage local marknum = _SCINTILLA.next_marker_number()\n@see view.marker_define
next_user_list_type _SCINTILLA.next_user_list_type()\nReturns a unique user list identier number for use with\n`buffer.user_list_show()`.\nUse this function for custom user lists in order to prevent clashes with\nlist identifiers of other custom user lists.\n@usage local list_type = _SCINTILLA.next_user_list_type()\n@see buffer.user_list_show
nonnewline lexer.nonnewline (pattern)\nA pattern that matches any single, non-newline character.
-notify Server:notify(method, params)\nSends a notification to this language server.\n@param method String method name of the notification.\n@param params Table of parameters for the notification.
-notify_opened Server:notify_opened(buffer)\nNotifies this language server that the given buffer was opened.\n@param buffer Buffer opened.
number lexer.number (pattern)\nA pattern that matches a typical number, either a floating point, decimal,\nhexadecimal, or octal number.
oct_num lexer.oct_num (pattern)\nA pattern that matches an octal number.
ok_msgbox ui.dialogs.ok_msgbox(options)\nPrompts the user with a generic message box dialog defined by dialog options\ntable *options* and with localized "Ok" and "Cancel" buttons, returning the\nselected button's index.\nIf *options*.`string_output` is `true`, returns the selected button's label.\nIf the dialog timed out, returns `0` or `"timeout"`. If the user canceled the\ndialog, returns `-1` or `"delete"`.\n@param options Table of key-value option pairs for the message box.\n\n * `title`: The dialog's title text.\n * `text`: The dialog's main message text.\n * `informative_text`: The dialog's extra informative text.\n * `icon`: The dialog's GTK stock icon name. Examples are\n "gtk-dialog-error", "gtk-dialog-info", "gtk-dialog-question", and\n "gtk-dialog-warning". The dialog does not display an icon by default.\n * `icon_file`: The dialog's icon file path. This option has no effect when\n `icon` is set.\n * `no_cancel`: Do not display the "Cancel" button. The default value is\n `false`.\n * `string_output`: Return the selected button's label (instead of its\n index) or the dialog's exit status instead of the button's index (instead\n of its exit code). The default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@return selected button or exit code
-open_file _G.ui.command_entry.open_file()\nOpens the command entry in a mode that can open files relative to the current\nfile or directory.\nTab-completion is available, and on Win32, Cygwin-style '/c/' root\ndirectories are supported.\nIf no file is ultimately specified, the user is prompted with Textadept's\ndefault File Open dialog.
open_file io.open_file(filenames, encodings)\nOpens *filenames*, a string filename or list of filenames, or the\nuser-selected filename(s).\nEmits a `FILE_OPENED` event.\n@param filenames Optional string filename or table of filenames to open. If\n `nil`, the user is prompted with a fileselect dialog.\n@param encodings Optional string encoding or table of encodings file contents\n are in (one encoding per file). If `nil`, encoding auto-detection is\n attempted via `io.encodings`.\n@see _G.events
-open_file ui.command_entry.open_file (module)\n[Experimental]\nExtends Textadept's `ui.command_entry` with a mode that can open files\nrelative to the current file or directory.\nTab-completion is available.\n\nThis is an alternative to Textadept's default File Open dialog.\n\nThis module is not loaded by default. `require('open_file_mode')` must be\ncalled from *~/.textadept/init.lua*.
-open_image _M.rest.open_image()\nOpens the image specified in an "image" or "figure" directive on the current\nline.
open_recent_file io.open_recent_file()\nPrompts the user to select a recently opened file to be reopened.\n@see recent_files
optionselect ui.dialogs.optionselect(options)\nPrompts the user with an option selection dialog defined by dialog options\ntable *options*, returning the selected button's index along with the indices\nof the selected options.\nIf *options*.`string_output` is `true`, returns the selected button's label\nalong with the text of the selected options.\nIf the dialog timed out, returns `0` or `"timeout"`. If the user canceled the\ndialog, returns `-1` or `"delete"`.\n@param options Table of key-value option pairs for the option select dialog.\n\n * `title`: The dialog's title text.\n * `text`: The dialog's main message text.\n * `items`: The list of string options to show in the option group.\n * `button1`: The right-most button's label. The default value is\n `_L['OK']`.\n * `button2`: The middle button's label.\n * `button3`: The left-most button's label. This option requires `button2`\n to be set.\n * `select`: The indices of initially selected options.\n * `string_output`: Return the selected button's label or the dialog's exit\n status along with the selected options' text instead of the button's\n index or the dialog's exit code along with the options' indices. The\n default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@usage ui.dialogs.optionselect{title = 'Language',\n informative_text = 'Check the languages you understand',\n items = {'English', 'Romanian'}, select = 1, string_output = true}\n@return selected button or exit code, list of selected options
os _G.os (module)\nExtends Lua's `os` library to provide process spawning capabilities.
@@ -838,7 +741,6 @@ paste buffer.paste(buffer)\nPastes the clipboard's contents into the buffer, rep
paste_reindent textadept.editing.paste_reindent()\nPastes the text from the clipboard, taking into account the buffer's\nindentation settings and the indentation of the current and preceding lines.
paths textadept.snippets.paths (table)\nList of directory paths to look for snippet files in.\nFilenames are of the form *lexer.trigger.ext* or *trigger.ext* (*.ext* is an\noptional, arbitrary file extension). If the global `snippets` table does not\ncontain a snippet for a given trigger, this table is consulted for a matching\nfilename, and the contents of that file is inserted as a snippet.\nNote: If a directory has multiple snippets with the same trigger, the snippet\nchosen for insertion is not defined and may not be constant.
patterns textadept.file_types.patterns (table)\nMap of first-line patterns to their associated lexer names.\nEach pattern is matched against the first line in the file.
-pause debugger.pause(...)\nPause debugger execution unless the debugger is already paused (e.g. at a\nbreakpoint).\nEmits a `DEBUGGER_PAUSE` event, passing along any additional arguments given.
play textadept.macros.play()\nPlays a recorded or loaded macro.\n@see load
position_after buffer.position_after(buffer, pos)\nReturns the position of the character after position *pos* (taking multi-byte\ncharacters into account), or `buffer.length + 1` if there is no character\nafter *pos*.\n@param buffer A buffer.\n@param pos The position in *buffer* to get the position after from.
position_before buffer.position_before(buffer, pos)\nReturns the position of the character before position *pos* (taking\nmulti-byte characters into account), or `1` if there is no character before\n*pos*.\n@param buffer A buffer.\n@param pos The position in *buffer* to get the position before from.\n@return number
@@ -857,15 +759,11 @@ property_int lexer.property_int (table, Read-only)\nMap of key-value pairs with
property_int view.property_int (table, Read-only)\nMap of key-value pairs used by lexers with values interpreted as numbers,\nor `0` if not found.
punct lexer.punct (pattern)\nA pattern that matches any punctuation character ('!' to '/', ':' to '@',\n'[' to ''', '{' to '~').
punctuation_chars buffer.punctuation_chars (string)\nThe string set of characters recognized as punctuation characters.\nSet this only after setting `buffer.word_chars`.\nThe default value is a string that contains all non-word and non-whitespace\ncharacters.
-python _G.keys.python (table)\nContainer for Python-specific key bindings.
-python _G.snippets.python (table)\nContainer for Python-specific snippets.
-python _M.python (module)\nThe python module.\nIt provides utilities for editing Python code.
quick_open io.quick_open(paths, filter, opts)\nPrompts the user to select files to be opened from *paths*, a string\ndirectory path or list of directory paths, using a filtered list dialog.\nIf *paths* is `nil`, uses the current project's root directory, which is\nobtained from `io.get_project_root()`.\nString or list *filter* determines which files to show in the dialog, with\nthe default filter being `io.quick_open_filters[path]` (if it exists) or\n`lfs.default_filter`. A filter consists of Lua patterns that match file and\ndirectory paths to include or exclude. Patterns are inclusive by default.\nExclusive patterns begin with a '!'. If no inclusive patterns are given, any\npath is initially considered. As a convenience, file extensions can be\nspecified literally instead of as a Lua pattern (e.g. '.lua' vs. '%.lua$'),\nand '/' also matches the Windows directory separator ('[/\\]' is not needed).\nThe number of files in the list is capped at `quick_open_max`.\nIf *filter* is `nil` and *paths* is ultimately a string, the filter from the\n`io.quick_open_filters` table is used. If that filter does not exist,\n`lfs.default_filter` is used.\n*opts* is an optional table of additional options for\n`ui.dialogs.filteredlist()`.\n@param paths Optional string directory path or table of directory paths to\n search. The default value is the current project's root directory, if\n available.\n@param filter Optional filter for files and directories to include and/or\n exclude. The default value is `lfs.default_filter` unless *paths* is a\n string and a filter for it is defined in `io.quick_open_filters`.\n@param opts Optional table of additional options for\n `ui.dialogs.filteredlist()`.\n@usage io.quick_open(buffer.filename:match('^.+/')) -- list all files in the\n current file's directory, subject to the default filter\n@usage io.quick_open(io.get_current_project(), '.lua') -- list all Lua files\n in the current project\n@usage io.quick_open(io.get_current_project(), '!/build') -- list all files\n in the current project except those in the build directory\n@see io.quick_open_filters\n@see lfs.default_filter\n@see quick_open_max\n@see ui.dialogs.filteredlist
quick_open_filters io.quick_open_filters (table)\nMap of directory paths to filters used by `io.quick_open()`.\n@see quick_open
quick_open_max io.quick_open_max (number)\nThe maximum number of files listed in the quick open dialog.\nThe default value is `1000`.
quit _G.quit()\nEmits a `QUIT` event, and unless any handler returns `false`, quits\nTextadept.\n@see events.QUIT
range lexer.range(s, e, single_line, escapes, balanced)\nCreates and returns a pattern that matches a range of text bounded by strings\nor patterns *s* and *e*.\nThis is a convenience function for matching more complicated ranges like\nstrings with escape characters, balanced parentheses, and block comments\n(nested or not). *e* is optional and defaults to *s*. *single_line* indicates\nwhether or not the range must be on a single line; *escapes* indicates\nwhether or not to allow '\' as an escape character; and *balanced* indicates\nwhether or not to handle balanced ranges like parentheses, and requires *s*\nand *e* to be different.\n@param s String or pattern start of a range.\n@param e Optional string or pattern end of a range. The default value is *s*.\n@param single_line Optional flag indicating whether or not the range must be\n on a single line.\n@param escapes Optional flag indicating whether or not the range end may\n be escaped by a '\' character.\n The default value is `false` unless *s* and *e* are identical,\n single-character strings. In that case, the default value is `true`.\n@param balanced Optional flag indicating whether or not to match a balanced\n range, like the "%b" Lua pattern. This flag only applies if *s* and *e* are\n different.\n@usage local dq_str_escapes = lexer.range('"')\n@usage local dq_str_noescapes = lexer.range('"', false, false)\n@usage local unbalanced_parens = lexer.range('(', ')')\n@usage local balanced_parens = lexer.range('(', ')', false, false, true)\n@return pattern
-read Server:read()\nReads and returns an incoming JSON message from this language server.\n@return table of data from JSON
read spawn_proc:read(arg)\nReads and returns stdout from process *spawn_proc*, according to string\nformat or number *arg*.\nSimilar to Lua's `io.read()` and blocks for input. *spawn_proc* must still be\nrunning. If an error occurs while reading, returns `nil`, an error code, and\nan error message.\nEnsure any read operations read all stdout available, as the stdout callback\nfunction passed to `os.spawn()` will not be called until the stdout buffer is\nclear.\n@param arg Optional argument similar to those in Lua's `io.read()`, but "n"\n is not supported. The default value is "l", which reads a line.\n@return string of bytes read
read_only buffer.read_only (bool)\nWhether or not the buffer is read-only.\nThe default value is `false`.
recent_files io.recent_files (table)\nList of recently opened files, the most recent being towards the top.
@@ -882,8 +780,6 @@ register args.register(short, long, narg, f, description)\nRegisters a command l
register_image view.register_image(view, type, xpm_data)\nRegisters XPM image *xpm_data* to type number *type* for use in\nautocompletion and user lists.\n@param view A view.\n@param type Integer type to register the image with.\n@param xpm_data The XPM data as described in `view.marker_define_pixmap()`.
register_rgba_image view.register_rgba_image(view, type, pixels)\nRegisters RGBA image *pixels* to type number *type* for use in autocompletion\nand user lists.\nThe dimensions for *pixels* (`view.rgba_image_width` and\n`view.rgba_image_height`) must have already been defined. *pixels* is a\nsequence of 4 byte pixel values (red, blue, green, and alpha) defining the\nimage line by line starting at the top-left pixel.\n@param view A view.\n@param type Integer type to register the image with.\n@param pixels The RGBA data as described in\n `view.marker_define_rgba_image()`.
reload buffer.reload(buffer)\nReloads the buffer's file contents, discarding any changes.\n@param buffer A buffer.
-remove_breakpoint debugger.remove_breakpoint(file, line)\nRemoves a breakpoint from line number *line* in file *file*, or prompts the\nuser for a breakpoint(s) to remove.\nEmits a `DEBUGGER_BREAKPOINT_REMOVED` event if the debugger is running.\nIf the debugger is executing (e.g. not at a breakpoint), assumes a breakpoint\ncannot be removed and shows an error message.\n@param file Optional filename of the breakpoint to remove.\n@param line Optional 1-based line number of the breakpoint to remove.
-remove_watch debugger.remove_watch(id)\nStops watching the expression identified by *id*, or the expression selected\nby the user.\nEmits a `DEBUGGER_WATCH_REMOVED` event if the debugger is running.\nIf the debugger is executing (e.g. not at a breakpoint), assumes a watch\ncannot be set and shows an error message.\n@param id ID number of the expression, as given in the `DEBUGGER_WATCH_ADDED`\n event.
replace ui.find.replace()\nMimics pressing the "Replace" button.
replace_all ui.find.replace_all()\nMimics pressing the "Replace All" button.
replace_all_button_text ui.find.replace_all_button_text (string, Write-only)\nThe text of the "Replace All" button.\nThis is primarily used for localization.
@@ -894,20 +790,11 @@ replace_sel buffer.replace_sel(buffer, text)\nReplaces the selected text with st
replace_target buffer.replace_target(buffer, text)\nReplaces the text in the target range with string *text* sans modifying any\nselections or scrolling the view.\nSetting the target and calling this function with an empty string is another\nway to delete text.\n@param buffer A buffer.\n@param text The text to replace the target range with.\n@return number
replace_target_re buffer.replace_target_re(buffer, text)\nReplaces the text in the target range with string *text* but first replaces\nany "\d" sequences with the text of capture number *d* from the regular\nexpression (or the entire match for *d* = 0), and then returns the\nreplacement text's length.\n@param buffer A buffer.\n@param text The text to replace the target range with.\n@return number
representation view.representation (table)\nThe alternative string representations of characters.\nRepresentations are displayed in the same way control characters are. Use\nthe empty string for the '\0' character when assigning its representation.\nCharacters are strings, not numeric codes.\nCall `view.clear_representation()` to remove a representation.
-request Server:request(method, params)\nSends a request to this language server and returns the result of the\nrequest.\nAny intermediate notifications from the server are processed, but any\nintermediate requests from the server are ignored.\nNote: at this time, requests are synchronous, so the id number for a response\nwill be the same as the id number for a request.\n@param method String method name of the request.\n@param params Table of parameters for the request.\n@return table result of the request, or nil if the result was `json.null`.
reset _G.reset()\nResets the Lua State by reloading all initialization scripts.\nLanguage modules for opened files are NOT reloaded. Re-opening the files that\nuse them will reload those modules instead.\nThis function is useful for modifying user scripts (such as\n*~/.textadept/init.lua* and *~/.textadept/modules/textadept/keys.lua*) on\nthe fly without having to restart Textadept. `arg` is set to `nil` when\nreinitializing the Lua State. Any scripts that need to differentiate between\nstartup and reset can test `arg`.
-respond Server:respond(id, result)\nResponds to an unsolicited request from this language server.\n@param id Numeric ID of the request.\n@param result Table result of the request.
-rest _G.keys.rest (table)\nContainer for reST-specific key bindings.
-rest _G.snippets.rest (table)\nContainer for reST-specific snippets.
-rest _M.rest (module)\nThe reST module.\nIt provides utilities for editing reST and Sphinx documents.
-restart debugger.restart(...)\nRestarts debugger execution from the beginning.\nEmits a `DEBUGGER_PAUSE` event, passing along any additional arguments given.
rgba_image_height view.rgba_image_height (number)\nThe height of the RGBA image to be defined using\n`view.marker_define_rgba_image()`.
rgba_image_scale view.rgba_image_scale (number)\nThe scale factor in percent of the RGBA image to be defined using\n`view.marker_define_rgba_image()`.\nThis is useful on macOS with a retina display where each display unit is 2\npixels: use a factor of `200` so that each image pixel is displayed using a\nscreen pixel. The default scale, `100`, will stretch each image pixel to\ncover 4 screen pixels on a retina display.
rgba_image_width view.rgba_image_width (number)\nThe width of the RGBA image to be defined using\n`view.marker_define_rgba_image()` and\n`view.register_rgba_image()`.
rotate_selection buffer.rotate_selection(buffer)\nDesignates the next additional selection to be the main selection.\n@param buffer A buffer.
-ruby _G.keys.ruby (table)\nContainer for Ruby-specific key bindings.
-ruby _G.snippets.ruby (table)\nContainer for Ruby-specific snippets.
-ruby _M.ruby (module)\nThe ruby module.\nIt provides utilities for editing Ruby code.
run textadept.run (module)\nCompile and run source code files with Textadept.\nLanguage modules may tweak the `compile_commands`,\n`run_commands`, and `error_patterns` tables for particular languages.\nThe user may tweak `build_commands` for particular projects.
run textadept.run.run(filename)\nRuns file *filename* or the current file using an appropriate shell command\nfrom the `run_commands` table.\nThe shell command is determined from the file's filename, extension, or\nlanguage in that order.\nEmits `RUN_OUTPUT` events.\n@param filename Optional path to the file to run. The default value is the\n current file's filename.\n@see run_commands\n@see _G.events
run ui.command_entry.run(f, keys, lang, height)\nOpens the command entry, subjecting it to any key bindings defined in table\n*keys*, highlighting text with lexer name *lang*, and displaying\n*height* number of lines at a time, and then when the `Enter` key is pressed,\ncloses the command entry and calls function *f* (if non-`nil`) with the\ncommand entry's text as an argument.\nBy default with no arguments given, opens a Lua command entry.\nThe command entry does not respond to Textadept's default key bindings, but\ninstead to the key bindings defined in *keys* and in\n`ui.command_entry.editing_keys`.\n@param f Optional function to call upon pressing `Enter` in the command\n entry, ending the mode. It should accept the command entry text as an\n argument.\n@param keys Optional table of key bindings to respond to. This is in\n addition to the basic editing and movement keys defined in\n `ui.command_entry.editing_keys`.\n `Esc` and `Enter` are automatically defined to cancel and finish the\n command entry, respectively.\n This parameter may be omitted completely.\n@param lang Optional string lexer name to use for command entry text. The\n default value is `'text'`.\n@param height Optional number of lines to display in the command entry. The\n default value is `1`.\n@usage ui.command_entry.run(ui.print)\n@see editing_keys
@@ -957,7 +844,6 @@ selection_n_start buffer.selection_n_start (table)\nTable of positions at the be
selection_n_start_virtual_space buffer.selection_n_start_virtual_space (number, Read-only)\nTable of positions at the beginning of virtual space selected in existing\nselections numbered from `1`, the main selection.
selection_start buffer.selection_start (number)\nThe position of the beginning of the selected text.\nWhen set, becomes the anchor, but is not scrolled into view.
selections buffer.selections (number, Read-only)\nThe number of active selections. There is always at least one selection.
-server_commands lsp.server_commands (table)\nMap of lexer names to LSP language server commands or configurations, or\nfunctions that return either a server command or a configuration.\nCommands are simple string shell commands. Configurations are tables with the\nfollowing keys:\n\n * `command`: String shell command used to run the LSP language server.\n * `init_options`: Table of initialization options to pass to the language\n server in the "initialize" request.
session textadept.session (module)\nSession support for Textadept.
set_chars_default buffer.set_chars_default(buffer)\nResets `buffer.word_chars`, `buffer.whitespace_chars`, and\n`buffer.punctuation_chars` to their respective defaults.\n@param buffer A buffer.\n@see word_chars\n@see whitespace_chars\n@see punctuation_chars
set_default_fold_display_text view.set_default_fold_display_text(view, text)\nSets the default fold display text to string *text*.\n@param view A view.\n@param text The text to display by default next to folded lines.\n@see toggle_fold_show_text
@@ -965,7 +851,6 @@ set_empty_selection buffer.set_empty_selection(buffer, pos)\nMoves the caret to
set_encoding buffer.set_encoding(buffer, encoding)\nConverts the current buffer's contents to encoding *encoding*.\n@param buffer A buffer.\n@param encoding The string encoding to set. Valid encodings are ones that GNU\n iconv accepts. If `nil`, assumes a binary encoding.\n@usage buffer:set_encoding('CP1252')
set_fold_margin_color view.set_fold_margin_color(view, use_setting, color)\nOverrides the fold margin's default color with color *color*, in "0xBBGGRR"\nformat,\nif *use_setting* is `true`.\n@param view A view.\n@param use_setting Whether or not to use *color*.\n@param color The color in "0xBBGGRR" format.
set_fold_margin_hi_color view.set_fold_margin_hi_color(view, use_setting, color)\nOverrides the fold margin's default highlight color with color *color*, in\n"0xBBGGRR" format, if *use_setting* is `true`.\n@param view A view.\n@param use_setting Whether or not to use *color*.\n@param color The color in "0xBBGGRR" format.
-set_frame debugger.set_frame()\nPrompts the user to select a stack frame to switch to from the current\ndebugger call stack, unless the debugger is executing (e.g. not at a\nbreakpoint).\nEmits a `DEBUGGER_SET_FRAME` event.
set_lexer buffer.set_lexer(buffer, name)\nAssociates string lexer name *name* or the auto-detected lexer name with the\nbuffer and then loads the appropriate language module if that module exists.\n@param buffer A buffer.\n@param name Optional string lexer name to set. If `nil`, attempts to\n auto-detect the buffer's lexer.\n@usage buffer:set_lexer('lexer_name')
set_save_point buffer.set_save_point(buffer)\nIndicates the buffer has no unsaved changes.\n@param buffer A buffer.
set_sel buffer.set_sel(buffer, start_pos, end_pos)\nSelects the range of text between positions *start_pos* and *end_pos*,\nscrolling the selected text into view.\n@param buffer A buffer.\n@param start_pos The start position of the range of text in *buffer* to\n select. If negative, it means the end of the buffer.\n@param end_pos The end position of the range of text in *buffer* to select.\n If negative, it means remove any selection (i.e. set the `anchor` to the\n same position as `current_pos`).
@@ -977,15 +862,12 @@ set_target_range buffer.set_target_range(buffer, start_pos, end_pos)\nDefines th
set_text buffer.set_text(buffer, text)\nReplaces the buffer's text with string *text*.\n@param buffer A buffer.\n@param text The text to set.
set_theme view.set_theme(view, name, env)\nSets the view's color theme to be string *name*, with the contents of table\n*env* available as global variables.\nUser themes override Textadept's default themes when they have the same name.\nIf *name* contains slashes, it is assumed to be an absolute path to a theme\ninstead of a theme name.\n@param view A view.\n@param name The name or absolute path of a theme to set.\n@param env Optional table of global variables themes can utilize to override\n default settings such as font and size.\n@usage view:set_theme('light', {font = 'Monospace', size = 12})\n@see _G.lexer.colors\n@see _G.lexer.styles
set_visible_policy view.set_visible_policy(view, policy, y)\nDefines scrolling policy bit-mask *policy* as the policy for keeping the\ncaret *y* number of lines away from the vertical margins as\n`view.ensure_visible_enforce_policy()` redisplays hidden or folded lines.\nIt is similar in operation to `view.set_y_caret_policy()`.\n@param view A view.\n@param policy The combination of `view.VISIBLE_SLOP` and\n `view.VISIBLE_STRICT` policy flags to set.\n@param y The number of lines from the vertical margins to keep the caret.
-set_watch debugger.set_watch(expr)\nWatches string expression *expr* for changes and breaks on each change.\nEmits a `DEBUGGER_WATCH_ADDED` event if the debugger is running, or queues up\nthe event to run in `debugger.start()`.\nIf the debugger is executing (e.g. not at a breakpoint), assumes a watch\ncannot be set and shows an error message.\n@param expr String expression to watch.
set_whitespace_back view.set_whitespace_back(view, use_setting, color)\nOverrides the background color of whitespace with color *color*, in\n"0xBBGGRR" format, if *use_setting* is `true`.\n@param view A view.\n@param use_setting Whether or not to use *color*.\n@param color The color in "0xBBGGRR" format.
set_whitespace_fore view.set_whitespace_fore(view, use_setting, color)\nOverrides the foreground color of whitespace with color *color*, in\n"0xBBGGRR" format, if *use_setting* is `true`.\n@param use_setting Whether or not to use *color*.\n@param color The color in "0xBBGGRR" format.
set_x_caret_policy view.set_x_caret_policy(view, policy, x)\nDefines scrolling policy bit-mask *policy* as the policy for keeping the\ncaret *x* number of pixels away from the horizontal margins.\n@param view A view.\n@param policy The combination of `view.CARET_SLOP`, `view.CARET_STRICT`,\n `view.CARET_EVEN`, and `view.CARET_JUMPS` policy flags to set.\n@param x The number of pixels from the horizontal margins to keep the caret.
set_y_caret_policy view.set_y_caret_policy(view, policy, y)\nDefines scrolling policy bit-mask *policy* as the policy for keeping the\ncaret *y* number of lines away from the vertical margins.\n@param view A view.\n@param policy The combination of `view.CARET_SLOP`, `view.CARET_STRICT`,\n `view.CARET_EVEN`, and `view.CARET_JUMPS` policy flags to set.\n@param y The number of lines from the vertical margins to keep the caret.
-show_all_diagnostics lsp.show_all_diagnostics (bool)\nWhether or not to show all diagnostics.\nThe default value is `false`, and assumes any diagnostics on the current\nline or next line are due to an incomplete statement during something like\nan autocompletion, signature help, etc. request.
show_documentation textadept.editing.show_documentation(pos, ignore_case)\nDisplays a call tip with documentation for the symbol under or directly\nbehind position *pos* or the caret position.\nDocumentation is read from API files in the `api_files` table.\nIf a call tip is already shown, cycles to the next one if it exists.\nSymbols are determined by using `buffer.word_chars`.\n@param pos Optional position of the symbol to show documentation for. If\n omitted, the caret position is used.\n@param ignore_case Optional flag that indicates whether or not to search\n API files case-insensitively for symbols. The default value is `false`.\n@see api_files\n@see buffer.word_chars
show_lines view.show_lines(view, start_line, end_line)\nShows the range of lines between line numbers *start_line* to *end_line*.\nThis has no effect on fold levels or fold flags and the first line cannot be\nhidden.\n@param view A view.\n@param start_line The start line of the range of lines in *view* to show.\n@param end_line The end line of the range of lines in *view* to show.
-signature_help lsp.signature_help()\nShows a calltip for the current function.\nIf a call tip is already shown, cycles to the next one if it exists.
silent_print ui.silent_print (bool)\nWhether or not to print messages to buffers silently.\nThis is not guaranteed to be a constant value, as Textadept may change it\nfor the editor's own purposes. This flag should be used only in conjunction\nwith a group of `ui.print()` and `ui._print()` function calls.\nThe default value is `false`, and focuses buffers when messages are printed\nto them.
size ui.size (table)\nA table containing the width and height pixel values of Textadept's window.
size view.size (number)\nThe split resizer's pixel position if the view is a split one.
@@ -994,26 +876,13 @@ snippets _G.snippets (table)\nMap of snippet triggers with their snippet text or
snippets textadept.snippets (module)\nSnippets for Textadept.
space lexer.space (pattern)\nA pattern that matches any whitespace character ('\t', '\v', '\f', '\\n',\n'\r', space).
spawn os.spawn(cmd, cwd, env, stdout_cb, stderr_cb, exit_cb)\nSpawns an interactive child process *cmd* in a separate thread, returning\na handle to that process.\nOn Windows, *cmd* is passed to `cmd.exe`: `%COMSPEC% /c [cmd]`.\nAt the moment, only the Windows terminal version spawns processes in the same\nthread.\n@param cmd A command line string that contains the program's name followed by\n arguments to pass to it. `PATH` is searched for program names.\n@param cwd Optional current working directory (cwd) for the child\n process. When omitted, the parent's cwd is used.\n@param env Optional table of environment variables for the child process.\n When omitted, the parent's environment is used.\n@param stdout_cb Optional Lua function that accepts a string parameter for a\n block of standard output read from the child. Stdout is read asynchronously\n in 1KB or 0.5KB blocks (depending on the platform), or however much data is\n available at the time.\n At the moment, only the Win32 terminal version sends all output, whether it\n be stdout or stderr, to this callback after the process finishes.\n@param stderr_cb Optional Lua function that accepts a string parameter for a\n block of standard error read from the child. Stderr is read asynchronously\n in 1KB or 0.5kB blocks (depending on the platform), or however much data is\n available at the time.\n@param exit_cb Optional Lua function that is called when the child process\n finishes. The child's exit status is passed.\n@usage os.spawn('lua ' .. buffer.filename, print)\n@usage proc = os.spawn('lua -e "print(io.read())"', print)\n proc:write('foo\\n')\n@return proc or nil plus an error message on failure
-spell _G.spell(aff, dic, key)\nReturns a Hunspell spellchecker that utilizes affix file path *aff* and\ndictionary file path *dic*.\n@param aff Path to the Hunspell affix file to use.\n@param dic Path to the Hunspell dictionary file to use.\n@param key Optional string key for encrypted *dic*.\n@usage spellchecker = spell('/usr/share/hunspell/en_US.aff',\n '/usr/share/hunspell/en_US.dic')\n spellchecker:spell('foo') --> false\n@return spellchecker
-spell spellchecker:spell(word)\nReturns `true` if string *word* is spelled correctly; `false` otherwise.\n@param word The word to check spelling of.\n@return `true` or `false`
-spellcheck _G.spellcheck (module)\n[Experimental]\nSpell checking for Textadept.\n\nThis module is not loaded by default. `require('spellcheck')` must be called\nfrom *~/.textadept/init.lua*.\n\nBy default, Textadept attempts to load a preexisting Hunspell dictionary\nfor the detected locale. If none exists, or if the locale is not detected,\nTextadept falls back on its own prepackaged US English dictionary. User\ndictionaries are located in the *~/.textadept/dictionaries/* directory, and\nare loaded automatically.\n\nDictionary files are Hunspell dictionaries and follow the Hunspell format:\nthe first line in a dictionary file contains the number of entries contained\nwithin, and each subsequent line contains a word.\n\nAt this time, this module does not work in the terminal version on Win32.
-spellcheckable_styles spellcheck.spellcheckable_styles (table)\nTable of spellcheck-able style names.\nText with either of these styles is eligible for spellchecking.\nThe style name keys are assigned non-`nil` values. The default styles are\n`default`, `comment`, and `string`.
-spellchecker spellcheck.spellchecker (userdata)\nThe Hunspell spellchecker object.
split view.split(view, vertical)\nSplits the view into top and bottom views (unless *vertical* is `true`),\nfocuses the new view, and returns both the old and new views.\nIf *vertical* is `false`, splits the view vertically into left and\nright views.\nEmits a `VIEW_NEW` event.\n@param view The view to split.\n@param vertical Optional flag indicating whether or not to split the view\n vertically. The default value is `false`, for horizontal.\n@return old view and new view.\n@see events.VIEW_NEW
standard_dropdown ui.dialogs.standard_dropdown(options)\nPrompts the user with a drop-down item selection dialog defined by dialog\noptions table *options* and with localized "Ok" and "Cancel" buttons,\nreturning the selected button's index along with the selected item's index.\nIf *options*.`string_output` is `true`, returns the selected button's label\nalong with the selected item's text.\nIf the dialog closed due to *options*.`exit_onchange`, returns `4` along with\neither the selected item's index or its text. If the dialog timed out,\nreturns `0` or `"timeout"`. If the user canceled the dialog, returns `-1` or\n`"delete"`.\n@param options Table of key-value option pairs for the drop-down dialog.\n\n * `title`: The dialog's title text.\n * `text`: The dialog's main message text.\n * `items`: The list of string items to show in the drop-down.\n * `no_cancel`: Do not display the "Cancel" button. The default value is\n `false`.\n * `exit_onchange`: Close the dialog after selecting a new item. The default\n value is `false`.\n * `select`: The index of the initially selected list item. The default\n value is `1`.\n * `string_output`: Return the selected button's label (instead of its\n index) and the selected item's text (instead of its index). If no item\n was selected, returns the dialog's exit status (instead of its exit\n code). The default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@return selected button or exit code, selected item
standard_inputbox ui.dialogs.standard_inputbox(options)\nPrompts the user with an inputbox dialog defined by dialog options table\n*options* and with localized "Ok" and "Cancel" buttons, returning the\nselected button's index along with the user's input text (the latter as a\nstring or table, depending on the type of *options*.`informative_text`).\nIf *options*.`string_output` is `true`, returns the selected button's label\nalong with the user's input text.\nIf the dialog timed out, returns `0` or `"timeout"`. If the user canceled the\ndialog, returns `-1` or `"delete"`.\n@param options Table of key-value option pairs for the inputbox.\n\n * `title`: The dialog's title text.\n * `informative_text`: The dialog's main message text. If the value is a\n table, the first table value is the main message text and any subsequent\n values are used as the labels for multiple entry boxes. Providing a\n single label has no effect.\n * `text`: The dialog's initial input text. If the value is a table, the\n table values are used to populate the multiple entry boxes defined by\n `informative_text`.\n * `no_cancel`: Do not display the "Cancel" button. The default value is\n `false`.\n * `string_output`: Return the selected button's label (instead of its\n index) or the dialog's exit status instead of the button's index (instead\n of its exit code). The default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@return selected button or exit code, input text
-start debugger.start(lang, ...)\nStarts a debugger and adds any queued breakpoints and watches.\nEmits a `DEBUGGER_START` event, passing along any arguments given. If a\ndebugger cannot be started, the event handler should throw an error.\nThis only starts a debugger. `debugger.continue()`,\n`debugger.step_into()`, or `debugger.step_over()` should be called\nnext to begin debugging.\n@param lang Optional lexer name of the language to start debugging. The\n default value is the name of the current lexer.\n@return whether or not a debugger was started
-start file_diff.start(file1, file2, horizontal)\nHighlight differences between files *file1* and *file2*, or the user-selected\nfiles.\n@param file1 Optional name of the older file. If `-`, uses the current\n buffer. If `nil`, the user is prompted for a file.\n@param file2 Optional name of the newer file. If `-`, uses the current\n buffer. If `nil`, the user is prompted for a file.\n@param horizontal Optional flag specifying whether or not to split the view\n horizontally. The default value is `false`, comparing the two files\n side-by-side.
-start lsp.start()\nStarts a language server based on the current language.
start_styling buffer.start_styling(buffer, position, unused)\nBegins styling at position *position* with styling bit-mask *style_mask*.\n*style_mask* specifies which style bits can be set with\n`buffer.set_styling()`.\n@param buffer A buffer.\n@param position The position in *buffer* to start styling at.\n@param unused Unused number. `0` can be safely used.\n@usage buffer:start_styling(1, 0)\n@see set_styling
starts_line lexer.starts_line(patt)\nCreates and returns a pattern that matches pattern *patt* only at the\nbeginning of a line.\n@param patt The LPeg pattern to match on the beginning of a line.\n@usage local preproc = token(lexer.PREPROCESSOR, lexer.starts_line('#') *\n lexer.nonnewline^0)\n@return pattern
status spawn_proc:status()\nReturns the status of process *spawn_proc*, which is either "running" or\n"terminated".\n@return "running" or "terminated"
statusbar_text ui.statusbar_text (string, Write-only)\nThe text displayed in the statusbar.
-step_into debugger.step_into(...)\nContinue debugger execution by one line, stepping into functions, unless the\ndebugger is already executing (e.g. not at a breakpoint).\nIf no debugger is running, starts one, then steps.\nEmits a `DEBUGGER_STEP_INTO` event, passing along any arguments given.
-step_out debugger.step_out(...)\nContinue debugger execution, stepping out of the current function, unless the\ndebugger is already executing (e.g. not at a breakpoint).\nEmits a `DEBUGGER_STEP_OUT` event, passing along any additional arguments\ngiven.
-step_over debugger.step_over(...)\nContinue debugger execution by one line, stepping over functions, unless the\ndebugger is already executing (e.g. not at a breakpoint).\nIf no debugger is running, starts one, then steps.\nEmits a `DEBUGGER_STEP_OVER` event, passing along any arguments given.
-stop debugger.stop(lang, ...)\nStops debugging.\nDebuggers should call this function when finished.\nEmits a `DEBUGGER_STOP` event, passing along any arguments given.\n@param lang Optional lexer name of the language to stop debugging. The\n default value is the name of the current lexer.
-stop lsp.stop()\nStops a running language server based on the current language.
stop textadept.run.stop()\nStops the currently running process, if any.
string _G.string (module)\nExtends Lua's `string` library to provide character set conversions.
strip_trailing_spaces textadept.editing.strip_trailing_spaces (bool)\nStrip trailing whitespace before saving files.\nThe default value is `false`.
@@ -1038,10 +907,8 @@ style_size view.style_size (table)\nTable of font sizes of text for style number
style_underline view.style_underline (table)\nTable of flags that indicate whether or not text is underlined for style\nnumbers from `1` to `256`.\nThe default values are `false`.
style_visible view.style_visible (table)\nTable of flags that indicate whether or not text is visible for style\nnumbers from `1` to `256`.\nThe default values are `true`.
styles lexer.styles (table)\nMap of style names to style definition tables.\n\nStyle names consist of the following default names as well as the token names\ndefined by lexers.\n\n* `default`: The default style all others are based on.\n* `line_number`: The line number margin style.\n* `control_char`: The style of control character blocks.\n* `indent_guide`: The style of indentation guides.\n* `call_tip`: The style of call tip text. Only the `font`, `size`, `fore`,\n and `back` style definition fields are supported.\n* `fold_display_text`: The style of text displayed next to folded lines.\n* `class`, `comment`, `constant`, `embedded`, `error`, `function`,\n `identifier`, `keyword`, `label`, `number`, `operator`, `preprocessor`,\n `regex`, `string`, `type`, `variable`, `whitespace`: Some token names used\n by lexers. Some lexers may define more token names, so this list is not\n exhaustive.\n\nStyle definition tables may contain the following fields:\n\n* `font`: String font name.\n* `size`: Integer font size.\n* `bold`: Whether or not the font face is bold. The default value is `false`.\n* `weight`: Integer weight or boldness of a font, between 1 and 999.\n* `italics`: Whether or not the font face is italic. The default value is\n `false`.\n* `underlined`: Whether or not the font face is underlined. The default value\n is `false`.\n* `fore`: Font face foreground color in `0xBBGGRR` or `"#RRGGBB"` format.\n* `back`: Font face background color in `0xBBGGRR` or `"#RRGGBB"` format.\n* `eolfilled`: Whether or not the background color extends to the end of the\n line. The default value is `false`.\n* `case`: Font case, `'u'` for upper, `'l'` for lower, and `'m'` for normal,\n mixed case. The default value is `'m'`.\n* `visible`: Whether or not the text is visible. The default value is `true`.\n* `changeable`: Whether the text is changeable instead of read-only. The\n default value is `true`.
-suggest spellchecker:suggest(word)\nReturns a list of spelling suggestions for string *word*.\nIf *word* is spelled correctly, the returned list will be empty.\n@param word The word to get spelling suggestions for.\n@return list of suggestions
swap_main_anchor_caret buffer.swap_main_anchor_caret(buffer)\nSwaps the main selection's beginning and end positions.\n@param buffer A buffer.
switch_buffer ui.switch_buffer(zorder)\nPrompts the user to select a buffer to switch to.\nBuffers are listed in the order they were opened unless `zorder` is `true`,\nin which case buffers are listed by their z-order (most recently viewed to\nleast recently viewed).\n@param zorder Flag that indicates whether or not to list buffers by their\n z-order. The default value is `false`.
-sync_buffer Server:sync_buffer()\nSynchronizes the current buffer with this language server.\nChanges are not synchronized in real-time, but whenever a request is about to\nbe sent.
tab buffer.tab(buffer)\nIndents the text on the selected lines or types a Tab character ("\t") at\nthe caret position.\n@param buffer A buffer.
tab_context_menu textadept.menu.tab_context_menu (table)\nThe default tabbar context menu.\nSubmenus, and menu items can be retrieved by name in addition to table index\nnumber.
tab_context_menu ui.tab_context_menu (userdata)\nThe context menu for the buffer's tab, a `ui.menu()`.\nThis is a low-level field. You probably want to use the higher-level\n`textadept.menu.tab_context_menu`.
@@ -1053,8 +920,6 @@ tabs ui.tabs (bool)\nWhether or not to display the tab bar when multiple buffers
tag buffer.tag (table, Read-only)\nList of capture text for capture numbers from a regular expression search.
tags _M.ansi_c.tags (table)\nList of ctags files to use for autocompletion in addition to the current\nproject's top-level *tags* file or the current directory's *tags* file.
tags _M.lua.tags (table)\nList of "fake" ctags files (or functions that return such files) to use for\nautocompletion.\nThe kind 'm' is recognized as a module, 'f' as a function, 't' as a table and\n'F' as a module or table field.\nThe *modules/lua/tadoc.lua* script can generate *tags* and\n*api* files for Lua modules via LuaDoc.
-tags _M.python.tags (table)\nList of ctags files to use for autocompletion.
-tags _M.ruby.tags (table)\nList of "fake" ctags files to use for autocompletion.\nIn addition to the normal ctags kinds for Ruby, the kind 'C' is recognized as\na constant and 'a' as an attribute.
target_end buffer.target_end (number)\nThe position of the end of the target range.\nThis is also set by a successful `buffer.search_in_target()`.
target_end_virtual_space buffer.target_end_virtual_space (number)\nThe position of the end of virtual space in the target range.\nThis is set to `1` when `buffer.target_start` or\n`buffer.target_end` is set, or when `buffer.set_target_range()` is\ncalled.
target_from_selection buffer.target_from_selection(buffer)\nDefines the target range's beginning and end positions as the beginning and\nend positions of the main selection, respectively.\n@param buffer A buffer.
@@ -1068,32 +933,25 @@ text_range buffer.text_range(buffer, start_pos, end_pos)\nReturns the range of t
text_width view.text_width(view, style_num, text)\nReturns the pixel width string *text* would have when styled with style\nnumber *style_num*, in the range of `1` to `256`.\n@param view A view.\n@param style_num The style number between `1` and `256` to use.\n@param text The text to measure the width of.\n@return number
textadept _G.textadept (module)\nThe textadept module.\nIt provides utilities for editing text in Textadept.
textbox ui.dialogs.textbox(options)\nPrompts the user with a multiple-line textbox dialog defined by dialog\noptions table *options*, returning the selected button's index.\nIf *options*.`string_output` is `true`, returns the selected button's label.\nIf *options*.`editable` is `true`, also returns the textbox's text. If the\ndialog timed out, returns `0` or `"timeout"`. If the user canceled the\ndialog, returns `-1` or `"delete"`.\n@param options Table of key-value option pairs for the dialog.\n\n * `title`: The dialog's title text.\n * `informative_text`: The dialog's main message text.\n * `text`: The dialog's initial textbox text.\n * `text_from_file`: The filename whose contents are loaded into the\n textbox. This option has no effect when `text` is given.\n * `button1`: The right-most button's label. The default value is\n `_L['OK']`.\n * `button2`: The middle button's label.\n * `button3`: The left-most button's label. This option requires `button2`\n to be set.\n * `editable`: Allows the user to edit the textbox's text. The default value\n is `false`.\n * `focus_textbox`: Focus the textbox instead of the buttons. The default\n value is `false`.\n * `scroll_to`: Where to scroll the textbox's text.\n The available values are `"top"` and `"bottom"`. The default value is\n `"top"`.\n * `selected`: Select all of the textbox's text. The default value is\n `false`.\n * `monospaced_font`: Use a monospaced font in the textbox instead of a\n proportional one. The default value is `false`.\n * `string_output`: Return the selected button's label (instead of its\n index) or the dialog's exit status instead of the button's index (instead\n of its exit code). The default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@usage ui.dialogs.textbox{title = 'License Agreement',\n informative_text = 'You agree to:', text_from_file = _HOME..'/LICENSE'}\n@return selected button or exit code, textbox text
-theme file_diff.theme (string)\nThe theme to use, either 'dark' or 'light'.\nThis is not the theme used with Textadept.\nDepending on this setting, additions will be colored 'dark_green' or\n'light_green', deletions will be colored 'dark_red' or 'light_red', and so\non.\nThe default value is auto-detected.
timeout _G.timeout(interval, f, ...)\nCalls function *f* with the given arguments after *interval* seconds.\nIf *f* returns `true`, calls *f* repeatedly every *interval* seconds as long\nas *f* returns `true`. A `nil` or `false` return value stops repetition.\n@param interval The interval in seconds to call *f* after.\n@param f The function to call.\n@param ... Additional arguments to pass to *f*.
title ui.title (string, Write-only)\nThe title text of Textadept's window.
to_eol lexer.to_eol(prefix, escape)\nCreates and returns a pattern that matches from string or pattern *prefix*\nuntil the end of the line.\n*escape* indicates whether the end of the line can be escaped with a '\'\ncharacter.\n@param prefix String or pattern prefix to start matching at.\n@param escape Optional flag indicating whether or not newlines can be escaped\n by a '\' character. The default value is `false`.\n@usage local line_comment = lexer.to_eol('//')\n@usage local line_comment = lexer.to_eol(P('#') + ';')\n@return pattern
-to_html export.to_html(filename, out_filename)\nExports filename *filename* (or the current file) to filename *out_filename*\n(or the user-specified file) in HTML format, and then opens the result in a\nweb browser.\n@param filename The filename to export. The default value is the current\n buffer's filename.\n@param out_filename The filename to export to. If `nil`, the user is prompted\n for one.
toggle textadept.bookmarks.toggle()\nToggles a bookmark on the current line.
-toggle_block _M.ruby.toggle_block()\nToggles between `{ ... }` and `do ... end` Ruby blocks.\nIf the caret is inside a `{ ... }` single-line block, that block is converted\nto a multiple-line `do .. end` block. If the caret is on a line that contains\nsingle-line `do ... end` block, that block is converted to a single-line\n`{ ... }` block. If the caret is inside a multiple-line `do ... end` block,\nthat block is converted to a single-line `{ ... }` block with all newlines\nreplaced by a space. Indentation is important. The `do` and `end` keywords\nmust be on lines with the same level of indentation to toggle correctly.
-toggle_breakpoint debugger.toggle_breakpoint(file, line)\nToggles a breakpoint on line number *line* in file *file*, or the current\nline in the current file.\nMay emit `DEBUGGER_BREAKPOINT_ADDED` and `DEBUGGER_BREAKPOINT_REMOVED` events\ndepending on circumstance.\nMay show an error message if the debugger is executing (e.g. not at a\nbreakpoint).\n@param file Optional filename of the breakpoint to toggle.\n@param line Optional 1-based line number of the breakpoint to toggle.\n@see remove_breakpoint
toggle_caret_sticky buffer.toggle_caret_sticky(buffer)\nCycles between `buffer.caret_sticky` option settings `buffer.CARETSTICKY_ON`\nand `buffer.CARETSTICKY_OFF`.\n@param buffer A buffer.\n@see caret_sticky
toggle_comment textadept.editing.toggle_comment()\nComments or uncomments the selected lines based on the current language.\nAs long as any part of a line is selected, the entire line is eligible for\ncommenting/uncommenting.\n@see comment_string
toggle_fold view.toggle_fold(view, line)\nToggles the fold point on line number *line* between expanded (where all of\nits child lines are displayed) and contracted (where all of its child lines\nare hidden).\n@param view A view.\n@param line The line number in *view* to toggle the fold on.\n@see set_default_fold_display_text
toggle_fold_show_text view.toggle_fold_show_text(view, line, text)\nToggles a fold point on line number *line* between expanded (where all of\nits child lines are displayed) and contracted (where all of its child lines\nare hidden), and shows string *text* next to that line.\n*text* is drawn with style number `view.STYLE_FOLDDISPLAYTEXT`.\n@param view A view.\n@param line The line number in *view* to toggle the fold on and display\n *text* after.\n@param text The text to display after the line.
token lexer.token(name, patt)\nCreates and returns a token pattern with token name *name* and pattern\n*patt*.\nIf *name* is not a predefined token name, its style must be defined via\n`lexer.add_style()`.\n@param name The name of token. If this name is not a predefined token name,\n then a style needs to be assiciated with it via `lexer.add_style()`.\n@param patt The LPeg pattern associated with the token.\n@usage local ws = token(lexer.WHITESPACE, lexer.space^1)\n@usage local annotation = token('annotation', '@' * lexer.word)\n@return pattern
transpose_chars textadept.editing.transpose_chars()\nTransposes characters intelligently.\nIf the caret is at the end of a line, transposes the two characters before\nthe caret. Otherwise, the characters to the left and right are.
-try_to_autocomplete_end _M.ruby.try_to_autocomplete_end()\nTries to autocomplete Ruby's `end` keyword for control structures like `if`,\n`while`, `for`, etc.\n@see control_structure_patterns
typeover_chars textadept.editing.typeover_chars (table)\nTable of characters to move over when typed.\nThe ASCII values of characters are keys and are assigned non-`nil` values.\nThe default characters are ')', ']', '}', ''', and '"'.
ui _G.ui (module)\nUtilities for interacting with Textadept's user interface.
undo buffer.undo(buffer)\nUndoes the most recent action.\n@param buffer A buffer.
unsplit view.unsplit(view)\nUnsplits the view if possible, returning `true` on success.\n@param view The view to unsplit.\n@return boolean if the view was unsplit or not.
-update_state debugger.update_state(state)\nUpdates the running debugger's state and marks the current debug line.\nDebuggers need to call this function every time their state changes,\ntypically during `DEBUGGER_*` events.\n@param state A table with four fields: `file`, `line`, `call_stack`, and\n `variables`. `file` and `line` indicate the debugger's current position.\n `call_stack` is a list of stack frames and a `pos` field whose value is the\n 1-based index of the current frame. `variables` is an optional map of known\n variables to their values. The debugger can choose what kind of variables\n make sense to put in the map.
upper lexer.upper (pattern)\nA pattern that matches any upper case character ('A'-'Z').
upper_case buffer.upper_case(buffer)\nConverts the selected text to upper case letters.\n@param buffer A buffer.
use_tabs buffer.use_tabs (bool)\nUse tabs instead of spaces in indentation. Changing the current setting\ndoes not convert any of the buffer's existing indentation. Use\n`textadept.editing.convert_indentation()` to do so.\nThe default value is `true`.
user_list_show buffer.user_list_show(buffer, id, items)\nDisplays a user list identified by list identifier number *id* and\nconstructed from string *items* (whose items are delimited by\n`buffer.auto_c_separator` characters).\nThe sorted order of *items* (`buffer.auto_c_order`) must have already been\ndefined. When the user selects an item, *id* is sent in a\n`USER_LIST_SELECTION` event along with the selection.\n@param buffer A buffer.\n@param id The list identifier number greater than zero to use.\n@param items The sorted string of words to show, separated by\n `buffer.auto_c_separator` characters (initially spaces).\n@see _SCINTILLA.next_user_list_type\n@see events.USER_LIST_SELECTION
v_scroll_bar view.v_scroll_bar (bool)\nDisplay the vertical scroll bar.\nThe default value is `true`.
-variables debugger.variables()\nDisplays a dialog with variables in the current stack frame.
vc_home buffer.vc_home(buffer)\nMoves the caret to the first visible character on the current line or, if\nalready there, to the beginning of the current line.\n@param buffer A buffer.
vc_home_display buffer.vc_home_display(buffer)\nMoves the caret to the first visible character on the current wrapped line\nor, if already there, to the beginning of the current wrapped line.\n@param buffer A buffer.
vc_home_display_extend buffer.vc_home_display_extend(buffer)\nLike `buffer.vc_home_display()`, but extends the selected text to the new\nposition.\n@param buffer A buffer.
@@ -1140,9 +998,6 @@ wrap_visual_flags_location view.wrap_visual_flags_location (number)\nThe wrapped
write spawn_proc:write(...)\nWrites string input to the stdin of process *spawn_proc*.\nNote: On Linux, if more than 65536 bytes (64K) are to be written, it is\npossible those bytes need to be written in 65536-byte (64K) chunks, or the\nprocess may not receive all input. However, it is also possible that there is\na limit on how many bytes can be written in a short period of time, perhaps\n196608 bytes (192K).\n@param ... Standard input for *spawn_proc*.
x_offset view.x_offset (number)\nThe horizontal scroll pixel position.\nA value of `0` is the normal position with the first text column visible at\nthe left of the view.
xdigit lexer.xdigit (pattern)\nA pattern that matches any hexadecimal digit ('0'-'9', 'A'-'F', 'a'-'f').
-yaml _G.keys.yaml (table)\nContainer for YAML-specific key bindings.
-yaml _G.snippets.yaml (table)\nContainer for YAML-specific snippets.
-yaml _M.yaml (module)\nThe YAML module.\nIt provides utilities for editing YAML documents.
yesno_msgbox ui.dialogs.yesno_msgbox(options)\nPrompts the user with a generic message box dialog defined by dialog options\ntable *options* and with localized "Yes", "No", and "Cancel" buttons,\nreturning the selected button's index.\nIf *options*.`string_output` is `true`, returns the selected button's label.\nIf the dialog timed out, returns `0` or `"timeout"`. If the user canceled the\ndialog, returns `-1` or `"delete"`.\n@param options Table of key-value option pairs for the message box.\n\n * `title`: The dialog's title text.\n * `text`: The dialog's main message text.\n * `informative_text`: The dialog's extra informative text.\n * `icon`: The dialog's GTK stock icon name. Examples are\n "gtk-dialog-error", "gtk-dialog-info", "gtk-dialog-question", and\n "gtk-dialog-warning". The dialog does not display an icon by default.\n * `icon_file`: The dialog's icon file path. This option has no effect when\n `icon` is set.\n * `no_cancel`: Do not display the "Cancel" button. The default value is\n `false`.\n * `string_output`: Return the selected button's label (instead of its\n index) or the dialog's exit status instead of the button's index (instead\n of its exit code). The default value is `false`.\n * `width`: The dialog's pixel width.\n * `height`: The dialog's pixel height.\n * `float`: Show the dialog on top of all desktop windows. The default value\n is `false`.\n * `timeout`: The integer number of seconds the dialog waits for the user to\n select a button before timing out. Dialogs do not time out by default.\n@return selected button or exit code
zoom view.zoom (number)\nThe number of points to add to the size of all fonts.\nNegative values are allowed, down to `-10`.\nThe default value is `0`.
zoom_in view.zoom_in(view)\nIncreases the size of all fonts by one point, up to 20.\n@param view A view.
diff --git a/modules/lua/ta_tags b/modules/lua/ta_tags
index cdd289f3..c8186ace 100644
--- a/modules/lua/ta_tags
+++ b/modules/lua/ta_tags
@@ -48,23 +48,7 @@ CURSORARROW _HOME/core/.view.luadoc /^module('view')$/;" F class:view
CURSORNORMAL _HOME/core/.view.luadoc /^module('view')$/;" F class:view
CURSORREVERSEARROW _HOME/core/.view.luadoc /^module('view')$/;" F class:view
CURSORWAIT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-DEBUGGER_BREAKPOINT_ADDED _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_BREAKPOINT_REMOVED _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_COMMAND _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_CONTINUE _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_INSPECT _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_PAUSE _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_RESTART _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_SET_FRAME _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_START _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_STEP_INTO _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_STEP_OUT _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_STEP_OVER _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_STOP _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_WATCH_ADDED _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
-DEBUGGER_WATCH_REMOVED _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:events
DEFAULT _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
-DOCUTILS_PATH _HOME/modules/rest/init.lua /^module('_M.rest')]]$/;" F class:_M.rest
DOUBLE_CLICK _HOME/core/events.lua /^module('events')]]$/;" F class:events
DWELL_END _HOME/core/events.lua /^module('events')]]$/;" F class:events
DWELL_START _HOME/core/events.lua /^module('events')]]$/;" F class:events
@@ -84,6 +68,7 @@ FILE_OPENED _HOME/core/file_io.lua /^module('io')]]$/;" F class:events
FIND _HOME/core/events.lua /^module('events')]]$/;" F class:events
FIND_MATCHCASE _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
FIND_REGEXP _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
+FIND_RESULT_FOUND _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:events
FIND_TEXT_CHANGED _HOME/core/events.lua /^module('events')]]$/;" F class:events
FIND_WHOLEWORD _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
FIND_WORDSTART _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
@@ -113,17 +98,14 @@ IDENTIFIER _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
INDICATOR_CLICK _HOME/core/events.lua /^module('events')]]$/;" F class:events
INDICATOR_MAX _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
INDICATOR_RELEASE _HOME/core/events.lua /^module('events')]]$/;" F class:events
-INDIC_ADDITION _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" F class:file_diff
INDIC_BOX _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_BRACEMATCH _HOME/modules/textadept/editing.lua /^module('textadept.editing')]]$/;" F class:textadept.editing
INDIC_COMPOSITIONTHICK _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_COMPOSITIONTHIN _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_DASH _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-INDIC_DELETION _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" F class:file_diff
INDIC_DIAGONAL _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_DOTBOX _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_DOTS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-INDIC_ERROR _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:lsp
INDIC_FIND _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
INDIC_FULLBOX _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_GRADIENT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -135,7 +117,6 @@ INDIC_PLAIN _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_POINT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_POINTCHARACTER _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_ROUNDBOX _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-INDIC_SPELLING _HOME/modules/spellcheck/init.lua /^module('spellcheck')]]$/;" F class:spellcheck
INDIC_SQUIGGLE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_SQUIGGLELOW _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_SQUIGGLEPIXMAP _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -143,7 +124,6 @@ INDIC_STRAIGHTBOX _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_STRIKE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_TEXTFORE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
INDIC_TT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-INDIC_WARN _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:lsp
INITIALIZED _HOME/core/events.lua /^module('events')]]$/;" F class:events
IV_LOOKBOTH _HOME/core/.view.luadoc /^module('view')$/;" F class:view
IV_LOOKFORWARD _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -155,10 +135,6 @@ KEYWORD _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
LABEL _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
LEXER_LOADED _HOME/modules/textadept/file_types.lua /^module('textadept.file_types')]]$/;" F class:events
LINUX _HOME/core/init.lua /^module('_G')]]$/;" F
-LSP_INITIALIZED _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:events
-LSP_NOTIFICATION _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:events
-LUA_FLAGS _HOME/modules/ctags/init.lua /^module('ctags')]]$/;" F class:ctags
-LUA_GENERATOR _HOME/modules/ctags/init.lua /^module('ctags')]]$/;" F class:ctags
MARGINOPTION_NONE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARGINOPTION_SUBLINESELECT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARGIN_BACK _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -177,7 +153,6 @@ MARKNUM_FOLDEROPEN _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buff
MARKNUM_FOLDEROPENMID _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
MARKNUM_FOLDERSUB _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
MARKNUM_FOLDERTAIL _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
-MARK_ADDITION _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" F class:file_diff
MARK_ARROW _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_ARROWDOWN _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_ARROWS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -189,15 +164,12 @@ MARK_BOXMINUS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_BOXMINUSCONNECTED _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_BOXPLUS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_BOXPLUSCONNECTED _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-MARK_BREAKPOINT_COLOR _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:debugger
MARK_CHARACTER _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_CIRCLE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_CIRCLEMINUS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_CIRCLEMINUSCONNECTED _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_CIRCLEPLUS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_CIRCLEPLUSCONNECTED _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-MARK_DEBUGLINE_COLOR _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" F class:debugger
-MARK_DELETION _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" F class:file_diff
MARK_DOTDOTDOT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_EMPTY _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_ERROR _HOME/modules/textadept/run.lua /^module('textadept.run')]]$/;" F class:textadept.run
@@ -206,7 +178,6 @@ MARK_LCORNER _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_LCORNERCURVE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_LEFTRECT _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_MINUS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-MARK_MODIFICATION _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" F class:file_diff
MARK_PIXMAP _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_PLUS _HOME/core/.view.luadoc /^module('view')$/;" F class:view
MARK_RGBAIMAGE _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -326,13 +297,7 @@ _HOME _HOME/core/init.lua /^module('_G')]]$/;" F
_L _HOME/core/locale.lua /^module('_L')]]$/;" m
_M _HOME/core/._M.luadoc /^module('_M')]]$/;" m
_M.ansi_c _HOME/modules/ansi_c/init.lua /^module('_M.ansi_c')]]$/;" m
-_M.css _HOME/modules/css/init.lua /^module('_M.css')]]$/;" m
-_M.html _HOME/modules/html/init.lua /^module('_M.html')]]$/;" m
_M.lua _HOME/modules/lua/init.lua /^module('_M.lua')]]$/;" m
-_M.python _HOME/modules/python/init.lua /^module('_M.python')]]$/;" m
-_M.rest _HOME/modules/rest/init.lua /^module('_M.rest')]]$/;" m
-_M.ruby _HOME/modules/ruby/init.lua /^module('_M.ruby')]]$/;" m
-_M.yaml _HOME/modules/yaml/init.lua /^module('_M.yaml')]]$/;" m
_RELEASE _HOME/core/init.lua /^module('_G')]]$/;" F
_SCINTILLA _HOME/core/iface.lua /^module('_SCINTILLA')]]$/;" m
_USERHOME _HOME/core/init.lua /^module('_G')]]$/;" F
@@ -340,13 +305,12 @@ _VIEWS _HOME/core/init.lua /^local _VIEWS$/;" t
_print _HOME/core/ui.lua /^function ui._print(buffer_type, ...)$/;" f class:ui
abspath _HOME/core/lfs_ext.lua /^function lfs.abspath(filename, prefix)$/;" f class:lfs
active _HOME/modules/textadept/command_entry.lua /^module('ui.command_entry')]]$/;" F class:ui.command_entry
-add_dic _HOME/modules/spellcheck/init.lua /^function spellchecker:add_dic(dic) end$/;" f class:spellchecker
+active _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
add_fold_point _HOME/lexers/lexer.lua /^function M.add_fold_point(lexer, token_name, start_symbol, end_symbol)$/;" f class:lexer
add_rule _HOME/lexers/lexer.lua /^function M.add_rule(lexer, id, rule)$/;" f class:lexer
add_selection _HOME/core/.buffer.luadoc /^function add_selection(buffer, end_pos, start_pos) end$/;" f class:buffer
add_style _HOME/lexers/lexer.lua /^function M.add_style(lexer, token_name, style)$/;" f class:lexer
add_text _HOME/core/.buffer.luadoc /^function add_text(buffer, text) end$/;" f class:buffer
-add_word _HOME/modules/spellcheck/init.lua /^function spellchecker:add_word(word) end$/;" f class:spellchecker
additional_caret_fore _HOME/core/.view.luadoc /^module('view')$/;" F class:view
additional_carets_blink _HOME/core/.view.luadoc /^module('view')$/;" F class:view
additional_carets_visible _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -366,11 +330,8 @@ annotation_visible _HOME/core/.view.luadoc /^module('view')$/;" F class:view
ansi_c _HOME/modules/ansi_c/init.lua /^keys.ansi_c = {}$/;" t class:keys
ansi_c _HOME/modules/ansi_c/init.lua /^module('_M.ansi_c')]]$/;" m class:_M
ansi_c _HOME/modules/ansi_c/init.lua /^snippets.ansi_c = {$/;" t class:snippets
-ansi_c _HOME/modules/debugger/ansi_c/init.lua /^module('debugger.ansi_c')]]$/;" m class:debugger
any _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
-api_commands _HOME/modules/ctags/init.lua /^M.api_commands = {}$/;" t class:ctags
api_files _HOME/modules/textadept/editing.lua /^M.api_files = setmetatable({}, {__index = function(t, k)$/;" t class:textadept.editing
-append _HOME/modules/history/init.lua /^function M.append(filename, line, column)$/;" f class:history
append_text _HOME/core/.buffer.luadoc /^function append_text(buffer, text) end$/;" f class:buffer
arg _HOME/core/init.lua /^local arg$/;" t
args _HOME/core/args.lua /^module('args')]]$/;" m
@@ -408,7 +369,6 @@ autocomplete_all_words _HOME/modules/textadept/editing.lua /^module('textadept.e
autocomplete_snippets _HOME/modules/ansi_c/init.lua /^module('_M.ansi_c')]]$/;" F class:_M.ansi_c
autocomplete_snippets _HOME/modules/lua/init.lua /^module('_M.lua')]]$/;" F class:_M.lua
autocompleters _HOME/modules/textadept/editing.lua /^M.autocompleters = {}$/;" t class:textadept.editing
-back _HOME/modules/history/init.lua /^function M.back()$/;" f class:history
back_space_un_indents _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
back_tab _HOME/core/.buffer.luadoc /^function back_tab(buffer) end$/;" f class:buffer
begin_undo_action _HOME/core/.buffer.luadoc /^function begin_undo_action(buffer) end$/;" f class:buffer
@@ -419,7 +379,6 @@ brace_highlight _HOME/core/.view.luadoc /^function brace_highlight(view, pos1, p
brace_highlight_indicator _HOME/core/.view.luadoc /^function brace_highlight_indicator(view, use_indicator, indicator) end$/;" f class:view
brace_match _HOME/core/.buffer.luadoc /^function brace_match(buffer, pos, max_re_style) end$/;" f class:buffer
brace_matches _HOME/modules/textadept/editing.lua /^M.brace_matches = {[40] = 1, [41] = 1, [91] = 1, [93] = 1, [123] = 1, [125] = 1}$/;" t class:textadept.editing
-browser _HOME/modules/export/init.lua /^module('export')]]$/;" F class:export
buffer _HOME/core/.buffer.luadoc /^module('buffer')$/;" m
buffer _HOME/core/.view.luadoc /^local buffer$/;" t class:view
buffer _HOME/core/init.lua /^local buffer$/;" t
@@ -456,8 +415,6 @@ char_left_rect_extend _HOME/core/.buffer.luadoc /^function char_left_rect_extend
char_right _HOME/core/.buffer.luadoc /^function char_right(buffer) end$/;" f class:buffer
char_right_extend _HOME/core/.buffer.luadoc /^function char_right_extend(buffer) end$/;" f class:buffer
char_right_rect_extend _HOME/core/.buffer.luadoc /^function char_right_rect_extend(buffer) end$/;" f class:buffer
-check_spelling _HOME/modules/spellcheck/init.lua /^function M.check_spelling(interactive, wrapped)$/;" f class:spellcheck
-check_spelling_on_save _HOME/modules/spellcheck/init.lua /^module('spellcheck')]]$/;" F class:spellcheck
choose_caret_x _HOME/core/.buffer.luadoc /^function choose_caret_x(buffer) end$/;" f class:buffer
clear _HOME/core/.buffer.luadoc /^function clear(buffer) end$/;" f class:buffer
clear _HOME/modules/textadept/bookmarks.lua /^function M.clear() buffer:marker_delete_all(M.MARK_BOOKMARK) end$/;" f class:textadept.bookmarks
@@ -478,35 +435,20 @@ command_entry _HOME/modules/textadept/command_entry.lua /^module('ui.command_ent
comment_string _HOME/modules/textadept/editing.lua /^M.comment_string = {actionscript='//',ada='--',apdl='!',ansi_c='/*|*/',antlr='//',apl='#',applescript='--',asp='\'',autoit=';',awk='#',b_lang='//',bash='#',batch=':',bibtex='%',boo='#',chuck='//',cmake='#',coffeescript='#',context='%',cpp='//',crystal='#',csharp='//',css='/*|*/',cuda='//',desktop='#',django='{#|#}',dmd='//',dockerfile='#',dot='//',eiffel='--',elixir='#',erlang='%',faust='//',fennel=';',fish='#',forth='|\\',fortran='!',fsharp='//',gap='#',gettext='#',gherkin='#',glsl='//',gnuplot='#',go='//',groovy='//',gtkrc='#',haskell='--',html='<!--|-->',icon='#',idl='//',inform='!',ini='#',Io='#',java='//',javascript='//',json='/*|*/',jsp='//',latex='%',ledger='#',less='//',lilypond='%',lisp=';',logtalk='%',lua='--',makefile='#',matlab='#',moonscript='--',myrddin='//',nemerle='//',nim='#',nsis='#',objective_c='//',pascal='//',perl='#',php='//',pico8='//',pike='//',pkgbuild='#',prolog='%',props='#',protobuf='//',ps='%',pure='//',python='#',rails='#',rc='#',rebol=';',rest='.. ',rexx='--',rhtml='<!--|-->',rstats='#',ruby='#',rust='//',sass='//',scala='//',scheme=';',smalltalk='"|"',sml='(*)',snobol4='#',sql='--',tcl='#',tex='%',text='',toml='#',vala='//',vb='\'',vbscript='\'',verilog='//',vhdl='--',wsf='<!--|-->',xml='<!--|-->',yaml='#'}$/;" t class:textadept.editing
compile _HOME/modules/textadept/run.lua /^function M.compile(filename)$/;" f class:textadept.run
compile_commands _HOME/modules/textadept/run.lua /^M.compile_commands = {actionscript='mxmlc "%f"',ada='gnatmake "%f"',ansi_c='gcc -o "%e" "%f"',antlr='antlr4 "%f"',g='antlr3 "%f"',applescript='osacompile "%f" -o "%e.scpt"',asm='nasm "%f"'--[[ && ld "%e.o" -o "%e"']],boo='booc "%f"',caml='ocamlc -o "%e" "%f"',csharp=WIN32 and 'csc "%f"' or 'mcs "%f"',coffeescript='coffee -c "%f"',context='context --nonstopmode "%f"',cpp='g++ -o "%e" "%f"',cuda=WIN32 and 'nvcc -o "%e.exe" "%f"' or 'nvcc -o "%e" "%f"',dmd='dmd "%f"',dot='dot -Tps "%f" -o "%e.ps"',eiffel='se c "%f"',elixir='elixirc "%f"',erlang='erl -compile "%e"',faust='faust -o "%e.cpp" "%f"',fsharp=WIN32 and 'fsc.exe "%f"' or 'mono fsc.exe "%f"',fortran='gfortran -o "%e" "%f"',gap='gac -o "%e" "%f"',go='go build "%f"',groovy='groovyc "%f"',haskell=WIN32 and 'ghc -o "%e.exe" "%f"' or 'ghc -o "%e" "%f"',inform=function() return 'inform -c "'..buffer.filename:match('^(.+%.inform[/\\])Source')..'"' end,java='javac "%f"',ltx='pdflatex -file-line-error -halt-on-error "%f"',less='lessc --no-color "%f" "%e.css"',lilypond='lilypond "%f"',lisp='clisp -c "%f"',litcoffee='coffee -c "%f"',lua='luac -o "%e.luac" "%f"',moon='moonc "%f"',markdown='markdown "%f" > "%e.html"',myr='mbld -b "%e" "%f"',nemerle='ncc "%f" -out:"%e.exe"',nim='nim c "%f"',nsis='MakeNSIS "%f"',objective_c='gcc -o "%e" "%f"',pascal='fpc "%f"',perl='perl -c "%f"',php='php -l "%f"',prolog='gplc --no-top-level "%f"',python='python -m py_compile "%f"',ruby='ruby -c "%f"',rust='rustc "%f"',sass='sass "%f" "%e.css"',scala='scalac "%f"',sml='mlton "%f"',tex='pdflatex -file-line-error -halt-on-error "%f"',vala='valac "%f"',vb=WIN32 and 'vbc "%f"' or 'vbnc "%f"',}$/;" t class:textadept.run
-complete_lua _HOME/modules/lua_repl/init.lua /^function M.complete_lua()$/;" f class:lua_repl
connect _HOME/core/events.lua /^function M.connect(event, f, index)$/;" f class:events
constants _HOME/core/iface.lua /^M.constants = {ACCESSIBILITY_DISABLED=0,ACCESSIBILITY_ENABLED=1,ALPHA_NOALPHA=256,ALPHA_OPAQUE=255,ALPHA_TRANSPARENT=0,ANNOTATION_BOXED=2,ANNOTATION_HIDDEN=0,ANNOTATION_INDENTED=3,ANNOTATION_STANDARD=1,AUTOMATICFOLD_CHANGE=0x0004,AUTOMATICFOLD_CLICK=0x0002,AUTOMATICFOLD_SHOW=0x0001,CARETSTICKY_OFF=0,CARETSTICKY_ON=1,CARETSTICKY_WHITESPACE=2,CARETSTYLE_BLOCK=2,CARETSTYLE_BLOCK_AFTER=0x100,CARETSTYLE_INS_MASK=0xF,CARETSTYLE_INVISIBLE=0,CARETSTYLE_LINE=1,CARETSTYLE_OVERSTRIKE_BAR=0,CARETSTYLE_OVERSTRIKE_BLOCK=0x10,CARET_EVEN=0x08,CARET_JUMPS=0x10,CARET_SLOP=0x01,CARET_STRICT=0x04,CASEINSENSITIVEBEHAVIOR_IGNORECASE=1,CASEINSENSITIVEBEHAVIOR_RESPECTCASE=0,CASE_CAMEL=3,CASE_LOWER=2,CASE_MIXED=0,CASE_UPPER=1,CHARACTERSOURCE_DIRECT_INPUT=0,CHARACTERSOURCE_IME_RESULT=2,CHARACTERSOURCE_TENTATIVE_INPUT=1,CP_UTF8=65001,CURSORARROW=2,CURSORNORMAL=-1,CURSORREVERSEARROW=7,CURSORWAIT=4,EDGE_BACKGROUND=2,EDGE_LINE=1,EDGE_MULTILINE=3,EDGE_NONE=0,EOLANNOTATION_BOXED=2,EOLANNOTATION_HIDDEN=0,EOLANNOTATION_STANDARD=1,EOL_CR=1,EOL_CRLF=0,EOL_LF=2,FIND_CXX11REGEX=0x00800000,FIND_MATCHCASE=0x4,FIND_NONE=0x0,FIND_REGEXP=10485760,FIND_WHOLEWORD=0x2,FIND_WORDSTART=0x00100000,FOLDACTION_CONTRACT=0,FOLDACTION_EXPAND=1,FOLDACTION_TOGGLE=2,FOLDDISPLAYTEXT_BOXED=2,FOLDDISPLAYTEXT_HIDDEN=0,FOLDDISPLAYTEXT_STANDARD=1,FOLDFLAG_LEVELNUMBERS=0x0040,FOLDFLAG_LINEAFTER_CONTRACTED=0x0010,FOLDFLAG_LINEAFTER_EXPANDED=0x0008,FOLDFLAG_LINEBEFORE_CONTRACTED=0x0004,FOLDFLAG_LINEBEFORE_EXPANDED=0x0002,FOLDFLAG_LINESTATE=0x0080,FOLDLEVELBASE=0x400,FOLDLEVELHEADERFLAG=0x2000,FOLDLEVELNUMBERMASK=0x0FFF,FOLDLEVELWHITEFLAG=0x1000,IDLESTYLING_AFTERVISIBLE=2,IDLESTYLING_ALL=3,IDLESTYLING_NONE=0,IDLESTYLING_TOVISIBLE=1,IME_INLINE=1,IME_WINDOWED=0,INDICATOR_CONTAINER=9,INDICATOR_IME=33,INDICATOR_IME_MAX=36,INDICATOR_MAX=36,INDIC_BOX=6,INDIC_COMPOSITIONTHICK=14,INDIC_COMPOSITIONTHIN=15,INDIC_CONTAINER=8,INDIC_DASH=9,INDIC_DIAGONAL=3,INDIC_DOTBOX=12,INDIC_DOTS=10,INDIC_FULLBOX=16,INDIC_GRADIENT=20,INDIC_GRADIENTCENTER=21,INDIC_HIDDEN=5,INDIC_IME=32,INDIC_IME_MAX=35,INDIC_MAX=35,INDIC_PLAIN=0,INDIC_POINT=18,INDIC_POINTCHARACTER=19,INDIC_ROUNDBOX=7,INDIC_SQUIGGLE=1,INDIC_SQUIGGLELOW=11,INDIC_SQUIGGLEPIXMAP=13,INDIC_STRAIGHTBOX=8,INDIC_STRIKE=4,INDIC_TEXTFORE=17,INDIC_TT=2,IV_LOOKBOTH=3,IV_LOOKFORWARD=2,IV_NONE=0,IV_REAL=1,LASTSTEPINUNDOREDO=0x100,MARGINOPTION_NONE=0,MARGINOPTION_SUBLINESELECT=1,MARGIN_BACK=2,MARGIN_COLOR=6,MARGIN_FORE=3,MARGIN_NUMBER=1,MARGIN_RTEXT=5,MARGIN_SYMBOL=0,MARGIN_TEXT=4,MARKER_MAX=32,MARKNUM_FOLDER=31,MARKNUM_FOLDEREND=26,MARKNUM_FOLDERMIDTAIL=28,MARKNUM_FOLDEROPEN=32,MARKNUM_FOLDEROPENMID=27,MARKNUM_FOLDERSUB=30,MARKNUM_FOLDERTAIL=29,MARK_ARROW=2,MARK_ARROWDOWN=6,MARK_ARROWS=24,MARK_AVAILABLE=28,MARK_BACKGROUND=22,MARK_BOOKMARK=31,MARK_BOXMINUS=14,MARK_BOXMINUSCONNECTED=15,MARK_BOXPLUS=12,MARK_BOXPLUSCONNECTED=13,MARK_CHARACTER=10000,MARK_CIRCLE=0,MARK_CIRCLEMINUS=20,MARK_CIRCLEMINUSCONNECTED=21,MARK_CIRCLEPLUS=18,MARK_CIRCLEPLUSCONNECTED=19,MARK_DOTDOTDOT=23,MARK_EMPTY=5,MARK_FULLRECT=26,MARK_LCORNER=10,MARK_LCORNERCURVE=16,MARK_LEFTRECT=27,MARK_MINUS=7,MARK_PIXMAP=25,MARK_PLUS=8,MARK_RGBAIMAGE=30,MARK_ROUNDRECT=1,MARK_SHORTARROW=4,MARK_SMALLRECT=3,MARK_TCORNER=11,MARK_TCORNERCURVE=17,MARK_UNDERLINE=29,MARK_VERTICALBOOKMARK=32,MARK_VLINE=9,MASK_FOLDERS=0xFE000000,MAX_MARGIN=5,MODEVENTMASKALL=0x7FFFFF,MOD_ALT=4,MOD_BEFOREDELETE=0x800,MOD_BEFOREINSERT=0x400,MOD_CHANGEANNOTATION=0x20000,MOD_CHANGEEOLANNOTATION=0x400000,MOD_CHANGEFOLD=0x8,MOD_CHANGEINDICATOR=0x4000,MOD_CHANGELINESTATE=0x8000,MOD_CHANGEMARGIN=0x10000,MOD_CHANGEMARKER=0x200,MOD_CHANGESTYLE=0x4,MOD_CHANGETABSTOPS=0x200000,MOD_CONTAINER=0x40000,MOD_CTRL=2,MOD_DELETETEXT=0x2,MOD_INSERTCHECK=0x100000,MOD_INSERTTEXT=0x1,MOD_LEXERSTATE=0x80000,MOD_META=16,MOD_NONE=0x0,MOD_NORM=0,MOD_SHIFT=1,MOD_SUPER=8,MOUSE_DRAG=2,MOUSE_PRESS=1,MOUSE_RELEASE=3,MULTIAUTOC_EACH=1,MULTIAUTOC_ONCE=0,MULTILINEUNDOREDO=0x1000,MULTIPASTE_EACH=1,MULTIPASTE_ONCE=0,MULTISTEPUNDOREDO=0x80,ORDER_CUSTOM=2,ORDER_PERFORMSORT=1,ORDER_PRESORTED=0,PERFORMED_REDO=0x40,PERFORMED_UNDO=0x20,PERFORMED_USER=0x10,SEL_LINES=2,SEL_RECTANGLE=1,SEL_STREAM=0,SEL_THIN=3,STARTACTION=0x2000,STYLE_BRACEBAD=36,STYLE_BRACELIGHT=35,STYLE_CALLTIP=39,STYLE_CONTROLCHAR=37,STYLE_DEFAULT=33,STYLE_FOLDDISPLAYTEXT=40,STYLE_INDENTGUIDE=38,STYLE_LASTPREDEFINED=40,STYLE_LINENUMBER=34,STYLE_MAX=256,TD_LONGARROW=0,TD_STRIKEOUT=1,TIME_FOREVER=10000000,UNDO_NONE=0,UPDATE_CONTENT=0x1,UPDATE_H_SCROLL=0x8,UPDATE_SELECTION=0x2,UPDATE_V_SCROLL=0x4,VISIBLE_SLOP=0x01,VISIBLE_STRICT=0x04,VS_NONE=0,VS_NOWRAPLINESTART=4,VS_RECTANGULARSELECTION=1,VS_USERACCESSIBLE=2,WRAPINDENT_DEEPINDENT=3,WRAPINDENT_FIXED=0,WRAPINDENT_INDENT=2,WRAPINDENT_SAME=1,WRAPVISUALFLAGLOC_DEFAULT=0x0000,WRAPVISUALFLAGLOC_END_BY_TEXT=0x0001,WRAPVISUALFLAGLOC_START_BY_TEXT=0x0002,WRAPVISUALFLAG_END=0x0001,WRAPVISUALFLAG_MARGIN=0x0004,WRAPVISUALFLAG_NONE=0x0000,WRAPVISUALFLAG_START=0x0002,WRAP_CHAR=2,WRAP_NONE=0,WRAP_WHITESPACE=3,WRAP_WORD=1,WS_INVISIBLE=0,WS_VISIBLEAFTERINDENT=2,WS_VISIBLEALWAYS=1,WS_VISIBLEONLYININDENT=3}$/;" t class:_SCINTILLA
context_menu _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
context_menu _HOME/modules/textadept/menu.lua /^local default_context_menu = {$/;" t class:textadept.menu
-continue _HOME/modules/debugger/init.lua /^function M.continue(lang, ...)$/;" f class:debugger
contracted_fold_next _HOME/core/.view.luadoc /^function contracted_fold_next(view, line) end$/;" f class:view
-control_structure_patterns _HOME/modules/ruby/init.lua /^local control_structure_patterns = {$/;" t class:_M.ruby
convert_eols _HOME/core/.buffer.luadoc /^function convert_eols(buffer, mode) end$/;" f class:buffer
convert_indentation _HOME/modules/textadept/editing.lua /^function M.convert_indentation()$/;" f class:textadept.editing
copy _HOME/core/.buffer.luadoc /^function copy(buffer) end$/;" f class:buffer
copy_range _HOME/core/.buffer.luadoc /^function copy_range(buffer, start_pos, end_pos) end$/;" f class:buffer
copy_text _HOME/core/.buffer.luadoc /^function copy_text(buffer, text) end$/;" f class:buffer
count_characters _HOME/core/.buffer.luadoc /^function count_characters(buffer, start_pos, end_pos) end$/;" f class:buffer
-css _HOME/modules/css/init.lua /^keys.css = {}$/;" t class:keys
-css _HOME/modules/css/init.lua /^module('_M.css')]]$/;" m class:_M
-css _HOME/modules/css/init.lua /^snippets.css = {}$/;" t class:snippets
-ctag _HOME/modules/ctags/init.lua /^module('ctags')]]$/;" F class:textadept.editing.autocompleters
-ctags _HOME/modules/ctags/init.lua /^module('ctags')]]$/;" F class:ctags
-ctags _HOME/modules/ctags/init.lua /^module('ctags')]]$/;" m
-ctags_flags _HOME/modules/ctags/init.lua /^M.ctags_flags = {}$/;" t class:ctags
current_pos _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
cursor _HOME/core/.view.luadoc /^module('view')$/;" F class:view
cut _HOME/core/.buffer.luadoc /^function cut(buffer) end$/;" f class:buffer
-cycle_history_next _HOME/modules/lua_repl/init.lua /^function M.cycle_history_next()$/;" f class:lua_repl
-cycle_history_prev _HOME/modules/lua_repl/init.lua /^function M.cycle_history_prev()$/;" f class:lua_repl
-debugger _HOME/modules/debugger/init.lua /^module('debugger')]]$/;" m
-debugger.ansi_c _HOME/modules/debugger/ansi_c/init.lua /^module('debugger.ansi_c')]]$/;" m
-debugger.lua _HOME/modules/debugger/lua/init.lua /^module('debugger.lua')]]$/;" m
dec_num _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
default_filter _HOME/core/lfs_ext.lua /^lfs.default_filter = {--[[Extensions]]'!.a','!.bmp','!.bz2','!.class','!.dll','!.exe','!.gif','!.gz','!.jar','!.jpeg','!.jpg','!.o','!.pdf','!.png','!.so','!.tar','!.tgz','!.tif','!.tiff','!.xz','!.zip',--[[Directories]]'!/%.bzr$','!/%.git$','!/%.hg$','!/%.svn$','!/_FOSSIL_$','!/node_modules$'}$/;" t class:lfs
del_line_left _HOME/core/.buffer.luadoc /^function del_line_left(buffer) end$/;" f class:buffer
@@ -520,9 +462,7 @@ delete_back_not_line _HOME/core/.buffer.luadoc /^function delete_back_not_line(b
delete_range _HOME/core/.buffer.luadoc /^function delete_range(buffer, pos, length) end$/;" f class:buffer
dialog _HOME/core/ui.lua /^local dialog$/;" f class:ui
dialogs _HOME/core/.ui.dialogs.luadoc /^module('ui.dialogs')$/;" m class:ui
-diff _HOME/modules/file_diff/init.lua /^function _G.diff(text1, text2) end$/;" f
digit _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
-disable_listening _HOME/modules/history/init.lua /^function M.disable_listening()$/;" f class:history
disconnect _HOME/core/events.lua /^function M.disconnect(event, f)$/;" f class:events
doc_line_from_visible _HOME/core/.view.luadoc /^function doc_line_from_visible(view, display_line) end$/;" f class:view
document_end _HOME/core/.buffer.luadoc /^function document_end(buffer) end$/;" f class:buffer
@@ -540,7 +480,6 @@ editing_keys _HOME/modules/textadept/command_entry.lua /^M.editing_keys = {__ind
embed _HOME/lexers/lexer.lua /^function M.embed(lexer, child, start_rule, end_rule)$/;" f class:lexer
emit _HOME/core/events.lua /^function M.emit(event, ...)$/;" f class:events
empty_undo_buffer _HOME/core/.buffer.luadoc /^function empty_undo_buffer(buffer) end$/;" f class:buffer
-enable_listening _HOME/modules/history/init.lua /^function M.enable_listening()$/;" f class:history
enclose _HOME/modules/textadept/editing.lua /^function M.enclose(left, right)$/;" f class:textadept.editing
encoding _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
encodings _HOME/core/file_io.lua /^io.encodings = {'UTF-8', 'ASCII', 'CP1252', 'UTF-16'}$/;" t class:io
@@ -555,18 +494,13 @@ eol_annotation_text _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buf
eol_annotation_visible _HOME/core/.view.luadoc /^module('view')$/;" F class:view
eol_mode _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
error_patterns _HOME/modules/textadept/run.lua /^M.error_patterns = {actionscript={'^(.-)%((%d+)%): col: (%d+) (.+)$'},ada={'^(.-):(%d+):(%d+):%s*(.*)$','^[^:]+: (.-):(%d+) (.+)$'},ansi_c={'^(.-):(%d+):(%d+): (.+)$'},antlr={'^error%(%d+%): (.-):(%d+):(%d+): (.+)$','^warning%(%d+%): (.-):(%d+):(%d+): (.+)$'},--[[ANTLR]]g={'^error%(%d+%): (.-):(%d+):(%d+): (.+)$','^warning%(%d+%): (.-):(%d+):(%d+): (.+)$'},asm={'^(.-):(%d+): (.+)$'},awk={'^awk: (.-):(%d+): (.+)$'},boo={'^(.-)%((%d+),(%d+)%): (.+)$'},caml={'^%s*File "(.-)", line (%d+), characters (%d+)'},chuck={'^(.-)line%((%d+)%)%.char%((%d+)%): (.+)$'},cmake={'^CMake Error at (.-):(%d+)','^(.-):(%d+):$'},coffeescript={'^(.-):(%d+):(%d+): (.+)$'},context={'error on line (%d+) in file (.-): (.+)$'},cpp={'^(.-):(%d+):(%d+): (.+)$'},csharp={'^(.-)%((%d+),(%d+)%): (.+)$'},cuda={'^(.-)%((%d+)%): (error.+)$'},dart={"^'(.-)': error: line (%d+) pos (%d+): (.+)$",'%(file://(.-):(%d+):(%d+)%)'},dmd={'^(.-)%((%d+)%): (Error.+)$'},dot={'^Warning: (.-): (.+) in line (%d+)'},eiffel={'^Line (%d+) columns? .- in .- %((.-)%):$','^line (%d+) column (%d+) file (.-)$'},elixir={'^(.-):(%d+): (.+)$','Error%) (.-):(%d+): (.+)$'},erlang={'^(.-):(%d+): (.+)$'},faust={'^(.-):(%d+):(.+)$'},fennel={'^%S+ error in (.-):(%d+)'},forth={'^(.-):(%d+): (.+)$'},fortran={'^(.-):(%d+)%D+(%d+):%s*(.*)$'},fsharp={'^(.-)%((%d+),(%d+)%): (.+)$'},gap={'^(.+) in (.-) line (%d+)$'},gnuplot={'^"(.-)", line (%d+): (.+)$'},go={'^(.-):(%d+): (.+)$'},groovy={'^%s+at .-%((.-):(%d+)%)$','^(.-):(%d+): (.+)$'},haskell={'^(.-):(%d+):(%d+):%s*(.*)$'},icon={'^File (.-); Line (%d+) # (.+)$','^.-from line (%d+) in (.-)$'},java={'^%s+at .-%((.-):(%d+)%)$','^(.-):(%d+): (.+)$'},javascript={'^%s+at .-%((.-):(%d+):(%d+)%)$','^%s+at (.-):(%d+):(%d+)$','^(.-):(%d+):?$'},ltx={'^(.-):(%d+): (.+)$'},less={'^(.+) in (.-) on line (%d+), column (%d+):$'},lilypond={'^(.-):(%d+):(%d+):%s*(.*)$'},litcoffee={'^(.-):(%d+):(%d+): (.+)$'},lua={'^luac?: (.-):(%d+): (.+)$'},makefile={'^(.-):(%d+): (.+)$'},nemerle={'^(.-)%((%d+),(%d+)%): (.+)$'},nim={'^(.-)%((%d+), (%d+)%) (%w+:.+)$'},objective_c={'^(.-):(%d+):(%d+): (.+)$'},pascal={'^(.-)%((%d+),(%d+)%) (%w+:.+)$'},perl={'^(.+) at (.-) line (%d+)'},php={'^(.+) in (.-) on line (%d+)$'},pike={'^(.-):(%d+):(.+)$'},prolog={'^(.-):(%d+):(%d+): (.+)$','^(.-):(%d+): (.+)$'},pure={'^(.-), line (%d+): (.+)$'},python={'^%s*File "(.-)", line (%d+)'},rexx={'^Error %d+ running "(.-)", line (%d+): (.+)$'},ruby={'^%s+from (.-):(%d+):','^(.-):(%d+):%s*(.+)$'},rust={'^(.-):(%d+):(%d+): (.+)$',"panicked at '([^']+)', (.-):(%d+)"},sass={'^WARNING on line (%d+) of (.-):$','^%s+on line (%d+) of (.-)$'},scala={'^%s+at .-%((.-):(%d+)%)$','^(.-):(%d+): (.+)$'},sh={'^(.-): (%d+): %1: (.+)$'},bash={'^(.-): line (%d+): (.+)$'},zsh={'^(.-):(%d+): (.+)$'},smalltalk={'^(.-):(%d+): (.+)$','%((.-):(%d+)%)$'},snobol4={'^(.-):(%d+): (.+)$'},tcl={'^%s*%(file "(.-)" line (%d+)%)$'},tex={'^(.-):(%d+): (.+)$'},vala={'^(.-):(%d+)%.(%d+)[%-%.%d]+: (.+)$','^(.-):(%d+):(%d+): (.+)$'},vb={'^(.-)%((%d+),(%d+)%): (.+)$'}}$/;" t class:textadept.run
-evaluate_repl _HOME/modules/lua_repl/init.lua /^function M.evaluate_repl()$/;" f class:lua_repl
events _HOME/core/events.lua /^module('events')]]$/;" m
events _HOME/core/iface.lua /^M.events = {[2000]={"style_needed","position"},[2001]={"char_added","ch","character_source"},[2002]={"save_point_reached"},[2003]={"save_point_left"},[2004]={"modify_attempt_ro"},[2005]={"key","ch","modifiers"},[2006]={"double_click","position","line","modifiers"},[2007]={"update_ui","updated"},[2008]={"modified","position","modification_type","text","length","lines_added","line","fold_level_now","fold_level_prev","token","annotation_lines_added"},[2009]={"macro_record","message","w_param","l_param"},[2010]={"margin_click","margin","position","modifiers"},[2011]={"need_shown","position","length"},[2013]={"painted"},[2014]={"user_list_selection","list_type","text","position","ch","list_completion_method"},[2015]={"uri_dropped","text"},[2016]={"dwell_start","position","x","y"},[2017]={"dwell_end","position","x","y"},[2018]={"zoom"},[2019]={"hot_spot_click","position","modifiers"},[2020]={"hot_spot_double_click","position","modifiers"},[2021]={"call_tip_click","position"},[2022]={"auto_c_selection","text","position","ch","list_completion_method"},[2023]={"indicator_click","position","modifiers"},[2024]={"indicator_release","position","modifiers"},[2025]={"auto_c_cancelled"},[2026]={"auto_c_char_deleted"},[2027]={"hot_spot_release_click","position","modifiers"},[2028]={"focus_in"},[2029]={"focus_out"},[2030]={"auto_c_completed","text","position","ch","list_completion_method"},[2031]={"margin_right_click","margin","position","modifiers"},[2032]={"auto_c_selection_change","list_type","text","position"},}$/;" t class:_SCINTILLA
-export _HOME/modules/export/init.lua /^module('export')]]$/;" m
expr_types _HOME/modules/lua/init.lua /^M.expr_types = {['^[\'"]'] = 'string', ['^io%.p?open%s*%b()%s*$'] = 'file'}$/;" t class:_M.lua
-expr_types _HOME/modules/python/init.lua /^M.expr_types = {$/;" t class:_M.python
-expr_types _HOME/modules/ruby/init.lua /^M.expr_types = {$/;" t class:_M.ruby
extend _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
extensions _HOME/modules/textadept/file_types.lua /^M.extensions = {--[[Actionscript]]as='actionscript',asc='actionscript',--[[Ada]]adb='ada',ads='ada',--[[ANTLR]]g='antlr',g4='antlr',--[[APDL]]ans='apdl',inp='apdl',mac='apdl',--[[APL]]apl='apl',--[[Applescript]]applescript='applescript',--[[ASM]]asm='asm',ASM='asm',s='asm',S='asm',--[[ASP]]asa='asp',asp='asp',hta='asp',--[[AutoIt]]au3='autoit',a3x='autoit',--[[AWK]]awk='awk',--[[Batch]]bat='batch',cmd='batch',--[[BibTeX]]bib='bibtex',--[[Boo]]boo='boo',--[[C#]]cs='csharp',--[[C/C++]]c='ansi_c',cc='cpp',C='ansi_c',cpp='cpp',cxx='cpp',['c++']='cpp',h='cpp',hh='cpp',hpp='cpp',hxx='cpp',['h++']='cpp',--[[ChucK]]ck='chuck',--[[CMake]]cmake='cmake',['cmake.in']='cmake',ctest='cmake',['ctest.in']='cmake',--[[CoffeeScript]]coffee='coffeescript',--[[Crystal]]cr='crystal',--[[CSS]]css='css',--[[CUDA]]cu='cuda',cuh='cuda',--[[D]]d='dmd',di='dmd',--[[Dart]]dart='dart',--[[Desktop]]desktop='desktop',--[[diff]]diff='diff',patch='diff',--[[Dockerfile]]Dockerfile='dockerfile',--[[dot]]dot='dot',--[[Eiffel]]e='eiffel',eif='eiffel',--[[Elixir]]ex='elixir',exs='elixir',--[[Erlang]]erl='erlang',hrl='erlang',--[[F#]]fs='fsharp',--[[Faust]]dsp='faust',--[[Fennel]]fnl='fennel',--[[Fish]]fish='fish',--[[Forth]]forth='forth',frt='forth',fs='forth',--[[Fortran]]f='fortran',['for']='fortran',ftn='fortran',fpp='fortran',f77='fortran',f90='fortran',f95='fortran',f03='fortran',f08='fortran',--[[Gap]]g='gap',gd='gap',gi='gap',gap='gap',--[[Gettext]]po='gettext',pot='gettext',--[[Gherkin]]feature='gherkin',--[[GLSL]]glslf='glsl',glslv='glsl',--[[GNUPlot]]dem='gnuplot',plt='gnuplot',--[[Go]]go='go',--[[Groovy]]groovy='groovy',gvy='groovy',--[[Gtkrc]]gtkrc='gtkrc',--[[Haskell]]hs='haskell',--[[HTML]]htm='html',html='html',shtm='html',shtml='html',xhtml='html',vue='html',--[[Icon]]icn='icon',--[[IDL]]idl='idl',odl='idl',--[[Inform]]inf='inform',ni='inform',--[[ini]]cfg='ini',cnf='ini',inf='ini',ini='ini',reg='ini',--[[Io]]io='io_lang',--[[Java]]bsh='java',java='java',--[[Javascript]]js='javascript',jsfl='javascript',--[[JSON]]json='json',--[[JSP]]jsp='jsp',--[[LaTeX]]bbl='latex',dtx='latex',ins='latex',ltx='latex',tex='latex',sty='latex',--[[Ledger]]ledger='ledger',journal='ledger',--[[LESS]]less='less',--[[LilyPond]]lily='lilypond',ly='lilypond',--[[Lisp]]cl='lisp',el='lisp',lisp='lisp',lsp='lisp',--[[Literate Coffeescript]]litcoffee='litcoffee',--[[Logtalk]]lgt='logtalk',--[[Lua]]lua='lua',--[[Makefile]]GNUmakefile='makefile',iface='makefile',mak='makefile',makefile='makefile',Makefile='makefile',--[[Man]]['1']='man',['2']='man',['3']='man',['4']='man',['5']='man',['6']='man',['7']='man',['8']='man',['9']='man',['1x']='man',['2x']='man',['3x']='man',['4x']='man',['5x']='man',['6x']='man',['7x']='man',['8x']='man',['9x']='man',--[[Markdown]]md='markdown',--[[MoonScript]]moon='moonscript',--[[Myrddin]]myr='myrddin',--[[Nemerle]]n='nemerle',--[[Nim]]nim='nim',--[[NSIS]]nsh='nsis',nsi='nsis',nsis='nsis',--[[Objective C]]m='objective_c',mm='objective_c',objc='objective_c',--[[OCaml]]caml='caml',ml='caml',mli='caml',mll='caml',mly='caml',--[[Pascal]]dpk='pascal',dpr='pascal',p='pascal',pas='pascal',--[[Perl]]al='perl',perl='perl',pl='perl',pm='perl',pod='perl',--[[PHP]]inc='php',php='php',php3='php',php4='php',phtml='php',--[[PICO-8]]p8='pico',--[[Pike]]pike='pike',pmod='pike',--[[PKGBUILD]]PKGBUILD='pkgbuild',--[[Postscript]]eps='ps',ps='ps',--[[PowerShell]]ps1='powershell',--[[Prolog]]prolog='prolog',--[[Properties]]props='props',properties='props',--[[Protobuf]]proto='protobuf',--[[Pure]]pure='pure',--[[Python]]sc='python',py='python',pyw='python',--[[R]]R='rstats',Rout='rstats',Rhistory='rstats',Rt='rstats',['Rout.save']='rstats',['Rout.fail']='rstats',S='rstats',--[[REBOL]]r='rebol',reb='rebol',--[[reST]]rst='rest',--[[Rexx]]orx='rexx',rex='rexx',--[[RHTML]]erb='rhtml',rhtml='rhtml',--[[Ruby]]Rakefile='ruby',rake='ruby',rb='ruby',rbw='ruby',--[[Rust]]rs='rust',--[[Sass CSS]]sass='sass',scss='sass',--[[Scala]]scala='scala',--[[Scheme]]sch='scheme',scm='scheme',--[[Shell]]bash='bash',bashrc='bash',bash_profile='bash',configure='bash',csh='bash',ksh='bash',mksh='bash',sh='bash',zsh='bash',--[[Smalltalk]]changes='smalltalk',st='smalltalk',sources='smalltalk',--[[SML]]sml='sml',fun='sml',sig='sml',--[[SNOBOL4]]sno='snobol4',SNO='snobol4',--[[SQL]]ddl='sql',sql='sql',--[[TaskPaper]]taskpaper='taskpaper',--[[Tcl]]tcl='tcl',tk='tcl',--[[Texinfo]]texi='texinfo',--[[TOML]]toml='toml',--[[Txt2tags]]t2t='txt2tags',--[[Vala]]vala='vala',--[[vCard]]vcf='vcard',vcard='vcard',--[[Verilog]]v='verilog',ver='verilog',--[[VHDL]]vh='vhdl',vhd='vhdl',vhdl='vhdl',--[[Visual Basic]]asa='vb',bas='vb',cls='vb',ctl='vb',dob='vb',dsm='vb',dsr='vb',frm='vb',pag='vb',vb='vb',vba='vb',vbs='vb',--[[WSF]]wsf='wsf',--[[XML]]dtd='xml',svg='xml',xml='xml',xsd='xml',xsl='xml',xslt='xml',xul='xml',--[[Xtend]]xtend='xtend',--[[YAML]]yaml='yaml',yml='yaml'}$/;" t class:textadept.file_types
extra_ascent _HOME/core/.view.luadoc /^module('view')$/;" F class:view
extra_descent _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-file_diff _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" m
file_types _HOME/modules/textadept/file_types.lua /^module('textadept.file_types')]]$/;" m class:textadept
filename _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
filesave _HOME/core/.ui.dialogs.luadoc /^function filesave(options) end$/;" f class:ui.dialogs
@@ -583,7 +517,6 @@ find_next _HOME/modules/textadept/find.lua /^local find_next$/;" f class:ui.find
find_next_button_text _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
find_prev _HOME/modules/textadept/find.lua /^local find_prev$/;" f class:ui.find
find_prev_button_text _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
-find_references _HOME/modules/lsp/init.lua /^function M.find_references()$/;" f class:lsp
first_visible_line _HOME/core/.view.luadoc /^module('view')$/;" F class:view
float _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
focus _HOME/modules/textadept/command_entry.lua /^local focus$/;" f class:ui.command_entry
@@ -605,9 +538,7 @@ fold_on_zero_sum_lines _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:l
fold_parent _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
folding _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
fontselect _HOME/core/.ui.dialogs.luadoc /^function fontselect(options) end$/;" f class:ui.dialogs
-forward _HOME/modules/history/init.lua /^function M.forward()$/;" f class:history
functions _HOME/core/iface.lua /^M.functions = {add_ref_document={2376,0,0,1},add_selection={2573,0,3,3},add_styled_text={2002,0,2,9},add_tab_stop={2676,0,3,1},add_text={2001,0,2,7},add_undo_action={2560,0,1,1},allocate={2446,0,3,0},allocate_extended_styles={2553,1,1,0},allocate_sub_styles={4020,1,1,1},annotation_clear_all={2547,0,0,0},append_text={2282,0,2,7},assign_cmd_key={2070,0,6,1},auto_c_active={2102,5,0,0},auto_c_cancel={2101,0,0,0},auto_c_complete={2104,0,0,0},auto_c_pos_start={2103,3,0,0},auto_c_select={2108,0,0,7},auto_c_show={2100,0,1,7},auto_c_stops={2105,0,0,7},back_tab={2328,0,0,0},begin_undo_action={2078,0,0,0},brace_bad_light={2352,0,3,0},brace_bad_light_indicator={2499,0,5,3},brace_highlight={2351,0,3,3},brace_highlight_indicator={2498,0,5,3},brace_match={2353,3,3,1},brace_match_next={2369,3,3,3},call_tip_active={2202,5,0,0},call_tip_cancel={2201,0,0,0},call_tip_pos_start={2203,3,0,0},call_tip_set_hlt={2204,0,3,3},call_tip_show={2200,0,3,7},can_paste={2173,5,0,0},can_redo={2016,5,0,0},can_undo={2174,5,0,0},cancel={2325,0,0,0},change_insertion={2672,0,2,7},change_lexer_state={2617,1,3,3},char_left={2304,0,0,0},char_left_extend={2305,0,0,0},char_left_rect_extend={2428,0,0,0},char_position_from_point={2561,3,1,1},char_position_from_point_close={2562,3,1,1},char_right={2306,0,0,0},char_right_extend={2307,0,0,0},char_right_rect_extend={2429,0,0,0},choose_caret_x={2399,0,0,0},clear={2180,0,0,0},clear_all={2004,0,0,0},clear_all_cmd_keys={2072,0,0,0},clear_cmd_key={2071,0,6,0},clear_document_style={2005,0,0,0},clear_registered_images={2408,0,0,0},clear_representation={2667,0,7,0},clear_selections={2571,0,0,0},clear_tab_stops={2675,0,3,0},colorize={4003,0,3,3},contracted_fold_next={2618,3,3,0},convert_eols={2029,0,1,0},copy={2178,0,0,0},copy_allow_line={2519,0,0,0},copy_range={2419,0,3,3},copy_text={2420,0,2,7},count_characters={2633,1,3,3},count_code_units={2715,1,3,3},create_document={2375,1,3,1},create_loader={2632,1,3,1},cut={2177,0,0,0},del_line_left={2395,0,0,0},del_line_right={2396,0,0,0},del_word_left={2335,0,0,0},del_word_right={2336,0,0,0},del_word_right_end={2518,0,0,0},delete_back={2326,0,0,0},delete_back_not_line={2344,0,0,0},delete_range={2645,0,3,2},describe_key_word_sets={4017,0,0,8},describe_property={4016,0,7,8},description_of_style={4032,0,3,8},doc_line_from_visible={2221,3,3,0},document_end={2318,0,0,0},document_end_extend={2319,0,0,0},document_start={2316,0,0,0},document_start_extend={2317,0,0,0},drop_selection_n={2671,0,3,0},edit_toggle_overtype={2324,0,0,0},empty_undo_buffer={2175,0,0,0},encoded_from_utf8={2449,0,7,8},end_undo_action={2079,0,0,0},ensure_visible={2232,0,3,0},ensure_visible_enforce_policy={2234,0,3,0},eol_annotation_clear_all={2744,0,0,0},expand_children={2239,0,3,1},find_column={2456,3,3,3},find_indicator_flash={2641,0,3,3},find_indicator_hide={2642,0,0,0},find_indicator_show={2640,0,3,3},find_text={2150,3,1,11},fold_all={2662,0,1,0},fold_children={2238,0,3,1},fold_line={2237,0,3,1},form_feed={2330,0,0,0},format_range={2151,3,5,12},free_sub_styles={4023,0,0,0},get_cur_line={2027,3,2,8},get_default_fold_display_text={2723,0,0,8},get_hotspot_active_back={2495,4,0,0},get_hotspot_active_fore={2494,4,0,0},get_line={2153,0,3,8},get_line_sel_end_position={2425,3,3,0},get_line_sel_start_position={2424,3,3,0},get_next_tab_stop={2677,1,3,1},get_sel_text={2161,0,0,8},get_styled_text={2015,3,0,10},get_text={2182,0,2,8},get_text_range={2162,3,0,10},goto_line={2024,0,3,0},goto_pos={2025,0,3,0},grab_focus={2400,0,0,0},hide_lines={2227,0,3,3},hide_selection={2163,0,5,0},home={2312,0,0,0},home_display={2345,0,0,0},home_display_extend={2346,0,0,0},home_extend={2313,0,0,0},home_rect_extend={2430,0,0,0},home_wrap={2349,0,0,0},home_wrap_extend={2450,0,0,0},indicator_all_on_for={2506,1,3,0},indicator_clear_range={2505,0,3,2},indicator_end={2509,3,3,3},indicator_fill_range={2504,0,3,2},indicator_start={2508,3,3,3},indicator_value_at={2507,1,3,3},insert_text={2003,0,3,7},is_range_word={2691,5,3,3},line_copy={2455,0,0,0},line_cut={2337,0,0,0},line_delete={2338,0,0,0},line_down={2300,0,0,0},line_down_extend={2301,0,0,0},line_down_rect_extend={2426,0,0,0},line_duplicate={2404,0,0,0},line_end={2314,0,0,0},line_end_display={2347,0,0,0},line_end_display_extend={2348,0,0,0},line_end_extend={2315,0,0,0},line_end_rect_extend={2432,0,0,0},line_end_wrap={2451,0,0,0},line_end_wrap_extend={2452,0,0,0},line_from_position={2166,3,3,0},line_length={2350,1,3,0},line_reverse={2354,0,0,0},line_scroll={2168,0,1,1},line_scroll_down={2342,0,0,0},line_scroll_up={2343,0,0,0},line_transpose={2339,0,0,0},line_up={2302,0,0,0},line_up_extend={2303,0,0,0},line_up_rect_extend={2427,0,0,0},lines_join={2288,0,0,0},lines_split={2289,0,1,0},load_lexer_library={4007,0,0,7},lower_case={2340,0,0,0},margin_text_clear_all={2536,0,0,0},marker_add={2043,1,3,3},marker_add_set={2466,0,3,1},marker_define={2040,0,3,1},marker_define_pixmap={2049,0,3,7},marker_define_rgba_image={2626,0,3,7},marker_delete={2044,0,3,3},marker_delete_all={2045,0,3,0},marker_delete_handle={2018,0,1,0},marker_enable_highlight={2293,0,5,0},marker_get={2046,1,3,0},marker_handle_from_line={2732,1,3,3},marker_line_from_handle={2017,3,1,0},marker_next={2047,3,3,1},marker_number_from_line={2733,3,3,3},marker_previous={2048,3,3,1},marker_symbol_defined={2529,1,3,0},move_caret_inside_view={2401,0,0,0},move_selected_lines_down={2621,0,0,0},move_selected_lines_up={2620,0,0,0},multi_edge_add_line={2694,0,1,4},multi_edge_clear_all={2695,0,0,0},multiple_select_add_each={2689,0,0,0},multiple_select_add_next={2688,0,0,0},name_of_style={4030,0,3,8},new_line={2329,0,0,0},null={2172,0,0,0},page_down={2322,0,0,0},page_down_extend={2323,0,0,0},page_down_rect_extend={2434,0,0,0},page_up={2320,0,0,0},page_up_extend={2321,0,0,0},page_up_rect_extend={2433,0,0,0},para_down={2413,0,0,0},para_down_extend={2414,0,0,0},para_up={2415,0,0,0},para_up_extend={2416,0,0,0},paste={2179,0,0,0},point_x_from_position={2164,1,0,3},point_y_from_position={2165,1,0,3},position_after={2418,3,3,0},position_before={2417,3,3,0},position_from_line={2167,3,3,0},position_from_point={2022,3,1,1},position_from_point_close={2023,3,1,1},position_relative={2670,3,3,1},position_relative_code_units={2716,3,3,3},private_lexer_call={4013,1,1,1},property_names={4014,0,0,8},property_type={4015,1,7,0},redo={2011,0,0,0},register_image={2405,0,1,7},register_rgba_image={2627,0,1,7},release_all_extended_styles={2552,0,0,0},release_document={2377,0,0,1},replace_sel={2170,0,0,7},replace_target={2194,1,2,7},replace_target_re={2195,1,2,7},rotate_selection={2606,0,0,0},scroll_caret={2169,0,0,0},scroll_range={2569,0,3,3},scroll_to_end={2629,0,0,0},scroll_to_start={2628,0,0,0},search_anchor={2366,0,0,0},search_in_target={2197,3,2,7},search_next={2367,3,1,7},search_prev={2368,3,1,7},select_all={2013,0,0,0},selection_duplicate={2469,0,0,0},set_chars_default={2444,0,0,0},set_default_fold_display_text={2722,0,0,7},set_empty_selection={2556,0,3,0},set_fold_margin_color={2290,0,5,4},set_fold_margin_hi_color={2291,0,5,4},set_hotspot_active_back={2411,0,5,4},set_hotspot_active_fore={2410,0,5,4},set_length_for_encode={2448,0,3,0},set_save_point={2014,0,0,0},set_sel={2160,0,3,3},set_sel_back={2068,0,5,4},set_sel_fore={2067,0,5,4},set_selection={2572,0,3,3},set_styling={2033,0,2,3},set_styling_ex={2073,0,2,7},set_target_range={2686,0,3,3},set_text={2181,0,0,7},set_visible_policy={2394,0,1,1},set_whitespace_back={2085,0,5,4},set_whitespace_fore={2084,0,5,4},set_x_caret_policy={2402,0,1,1},set_y_caret_policy={2403,0,1,1},show_lines={2226,0,3,3},start_record={3001,0,0,0},start_styling={2032,0,3,1},stop_record={3002,0,0,0},stuttered_page_down={2437,0,0,0},stuttered_page_down_extend={2438,0,0,0},stuttered_page_up={2435,0,0,0},stuttered_page_up_extend={2436,0,0,0},style_clear_all={2050,0,0,0},style_reset_default={2058,0,0,0},swap_main_anchor_caret={2607,0,0,0},tab={2327,0,0,0},tags_of_style={4031,0,3,8},target_as_utf8={2447,0,0,8},target_from_selection={2287,0,0,0},target_whole_document={2690,0,0,0},text_height={2279,1,3,0},text_width={2276,1,3,7},toggle_caret_sticky={2459,0,0,0},toggle_fold={2231,0,3,0},toggle_fold_show_text={2700,0,3,7},undo={2176,0,0,0},upper_case={2341,0,0,0},use_pop_up={2371,0,1,0},user_list_show={2117,0,1,7},vc_home={2331,0,0,0},vc_home_display={2652,0,0,0},vc_home_display_extend={2653,0,0,0},vc_home_extend={2332,0,0,0},vc_home_rect_extend={2431,0,0,0},vc_home_wrap={2453,0,0,0},vc_home_wrap_extend={2454,0,0,0},vertical_center_caret={2619,0,0,0},visible_from_doc_line={2220,3,3,0},word_end_position={2267,3,3,5},word_left={2308,0,0,0},word_left_end={2439,0,0,0},word_left_end_extend={2440,0,0,0},word_left_extend={2309,0,0,0},word_part_left={2390,0,0,0},word_part_left_extend={2391,0,0,0},word_part_right={2392,0,0,0},word_part_right_extend={2393,0,0,0},word_right={2310,0,0,0},word_right_end={2441,0,0,0},word_right_end_extend={2442,0,0,0},word_right_extend={2311,0,0,0},word_start_position={2266,3,3,5},wrap_count={2235,1,3,0},zoom_in={2333,0,0,0},zoom_out={2334,0,0,0},}$/;" t class:_SCINTILLA
-generate_default_api _HOME/modules/ctags/init.lua /^module('ctags')]]$/;" F class:ctags
get_cur_line _HOME/core/.buffer.luadoc /^function get_cur_line(buffer) end$/;" f class:buffer
get_default_fold_display_text _HOME/core/.view.luadoc /^function get_default_fold_display_text(view) end$/;" f class:view
get_last_child _HOME/core/.buffer.luadoc /^function get_last_child(buffer, line, level) end$/;" f class:buffer
@@ -618,35 +549,23 @@ get_rule _HOME/lexers/lexer.lua /^function M.get_rule(lexer, id)$/;" f class:lex
get_sel_text _HOME/core/.buffer.luadoc /^function get_sel_text(buffer) end$/;" f class:buffer
get_split_table _HOME/core/ui.lua /^local get_split_table$/;" f class:ui
get_text _HOME/core/.buffer.luadoc /^function get_text(buffer) end$/;" f class:buffer
-goto_anchor _HOME/modules/yaml/init.lua /^function M.goto_anchor()$/;" f class:_M.yaml
goto_buffer _HOME/core/.view.luadoc /^function goto_buffer(view, buffer) end$/;" f class:view
-goto_change _HOME/modules/file_diff/init.lua /^function M.goto_change(next)$/;" f class:file_diff
-goto_definition _HOME/modules/lsp/init.lua /^function M.goto_definition() return goto_definition('definition') end$/;" f class:lsp
goto_error _HOME/modules/textadept/run.lua /^function M.goto_error(line_num, next)$/;" f class:textadept.run
goto_file _HOME/core/ui.lua /^function ui.goto_file(filename, split, preferred_view, sloppy)$/;" f class:ui
goto_file_found _HOME/modules/textadept/find.lua /^function M.goto_file_found(line_num, next)$/;" f class:ui.find
-goto_implementation _HOME/modules/lsp/init.lua /^function M.goto_implementation() return goto_definition('implementation') end$/;" f class:lsp
goto_line _HOME/core/.buffer.luadoc /^function goto_line(buffer, line) end$/;" f class:buffer
goto_line _HOME/modules/textadept/editing.lua /^function M.goto_line(line)$/;" f class:textadept.editing
goto_mark _HOME/modules/textadept/bookmarks.lua /^function M.goto_mark(next)$/;" f class:textadept.bookmarks
goto_pos _HOME/core/.buffer.luadoc /^function goto_pos(buffer, pos) end$/;" f class:buffer
-goto_section _HOME/modules/rest/init.lua /^function M.goto_section()$/;" f class:_M.rest
-goto_symbol _HOME/modules/lsp/init.lua /^function M.goto_symbol(symbol)$/;" f class:lsp
-goto_tag _HOME/modules/ctags/init.lua /^function M.goto_tag(tag)$/;" f class:ctags
-goto_type_definition _HOME/modules/lsp/init.lua /^function M.goto_type_definition() return goto_definition('typeDefinition') end$/;" f class:lsp
goto_view _HOME/core/ui.lua /^local goto_view$/;" f class:ui
graph _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
h_scroll_bar _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-handle_notification _HOME/modules/lsp/init.lua /^function Server:handle_notification(method, params)$/;" f class:Server
-handle_stdout _HOME/modules/lsp/init.lua /^function Server:handle_stdout(output)$/;" f class:Server
height _HOME/modules/textadept/command_entry.lua /^module('ui.command_entry')]]$/;" F class:ui.command_entry
hex_num _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
hide_lines _HOME/core/.view.luadoc /^function hide_lines(view, start_line, end_line) end$/;" f class:view
highlight_all_matches _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
highlight_guide _HOME/core/.view.luadoc /^module('view')$/;" F class:view
highlight_words _HOME/modules/textadept/editing.lua /^module('textadept.editing')]]$/;" F class:textadept.editing
-history _HOME/modules/history/init.lua /^module('history')]]$/;" m
-history _HOME/modules/lua_repl/init.lua /^M.history = {pos = 0}$/;" t class:lua_repl
home _HOME/core/.buffer.luadoc /^function home(buffer) end$/;" f class:buffer
home_display _HOME/core/.buffer.luadoc /^function home_display(buffer) end$/;" f class:buffer
home_display_extend _HOME/core/.buffer.luadoc /^function home_display_extend(buffer) end$/;" f class:buffer
@@ -654,10 +573,6 @@ home_extend _HOME/core/.buffer.luadoc /^function home_extend(buffer) end$/;" f c
home_rect_extend _HOME/core/.buffer.luadoc /^function home_rect_extend(buffer) end$/;" f class:buffer
home_wrap _HOME/core/.buffer.luadoc /^function home_wrap(buffer) end$/;" f class:buffer
home_wrap_extend _HOME/core/.buffer.luadoc /^function home_wrap_extend(buffer) end$/;" f class:buffer
-hover _HOME/modules/lsp/init.lua /^function M.hover(position)$/;" f class:lsp
-html _HOME/modules/html/init.lua /^keys.html = {}$/;" t class:keys
-html _HOME/modules/html/init.lua /^module('_M.html')]]$/;" m class:_M
-html _HOME/modules/html/init.lua /^snippets.html = {$/;" t class:snippets
iconv _HOME/core/.iconv.luadoc /^function iconv(text, new, old) end$/;" f class:string
idle_styling _HOME/core/.view.luadoc /^module('view')$/;" F class:view
in_files _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
@@ -682,7 +597,6 @@ indicator_start _HOME/core/.buffer.luadoc /^function indicator_start(buffer, ind
inputbox _HOME/core/.ui.dialogs.luadoc /^function inputbox(options) end$/;" f class:ui.dialogs
insert _HOME/modules/textadept/snippets.lua /^function M.insert(text)$/;" f class:textadept.snippets
insert_text _HOME/core/.buffer.luadoc /^function insert_text(buffer, pos, text) end$/;" f class:buffer
-inspect _HOME/modules/debugger/init.lua /^function M.inspect(position)$/;" f class:debugger
integer _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
io _HOME/core/file_io.lua /^module('io')]]$/;" m
is_range_word _HOME/core/.buffer.luadoc /^function is_range_word(buffer, start_pos, end_pos) end$/;" f class:buffer
@@ -690,7 +604,6 @@ join_lines _HOME/modules/textadept/editing.lua /^function M.join_lines()$/;" f c
keychain _HOME/core/keys.lua /^M.keychain = setmetatable({}, {$/;" t class:keys
keys _HOME/core/keys.lua /^local keys]]$/;" t
keys _HOME/core/keys.lua /^module('keys')]]$/;" m
-keys _HOME/modules/lua_repl/init.lua /^M.keys = {$/;" t class:lua_repl
keys _HOME/modules/textadept/keys.lua /^module('textadept.keys')]]$/;" m class:textadept
kill _HOME/core/.os.luadoc /^function spawn_proc:kill() end$/;" f class:spawn_proc
last_char_includes _HOME/lexers/lexer.lua /^function M.last_char_includes(s)$/;" f class:lexer
@@ -719,7 +632,6 @@ line_from_position _HOME/lexers/lexer.lua /^local function line_from_position(po
line_indent_position _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
line_indentation _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
line_length _HOME/core/.buffer.luadoc /^function line_length(buffer, line) end$/;" f class:buffer
-line_numbers _HOME/modules/export/init.lua /^module('export')]]$/;" F class:export
line_reverse _HOME/core/.buffer.luadoc /^function line_reverse(buffer) end$/;" f class:buffer
line_scroll _HOME/core/.view.luadoc /^function line_scroll(view, columns, lines) end$/;" f class:view
line_scroll_down _HOME/core/.view.luadoc /^function line_scroll_down(view) end$/;" f class:view
@@ -736,19 +648,11 @@ lines_split _HOME/core/.buffer.luadoc /^function lines_split(buffer, pixel_width
load _HOME/lexers/lexer.lua /^function M.load(name, alt_name, cache)$/;" f class:lexer
load _HOME/modules/textadept/macros.lua /^function M.load(filename)$/;" f class:textadept.macros
load _HOME/modules/textadept/session.lua /^function M.load(filename)$/;" f class:textadept.session
-log _HOME/modules/lsp/init.lua /^function Server:log(message)$/;" f class:Server
-log_rpc _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:lsp
-logging _HOME/modules/debugger/ansi_c/init.lua /^module('debugger.ansi_c')]]$/;" F class:debugger.ansi_c
-logging _HOME/modules/debugger/lua/init.lua /^module('debugger.lua')]]$/;" F class:debugger.lua
lower _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
lower_case _HOME/core/.buffer.luadoc /^function lower_case(buffer) end$/;" f class:buffer
-lsp _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:textadept.editing.autocompleters
-lsp _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" m
-lua _HOME/modules/debugger/lua/init.lua /^module('debugger.lua')]]$/;" m class:debugger
lua _HOME/modules/lua/init.lua /^keys.lua = {}$/;" t class:keys
lua _HOME/modules/lua/init.lua /^module('_M.lua')]]$/;" m class:_M
lua _HOME/modules/lua/init.lua /^snippets.lua = {$/;" t class:snippets
-lua_repl _HOME/modules/lua_repl/init.lua /^module('lua_repl')]]$/;" m
macros _HOME/modules/textadept/macros.lua /^module('textadept.macros')]]$/;" m class:textadept
main_selection _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
margin_back_n _HOME/core/.view.luadoc /^module('view')$/;" F class:view
@@ -787,13 +691,10 @@ marker_symbol_defined _HOME/core/.view.luadoc /^function marker_symbol_defined(v
match_case _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
match_case_label_text _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
maximized _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
-maximum_history_size _HOME/modules/history/init.lua /^module('history')]]$/;" F class:history
menu _HOME/core/ui.lua /^local menu$/;" f class:ui
menu _HOME/modules/textadept/menu.lua /^module('textadept.menu')]]$/;" m class:textadept
menubar _HOME/core/ui.lua /^local menubar$/;" t class:ui
menubar _HOME/modules/textadept/menu.lua /^local default_menubar = {$/;" t class:textadept.menu
-merge _HOME/modules/file_diff/init.lua /^function M.merge(left)$/;" f class:file_diff
-minimum_line_distance _HOME/modules/history/init.lua /^module('history')]]$/;" F class:history
mode _HOME/core/keys.lua /^module('keys')]]$/;" F class:keys
modify _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
modify_rule _HOME/lexers/lexer.lua /^function M.modify_rule(lexer, id, rule)$/;" f class:lexer
@@ -813,7 +714,6 @@ multiple_selection _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buff
name_of_style _HOME/core/.buffer.luadoc /^function name_of_style(buffer, style) end$/;" f class:buffer
new _HOME/core/.buffer.luadoc /^function new() end$/;" f class:buffer
new _HOME/lexers/lexer.lua /^function M.new(name, opts)$/;" f class:lexer
-new _HOME/modules/lsp/init.lua /^function Server.new(lang, cmd, init_options)$/;" f class:Server
new_line _HOME/core/.buffer.luadoc /^function new_line(buffer) end$/;" f class:buffer
newline _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
next_image_type _HOME/core/iface.lua /^function M.next_image_type()$/;" f class:_SCINTILLA
@@ -821,15 +721,10 @@ next_indic_number _HOME/core/iface.lua /^function M.next_indic_number()$/;" f cl
next_marker_number _HOME/core/iface.lua /^function M.next_marker_number()$/;" f class:_SCINTILLA
next_user_list_type _HOME/core/iface.lua /^function M.next_user_list_type()$/;" f class:_SCINTILLA
nonnewline _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
-notify _HOME/modules/lsp/init.lua /^function Server:notify(method, params)$/;" f class:Server
-notify_opened _HOME/modules/lsp/init.lua /^function Server:notify_opened(buffer)$/;" f class:Server
number _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
oct_num _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
ok_msgbox _HOME/core/.ui.dialogs.luadoc /^function ok_msgbox(options) end$/;" f class:ui.dialogs
open_file _HOME/core/file_io.lua /^function io.open_file(filenames, encodings)$/;" f class:io
-open_file _HOME/modules/open_file_mode/init.lua /^function ui.command_entry.open_file()$/;" f class:_G.ui.command_entry
-open_file _HOME/modules/open_file_mode/init.lua /^module('ui.command_entry.open_file')]]$/;" m class:ui.command_entry
-open_image _HOME/modules/rest/init.lua /^function M.open_image()$/;" f class:_M.rest
open_recent_file _HOME/core/file_io.lua /^function io.open_recent_file()$/;" f class:io
optionselect _HOME/core/.ui.dialogs.luadoc /^function optionselect(options) end$/;" f class:ui.dialogs
os _HOME/core/.os.luadoc /^module('os')$/;" m
@@ -848,7 +743,6 @@ paste _HOME/core/.buffer.luadoc /^function paste(buffer) end$/;" f class:buffer
paste_reindent _HOME/modules/textadept/editing.lua /^function M.paste_reindent()$/;" f class:textadept.editing
paths _HOME/modules/textadept/snippets.lua /^M.paths = {}$/;" t class:textadept.snippets
patterns _HOME/modules/textadept/file_types.lua /^M.patterns = {['^#!.+[/ ][gm]?awk']='awk',['^#!.+[/ ]lua']='lua',['^#!.+[/ ]octave']='matlab',['^#!.+[/ ]perl']='perl',['^#!.+[/ ]php']='php',['^#!.+[/ ]python']='python',['^#!.+[/ ]ruby']='ruby',['^#!.+[/ ]bash']='bash',['^#!.+/m?ksh']='bash',['^#!.+/sh']='bash',['^%s*class%s+%S+%s*<%s*ApplicationController']='rails',['^%s*class%s+%S+%s*<%s*ActionController::Base']='rails',['^%s*class%s+%S+%s*<%s*ActiveRecord::Base']='rails',['^%s*class%s+%S+%s*<%s*ActiveRecord::Migration']='rails',['^%s*<%?xml%s']='xml',['^#cloud%-config']='yaml'}$/;" t class:textadept.file_types
-pause _HOME/modules/debugger/init.lua /^function M.pause(...)$/;" f class:debugger
play _HOME/modules/textadept/macros.lua /^function M.play()$/;" f class:textadept.macros
position_after _HOME/core/.buffer.luadoc /^function position_after(buffer, pos) end$/;" f class:buffer
position_before _HOME/core/.buffer.luadoc /^function position_before(buffer, pos) end$/;" f class:buffer
@@ -867,16 +761,12 @@ property_int _HOME/core/.view.luadoc /^module('view')$/;" F class:view
property_int _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
punct _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
punctuation_chars _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
-python _HOME/modules/python/init.lua /^keys.python = {$/;" t class:keys
-python _HOME/modules/python/init.lua /^module('_M.python')]]$/;" m class:_M
-python _HOME/modules/python/init.lua /^snippets.python = {$/;" t class:snippets
quick_open _HOME/core/file_io.lua /^function io.quick_open(paths, filter, opts)$/;" f class:io
quick_open_filters _HOME/core/file_io.lua /^io.quick_open_filters = {}$/;" t class:io
quick_open_max _HOME/core/file_io.lua /^module('io')]]$/;" F class:io
quit _HOME/core/init.lua /^local quit$/;" f
range _HOME/lexers/lexer.lua /^function M.range(s, e, single_line, escapes, balanced)$/;" f class:lexer
read _HOME/core/.os.luadoc /^function spawn_proc:read(arg) end$/;" f class:spawn_proc
-read _HOME/modules/lsp/init.lua /^function Server:read()$/;" f class:Server
read_only _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
recent_files _HOME/core/file_io.lua /^io.recent_files = {}$/;" t class:io
record _HOME/modules/textadept/macros.lua /^function M.record()$/;" f class:textadept.macros
@@ -892,8 +782,6 @@ register _HOME/core/args.lua /^function M.register(short, long, narg, f, descrip
register_image _HOME/core/.view.luadoc /^function register_image(view, type, xpm_data) end$/;" f class:view
register_rgba_image _HOME/core/.view.luadoc /^function register_rgba_image(view, type, pixels) end$/;" f class:view
reload _HOME/core/.buffer.luadoc /^function reload(buffer) end$/;" f class:buffer
-remove_breakpoint _HOME/modules/debugger/init.lua /^function M.remove_breakpoint(file, line)$/;" f class:debugger
-remove_watch _HOME/modules/debugger/init.lua /^function M.remove_watch(id)$/;" f class:debugger
replace _HOME/modules/textadept/find.lua /^local replace$/;" f class:ui.find
replace_all _HOME/modules/textadept/find.lua /^local replace_all$/;" f class:ui.find
replace_all_button_text _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" F class:ui.find
@@ -904,20 +792,11 @@ replace_sel _HOME/core/.buffer.luadoc /^function replace_sel(buffer, text) end$/
replace_target _HOME/core/.buffer.luadoc /^function replace_target(buffer, text) end$/;" f class:buffer
replace_target_re _HOME/core/.buffer.luadoc /^function replace_target_re(buffer, text) end$/;" f class:buffer
representation _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-request _HOME/modules/lsp/init.lua /^function Server:request(method, params)$/;" f class:Server
reset _HOME/core/init.lua /^local reset$/;" f
-respond _HOME/modules/lsp/init.lua /^function Server:respond(id, result)$/;" f class:Server
-rest _HOME/modules/rest/init.lua /^keys.rest = {$/;" t class:keys
-rest _HOME/modules/rest/init.lua /^module('_M.rest')]]$/;" m class:_M
-rest _HOME/modules/rest/init.lua /^snippets.rest = {$/;" t class:snippets
-restart _HOME/modules/debugger/init.lua /^function M.restart(...)$/;" f class:debugger
rgba_image_height _HOME/core/.view.luadoc /^module('view')$/;" F class:view
rgba_image_scale _HOME/core/.view.luadoc /^module('view')$/;" F class:view
rgba_image_width _HOME/core/.view.luadoc /^module('view')$/;" F class:view
rotate_selection _HOME/core/.buffer.luadoc /^function rotate_selection(buffer) end$/;" f class:buffer
-ruby _HOME/modules/ruby/init.lua /^keys.ruby = {$/;" t class:keys
-ruby _HOME/modules/ruby/init.lua /^module('_M.ruby')]]$/;" m class:_M
-ruby _HOME/modules/ruby/init.lua /^snippets.ruby = {$/;" t class:snippets
run _HOME/modules/textadept/command_entry.lua /^function M.run(f, keys, lang, height)$/;" f class:ui.command_entry
run _HOME/modules/textadept/run.lua /^function M.run(filename)$/;" f class:textadept.run
run _HOME/modules/textadept/run.lua /^module('textadept.run')]]$/;" m class:textadept
@@ -967,7 +846,6 @@ selection_n_start _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffe
selection_n_start_virtual_space _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
selection_start _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
selections _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
-server_commands _HOME/modules/lsp/init.lua /^M.server_commands = {}$/;" t class:lsp
session _HOME/modules/textadept/session.lua /^module('textadept.session')]]$/;" m class:textadept
set_chars_default _HOME/core/.buffer.luadoc /^function set_chars_default(buffer) end$/;" f class:buffer
set_default_fold_display_text _HOME/core/.view.luadoc /^function set_default_fold_display_text(view, text) end$/;" f class:view
@@ -975,7 +853,6 @@ set_empty_selection _HOME/core/.buffer.luadoc /^function set_empty_selection(buf
set_encoding _HOME/core/.buffer.luadoc /^function set_encoding(buffer, encoding) end$/;" f class:buffer
set_fold_margin_color _HOME/core/.view.luadoc /^function set_fold_margin_color(view, use_setting, color) end$/;" f class:view
set_fold_margin_hi_color _HOME/core/.view.luadoc /^function set_fold_margin_hi_color(view, use_setting, color) end$/;" f class:view
-set_frame _HOME/modules/debugger/init.lua /^function M.set_frame()$/;" f class:debugger
set_lexer _HOME/core/.buffer.luadoc /^function set_lexer(buffer, name) end$/;" f class:buffer
set_save_point _HOME/core/.buffer.luadoc /^function set_save_point(buffer) end$/;" f class:buffer
set_sel _HOME/core/.buffer.luadoc /^function set_sel(buffer, start_pos, end_pos) end$/;" f class:buffer
@@ -987,15 +864,12 @@ set_target_range _HOME/core/.buffer.luadoc /^function set_target_range(buffer, s
set_text _HOME/core/.buffer.luadoc /^function set_text(buffer, text) end$/;" f class:buffer
set_theme _HOME/core/.view.luadoc /^function set_theme(view, name, env) end$/;" f class:view
set_visible_policy _HOME/core/.view.luadoc /^function set_visible_policy(view, policy, y) end$/;" f class:view
-set_watch _HOME/modules/debugger/init.lua /^function M.set_watch(expr)$/;" f class:debugger
set_whitespace_back _HOME/core/.view.luadoc /^function set_whitespace_back(view, use_setting, color) end$/;" f class:view
set_whitespace_fore _HOME/core/.view.luadoc /^function set_whitespace_fore(view, use_setting, color) end$/;" f class:view
set_x_caret_policy _HOME/core/.view.luadoc /^function set_x_caret_policy(view, policy, x) end$/;" f class:view
set_y_caret_policy _HOME/core/.view.luadoc /^function set_y_caret_policy(view, policy, y) end$/;" f class:view
-show_all_diagnostics _HOME/modules/lsp/init.lua /^module('lsp')]]$/;" F class:lsp
show_documentation _HOME/modules/textadept/editing.lua /^function M.show_documentation(pos, ignore_case)$/;" f class:textadept.editing
show_lines _HOME/core/.view.luadoc /^function show_lines(view, start_line, end_line) end$/;" f class:view
-signature_help _HOME/modules/lsp/init.lua /^function M.signature_help()$/;" f class:lsp
silent_print _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
size _HOME/core/.view.luadoc /^module('view')$/;" F class:view
size _HOME/core/ui.lua /^local size$/;" t class:ui
@@ -1004,26 +878,13 @@ snippets _HOME/modules/textadept/snippets.lua /^_G.snippets = snippets$/;" t
snippets _HOME/modules/textadept/snippets.lua /^module('textadept.snippets')]=]$/;" m class:textadept
space _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
spawn _HOME/core/.os.luadoc /^local spawn$/;" f class:os
-spell _HOME/modules/spellcheck/init.lua /^function _G.spell(aff, dic, key) end$/;" f
-spell _HOME/modules/spellcheck/init.lua /^function spellchecker:spell(word) end$/;" f class:spellchecker
-spellcheck _HOME/modules/spellcheck/init.lua /^module('spellcheck')]]$/;" m
-spellcheckable_styles _HOME/modules/spellcheck/init.lua /^M.spellcheckable_styles = {default = true, comment = true, string = true}$/;" t class:spellcheck
-spellchecker _HOME/modules/spellcheck/init.lua /^module('spellcheck')]]$/;" F class:spellcheck
split _HOME/core/.view.luadoc /^function split(view, vertical) end$/;" f class:view
standard_dropdown _HOME/core/.ui.dialogs.luadoc /^function standard_dropdown(options) end$/;" f class:ui.dialogs
standard_inputbox _HOME/core/.ui.dialogs.luadoc /^function standard_inputbox(options) end$/;" f class:ui.dialogs
-start _HOME/modules/debugger/init.lua /^function M.start(lang, ...)$/;" f class:debugger
-start _HOME/modules/file_diff/init.lua /^function M.start(file1, file2, horizontal)$/;" f class:file_diff
-start _HOME/modules/lsp/init.lua /^function M.start()$/;" f class:lsp
start_styling _HOME/core/.buffer.luadoc /^function start_styling(buffer, position, unused) end$/;" f class:buffer
starts_line _HOME/lexers/lexer.lua /^function M.starts_line(patt)$/;" f class:lexer
status _HOME/core/.os.luadoc /^function spawn_proc:status() end$/;" f class:spawn_proc
statusbar_text _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
-step_into _HOME/modules/debugger/init.lua /^function M.step_into(...)$/;" f class:debugger
-step_out _HOME/modules/debugger/init.lua /^function M.step_out(...)$/;" f class:debugger
-step_over _HOME/modules/debugger/init.lua /^function M.step_over(...)$/;" f class:debugger
-stop _HOME/modules/debugger/init.lua /^function M.stop(lang, ...)$/;" f class:debugger
-stop _HOME/modules/lsp/init.lua /^function M.stop()$/;" f class:lsp
stop _HOME/modules/textadept/run.lua /^function M.stop() if proc then proc:kill() end end$/;" f class:textadept.run
string _HOME/core/.iconv.luadoc /^module('string')$/;" m
strip_trailing_spaces _HOME/modules/textadept/editing.lua /^module('textadept.editing')]]$/;" F class:textadept.editing
@@ -1048,10 +909,8 @@ style_size _HOME/core/.view.luadoc /^module('view')$/;" F class:view
style_underline _HOME/core/.view.luadoc /^module('view')$/;" F class:view
style_visible _HOME/core/.view.luadoc /^module('view')$/;" F class:view
styles _HOME/lexers/lexer.lua /^M.styles = setmetatable({}, {$/;" t class:lexer
-suggest _HOME/modules/spellcheck/init.lua /^function spellchecker:suggest(word) end$/;" f class:spellchecker
swap_main_anchor_caret _HOME/core/.buffer.luadoc /^function swap_main_anchor_caret(buffer) end$/;" f class:buffer
switch_buffer _HOME/core/ui.lua /^function ui.switch_buffer(zorder)$/;" f class:ui
-sync_buffer _HOME/modules/lsp/init.lua /^function Server:sync_buffer()$/;" f class:Server
tab _HOME/core/.buffer.luadoc /^function tab(buffer) end$/;" f class:buffer
tab_context_menu _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
tab_context_menu _HOME/modules/textadept/menu.lua /^local default_tab_context_menu = {$/;" t class:textadept.menu
@@ -1063,8 +922,6 @@ tabs _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
tag _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
tags _HOME/modules/ansi_c/init.lua /^M.tags = {$/;" t class:_M.ansi_c
tags _HOME/modules/lua/init.lua /^M.tags = {$/;" t class:_M.lua
-tags _HOME/modules/python/init.lua /^M.tags = {_HOME .. '/modules/python/tags', _USERHOME .. '/modules/python/tags'}$/;" t class:_M.python
-tags _HOME/modules/ruby/init.lua /^M.tags = {_HOME .. '/modules/ruby/tags', _USERHOME .. '/modules/ruby/tags'}$/;" t class:_M.ruby
target_end _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
target_end_virtual_space _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
target_from_selection _HOME/core/.buffer.luadoc /^function target_from_selection(buffer) end$/;" f class:buffer
@@ -1087,36 +944,28 @@ textadept.run _HOME/modules/textadept/run.lua /^module('textadept.run')]]$/;" m
textadept.session _HOME/modules/textadept/session.lua /^module('textadept.session')]]$/;" m
textadept.snippets _HOME/modules/textadept/snippets.lua /^module('textadept.snippets')]=]$/;" m
textbox _HOME/core/.ui.dialogs.luadoc /^function textbox(options) end$/;" f class:ui.dialogs
-theme _HOME/modules/file_diff/init.lua /^module('file_diff')]]$/;" F class:file_diff
timeout _HOME/core/init.lua /^local timeout$/;" f
title _HOME/core/ui.lua /^module('ui')]]$/;" F class:ui
to_eol _HOME/lexers/lexer.lua /^function M.to_eol(prefix, escape)$/;" f class:lexer
-to_html _HOME/modules/export/init.lua /^function M.to_html(filename, out_filename)$/;" f class:export
toggle _HOME/modules/textadept/bookmarks.lua /^function M.toggle()$/;" f class:textadept.bookmarks
-toggle_block _HOME/modules/ruby/init.lua /^function M.toggle_block()$/;" f class:_M.ruby
-toggle_breakpoint _HOME/modules/debugger/init.lua /^function M.toggle_breakpoint(file, line)$/;" f class:debugger
toggle_caret_sticky _HOME/core/.buffer.luadoc /^function toggle_caret_sticky(buffer) end$/;" f class:buffer
toggle_comment _HOME/modules/textadept/editing.lua /^function M.toggle_comment()$/;" f class:textadept.editing
toggle_fold _HOME/core/.view.luadoc /^function toggle_fold(view, line) end$/;" f class:view
toggle_fold_show_text _HOME/core/.view.luadoc /^function toggle_fold_show_text(view, line, text) end$/;" f class:view
token _HOME/lexers/lexer.lua /^function M.token(name, patt)$/;" f class:lexer
transpose_chars _HOME/modules/textadept/editing.lua /^function M.transpose_chars()$/;" f class:textadept.editing
-try_to_autocomplete_end _HOME/modules/ruby/init.lua /^function M.try_to_autocomplete_end()$/;" f class:_M.ruby
typeover_chars _HOME/modules/textadept/editing.lua /^M.typeover_chars = {[41] = 1, [93] = 1, [125] = 1, [39] = 1, [34] = 1}$/;" t class:textadept.editing
ui _HOME/core/ui.lua /^module('ui')]]$/;" m
ui.command_entry _HOME/modules/textadept/command_entry.lua /^module('ui.command_entry')]]$/;" m
-ui.command_entry.open_file _HOME/modules/open_file_mode/init.lua /^module('ui.command_entry.open_file')]]$/;" m
ui.dialogs _HOME/core/.ui.dialogs.luadoc /^module('ui.dialogs')$/;" m
ui.find _HOME/modules/textadept/find.lua /^module('ui.find')]]$/;" m
undo _HOME/core/.buffer.luadoc /^function undo(buffer) end$/;" f class:buffer
unsplit _HOME/core/.view.luadoc /^function unsplit(view) end$/;" f class:view
-update_state _HOME/modules/debugger/init.lua /^function M.update_state(state)$/;" f class:debugger
upper _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
upper_case _HOME/core/.buffer.luadoc /^function upper_case(buffer) end$/;" f class:buffer
use_tabs _HOME/core/.buffer.luadoc /^module('buffer')$/;" F class:buffer
user_list_show _HOME/core/.buffer.luadoc /^function user_list_show(buffer, id, items) end$/;" f class:buffer
v_scroll_bar _HOME/core/.view.luadoc /^module('view')$/;" F class:view
-variables _HOME/modules/debugger/init.lua /^function M.variables()$/;" f class:debugger
vc_home _HOME/core/.buffer.luadoc /^function vc_home(buffer) end$/;" f class:buffer
vc_home_display _HOME/core/.buffer.luadoc /^function vc_home_display(buffer) end$/;" f class:buffer
vc_home_display_extend _HOME/core/.buffer.luadoc /^function vc_home_display_extend(buffer) end$/;" f class:buffer
@@ -1163,9 +1012,6 @@ wrap_visual_flags_location _HOME/core/.view.luadoc /^module('view')$/;" F class:
write _HOME/core/.os.luadoc /^function spawn_proc:write(...) end$/;" f class:spawn_proc
x_offset _HOME/core/.view.luadoc /^module('view')$/;" F class:view
xdigit _HOME/lexers/lexer.lua /^module('lexer')]=]$/;" F class:lexer
-yaml _HOME/modules/yaml/init.lua /^keys.yaml = {$/;" t class:keys
-yaml _HOME/modules/yaml/init.lua /^module('_M.yaml')]]$/;" m class:_M
-yaml _HOME/modules/yaml/init.lua /^snippets.yaml = {}$/;" t class:snippets
yesno_msgbox _HOME/core/.ui.dialogs.luadoc /^function yesno_msgbox(options) end$/;" f class:ui.dialogs
zoom _HOME/core/.view.luadoc /^module('view')$/;" F class:view
zoom_in _HOME/core/.view.luadoc /^function zoom_in(view) end$/;" f class:view
diff --git a/modules/textadept/keys.lua b/modules/textadept/keys.lua
index f4479ded..a34a2303 100644
--- a/modules/textadept/keys.lua
+++ b/modules/textadept/keys.lua
@@ -8,7 +8,7 @@ local M = {}
-- This set of key bindings is pretty standard among other text editors, at
-- least for basic editing commands and movements.
--
--- ## Key Bindings
+-- ### Key Bindings
--
-- Win32, Linux, BSD|macOS|Terminal|Command
-- -----------------|-----|--------|--------
diff --git a/modules/textadept/snippets.lua b/modules/textadept/snippets.lua
index 8f6185fd..c5be6a34 100644
--- a/modules/textadept/snippets.lua
+++ b/modules/textadept/snippets.lua
@@ -6,7 +6,7 @@ local M = {}
---
-- Snippets for Textadept.
--
--- ## Overview
+-- ### Overview
--
-- Define snippets in the global `snippets` table in key-value pairs. Each pair
-- consists of either a string trigger word and its snippet text, or a string
@@ -17,9 +17,9 @@ local M = {}
-- snippets with the same trigger word, Textadept inserts the one specific to
-- the current lexer, not the global one.
--
--- ## Special Sequences
+-- ### Special Sequences
--
--- ### `%`*n*`(`*text*`)`
+-- #### `%`*n*`(`*text*`)`
--
-- Represents a placeholder, where *n* is an integer and *text* is default
-- placeholder text. Textadept moves the caret to placeholders in numeric order
@@ -29,7 +29,7 @@ local M = {}
-- snippets['foo'] = 'foobar%1(baz)'
-- snippets['bar'] = 'start\n\t%0\nend'
--
--- ### `%`*n*`{`*list*`}`
+-- #### `%`*n*`{`*list*`}`
--
-- Also represents a placeholder (where *n* is an integer), but presents a list
-- of choices for placeholder text constructed from comma-separated *list*.
@@ -37,7 +37,7 @@ local M = {}
--
-- snippets['op'] = 'operator(%1(1), %2(1), "%3{add,sub,mul,div}")'
--
--- ### `%`*n*
+-- #### `%`*n*
--
-- Represents a mirror, where *n* is an integer. Mirrors with the same *n* as a
-- placeholder mirror any user input in the placeholder. If no placeholder
@@ -47,7 +47,7 @@ local M = {}
-- snippets['foo'] = '%1(mirror), %1, on the wall'
-- snippets['q'] = '"%1"'
--
--- ### `%`*n*`<`*Lua code*`>`<br/>`%`*n*`[`*Shell code*`]`
+-- #### `%`*n*`<`*Lua code*`>`<br/>`%`*n*`[`*Shell code*`]`
--
-- Represents a transform, where *n* is an integer that has an associated
-- placeholder, *Lua code* is arbitrary Lua code, and *Shell code* is arbitrary
@@ -77,12 +77,12 @@ local M = {}
--
-- snippets['env'] = '$%1(HOME) = %1[echo $%]'
--
--- ### `%%`
+-- #### `%%`
--
-- Stands for a single '%' since '%' by itself has a special meaning in
-- snippets.
--
--- ### `%(`<br/>`%{`
+-- #### `%(`<br/>`%{`
--
-- Stands for a single '(' or '{', respectively, after a `%`*n* mirror.
-- Otherwise, the mirror would be interpreted as a placeholder or transform.
@@ -90,12 +90,12 @@ local M = {}
-- a `%`*n* mirror due to `%<...>` and `%[...]` sequences being interpreted as
-- code to execute.
--
--- ### `\t`
+-- #### `\t`
--
-- A single unit of indentation based on the buffer's indentation settings
-- ([`buffer.use_tabs`]() and [`buffer.tab_width`]()).
--
--- ### `\n`
+-- #### `\n`
--
-- A single set of line ending delimiters based on the buffer's end of line mode
-- ([`buffer.eol_mode`]()).
diff --git a/scripts/fill_layout.lua b/scripts/fill_layout.lua
index 94a0cd94..c0ecf890 100755
--- a/scripts/fill_layout.lua
+++ b/scripts/fill_layout.lua
@@ -7,6 +7,10 @@
-- anchors, but ignore the actual TOC.
local p = io.popen('markdown -f toc -T ' .. arg[1])
local html = p:read('*a'):match('^.-\n</ul>\n(.+)$')
+html = html:gsub('<h(%d) id="([^"]+)"', function(n, id)
+ id = id:gsub('%p+', '-'):gsub('%-$', ''):lower()
+ return string.format('<h%d id="%s"', n, id)
+end)
p:close()
-- Fill in HTML layout (stdin) with markdown output and print the result.
diff --git a/src/Makefile b/src/Makefile
index 1f7ff2ed..d4f65e8f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -268,19 +268,22 @@ clean: ; rm -f *.o ../textadept*
# Documentation.
-lua_src = ../core ../modules ../lexers/lexer.lua
+ifndef ALL_MODULES
+ modules = $(addprefix ../modules/,ansi_c lua textadept)
+else
+ modules = ../modules
+endif
ta_home = $(shell dirname `pwd`)
-docs: manual luadoc
+docs: luadoc manual
manual: ../docs/api.md $(wildcard ../docs/*.md) | ../docs/_layouts/default.html
for file in $(basename $^); do \
cat $| | ../scripts/fill_layout.lua $$file.md > $$file.html; \
done
sed -i "s/Textadept \(Manual\|API\)/Textadept $(subst _, ,$(version)) \1/;" \
../docs/*.html
-docs/api.md: $(lua_src)
- cd ../docs && luadoc --doclet markdowndoc $^ > $(notdir $@)
-luadoc: $(lua_src) | ../modules/lua/lua.luadoc
+luadoc: ../core $(modules) ../lexers/lexer.lua | ../modules/lua/lua.luadoc
+ cd ../docs && luadoc --doclet markdowndoc $^ > api.md
cd ../modules && luadoc -d lua --doclet lua/tadoc $^ --ta-home=$(ta_home)
cd ../modules/lua && mv tags ta_tags && mv api ta_api
cd ../modules && luadoc -d lua --doclet lua/tadoc $| --ta-home=$(ta_home)
@@ -316,11 +319,11 @@ endif
$(basedir).linux: ; $(call archive,$@)
release: $(basedir).linux
- make deps clean docs sign-deps
+ make deps clean docs
make -j4 CXXFLAGS="$(CXXFLAGS) -static-libstdc++"
make -j4 CXXFLAGS="$(CXXFLAGS) -static-libstdc++" curses
- cp -rL ../docs ../lexers ../textadept* $< && cp *.asc $</src
- tar czf $<.tgz $< && rm -rf $< && gpg --batch -ab $<.tgz
+ cp -rL ../docs ../lexers ../textadept* $<
+ tar czf $<.tgz $< && rm -rf $<
$(basedir).win32: ; $(call archive,$@)
win32-release: $(basedir).win32
make -j4 clean win32-deps
@@ -330,27 +333,26 @@ win32-release: $(basedir).win32
make -j4 win32
make -j4 win32-curses
cp -rL ../docs ../lexers ../textadept* $<
- cp *.asc $</src
- zip -r $<.zip $< && rm -rf $< && gpg --batch -ab $<.zip
+ zip -r $<.zip $< && rm -rf $<
$(basedir).macOS: ; mkdir $@ && cp ../scripts/osx/ta $@
osx-release: $(basedir).macOS
make clean osx-deps
make -j4 osx
make -j4 osx-curses
make osx-app && mv $(osxapp) $<
- zip -r $<.zip $< && rm -rf $< && gpg --batch -ab $<.zip
+ zip -r $<.zip $< && rm -rf $<
$(basedir).modules:
mkdir -p $@/modules
hg archive -R /home/mitchell/code/textadept_modules/ -r tip $@/modules
modules-release: $(basedir).modules
- zip -r $<.zip $< && rm -r $< && gpg --batch -ab $<.zip
+ zip -r $<.zip $< && rm -r $<
osx-app: ../textadept ../textadept-curses ../scripts/osx/textadept_osx
mkdir -p $(osxapp_bin) $(osxapp_res)
cp Info.plist $(osxapp_bin)/../
cp $^ $(osxapp_bin)/
$(call archive,$(osxapp_res))
- cp -rL ../docs ../lexers $(osxapp_res) && cp *.asc $(osxapp_res)/src
+ cp -rL ../docs ../lexers $(osxapp_res)
mv $(osxapp_res)/core/images/textadept.icns $(osxapp_res)/
cp -r gtkosx/etc gtkosx/share $(osxapp_res)/ && mkdir $(osxapp_res)/lib/
cp -r $(addprefix gtkosx/lib/, $(osxapp_libs)) $(osxapp_res)/lib/
@@ -449,12 +451,6 @@ win32curses: pdcurses.patch | $(win32curses_zip) $(pdcurses_zip)
$(gtkosx_tgz): ; $(WGET) http://foicica.com/textadept/download/$@
gtkosx: | $(gtkosx_tgz) ; mkdir $@ && tar xzf $| -C $@ && mv $@/*/* $@
$(cloc): ; $(WGET) http://prdownloads.sourceforge.net/cloc/$@
-sign-deps: | $(scintilla_tgz) $(scinterm_zip) $(scintillua_zip) $(lua_tgz) \
- $(lpeg_tgz) $(lfs_zip) $(gtdialog_zip) $(cdk_tgz) $(termkey_tgz) \
- $(win32gtk_zip) $(win32curses_zip) $(pdcurses_zip) $(gtkosx_tgz)
- @for file in $|; do gpg --batch -ab $$file; done
-verify-deps: | $(wildcard $(basename $(wildcard *.asc)))
- @for file in $|; do echo "$$file"; gpg --verify $$file.asc || return 1; done
clean-deps:
rm -rf scintilla ../lexers LexLPeg.cxx lua gtdialog cdk termkey win32gtk \