|
|
| editor | files | notes |
| sample file |
sample.txt |
text file including all LSL flow control, data types, constants, events, and functions, one per line |
| BBEdit / TextWrangler |
lsl.plist |
This plist file (original from Captain Barmy) is a "codeless language module" which works with
BBEdit 8.x and TextWrangler 2.x. It support syntax highlighting. The update for 1.13
also updates BBLMLanguageCode to LLSL as advised by Herbert Hoggard.
BBEdit also supports a binary module, which can enable the function popup and more highlighting. I'll post one of those if I can figure it out. |
| Code-Genie |
lsl.cgsyn |
original file from Tread Whiplash |
| ConTEXT |
lsl.chl |
original file from Sir Grelling via the ConTEXT site. |
| Crimson Editor |
lsl.key |
original file from Templar Baphomet (posted at Crimson Editor Syntax Files) and updated by Aakanaar Lasalle |
| Eclipse | The most current Eclipse environment I'm aware of is from ByronStar Comet: ByronStar Second Life IDE. | |
| EditPlus |
Linden Scripting Language.stx |
original file from Ezhar Fairlight |
| Emacs |
1) lsl.el from Phoenix Linden 2) lsl-mode.el from Reinhard Neurocam These files are written in Emacs Lisp, and I cannot figure out how to update them. If you are an Emacs Guru and would like to see an update, please contact me and I'm sure we can figure it out. |
|
| gedit |
lsl.lang |
original file from Nargus Asturias via the Scripting Tips forum. gedit is the official text editor of the GNOME desktop environment. |
| jEdit |
lsl-edit.xml |
original file from Keilaron Tomba |
| Kate/KWrite |
lsl.xml |
original file by Dale Glass via Second Tux |
| lslint |
builtins.txt |
lslint Note their published builtins file preserves the order from the original SL client source file which is (roughly) the order the function was added to Second Life. Shill generates things in alphabetical order. The file only lists functions so lslint still may not be able to recognize the new event http_request. |
| MoinMoin Wiki |
lsl.py |
original file from Thilo pfennig. I added functions, events, and all constants to this file, but I have not been able to test it. They use keyword types 'ResWord2' and 'Special'. |
| Notepad++ |
lsl.api userDefineLang.xml |
original file from Samson Havercamp. The XML file supports syntax highlighting. The API file supports auto-completion (ctrl-space). |
| SciTE |
lsl.api lsl.properties |
original files extracted from SciTE-ez (from Ezhar Fairlight) |
| See the forum thread New SciTE files for lsl, for another set of files updated 08-Sep-2007 by LordJason Keisler. | ||
| Smultron |
lsl.plist |
original file from Seraph Bedlam |
| SynEdit | The original file (from Nightwalker Shatner) includes many Pascal functions generated by the SynEdit program. If someone would like to run the generator thing, I can provide an updated keyword list, and would be happy to host the file here. | |
| TextMate | Download Piero Padar's well-maintained bundle, discussed in the Second Life Forums. | |
| TextPad |
Linden Scripting Language.syn Linden Scripting Language.tcl |
The original files (from Sean Gorham) placed some constants in other categories (e.g. NULL_KEY in events), which I was not able to reproduce. Also, numeric constants no longer have their own category. |
| UltraEdit |
LSL-Wordfile.txt |
There were three different files in the Wiki. I chose what appeared to be the most recent (from Grazel Cosmo). That file had only a handful of constants; the updated file includes all constants. |
| vim |
lsl.dict lsl.vim |
original file from Keedon Pollack (and updated by others). lsl.vim is the full syntax file. The deprecated functions list needs to be updated. lsl.dict is a vanilla list of all the keywords that can be used with vim's autocomplete function. |
| the Shill master files | keywords.yaml
signatures.yaml shill.rb |
Shill's master lists of functions, events, and constants. They are formatted
using
YAML, a simple markup language.
|
| If you just want to update your editor keyword list, grab your files from up above and enjoy. If you have a file that you would like me to include in the Shill automatic update, please send it to me. If you're interested updating your own files, or are just curious about the internals of Shill, read on. |
template/
vim/
lsl.vim
lsl.dict
smultron/
lsl.plist
site/
vim/
lsl.vim
lsl.dict
smultron/
lsl.plist
Typical shill command invocations:
erb index.html.erb >site/index.html (does everything) ruby make_yaml.rb (extract keywords from LL source files) ruby shill.rb template/*/* (to generate all syntax files) ruby shill.rb template/jedit/* (to generate just the jedit files)The erb file knows how to find everything, convert everything, then insert everything into a ready-to-publish HTML file. You can also perform the steps one-by-one if you like. make_yaml reads the keyword and function lists from Second Life client source files, and writes two YAML files. keywords.yaml contains three lists of names, one each for constants, events, and functions. shill.rb reads each template specified on the command line, and produces a new file with the same filename, in an output folder called "site". There is no configuration file of editor and file names; it is all inferred from the folder hierarchy. For example:
template/smultron/lsl.plist -->> site/smultron/lsl.plist
A template file may contain RDoc and erb
code. If you don't know what that means, skip the rest of this paragraph.
Take a look at template/vim/lsl.api for basic use of RDoc,
and template/notepad/userDefineLang.xml for an erb sample.
The template is passed first through RDoc, then erb. RDoc is sufficient
for most templates (one keyword per line, sometimes with extra text on
the line), and erb can handle advanced formatting and selection needs.
For erb, three arrays are defined to hold LSL
events, functions, and constants. There is also a hash that holds event
and function signatures. notepad/userDefineLang.xml uses the arrays;
scite/lsl.api uses both the arrays and hash.
If you have no experience with Ruby, I think you can still use Shill to create
or update editor syntax files. Here is a basic example, taken
from
template/bbedit/lsl.plist:
START:functions <string>%name%</string> END:functionsSTART: and END: (which must begin in column 1) tell Shill where to insert a keyword list, and which list to use -- in this case 'functions'. If the editor requires it, you can have other text on the line, like the XML tags in this example. The line is repeated once per keyword, substituting a keyword in place of %name%, generating something like:
<string>llShout</string> <string>llSin</string> <string>llSitTarget</string>Each of the files now contains a Shill update notice, in addition to any other version history the original author may have provided. A template may include the following line (along with proper syntax for a comment):
%SHILL_UPDATE_NOTICE%
and generates an update notice like this:
LSL keywords updated 19 Dec 2006 for LSL 1.13 by http://adammarker.org/shill
You may also want to update the keyword lists. Take a look at the two YAML
files -- you will find it easy to adapt to YAML formatting.
The name Shill: