Textadept is composed of many different technologies, which are briefly listed in the following sections.
Textadept’s user interface consists of a graphical user interface (GUI) and a terminal user interface (TUI).
- GTK+ - GIMP Toolkit
- Textadept uses GTK as its cross-platform GUI toolkit.
- ncurses, pdcurses - Libraries for displaying terminal applications
- Textadept uses ncurses as its Linux, MacOSX, and BSD terminal UI, and uses pdcurses as its Windows terminal UI.
- gtDialog* - Cross-platform tool for creating interactive dialogs
- Textadept uses gtDialog for displaying interactive GUI and TUI dialogs.
- cdk - Widget library for terminal applications
- Textadept uses cdk for drawing terminal UI widgets.
- libtermkey - Library for processing keyboard entry for terminal apps
- Textadept uses libtermkey for advanced keyboard entry handling.
Textadept’s core text editing component is Scintilla.
- Scintilla - Scintilla
- Textadept uses Scintilla as its core text editing component.
- TRE - Regular Expression Library
- Textadept replaces Scintilla’s bare-bones Regex capabilities with TRE. Approximate matching is not turned on.
- Scinterm* - Scintilla for curses
- Textadept uses Scinterm as its core text editing component for the terminal version.
- Scintillua* - Dynamic Lua LPeg Lexers for Scintilla
- Textadept uses Scintillua and its lexers for highlighting source code.
Textadept uses Lua as its scripting language. The editor is primarily written in Lua and includes a few external libraries.
- Lua - Lua Programming Language
- Textadept uses Lua as its internal scripting language. Most of Textadept is written in Lua.
- LuaJIT - Just in Time Compiler for Lua
- Textadept optionally uses LuaJIT as a substitute for vanilla Lua.
- LPeg - Parsing Expression Grammars for Lua
- Textadept uses LPeg in its Scintillua lexers.
- LuaFileSystem - Library for accessing directories and file attributes
- Textadept uses LFS for accessing the host filesystem.
- lspawn* - Lua module for spawning processes
- Textadept uses lspawn for spawning asynchronous processes.
* A Foicica.com project.