Difference between revisions of "LSL Alternate Editors"
m (→Visual Studio Code: added another LSL plugin) |
|||
(206 intermediate revisions by 52 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL Header}} | {{LSL Header|ml=*}} | ||
There are several off-world editors available for free or purchase. Some have syntax highlighting for LSL that will make your code easier to follow. | |||
There are several off-world editors available for free or to purchase. Some have syntax highlighting for LSL that will make your code easier to follow. At least two will compile and execute a large subset of LSL. Below are some of the more popular editors for use with LSL. | |||
If you have a favorite that is missing from the list, '''please''' feel free to add it. | If you have a favorite that is missing from the list, '''please''' feel free to add it. | ||
==Opening scripts in another editor directly from the viewer:== | |||
* Enable: Preferences > Advanced > Show [[Advanced_menu]]. | |||
* Go to: Advanced > Show [[Debug_Settings]]. | |||
* Edit: "ExternalEditor". | |||
As the description tells you, enter 3 params: | |||
* Path to editor (enclose in quotes, if path has spaces). | |||
* Optional command line params (you can ignore these if you like). | |||
* <code>"%s"</code> will paste script path automatically (dont change this). | |||
== | Examples: | ||
* Linux (opens script in new window if already open): <code>/usr/bin/gedit --new-window "%s"</code> | |||
* Windows (path has spaces > enclosed in quotes): <code>"C:\Users\FirstName LastName\Notepad\notepad++.exe" "%s"</code> | |||
Then click the <code>"Edit..."</code> button in the script edit window. Save and close editor when done. | |||
==Making your own files for syntax highlighting and autocompletion:== | |||
Please refer to the page [[Making_your_own_LSL_syntax_and_autocompletion_files]] for a list of colors used by Linden Labs for the editor in their viewer as well as a list with current keywords. | |||
== Online LSL Generators == | |||
Online LSL generators create and edit LSL scripts via a website, some may have syntax highlighting for better reading. | |||
Sites are multi-platform editors without downloads: | |||
*[http://conwylie.co.uk/ScriptGenerator/ Con Wylie's LSL Script Generator] | |||
== Syntax Highlighting Files == | |||
These projects may have more current LSL highlighting files: | |||
*[http://hilitelsl.googlecode.com HiLiteLSL.GoogleCode.com] | |||
== Syntax highlighting, autocompletion and snippet files by the [http://www.buildersbrewery.com Builder's Brewery]: == | |||
{| class="wikitable" style="font-size: 85%; text-align: center; width: auto; border=1px;" | |||
|- | |||
! '''Software:''' | |||
! '''URL for download:''' | |||
! '''Issue tracker:''' | |||
! '''Commercial:''' | |||
! '''Windows:''' | |||
! '''Mac:''' | |||
! '''Linux:''' | |||
! '''Browser''' | |||
! '''Syntax:''' | |||
! '''Autocompletion:''' | |||
! '''Snippets:''' | |||
! '''Tooltips:''' | |||
|- | |||
| [http://ace.c9.io Ace] | |||
| rowspan="19" | [https://github.com/buildersbrewery/linden-scripting-language/ Download files] | |||
| rowspan="19" | [https://github.com/buildersbrewery/linden-scripting-language/issues/ Issue tracker] | |||
| {{no}} | |||
| colspan="3" {{maybe|requires a browser}} | |||
| {{yes}} | |||
| {{maybe|LL viewer theme not included}} | |||
| colspan="2" {{yes}} | |||
| {{no}} | |||
|- | |||
| [http://www.atom.io/ AtomEditor] | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{yes|Atom is built upon Chrome}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
|- | |||
| [http://www.contexteditor.org/ ConTEXT] | |||
| {{no}} | |||
| {{yes}} | |||
| colspan="2" {{no}} | |||
| {{no}} | |||
| colspan="2" {{yes}} | |||
| {{no}} | |||
| {{no}} | |||
|- | |||
| [http://www.gnu.org/software/emacs/ Emacs] | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
| {{maybe|Work in progress}} | |||
| {{no}} | |||
| {{maybe|included for [https://github.com/capitaomorte/yasnippet YASnippet]}} | |||
| {{no}} | |||
|- | |||
| [http://projects.gnome.org/gedit/ gedit] | |||
| {{no}} | |||
| colspan="2" {{yes}} | |||
| {{maybe|for GNOME}} | |||
| {{no}} | |||
| colspan="2" {{yes}} | |||
| colspan="2" {{no}} | |||
|- | |||
| [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi GeSHi - wikimedia extension] | |||
| {{no}} | |||
| colspan="3" {{maybe|requires a browser}} | |||
| colspan="2" {{yes}} | |||
| colspan="3" {{no}} | |||
|- | |||
| [http://www.highlightjs.org/ Highlight.js] | |||
| {{no}} | |||
| colspan="3" {{maybe|requires a browser}} | |||
| colspan="2" {{yes}} | |||
| colspan="3" {{no}} | |||
|- | |||
| [http://www.jedit.org/ jEdit] | |||
| {{no}} | |||
| colspan="3" {{maybe|requires JavaVM}} | |||
| {{no}} | |||
| {{maybe|LL viewer theme not included}} | |||
| {{yes}} | |||
| colspan="2" {{no}} | |||
|- | |||
| [http://www.kate-editor.org/ Kate] | |||
| {{no}} | |||
| {{maybe|via KDE for Windows}} | |||
| {{maybe|via KDE for Mac}} | |||
| {{yes}} | |||
| {{no}} | |||
| colspan="2" {{yes}} | |||
| colspan="2" {{no}} | |||
|- | |||
| [http://www.nano-editor.org/ Nano] | |||
| {{no}} | |||
| colspan="2" {{no}} | |||
| {{yes}} | |||
| {{no}} | |||
| {{yes}} | |||
| colspan="3" {{no}} | |||
|- | |||
| [http://www.notepad-plus-plus.org/ Notepad++] | |||
| {{no}} | |||
| {{yes}} | |||
| colspan="2" {{no}} | |||
| {{no}} | |||
| colspan="2" {{yes}} | |||
| {{maybe|included for [https://github.com/erinata/FingerText FingerText]}} | |||
| {{no}} | |||
|- | |||
| [http://www.pygments.org/ Pygments] | |||
| {{no}} | |||
| colspan="3" {{maybe|requires a browser}} | |||
| colspan="2" {{yes}} | |||
| colspan="3" {{no}} | |||
|- | |||
| [http://www.codingmonkeys.de/subethaedit/ SubEthaEdit] | |||
| {{yes}} | |||
| {{no}} | |||
| {{yes}} | |||
| colspan="2" {{no}} | |||
| colspan="2" {{yes}} | |||
| colspan="2" {{no}} | |||
|- | |||
| Sublime Text [http://www.sublimetext.com/2 ST 2 stable], [http://www.sublimetext.com/dev ST 2 dev], [http://www.sublimetext.com/3 ST 3 stable], [http://www.sublimetext.com/3dev ST 3 dev] | |||
| {{yes}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{yes}} | |||
|- | |||
| [http://www.textasticapp.com/ Textastic] | |||
| {{yes}} | |||
| {{no}} | |||
| {{yes|Supports Mac OS and iOS versions of Textastic}} | |||
| colspan="2" {{no}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
|- | |||
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch] | |||
| {{yes}} | |||
| {{no}} | |||
| {{yes}} | |||
| colspan="2" {{no}} | |||
| colspan="2" {{no}} | |||
| {{yes}} | |||
| {{no}} | |||
|- | |||
| [http://www.ultraedit.com/ UltraEdit] | |||
| {{yes}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
|- | |||
| [http://www.vim.org/ Vim] | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
| {{maybe|LL viewer theme not included}} | |||
| {{yes}} | |||
| {{maybe|included for [https://github.com/garbas/vim-snipmate Snipmate] and [https://github.com/SirVer/ultisnips Ultisnips]}} | |||
| {{no}} | |||
|- | |||
| [https://code.visualstudio.com/ Visual Studio Code] | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
| colspan="3" {{yes}} | |||
| {{no}} | |||
|} | |||
==LSL Integrated Development Environments (coding and testing environments) == | |||
===[[Con-Wylies-Script-Generator]]=== | |||
*[http://conwylie.co.uk/ScriptGenerator/ Con Wylie's LSL Script Generator] has been ported from a website into a free downloadable program, anyone can use the program as it is very easy to use. | |||
Con Wylie's LSL program is multi-platform on Windows, Linux and Mac. The generator, editor and compiler have been built from the ground up to give the user ease of use. | |||
===[[LslPre]]=== | |||
* <s>[http://lsl.dreamjammers.net http://lsl.dreamjammers.net]</s>{{dead link}} | |||
[[LslPre]] is a full featured LSL script editor, preprocessor and optimiser for windows. | |||
===[[LSL Editor Community Edition]]=== | |||
LSL Editor Community Edition '''for Windows''' is a standalone LSL script '''editor, compiler and debugger'''. Binary and Source as of 2013-03-14. | |||
Its compiler and debugger are already now reasonably accurate. Please blog any LSL-Editor bugs you find into such places as our [[LSLEditorBugs|LSL-Editor Bugs]] article or via the project's SourceForge bug tracker located at: [http://sourceforge.net/tracker/?group_id=319248 Bug Tracker]. | |||
* | * Alphons van der Heijden, author of LSLEditor, the great off-line editor and debugging tool for scripting in Second Life, has donated his opus magnum to the free and open source community where it can grow and keep pace with the SL platform! | ||
*Details, executable and source can be found at [http://sourceforge.net/projects/lsleditor/ http://sourceforge.net/projects/lsleditor/] | |||
Development of LSL-Editor was originally done by Alphons van der Heijden at [http://www.lsleditor.org/ http://www.lsleditor.org/]. | |||
=== [[LSL-Plus]] === | === [[LSL-Plus]] === | ||
Line 24: | Line 232: | ||
[http://lslplus.sourceforge.net/ LSL PLus Eclipse Plugin] | [http://lslplus.sourceforge.net/ LSL PLus Eclipse Plugin] | ||
'''For Windows, Mac, and Linux''', the LSL Plus Eclipse plugin is a Editor/Unit Test environment for LSL implemented in Eclipse. It is a FLOSS project (Free/Libre Open Source Software). The latest release (0.13.0 - 2010-01-06) features multi-script execution with '''source level debugging''' (setting breakpoints, single stepping through code, examining variables on the call stack, etc.), making it unique among LSL IDEs. It now supports both multi-script execution in a simulated environment (with avatars, prims, inventory, (limited) physics, etc.) and '''unit''' testing - allowing you to test individual handlers and functions by precisely controlling the setup/teardown and interaction with the execution environment (including support for 'mocking' the LL function call that interact with the script environment). It also has some additional code management features that encourage code re-use without having to cut-and-paste, as well as code '''optimization''' (inlining, constant folding). | |||
By using the Eclipse IDE you get features such as integration with source code control systems like CVS or Subversion, task management, integration with 3rd party bug tracking software, and so on. It supports development on Windows, Mac, and Linux platforms. | |||
* Missing bracket matching and certain highlighting features. | |||
=== [[LSLForge]] === | |||
'''LSLForge Eclipse for Windows/Linux/OS X''', is a derivative of [[LSL-Plus]], forked in September 2011. LSLForge aims to further advance and mature the LSL-Plus project and support the Eclipse LSL developer community. | |||
This project was initially maintained [https://github.com/elnewfie/lslforge here], but is abandoned/orphaned. The currently most active (as of 04/2024) fork can be found [https://github.com/KoolLSL/lslforge here]. | |||
=== [[MiceOnABeam Visual Scripting Tool]] [{{HoverText|''C''|Commercial Software}}]=== | |||
* [http://www.miceonabeam.com/ MiceOnABeam Visual Scripting Tool] | |||
MiceOnABeam is a visual programming tool (for Windows only) that generates LSL scripts for SL. You choose among graphical modelling components to specify the program flow of your script in terms of states and the events that transition between the states. You can then use the built-in LSL Action Wizard or insert your own LSL code to specify what happens when an event occurs. The program then generates the LSL code for the model to form a complete script for the SL environment. Check out the demo video '''[https://bit.ly/ihCqyf here]''' or on '''[https://www.youtube.com/watch?v=LBA8wvoA9EI YouTube]'''. A Free version can be downloaded from '''[http://www.miceonabeam.com here]'''. | |||
{{warning|This project was unfortunately abandoned ''circa'' 2016, but you can still download v1.0.5 as well as a professional license for free from the original developers.}} | |||
=== [[LSL plugin for JetBrains IDEs]] === | |||
[https://plugins.jetbrains.com/plugin/21002-linden-script-lsl- LSL plugin] for [https://www.jetbrains.com/ JetBrains IDEs] (IntelliJ IDEA, PyCharm, Android Studio etc.) | |||
Supports syntax highlighting, code style formatting, autocompletion, hints, references, plus everything that provides IDE itself. | |||
The plugin is in early access and any contain bugs. | |||
==A build system that uses cpp and make== | |||
A build system for LSL scripts is described [[How_to_make_writing_LSL_scripts_easier|here.]] Sources are available from [https://github.com/Ratany/lsl-repo here]. | |||
[[User:Ratany Resident|Ratany Resident]] 09:38, 13 January 2014 (PST) | |||
==Off-world syntax checker== | |||
You can build a syntax checker yourself and hook it into whatever editor you fancy if you have the viewer source installed and compiled on your machine. The C++ source to build one yourself is [[User:JB_Kraft#Offline_LSL_Syntax_Checker|here (JB Kraft)]]. | |||
==Multi-platform Editors== | ==Multi-platform Editors== | ||
===ByronStar SL=== | ===ByronStar SL=== | ||
Based on [http://eclipse.org Eclipse], the [http://byronstar-sl.sourceforge.net/ ByronStar SL IDE] includes most modern program editor features. It also includes custom features for LSL, such as variable checking, error markers, and code formatting. Eclipse is available for Macintosh, Linux, Windows, and many UNIX flavors. | Based on [http://eclipse.org Eclipse], the [http://byronstar-sl.sourceforge.net/ ByronStar SL IDE] includes most modern program editor features. It also includes custom features for LSL, such as variable checking, error markers, and code formatting. Eclipse is available for Macintosh, Linux, Windows, and many UNIX flavors. | ||
* No longer maintained. | |||
===Emacs=== | ===Emacs=== | ||
There | There is an [[Emacs LSL Mode]] available on this wiki, which provides syntax highlighting and indentation features. For tips on writing LSL in emacs, read [http://xahlee.org/sl/ls-emacs.html Xah Lee's page]. Emacs is available for many Unix flavors, Macintosh and Windows. | ||
You may come across (and attempt to use) Gary Evan's | You may come across (and attempt to use) Gary Evan's '''LSL major mode'''. It won't work with the Linden Scripting Language, as Gary wrote it for the [http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/LarchBook.pdf Larch Shared Language]. | ||
* Last updated 5 January 2014 | |||
===vim=== | ===vim=== | ||
[http://www.vim.org/ vim:] vi improved. A multi-platform evolution of the most classical of the editors: vi. GPL code. | [http://www.vim.org/ vim:] vi improved. A multi-platform evolution of the most classical of the editors: vi. GPL code. | ||
<br>[http://www.secondlifelab.it/index.php?option=com_remository&Itemid=77&func=select&id=7 Plugins for VIM] for install the syntax, autocompletion, autoident for LSL script into vim | <br>[http://www.secondlifelab.it/index.php?option=com_remository&Itemid=77&func=select&id=7 Plugins for VIM] for install the syntax, autocompletion, autoident for LSL script into vim | ||
* Plugin link is dead | |||
===JOE=== | |||
[http://joe-editor.sourceforge.net/ Joe's Own Editor (a.k.a. Joe)] is a comand line editor for unixoid systems. See [[User:Zai Lynch/LSL highlighting in Joe]] for a manual and syntax file download. | |||
===SciTE=== | ===SciTE=== | ||
Easy to use, features syntax highlighting, folding, auto complete, help that opens the appropriate wiki page, and is setup to use the c preprocessor, and lslint.<br> | Easy to use, features syntax highlighting, folding, auto complete, help that opens the appropriate wiki page, and is setup to use the c preprocessor, and [[lslint]].<br> | ||
Windows only [http://sl.sdfjkl.org/secondlife/scite/ | Windows only [https://sdfjkl.org/hack/scite-ez/]<br> | ||
<!-- old side ( http://sl.sdfjkl.org/secondlife/scite/ ) not longer possible --> | |||
Files for Linux or Windows [http://forums.secondlife.com/showthread.php?t=209219 Forum thread] [http://dimension128.homelinux.net/scite_lsl.tar.gz scite_lsl.tar.gz] | Files for Linux or Windows [http://forums.secondlife.com/showthread.php?t=209219 Forum thread] [http://dimension128.homelinux.net/scite_lsl.tar.gz scite_lsl.tar.gz] | ||
* LSL file links are dead | |||
===jEdit=== | ===jEdit=== | ||
Developed in Java, this mature, cross-platform editor runs on any operating system with a Java 2 version 1.3 or higher virtual machine. It has all the features you'd expect from a full-GUI text editor. Syntax highlighting and tailored editing behavior is supported through "modes." (You can get the LSL 'modes' file [ | Developed in Java, this mature, cross-platform editor runs on any operating system with a Java 2 version 1.3 or higher virtual machine. It has all the features you'd expect from a full-GUI text editor. Syntax highlighting and tailored editing behavior is supported through "modes." (You can get the LSL 'modes' file [https://gist.github.com/GitSkunk/5327522 here] .) The editor supports a rich plug-in API; many third-party plug-ins exist to facility editing, formatting, communications, etc.<br> | ||
You can find jEdit [http://www.jedit.org/ here]. | You can find jEdit [http://www.jedit.org/ here]. | ||
*LSL Files last updated june 2013 | |||
===Midnight Commander=== | |||
[http://www.midnight-commander.org/ GNU Midnight Commander (mc)] is a free cross-platform orthodox file manager and a clone of Norton Commander.<br> | |||
Midnight Commander is a console application with a text user interface.<br> | |||
OS: Unix-like, Microsoft Windows<br> | |||
For Linux see [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/mc]] for a manual and syntax file download. | |||
*LSL files last updated in 2009 | |||
=== | ===UltraEdit-32/UEStudio [{{HoverText|''C''|Commercial Software}}]=== | ||
Very outdated | |||
[http://www.ultraedit.com/ UltraEdit-32/UEStudio] is a powerful text, HTML, and HEX editor. This is a commercial editor with a 30 day trial version available at the website. Important features: | |||
* column/block mode editing | |||
* brackets/braces matching | |||
* code-folding | |||
* configurable syntax highlighting via custom [http://www.ultraedit.com/index.php?name=Content&pa=showpage&pid=40#wordfiles wordfiles] | |||
* autocomplete (using keywords defined in the wordfile) | |||
* bookmarks, incremental searching, CTAG support | |||
* automatic conversion between Unix/Dos/MAC/UTF-8, etc | |||
* built-in FTP/SFTP client | |||
OS: Linux, Mac and Windows. | |||
The following syntax files are available for UltraEdit | |||
* [[User:Lum Pfohl/LSL Syntax Highlighting For UltraEdit]] | |||
* Last updated 28 November 2007. | |||
===Sublime Text [{{HoverText|''C''|Commercial Software}}]=== | |||
[http://www.sublimetext.com/ Sublime Text] is a sophisticated text editor for code, markup and prose. | |||
You'll love the slick user interface, extraordinary features and amazing performance. Key Bindings, Menus, Snippets, Macros, Completions and more - just about everything in Sublime Text is customizable with simple JSON files. This system gives you flexibility as settings can be specified on a per-file type and per-project basis. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform. | |||
Sublime Text is available for OS X, Windows and Linux. | |||
Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use. There is no enforced time limit for the evaluation. | |||
The following syntax highlighting files are available for Sublime Text. | |||
* [https://github.com/JKolya/sublime-text-2-lsl Sublime Text 2 LSL Syntex] Last updated October 28, 2012. | |||
What you will get via Package Control is the following. Simply go "Package Control: Install Package" and search for "LSL".<br/>(including not only syntax highlighting, but also smooth LSL functions/events/constants completions, [[lslint]] as build system, and inworld editor look-and-feel theme) | |||
* [https://github.com/Makopo/sublime-text-lsl LSL Bundle for Sublime Text 2] | |||
*Active as of 27 September 2015 | |||
===Visual Studio Code=== | |||
[https://code.visualstudio.com/ Visual Studio Code] - sometimes called VS Code - is the free editor component of the otherwise commercial Visual Studio package by Microsoft. Visual Studio Code is a full editing environment with projects support, syntax highlighting, editing timeline, autocomplete, GitHub connection, diff, etc. | |||
Visual Studio Code can be extended with a wide range of extension. There are a handful of extensions for LSL, in various stages of actuality. The most recently maintained ones being [https://marketplace.visualstudio.com/items?itemName=MinuitFerina.lsl-tools LSL Tools] and [https://marketplace.visualstudio.com/items?itemName=DalGhost.lsl-fp LSL-FP], or the realtively new [https://marketplace.visualstudio.com/items?itemName=jyaoma.lsl-lsp LSL Language Server], all available for free via the [https://marketplace.visualstudio.com/search?term=lsl&target=VSCode&category=All%20categories&sortBy=Relevance VS Code Marketplace]. | |||
Visual Studio Code has built-in provisions for make and build workflows, so tools like an external linter, prrprocessor or optimizer can be included into the development workflow. | |||
* Active as of 11 September 2023 | |||
==Windows Editors== | ==Windows Editors== | ||
<!-- Add your text editors in the following format --> | <!-- Add your text editors in the following format --> | ||
===e=== | |||
The [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below. | |||
===Notepad++=== | ===Notepad++=== | ||
[http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] is probably one of the best Windows editor around. Packed with features, extremely powerful and easy to use for beginners too. Best of all, it is GPL code. | [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] is probably one of the best Windows editor around. Packed with features, extremely powerful and easy to use for beginners too. Best of all, it is GPL code. | ||
Shan Bright's Notepad++ LSL syntax file 'BrightLSL' is at the Bright Corporation website: [http://www.brightcorporation.net/brightlsl BrightLSL] (Updated December 10, 2010) | |||
Nexii Malthus's Notepad++ LSL syntax file, includes latest functions and constants [http://c438644.r44.cf2.rackcdn.com/userDefineLang.xml] (3rd December, 2011) | |||
WhiteStar Magic's Notepad++ LSL syntax file is being updated regularly, and is available on Github: [https://github.com/WhiteStar-Magic/NotePad---userdef/archives/master NotePad---userdef] (Last Update: May.03.2012) | |||
Gwen Setzer's Notepad++ (6.3 and above) LSL Syntax Files: (Generated from Firestorm 4.4.0) | |||
Language description: [http://pastebin.com/2AsRuKjh lslLanguage.xml] (Language->Define your Language->Import) | |||
Autocompletion support: [http://pastebin.com/FcjNVDyb lsl.xml] (Copy the file lsl.xml in the API plugin directory of Notepad++. ex: C:\Program Files\Notepad++\plugins\APIs, I also recommend enabling Settings->Preferences->Autocompletion->Function parameters hint on input) | |||
Dari's Better Highlighting for Notepad++ (6.3 and above): [http://home.comcast.net/~volfin/LSL.XML LSL.XML] (updated 11/22/2013) [[User:Darien Caldwell|Darien Caldwell]] 12:11, 9 July 2013 (PDT) | |||
Hint: to ensure code folding works properly, change line endings to Windows style if they are not already set as such. (Edit / EOL conversion / Windows format) | |||
===ConTEXT=== | ===ConTEXT=== | ||
Line 62: | Line 375: | ||
The following syntax files are available for ConTEXT. | The following syntax files are available for ConTEXT. | ||
* [http://blogic14.blogspot.com/ Last Activity] July 2012 | |||
* [http://archive.is/Wm3B Last Announcement by developer of ConTEXT] Friday, 07 September 2007 | |||
* [http://www.contexteditor.org/ Site and Newsletter Sign Up - '''DOWNLOAD'''] September 2007 | |||
* [http://forum.context.cx/index.php?action=dlattach;topic=1775.0;id=359 Shyan Graves] Last updated March 01, 2007. | * [http://forum.context.cx/index.php?action=dlattach;topic=1775.0;id=359 Shyan Graves] Last updated March 01, 2007. | ||
* [http://adammarker.org/shill/context/lsl.chl Sir.Grelling] Last updated July 10, 2006. | * [http://adammarker.org/shill/context/lsl.chl Sir.Grelling] Last updated July 10, 2006. | ||
Line 68: | Line 384: | ||
[http://www.crimsoneditor.com/ Crimson Editor] is a professional source code editor for Windows. | [http://www.crimsoneditor.com/ Crimson Editor] is a professional source code editor for Windows. | ||
The following syntax files are available for Crimson Editor. | The following syntax files are available for Crimson Editor. | ||
* [http://www.crimsoneditor.com/english/board/CrazyWWWBoard.cgi?db=file3&mode=read&num=1791 Aakanaar] Last updated September 10, 2006 for Second Life version 1.10.0. | <!--* [http://www.crimsoneditor.com/english/board/CrazyWWWBoard.cgi?db=file3&mode=read&num=1791 Broken Link - Aakanaar] Last updated September 10, 2006 for Second Life version 1.10.0. --> | ||
* Aakanaar - Last updated September 10, 2006 for Second Life version 1.10.0. | |||
* [http://sourceforge.net/projects/emeraldeditor/files/crimsoneditor/ Emerald Editor] '''2011''' Open Source version of Crimson Editor | |||
===[[LSL-Editor]]=== | |||
* This project is no longer maintained. Instead, consider LSL Editor Community Edition. See below. | |||
===LSL Editor Community Edition=== | |||
* [http://sourceforge.net/projects/lsleditor/ Source Forge: LSL Editor] | |||
* [http:// | |||
[[LSL-Editor]] is | [[LSL-Editor]] is the '''frequently''' updated version of the LSL Editor with editing, compiling, and debugging abilities. | ||
When the path to the editor is added to the viewer's Debug Setting: ''ExternalEditor'' one can have a nice round trip external editor. See the LSL-Editor entry just above, or see above in the Integrated section, or the wiki page [[LSL-Editor]] for more information. | |||
===TextPad [{{HoverText|''C''|Commercial Software}}]=== | ===TextPad [{{HoverText|''C''|Commercial Software}}]=== | ||
Line 84: | Line 403: | ||
The following syntax files are available for TextPad. | The following syntax files are available for TextPad. | ||
* [[LSL_Editor_TextPad_ClipBook_Events | Events ClipBook]] Last updated March 5, 2007. Based on the LSL Portal event entries. | |||
* [[LSL_Editor_TextPad_Syntax | Prodigal Maeterlinck & Patrick2 Chama]] Last updated February 20, 2007. Extracted from the Second Life viewer source code. | * [[LSL_Editor_TextPad_Syntax | Prodigal Maeterlinck & Patrick2 Chama]] Last updated February 20, 2007. Extracted from the Second Life viewer source code. | ||
* [http://www.textpad.com/add-ons/files/syntax/lsl_.zip Ben Gray] Last updated August 23, 2006. As of version 1.12.0, with the deprecated functions in a separate keyword list. | * [http://www.textpad.com/add-ons/files/syntax/lsl_.zip Ben Gray] Last updated August 23, 2006. As of version 1.12.0, with the deprecated functions in a separate keyword list. | ||
* [http://www.textpad.com/add-ons/files/syntax/lsl.zip Matthias Huber] Last updated September 23, 2004. | * [http://www.textpad.com/add-ons/files/syntax/lsl.zip Matthias Huber] Last updated September 23, 2004. | ||
=== | ===EditPad Pro [{{HoverText|''C''|Commercial Software}}]=== | ||
[http://www. | [http://www.editpadpro.com/ EditPad Pro] is a text editor with many great features for programming. It is a commercial program, with a demo version available. There is also a Lite version, but that has no syntax-highlighting support. | ||
There is an LSL syntax file available for download from inside the program. However, it is from October 2006 so some new features may not be available. | |||
===LSLCCEditor=== | |||
[https://github.com/Teriks/LibLSLCC/releases LSLCCEditor] is an open-source LSL editor for Windows with autocomplete, off world syntax checking, common code analysis warnings, and code formatting. It was built as part of an improved OpenSim compiler project, and is also able to compile LSL into OpenSim compatible C# code. The editor is released along side a cross platform C# library (LibLSLCC), which implements a reusable LSL compiler frontend and OpenSim compatible transpiler. | |||
Library Data (highlighting data) is provided for both Linden LSL, and OpenSim LSL + OpenSim LSL extensions. | |||
The dialect of LSL is configurable via the editor menu. Some editor usage information is provided on the project's [https://github.com/Teriks/LibLSLCC/wiki Wiki]. | |||
==Macintosh Editors== | ==Macintosh Editors== | ||
===TextMate [{{HoverText|''C''|Commercial Software}}]=== | ===TextMate [{{HoverText|''C''|Commercial Software}}]=== | ||
TextMate is a commercial text/program editor from [http://macromates.com/ Macromates] (30 day trial available). You can find details about Piero Padar's well-maintained LSL bundle in the [http://forums-archive.secondlife.com/54/ae/89389/1.html Scripting Tips forum archive]. | |||
===SubEthaEdit [{{HoverText|''C''|Commercial Software}}]=== | ===SubEthaEdit [{{HoverText|''C''|Commercial Software}}]=== | ||
Line 118: | Line 431: | ||
An updated LSL mode by Mark Lentczner is available now from the SubEthaEditor [http://www.subethaedit.net/modes.html User contributed modes Repository]. | An updated LSL mode by Mark Lentczner is available now from the SubEthaEditor [http://www.subethaedit.net/modes.html User contributed modes Repository]. | ||
An updated (but still out of date) version of Mark Lentczner's mode is available on Solo Mornington's Github: https://github.com/SoloMornington/LSL_mode Note that this mode was developed for Coda 1. | |||
===Coda [{{HoverText|''C''|Commercial Software}}]=== | |||
Coda is 'one-window web development,' but it's a very pleasing text editor for a wide variety of uses. You can set up 'sites' which are web sites, but can represent any remote filesystem, which is echoed locally through ftp and/or subversion. | |||
Coda can use SubEthaEdit syntax coloring 'modes,' so LSL is supported. Also available is a plug-in editor which lets you run arbitrary scripts on the selection or document. | |||
https://library.panic.com/coda/ | |||
''Note: Coda was [https://library.panic.com/coda/purchase-faq/ discontinued] as of September 16th, 2020. However, it's still available for download for customers with a valid license who are running ancient versions of macOS. It was replaced by Nova; see below.'' | |||
===Nova [{{HoverText|''C''|Commercial Software}}]=== | |||
[https://nova.app/ Nova] is Panic Inc.'s next generation code editor. It has been rewritten from scratch, and, except for allowing importing old Coda 2 projects (what it used to be called 'sites'), it's not compatible with Coda plugins or themes. By contrast, it's a far more sophisticated code editor (tenderly referred to as 'a lightweight IDE' by its fans), aiming to directly compete with VS Code on the macOS platform, offering much more. | |||
Because the old SubEthaEdit syntax colouring modes used by Coda aren't supported any longer (the new syntax highlighting engine uses Panic's own variant of a [https://markdown-all-in-one.github.io/docs/contributing/textmate-language-grammar.html#introduction TextMate grammar]), Nova requires the development of new 'language extensions' from scratch by volunteers; starting with Nova 10, it also supports grammars written with [https://docs.nova.app/syntax-reference/tree-sitter/ Tree-sitter Extensions], but [https://tree-sitter.github.io/tree-sitter/ there isn't yet a Tree-sitter grammar for LSL]. | |||
There is an [https://extensions.panic.com/extensions/gwynethllewelyn/gwynethllewelyn.LindenScriptingLanguage/ LSL language extension on the Nova Extension Library] which features not just syntax highlighting/colouring, but also auto-completion, scope context and tooltips, although many features are still under development. The colours used for actual syntax highlighting are '''not''' the [[Making your own LSL syntax and autocompletion files|official ones]], but they're specified by whatever is set to the current ''theme'', not by the language extension itself; there is, at the time of writing, no LSL-specific theme for Nova (but it's not too hard to do one). | |||
Nova is a fully commercial code editor with a 30-day trial period and a license fee that gets you one year of updates, after which you can just keep the copy you've got forever without paying anything else (or, alternatively, buy another year of updates, at a discount). | |||
===BBEdit and TextWrangler === | ===BBEdit and TextWrangler === | ||
You can get | |||
You can get an LSL language plugin for all versions of BBEdit and TextWrangler at [http://blog.elitecoderz.net/lsl-linden-script-language-plugin-for-bbedit/2008/12/ Erik Scholtz' Blog] | |||
For older versions of BBEdit (7.0 or less) and TextWrangler (1.0 only), there is a module available at [http://adammarker.org/bbedit http://adammarker.org/bbedit] | |||
==Linux Editors== | ==Linux Editors== | ||
===Kate=== | |||
[http://kate-editor.org/ Kate] is an advanced text editor for KDE. Usually included in all KDE based distributions.<br> | |||
A [[Kate LSL Mode]] is available on this wiki. | A [[Kate LSL Mode]] is available on this wiki. | ||
===Gedit=== | |||
[http://www.gnome.org/projects/gedit/ Gedit] is an advanced text editor for GNOME.<br> | |||
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/gedit]] for a manual, syntax file and Color Theme download. | |||
===Nano=== | |||
Nano is a curses-based text editor for Unix and Unix-like systems.<br> | |||
Nano has been an official part of the GNU Project since February 2001.<br> | |||
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/nano]] for a manual and syntax file download. | |||
===Vim=== | |||
Based on the vi editor common to Unix-like systems, [http://vim.sourceforge.net/ Vim] is designed for use both from a command line interface and as a standalone application in a graphical user interface.<br> | |||
Vim comes standard with LSL highlighting support. | |||
== Features Table == | |||
<!-- Needs to be in alpha order --> | |||
{| class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto; border=1px;" | |||
|- | |||
! Name | |||
! Integrated development environment | |||
! Windows | |||
! Mac OS | |||
! Linux | |||
! Code Completion | |||
! Highlighting | |||
! Actively Maintained | |||
|- | |||
! [[LSL_Alternate_Editors#Con-Wylies-Script-Generator|Con-Wylies-Script-Generator]] | |||
| {{yes}} | |||
| {{yes}} | |||
| colspan="2" {{no|No since 2.x}} | |||
| {{yes}} | |||
| {{yes}} | |||
| {{Yes}} | |||
|- | |||
|- | |||
! [[LSL_Alternate_Editors#LSL-Plus|LSL-Plus]] | |||
| {{yes}} | |||
| colspan="3" {{yes}} | |||
| {{yes}} | |||
| {{yes}} | |||
| {{no}} | |||
|- | |||
|- | |||
! [[LSL_Alternate_Editors#LSLForge|LSLForge]] | |||
| {{yes}} | |||
| colspan="3" {{yes}} | |||
| {{yes}} | |||
| {{yes}} | |||
| {{no}} | |||
|- | |||
|- | |||
! [[LSL_Alternate_Editors#LSL Editor Community Edition|LSL Editor Community Edition]] | |||
| {{yes}} | |||
| {{yes}} | |||
| colspan="2" {{no}} | |||
| {{yes | Custom Vars and Functions also}} | |||
| {{yes}} | |||
| {{yes}} | |||
|- | |||
|- | |||
! [[LSL_Alternate_Editors#LslPre|LslPre]] | |||
| {{yes}} | |||
| {{maybe|Windows (.NET)}} | |||
| colspan="2" {{no}} | |||
| {{yes}} | |||
| {{yes}} | |||
| {{maybe|All links and references down as of 2023}} | |||
|- | |||
|- | |||
! [[LSL_Alternate_Editors#MiceOnABeam Visual Scripting Tool|MiceOnABeam Visual Scripting Tool]] | |||
| {{yes}} | |||
| {{maybe|Windows (.NET)}} | |||
| colspan="2" {{no}} | |||
| {{yes | Custom Vars and Functions also}} | |||
| {{yes}} | |||
| {{no|Old licensees can still download code}} | |||
|- | |||
! [[LSL_Alternate_Editors#LSLCCEditor|LSLCCEditor]] | |||
| {{yes}} | |||
| {{maybe|Windows (.NET)}} | |||
| colspan="2" {{no}} | |||
| {{yes | Custom Vars and Functions also}} | |||
| {{yes}} | |||
| {{yes}} | |||
|- | |||
|- | |||
! [[LSL_Alternate_Editors#LSL_plugin_for_JetBrains_IDEs|LSL plugin for JetBrains IDEs]] | |||
| {{yes}} | |||
| colspan="3" {{yes}} | |||
| {{yes}} | |||
| {{yes}} | |||
| {{yes}} | |||
|- | |||
|} |
Latest revision as of 11:55, 29 August 2024
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
There are several off-world editors available for free or to purchase. Some have syntax highlighting for LSL that will make your code easier to follow. At least two will compile and execute a large subset of LSL. Below are some of the more popular editors for use with LSL.
If you have a favorite that is missing from the list, please feel free to add it.
Opening scripts in another editor directly from the viewer:
- Enable: Preferences > Advanced > Show Advanced_menu.
- Go to: Advanced > Show Debug_Settings.
- Edit: "ExternalEditor".
As the description tells you, enter 3 params:
- Path to editor (enclose in quotes, if path has spaces).
- Optional command line params (you can ignore these if you like).
"%s"
will paste script path automatically (dont change this).
Examples:
- Linux (opens script in new window if already open):
/usr/bin/gedit --new-window "%s"
- Windows (path has spaces > enclosed in quotes):
"C:\Users\FirstName LastName\Notepad\notepad++.exe" "%s"
Then click the "Edit..."
button in the script edit window. Save and close editor when done.
Making your own files for syntax highlighting and autocompletion:
Please refer to the page Making_your_own_LSL_syntax_and_autocompletion_files for a list of colors used by Linden Labs for the editor in their viewer as well as a list with current keywords.
Online LSL Generators
Online LSL generators create and edit LSL scripts via a website, some may have syntax highlighting for better reading. Sites are multi-platform editors without downloads:
Syntax Highlighting Files
These projects may have more current LSL highlighting files:
Syntax highlighting, autocompletion and snippet files by the Builder's Brewery:
Software: | URL for download: | Issue tracker: | Commercial: | Windows: | Mac: | Linux: | Browser | Syntax: | Autocompletion: | Snippets: | Tooltips: |
---|---|---|---|---|---|---|---|---|---|---|---|
Ace | Download files | Issue tracker | No | requires a browser | Yes | LL viewer theme not included | Yes | No | |||
AtomEditor | No | Yes | Atom is built upon Chrome | Yes | No | ||||||
ConTEXT | No | Yes | No | No | Yes | No | No | ||||
Emacs | No | Yes | No | Work in progress | No | included for YASnippet | No | ||||
gedit | No | Yes | for GNOME | No | Yes | No | |||||
GeSHi - wikimedia extension | No | requires a browser | Yes | No | |||||||
Highlight.js | No | requires a browser | Yes | No | |||||||
jEdit | No | requires JavaVM | No | LL viewer theme not included | Yes | No | |||||
Kate | No | via KDE for Windows | via KDE for Mac | Yes | No | Yes | No | ||||
Nano | No | No | Yes | No | Yes | No | |||||
Notepad++ | No | Yes | No | No | Yes | included for FingerText | No | ||||
Pygments | No | requires a browser | Yes | No | |||||||
SubEthaEdit | Yes | No | Yes | No | Yes | No | |||||
Sublime Text ST 2 stable, ST 2 dev, ST 3 stable, ST 3 dev | Yes | Yes | No | Yes | Yes | ||||||
Textastic | Yes | No | Supports Mac OS and iOS versions of Textastic | No | Yes | No | |||||
TextExpander and TextExpander touch | Yes | No | Yes | No | No | Yes | No | ||||
UltraEdit | Yes | Yes | No | Yes | No | ||||||
Vim | No | Yes | No | LL viewer theme not included | Yes | included for Snipmate and Ultisnips | No | ||||
Visual Studio Code | No | Yes | No | Yes | No |
LSL Integrated Development Environments (coding and testing environments)
Con-Wylies-Script-Generator
- Con Wylie's LSL Script Generator has been ported from a website into a free downloadable program, anyone can use the program as it is very easy to use.
Con Wylie's LSL program is multi-platform on Windows, Linux and Mac. The generator, editor and compiler have been built from the ground up to give the user ease of use.
LslPre
LslPre is a full featured LSL script editor, preprocessor and optimiser for windows.
LSL Editor Community Edition
LSL Editor Community Edition for Windows is a standalone LSL script editor, compiler and debugger. Binary and Source as of 2013-03-14.
Its compiler and debugger are already now reasonably accurate. Please blog any LSL-Editor bugs you find into such places as our LSL-Editor Bugs article or via the project's SourceForge bug tracker located at: Bug Tracker.
- Alphons van der Heijden, author of LSLEditor, the great off-line editor and debugging tool for scripting in Second Life, has donated his opus magnum to the free and open source community where it can grow and keep pace with the SL platform!
- Details, executable and source can be found at http://sourceforge.net/projects/lsleditor/
Development of LSL-Editor was originally done by Alphons van der Heijden at http://www.lsleditor.org/.
LSL-Plus
For Windows, Mac, and Linux, the LSL Plus Eclipse plugin is a Editor/Unit Test environment for LSL implemented in Eclipse. It is a FLOSS project (Free/Libre Open Source Software). The latest release (0.13.0 - 2010-01-06) features multi-script execution with source level debugging (setting breakpoints, single stepping through code, examining variables on the call stack, etc.), making it unique among LSL IDEs. It now supports both multi-script execution in a simulated environment (with avatars, prims, inventory, (limited) physics, etc.) and unit testing - allowing you to test individual handlers and functions by precisely controlling the setup/teardown and interaction with the execution environment (including support for 'mocking' the LL function call that interact with the script environment). It also has some additional code management features that encourage code re-use without having to cut-and-paste, as well as code optimization (inlining, constant folding).
By using the Eclipse IDE you get features such as integration with source code control systems like CVS or Subversion, task management, integration with 3rd party bug tracking software, and so on. It supports development on Windows, Mac, and Linux platforms.
- Missing bracket matching and certain highlighting features.
LSLForge
LSLForge Eclipse for Windows/Linux/OS X, is a derivative of LSL-Plus, forked in September 2011. LSLForge aims to further advance and mature the LSL-Plus project and support the Eclipse LSL developer community.
This project was initially maintained here, but is abandoned/orphaned. The currently most active (as of 04/2024) fork can be found here.
MiceOnABeam Visual Scripting Tool [C]
MiceOnABeam is a visual programming tool (for Windows only) that generates LSL scripts for SL. You choose among graphical modelling components to specify the program flow of your script in terms of states and the events that transition between the states. You can then use the built-in LSL Action Wizard or insert your own LSL code to specify what happens when an event occurs. The program then generates the LSL code for the model to form a complete script for the SL environment. Check out the demo video here or on YouTube. A Free version can be downloaded from here.
This project was unfortunately abandoned circa 2016, but you can still download v1.0.5 as well as a professional license for free from the original developers.
LSL plugin for JetBrains IDEs
LSL plugin for JetBrains IDEs (IntelliJ IDEA, PyCharm, Android Studio etc.)
Supports syntax highlighting, code style formatting, autocompletion, hints, references, plus everything that provides IDE itself.
The plugin is in early access and any contain bugs.
A build system that uses cpp and make
A build system for LSL scripts is described here. Sources are available from here.
Ratany Resident 09:38, 13 January 2014 (PST)
Off-world syntax checker
You can build a syntax checker yourself and hook it into whatever editor you fancy if you have the viewer source installed and compiled on your machine. The C++ source to build one yourself is here (JB Kraft).
Multi-platform Editors
ByronStar SL
Based on Eclipse, the ByronStar SL IDE includes most modern program editor features. It also includes custom features for LSL, such as variable checking, error markers, and code formatting. Eclipse is available for Macintosh, Linux, Windows, and many UNIX flavors.
- No longer maintained.
Emacs
There is an Emacs LSL Mode available on this wiki, which provides syntax highlighting and indentation features. For tips on writing LSL in emacs, read Xah Lee's page. Emacs is available for many Unix flavors, Macintosh and Windows.
You may come across (and attempt to use) Gary Evan's LSL major mode. It won't work with the Linden Scripting Language, as Gary wrote it for the Larch Shared Language.
- Last updated 5 January 2014
vim
vim: vi improved. A multi-platform evolution of the most classical of the editors: vi. GPL code.
Plugins for VIM for install the syntax, autocompletion, autoident for LSL script into vim
- Plugin link is dead
JOE
Joe's Own Editor (a.k.a. Joe) is a comand line editor for unixoid systems. See User:Zai Lynch/LSL highlighting in Joe for a manual and syntax file download.
SciTE
Easy to use, features syntax highlighting, folding, auto complete, help that opens the appropriate wiki page, and is setup to use the c preprocessor, and lslint.
Windows only [1]
Files for Linux or Windows Forum thread scite_lsl.tar.gz
- LSL file links are dead
jEdit
Developed in Java, this mature, cross-platform editor runs on any operating system with a Java 2 version 1.3 or higher virtual machine. It has all the features you'd expect from a full-GUI text editor. Syntax highlighting and tailored editing behavior is supported through "modes." (You can get the LSL 'modes' file here .) The editor supports a rich plug-in API; many third-party plug-ins exist to facility editing, formatting, communications, etc.
You can find jEdit here.
- LSL Files last updated june 2013
Midnight Commander
GNU Midnight Commander (mc) is a free cross-platform orthodox file manager and a clone of Norton Commander.
Midnight Commander is a console application with a text user interface.
OS: Unix-like, Microsoft Windows
For Linux see User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/mc for a manual and syntax file download.
- LSL files last updated in 2009
UltraEdit-32/UEStudio [C]
Very outdated UltraEdit-32/UEStudio is a powerful text, HTML, and HEX editor. This is a commercial editor with a 30 day trial version available at the website. Important features:
- column/block mode editing
- brackets/braces matching
- code-folding
- configurable syntax highlighting via custom wordfiles
- autocomplete (using keywords defined in the wordfile)
- bookmarks, incremental searching, CTAG support
- automatic conversion between Unix/Dos/MAC/UTF-8, etc
- built-in FTP/SFTP client
OS: Linux, Mac and Windows.
The following syntax files are available for UltraEdit
- User:Lum Pfohl/LSL Syntax Highlighting For UltraEdit
- Last updated 28 November 2007.
Sublime Text [C]
Sublime Text is a sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance. Key Bindings, Menus, Snippets, Macros, Completions and more - just about everything in Sublime Text is customizable with simple JSON files. This system gives you flexibility as settings can be specified on a per-file type and per-project basis. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform.
Sublime Text is available for OS X, Windows and Linux.
Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use. There is no enforced time limit for the evaluation.
The following syntax highlighting files are available for Sublime Text.
- Sublime Text 2 LSL Syntex Last updated October 28, 2012.
What you will get via Package Control is the following. Simply go "Package Control: Install Package" and search for "LSL".
(including not only syntax highlighting, but also smooth LSL functions/events/constants completions, lslint as build system, and inworld editor look-and-feel theme)
- LSL Bundle for Sublime Text 2
- Active as of 27 September 2015
Visual Studio Code
Visual Studio Code - sometimes called VS Code - is the free editor component of the otherwise commercial Visual Studio package by Microsoft. Visual Studio Code is a full editing environment with projects support, syntax highlighting, editing timeline, autocomplete, GitHub connection, diff, etc.
Visual Studio Code can be extended with a wide range of extension. There are a handful of extensions for LSL, in various stages of actuality. The most recently maintained ones being LSL Tools and LSL-FP, or the realtively new LSL Language Server, all available for free via the VS Code Marketplace.
Visual Studio Code has built-in provisions for make and build workflows, so tools like an external linter, prrprocessor or optimizer can be included into the development workflow.
- Active as of 11 September 2023
Windows Editors
e
The e Editor is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.
Notepad++
Notepad++ is probably one of the best Windows editor around. Packed with features, extremely powerful and easy to use for beginners too. Best of all, it is GPL code.
Shan Bright's Notepad++ LSL syntax file 'BrightLSL' is at the Bright Corporation website: BrightLSL (Updated December 10, 2010)
Nexii Malthus's Notepad++ LSL syntax file, includes latest functions and constants [2] (3rd December, 2011)
WhiteStar Magic's Notepad++ LSL syntax file is being updated regularly, and is available on Github: NotePad---userdef (Last Update: May.03.2012)
Gwen Setzer's Notepad++ (6.3 and above) LSL Syntax Files: (Generated from Firestorm 4.4.0) Language description: lslLanguage.xml (Language->Define your Language->Import) Autocompletion support: lsl.xml (Copy the file lsl.xml in the API plugin directory of Notepad++. ex: C:\Program Files\Notepad++\plugins\APIs, I also recommend enabling Settings->Preferences->Autocompletion->Function parameters hint on input)
Dari's Better Highlighting for Notepad++ (6.3 and above): LSL.XML (updated 11/22/2013) Darien Caldwell 12:11, 9 July 2013 (PDT)
Hint: to ensure code folding works properly, change line endings to Windows style if they are not already set as such. (Edit / EOL conversion / Windows format)
ConTEXT
ConTEXT is a small, fast and powerful freeware text editor, developed mainly to serve as secondary tool for software developers.
The following syntax files are available for ConTEXT.
- Last Activity July 2012
- Last Announcement by developer of ConTEXT Friday, 07 September 2007
- Site and Newsletter Sign Up - DOWNLOAD September 2007
- Shyan Graves Last updated March 01, 2007.
- Sir.Grelling Last updated July 10, 2006.
Crimson Editor
Crimson Editor is a professional source code editor for Windows. The following syntax files are available for Crimson Editor.
- Aakanaar - Last updated September 10, 2006 for Second Life version 1.10.0.
- Emerald Editor 2011 Open Source version of Crimson Editor
LSL-Editor
- This project is no longer maintained. Instead, consider LSL Editor Community Edition. See below.
LSL Editor Community Edition
LSL-Editor is the frequently updated version of the LSL Editor with editing, compiling, and debugging abilities. When the path to the editor is added to the viewer's Debug Setting: ExternalEditor one can have a nice round trip external editor. See the LSL-Editor entry just above, or see above in the Integrated section, or the wiki page LSL-Editor for more information.
TextPad [C]
TextPad is a powerful, but easy to use general purpose text editor. It is a commercial product, but there is a 30 day trial version available for free on the website.
The following syntax files are available for TextPad.
- Events ClipBook Last updated March 5, 2007. Based on the LSL Portal event entries.
- Prodigal Maeterlinck & Patrick2 Chama Last updated February 20, 2007. Extracted from the Second Life viewer source code.
- Ben Gray Last updated August 23, 2006. As of version 1.12.0, with the deprecated functions in a separate keyword list.
- Matthias Huber Last updated September 23, 2004.
EditPad Pro [C]
EditPad Pro is a text editor with many great features for programming. It is a commercial program, with a demo version available. There is also a Lite version, but that has no syntax-highlighting support.
There is an LSL syntax file available for download from inside the program. However, it is from October 2006 so some new features may not be available.
LSLCCEditor
LSLCCEditor is an open-source LSL editor for Windows with autocomplete, off world syntax checking, common code analysis warnings, and code formatting. It was built as part of an improved OpenSim compiler project, and is also able to compile LSL into OpenSim compatible C# code. The editor is released along side a cross platform C# library (LibLSLCC), which implements a reusable LSL compiler frontend and OpenSim compatible transpiler.
Library Data (highlighting data) is provided for both Linden LSL, and OpenSim LSL + OpenSim LSL extensions. The dialect of LSL is configurable via the editor menu. Some editor usage information is provided on the project's Wiki.
Macintosh Editors
TextMate [C]
TextMate is a commercial text/program editor from Macromates (30 day trial available). You can find details about Piero Padar's well-maintained LSL bundle in the Scripting Tips forum archive.
SubEthaEdit [C]
This a great text editor with extensible language support. It also happens to be an incredible collaborative editor. Info at: http://www.subethaedit.net/
There is a contributed LSL mode by Zarf Vantongerloo. The mode is a little out of date and could use some love. But in general works great, doing syntax hilighting of LSL funcitons and adding a pop-up menu of all functions, states and event handlers to the top of the window.
An updated LSL mode by Mark Lentczner is available now from the SubEthaEditor User contributed modes Repository.
An updated (but still out of date) version of Mark Lentczner's mode is available on Solo Mornington's Github: https://github.com/SoloMornington/LSL_mode Note that this mode was developed for Coda 1.
Coda [C]
Coda is 'one-window web development,' but it's a very pleasing text editor for a wide variety of uses. You can set up 'sites' which are web sites, but can represent any remote filesystem, which is echoed locally through ftp and/or subversion.
Coda can use SubEthaEdit syntax coloring 'modes,' so LSL is supported. Also available is a plug-in editor which lets you run arbitrary scripts on the selection or document.
https://library.panic.com/coda/
Note: Coda was discontinued as of September 16th, 2020. However, it's still available for download for customers with a valid license who are running ancient versions of macOS. It was replaced by Nova; see below.
Nova [C]
Nova is Panic Inc.'s next generation code editor. It has been rewritten from scratch, and, except for allowing importing old Coda 2 projects (what it used to be called 'sites'), it's not compatible with Coda plugins or themes. By contrast, it's a far more sophisticated code editor (tenderly referred to as 'a lightweight IDE' by its fans), aiming to directly compete with VS Code on the macOS platform, offering much more.
Because the old SubEthaEdit syntax colouring modes used by Coda aren't supported any longer (the new syntax highlighting engine uses Panic's own variant of a TextMate grammar), Nova requires the development of new 'language extensions' from scratch by volunteers; starting with Nova 10, it also supports grammars written with Tree-sitter Extensions, but there isn't yet a Tree-sitter grammar for LSL.
There is an LSL language extension on the Nova Extension Library which features not just syntax highlighting/colouring, but also auto-completion, scope context and tooltips, although many features are still under development. The colours used for actual syntax highlighting are not the official ones, but they're specified by whatever is set to the current theme, not by the language extension itself; there is, at the time of writing, no LSL-specific theme for Nova (but it's not too hard to do one).
Nova is a fully commercial code editor with a 30-day trial period and a license fee that gets you one year of updates, after which you can just keep the copy you've got forever without paying anything else (or, alternatively, buy another year of updates, at a discount).
BBEdit and TextWrangler
You can get an LSL language plugin for all versions of BBEdit and TextWrangler at Erik Scholtz' Blog
For older versions of BBEdit (7.0 or less) and TextWrangler (1.0 only), there is a module available at http://adammarker.org/bbedit
Linux Editors
Kate
Kate is an advanced text editor for KDE. Usually included in all KDE based distributions.
A Kate LSL Mode is available on this wiki.
Gedit
Gedit is an advanced text editor for GNOME.
See User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/gedit for a manual, syntax file and Color Theme download.
Nano
Nano is a curses-based text editor for Unix and Unix-like systems.
Nano has been an official part of the GNU Project since February 2001.
See User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/nano for a manual and syntax file download.
Vim
Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface.
Vim comes standard with LSL highlighting support.
Features Table
Name | Integrated development environment | Windows | Mac OS | Linux | Code Completion | Highlighting | Actively Maintained |
---|---|---|---|---|---|---|---|
Con-Wylies-Script-Generator | Yes | Yes | No since 2.x | Yes | Yes | Yes | |
LSL-Plus | Yes | Yes | Yes | Yes | No | ||
LSLForge | Yes | Yes | Yes | Yes | No | ||
LSL Editor Community Edition | Yes | Yes | No | Custom Vars and Functions also | Yes | Yes | |
LslPre | Yes | Windows (.NET) | No | Yes | Yes | All links and references down as of 2023 | |
MiceOnABeam Visual Scripting Tool | Yes | Windows (.NET) | No | Custom Vars and Functions also | Yes | Old licensees can still download code | |
LSLCCEditor | Yes | Windows (.NET) | No | Custom Vars and Functions also | Yes | Yes | |
LSL plugin for JetBrains IDEs | Yes | Yes | Yes | Yes | Yes |