Editor support may include syntax highlighting, auto-formatting, syntax checking, build and debug integration, etc.
The following editors have some Lua support (at least highlighting or formatting) out of the box:
- [LuaEdit IDE] (Win32, Win64, freeware)
- Completion proposal
- Syntax highlighting
- Watch, Globals, Locals, Call Stack, Lua Stack, etc
- Debugger for Lua 5.0.2
- [DForD LuaCoding] (Win32, shareware, [free license])
- Auto completion
- Syntax highlighting
- Code folding
- Code snippet
- Symbol list
- Organises projects
- Watch, Globals, Locals, Call Stack, Lua Stack, etc
- Debugger for Lua 5.1
- [Vim] (most platforms)
- Vim comes with syntax highlighting and indentation for Lua. Vim 7 supports Lua 5.1
- [ftp.vim.org] You can download the lastest version of the syntax and indent files here.
- [luarefvim] is the Lua reference manual for Vim.
- [lua-support] Lua-IDE for Vim.
- LuaInspect - has plugin for VIM
- [Scintilla/SciTE] (Win32/GTK+)
- Lua syntax highlighting (4.0, 5.0, 5.1), including nested literal strings and block comments.
- Lua scripting extension [1]
- SciteScripts is a community area for disseminating Lua extension scripts
- [lua5api.zip] Lua 5 C API and Lua functions for SciTE calltips (with optional annotations)
- [SciTE Setup Wizard] provides a batteries-included installation for Windows; it is pre-configured with Lua function calltips and Lua 5 keywords.
- [Lua for Windows] includes a customized version of SciTE which can also debug Lua scripts.
- LuaInspect - has plugin for SciTE
- [NsEditor] (Win32, freeware) NsEditor? for the Apocalyx Engine is a stand-alone script editor written to develop games for the Apocalyx engine. NsEditor? is written in Delphi. It's main target is to simplify Apocalyx game development by means of offering a rich set of features and a game framework. The most important editor features include:
- Multiple script editor windows, Lua syntax highlighting, Apocalyx syntax highlighting, context dependent syntax.
- Auto proposal and completion plus parameter proposal, Templates, Zipfile support, Media preview, Direct control of Apocalyx allowing in-game editing and control, Unlimited custom Apocalyx control commands, Function list, etc.
- NsEditor? is set up to also supports a complete game framework. The game framework is based on a set of prefab entities and macro functions. Entities are predefined code snippets, written as normal Lua functions, that can be insert into your personal game scripts.
- Project template files, zip file support, media preview, goto function, insert Variable, GlGooey? skin editor (to skin the GUI elements), XML highlighter, INI highlighter, etc.
- [Geany] (Unix, Windows and most other platforms)
- Code folding, Syntax highlighting (since Geany 0.11)
- [TextAdept] (NT\Linux\OSX, MIT, GTK+)
- Extremely extensible editor written in C++ and Lua using Scintilla
- [Zeus for Windows] (Win32, shareware)
- Code folding
- Syntax highlighting
- Project/Workspace manager
- Class browser
- Code templates
- Tools and macros
- The [QuickHelp] feature can open the [Lua Helpfile] at the topic of current word.
- [Debugger] for Lua 5.1.2
- Editor is fully configurable using embedded Lua 5.1.2 scripting module
- [PSPad for Windows] (Win32, freeware)
- Support of Lua 4.0 syntax highlighting
- Can be re-configured to support Lua 5.0 syntax highlighting
- Keyboard F-keys can open [Lua Helpfile] at the topic for a word the cursor is on.
- [Crimson Editor for Windows] (Win32, freeware)
- Support of Lua 4.0 syntax highlighting
- Can be re-configured to support Lua 5.0 syntax highlighting
- F1 can open [Lua Helpfile] at the topic for a word the cursor is on.
- [EmEditor] (Win32, shareware)
- Lua 5.0 syntax highlighting configuration file
- [jEdit] (Java, freeware)
- Support of Lua 5.0 syntax highlighting
- [TextWrangler] (OS X, freeware)
- Support of Lua 5.0 syntax highlighting
- [SubEthaEdit] (OS X, commercial)
- Support of Lua 5.0 syntax highlighting
- [BBEdit] (OS X, commercial)
- Support of Lua 5.0 syntax highlighting
- [Smultron] (OS X, freeware; discontinued)
- Support of Lua 5.0 syntax highlighting
- [FXiTe] (Windows/Linux/FreeBSD, GPL)
- Lua syntax highlighting
- Built-in Lua scripting engine
- [ScriptDev] - script IDE for Python, Ruby, Lua, Tcl, Perl
Editors requiring 3rd party add-ons, and miscellaneous editor tools:
- [Emacs] and [XEmacs] (most platforms)
- [Lua-mode] with syntax highlighting, auto-indent, interactive lua shell, paren and brace matching, auto-move to function or block begin/end, online documentation look-ups, postprocess output buffer (jump to error lines using traceback). Supports Lua 4 and 5. Works with GNU Emacs 20.7 and above, and XEmacs 21.1 and above.
- [GNU Nano] (Unix, Windows and most other platforms)
-
- [Jed] (Unix, Windows and most other platforms)
- [2]. Should be added to the main release in the next version.
- [MED] (win32 and OS/2 PM)
- [NEdit] (most platforms)
- visit site to download Lua pattern
- [MC-Cooledit] (Unix, win32)
- [Syntax coloring scheme] Use this with the internal editor of the GNU Midnight Commander to get your scripts with fancy colors. Includes small Lua script to perform installation.
- [FTE] (Unix, win32, OS/2)
- [Epsilon] (win32)
- Epsilon is an emacs-like editor that has been around for quite a few years in the DOS, OS/2, Windows, and lately Mac OSX and Linux platforms. A [simple Lua mode] is available, written in Epsilon's C-like extension language EEL. It is known to work with Epsilon 13, and probably works with some earlier versions as well. Save the liked file locally as luamode.e, compile to bytecode and load into the running Epsilon state with the compile-buffer command (which is probably bound to Alt+F3). Save the modified state file as usual (with the write-state command). The resulting major mode handles simple syntax highlighting and code indentation cases, but it does have blind spots and limitations.
- [Eclipse] (win32, open-source) is a Java IDE that can be extended to support Lua 5.1 with one of these plugins
- [LuaEclipse] wich comes with 'syntax highlight, code completion, compilation errors, code and comment folding (and) script execution with a pre-configured interpreter'
- [LunarEclipse] wich comes with 'syntax highlight, code completion, compilation errors, code and comment folding and an ouline view'
Comments on Specific Editors
UltraEdit
Add code-folding ability by adding these lines to the syntax highlighting file above:
/Open Fold Strings = "{"
/Close Fold Strings = "}"
Xemacs
This tickles XEmacs' syntax highlighting a bit. On the first line place "local x = (x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)*(x)". On the second line type "print()". The hourglass cursor flickers for a few couple seconds after typing the ")". Additional terms cause much longer flicker. Some rexex performance issue I suppose. Xemacs 21.4 (patch 13) i586-pc-win32. --DavidManura, 200703
Here's a fill paragraph (M-q) function for wrapping comments. A similar questions was posted in LuaList:2004-04/msg00320.html , but I didn't see this function in the the latest 20061208 version of lua-mode.el on LuaForge. It can probably be improved from this simple form. --DavidManura, 200703
; Fill paragraph (M-q) for wrapping Lua comments.
; http://lua-users.org/wiki/LuaEditorSupport
(defun lua-fill-paragraph (arg)
(save-excursion
(beginning-of-line)
(cond
((looking-at "^ *\-\-+ ")
; Comment found. Set fill prefix. Then fill.
(let ((fill-prefix (buffer-substring-no-properties
(match-beginning 0) (match-end 0)))
(fill-paragraph-function nil))
(fill-paragraph nil)
t))))
)
(setq fill-paragraph-function 'lua-fill-paragraph)
jEdit
Here's a basic jEdit macro that filters the currently selected text through a Lua function. --DavidManura
Process p = java.lang.Runtime.getRuntime().exec(
"lua -e\"io.stdout:write((io.stdin:read'*a':gsub('[a-z]','-')))\"");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
bw.write(textArea.getSelectedText());
bw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String text = "";
String buffer;
while ((buffer = br.readLine()) != null) { text += buffer + "\n"; }
textArea.setSelectedText(text);
FindPage · RecentChanges · preferences
edit · history
Last edited August 17, 2010 3:39 am GMT (diff)