|
|
| Important: Most of these files are untested. Please use with care. Also, I don't know how accurate the source files were. I only replaced the lists of functions, constants, and events with those for Second Life 1.13. Contact: IM Adam Marker or send e-mail. |
| editor | files | notes |
| sample file | sample.txt | Plain 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 forum. |
| Eclipse | The most current Eclipse environment I'm aware of is from ByronStar Comet: ByronStar Second Life IDE. | |
| Crimson Editor | lsl.key | original file from Templar Baphomet (posted at Crimson Editor Syntax Files) and updated by Aakanaar Lasalle |
| EditPlus | Linden Scripting Language.stx | original file from Ezhar Fairlight (http://sdfjkl.org/secondlife/scite/) |
| 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 |
| MoinMoin Wiki | lsl.py | original file from Thilo pfennig. I added functions, events, and many more constants to this file, but I have not been able to test it. They use keyword types 'ResWord2' and 'Special'. |
| Notepad++ | userDefineLang.xml lsl.api |
original file from Samson Havercamp. The XML file supports syntax highlighting. The API file supports auto-completion (ctrl-space). |
| SciTE | scite_lsl.tar.gz | files by LordJason Keisler, see the forum thread New SciTE files for lsl, updated 08-Sep-2007 |
| lsl.properties lsl.api |
original files extracted from SciTE-ez (from Ezhar Fairlight), updated 18-Dec-2006 | |
| 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.vim lsl.dict |
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 system | keywords.yaml
signatures.yaml shill.rb |
Shill's master lists of functions, events, and constants. They are formatted using YAML, a simple markup language. keywords contains just the event, function, and constant names. signatures has signatures and short help for functions and events, currently only used by SciTE-ez. shill.rb makes it all work. See implementation notes below for more details. |
added functions and related constants:
llGetObjectPrimCount
llGetParcelPrimOwners
llGetParcelMaxPrims
llGetParcelPrimCount
PARCEL_COUNT_GROUP
PARCEL_COUNT_OTHER
PARCEL_COUNT_OWNER
PARCEL_COUNT_SELECTED
PARCEL_COUNT_TEMP
PARCEL_COUNT_TOTAL
llGetParcelDetails
PARCEL_DETAILS_AREA
PARCEL_DETAILS_DESC
PARCEL_DETAILS_GROUP
PARCEL_DETAILS_NAME
PARCEL_DETAILS_OWNER
other stuff added along the way:
DATA_PAYINFO
HTTP_VERIFY_CERT
PARCEL_FLAG_ALLOW_GROUP_SCRIPTS
PARCEL_FLAG_RESTRICT_PUSHOBJECT
REGION_FLAG_RESTRICT_PUSHOBJECT
PAYMENT_INFO_ON_FILE
PAYMENT_INFO_USED
Released Shill source files:
shill.rb
keywords.yaml
signatures.yaml
templates/*editor_name*/files
output/*editor_name*/files
| 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. |
shill.rb
keywords.yaml
signatures.yaml
template/
vim/
lsl.vim
lsl.dict
smultron/
lsl.plist
output/
vim/
lsl.vim
lsl.dict
smultron/
lsl.plist
Typical shill command invocations:
ruby shill.rb template/*/* (to generate all syntax files)
ruby shill.rb template/jedit/* (to generate just the jedit files)
Shill reads each template specified on the command line, and produces
a new file with the same filename, but in a folder called output. There
is no configuration file of editor and file names; it is all inferred from
the folder hierarchy. For example:
template/smultron/lsl.plist -->> output/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.