Contents

Scripting

Textadept has superb support for editing Lua code. Syntax autocomplete and LuaDoc is available for many Textadept objects as well as Lua’s standard libraries. See the lua module documentation for more information.

Adeptsense ta      Adeptsense tadoc

LuaDoc and Examples

Textadept’s API is heavily documented. The API docs are the ultimate resource on scripting Textadept. There are of course abundant scripting examples since Textadept is mostly written in Lua.

Generating LuaDoc

You can generate API documentation for your own modules using the doc/markdowndoc.lua LuaDoc module:

luadoc -d . --doclet _HOME/doc/markdowndoc [module(s)]

or

luadoc -d . -t template_dir --doclet _HOME/doc/markdowndoc [module(s)]

where _HOME is where Textadept is installed and template_dir is an optional template directory that contains two Markdown files: .header.md and .footer.md. (See doc/.header.md and doc/.footer.md for examples.) An api/ directory containing the API documentation is created in the current directory.

You must have Discount installed.

Lua Configuration

Lua 5.2 is built into Textadept. It has the same configuration (luaconf.h) as vanilla Lua with the following exceptions:

LuaJIT

Even though Textadept can be run with LuaJIT, LuaJIT is based on Lua 5.1 and is not fully compatible with Lua 5.2. Therefore, modules and scripts should be written to be compatible with both versions. There is a compatibility layer in core/compat.lua. Please see it for more information.

Scintilla

The editing component used by Textadept is Scintilla. The buffer part of Textadept’s API is derived from the Scintilla API so any C/C++ code using Scintilla calls can be ported to Lua without too much trouble.

Textadept Structure

Because Textadept is mostly written in Lua, its Lua scripts have to be stored in an organized folder structure.

Core

Textadept’s core Lua modules are contained in core/. These are absolutely necessary in order for the application to run. They are responsible for Textadept’s Lua to C interface, event structure, file input/output, and localization.

Lexers

Lexer Lua modules are responsible for the syntax highlighting of source code. They are located in lexers/.

Modules

Editor Lua modules are contained in modules/. These provide advanced text editing capabilities and can be available for all programming languages or targeted at specific ones.

Themes

Built-in themes to customize the look and behavior of Textadept are located in themes/.

User

User Lua modules are contained in the ~/.textadept/ folder. This folder may contain lexers/, modules/, and themes/ subdirectories.

GTK

The etc/, lib/, and share/ directories are used by GTK and only appear in the Win32 and Mac OSX packages.