-- Copyright 2007-2013 Mitchell mitchell.att.foicica.com. See LICENSE. _RELEASE = "Textadept 7.0 alpha" package.path = _HOME..'/core/?.lua;'..package.path _SCINTILLA = require('iface') args = require('args') _L = require('locale') events = require('events') require('file_io') require('lfs_ext') require('gui') keys = require('keys') _LEXERPATH = _USERHOME..'/lexers/?.lua;'.._HOME..'/lexers' _M = {} -- modules table -- LuaJIT compatibility. if jit then module, package.searchers, bit32 = nil, package.loaders, bit end --[[ This comment is for LuaDoc. --- -- Extends Lua's _G table to provide extra functions and fields for Textadept. -- @field _HOME (string) -- The path to the directory containing Textadept. -- @field _LEXERPATH (string) -- The paths to lexers, formatted like Lua's [`package.path`][]. -- -- [`package.path`]: http://lua.org/manual/5.2/manual.html#pdf-package.path -- @field _RELEASE (string) -- The Textadept release version string. -- @field _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 Mac OSX -- machines *~/* is the value of "$HOME", typically */home/username/* and -- */Users/username/* respectively. -- @field _CHARSET (string) -- The character set encoding of the filesystem. -- This is used when [working with files](io.html). -- @field RESETTING (bool) -- If [`reset()`](#reset) has been called, this flag is `true` while the Lua -- state is being re-initialized. -- @field WIN32 (bool) -- If Textadept is running on Windows, this flag is `true`. -- @field OSX (bool) -- If Textadept is running on Mac OSX, this flag is `true`. -- @field CURSES (bool) -- If Textadept is running in the terminal, this flag is `true`. -- Curses feature incompatibilities are listed in the [Appendix][]. -- -- [Appendix]: ../14_Appendix.html#Curses.Compatibility module('_G')]] --[[ The tables below were defined in C. --- -- Table of command line parameters passed to Textadept. -- @class table -- @see _G.args -- @name arg local arg --- -- Table of all open buffers in Textadept. -- Numeric keys have buffer values and buffer keys have their associated numeric -- keys. -- @class table -- @usage _BUFFERS[n] --> buffer at index n -- @usage _BUFFERS[buffer] --> index of buffer in _BUFFERS -- @see _G.buffer -- @name _BUFFERS local _BUFFERS --- -- Table of all views in Textadept. -- Numeric keys have view values and view keys have their associated numeric -- keys. -- @class table -- @usage _VIEWS[n] --> view at index n -- @usage _VIEWS[view] --> index of view in _VIEWS -- @see _G.view -- @name _VIEWS local _VIEWS --- -- The current [buffer](buffer.html) in the current [view](#view). -- @class table -- @name buffer local buffer --- -- The currently focused [view](view.html). -- @class table -- @name view local view -- The functions below are Lua C functions. --- -- Emits a `QUIT` event, and unless any handler returns `false`, quits -- Textadept. -- @see events.QUIT -- @class function -- @name quit local quit --- -- Resets the Lua state by reloading all initialization scripts. -- Language-specific 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. `_G.RESETTING` is set to `true` -- when re-initing the Lua State. Any scripts that need to differentiate between -- startup and reset can utilize this variable. -- @class function -- @see RESETTING -- @name reset local reset --- -- Calls the function *f* with the given arguments after *interval* seconds and -- then repeatedly while *f* returns `true`. A `nil` or `false` return value -- stops repetition. -- @param interval The interval in seconds to call *f* after. -- @param f The function to call. -- @param ... Additional arguments to pass to *f*. -- @class function -- @name timeout local timeout ]]