You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-7Lines changed: 9 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,21 +5,23 @@
5
5
6
6
A Nova extension providing syntax highlighting for Linden Scripting Language (LSL), the scripting language used in the Second Life® and OpenSimulator virtual world platforms.
7
7
8
-
Based on the amazing work by Sei Lisa and Mako Nozaki, who compiled the [LSL2 Keywords Database](https://github.com/Sei-Lisa/kwdb) (version 0.0.20210612000), without which I would need to do everything manually (like I did for the first release!).
8
+
Based on the amazing work by Sei Lisa and Mako Nozaki, who compiled the [LSL2 Keywords Database](https://github.com/Sei-Lisa/kwdb) (version 0.0.20210612000), also known as KWDB, without which I would need to do everything manually (like I did for the first release!).
9
9
10
10
## Language Support
11
11
12
12
### This extension currently supports the following features of Linden Scripting Language:
13
13
14
-
- Syntax Highlighting for the latest version of LSL (as of the time of releasing this extension)
15
-
- Auto-completions for major LSL constructionsand functions (as far as I could make them work)
- Syntax Highlighting for the latest version of LSL (as of the current release of the KWDB)
15
+
- Auto-completions for major LSL constructions, functions and constants (as far as I could make them work)
16
+
- OpenSimulator & Aurora Sim LSL functions/constants (not all are correctly tagged, though)
17
17
18
18
### Not done yet:
19
19
20
-
-Adding tooltips and parameter auto-completion for _all_ functions
20
+
-Hovering tooltips. I haven't figured out how _that_ works _without_ using a Language Server Protocol application.
21
21
- Distinguishing global from local scopes for variables. This shouldn't be too hard, since LSL is rather rigid with declarations, but I haven't done it yet.
22
-
- Automagically updating the syntax auto-completions every time Lisa & Nozaki update their own database
22
+
- Making the jumps to definition work consistently.
23
+
- Getting the scope selections to work.
24
+
- Automagically updating the syntax auto-completions every time Lisa & Nozaki update their own database (there are now a few tools to help with that).
23
25
24
26
## Disclaimers, Acknowledgements & Warnings
25
27
@@ -47,6 +49,6 @@ Nova® and the Nova logo are registered trademarks of Panic Inc.
47
49
48
50
The KWDB (a.k.a. LSL2/OSSL/AA Keywords Database and Derived Files Generator) is copyrighted by Sei Lisa and Mako Nozaki and released under a [GNU Lesser General Public License 3](http://www.gnu.org/licenses/lgpl-3.0.html), with parts also copyrighted by Linden Lab and released under the same license.
49
51
50
-
Some of the test files under the `/Tests` directory have been shamelessly copied from the LSL Portal section of the [Second Life Wiki](http://wiki.secondlife.com/wiki/LSL_Portal); their authors are credited on each of them.
52
+
Some of the test files under the `/Tests` directory have been shamelessly copied from the LSL Portal section of the [Second Life Wiki](http://wiki.secondlife.com/wiki/Category:LSL_Library), and, for the OpenSimulator dialect of LSL, from the [OpenSimulator Wiki](http://opensimulator.org/wiki/OSSL_Script_Library); their authors are credited on each of them.
51
53
52
54
Gwyneth Llewelyn is not affiliated with either of these companies or organisations, much less endorsed by any of them.
Copy file name to clipboardExpand all lines: Tools/README.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ You have been warned.
20
20
21
21
Since I've 'discovered' Sei Lisa and Mako Nozaki's most excellent LSL2/OSSL/AA Keywords Database and Derived Files Generator, which is at the basis of almost all contemporary syntax highlighters because it is very comprehensive and has been continuously updated ver the years, it seemed rather stupid to manually 'duplicate' their work (they use similar resources/references), especially when I'm quite sure that I won't be able to keep up with them. As a consequence, it would be a pity if LSL support on Nova lagged behind what other editors (especially free and open-source ones!) were [already offering](https://github.com/buildersbrewery/linden-scripting-language).
22
22
23
-
Therefore, after much research (well, for me, at least), I decided to at least partially automate the process of keeping things up-to-date with the least effort, and write a small tool that converts the KWDB XML into Nova's syntax XML.
23
+
Therefore, after much research (well, for me, at least), I decided to at least partially automate the process of keeping things up-to-date with the least effort, and write a small tool that converts the KWDB XML into Nova's auto-completions XML.
24
24
25
25
In reality, there are lots of tools doing the same for several other editors (many come from [the official KWDB repository](https://github.com/Sei-Lisa/kwdb) itself). Most are written in Python and/or Perl — two programming languages that I'm not really familiar with — so I decided to do it in [Go](https://golang.org). Allegedly, Go's performance in parsing XML is mediocre, but my other alternative — using PHP — was at least as bad, so, well, if you wish to tinker with the code, it's in Go...
26
26
@@ -48,8 +48,10 @@ and to run it from the command line, it's as easy as typing:
48
48
49
49
`./kwdbxmlconvert`
50
50
51
-
If all goes well, you should get XML on the output. This is for the _completions_ — therefore, you need to pipe the output to `/Completions/Linden Scripting Language.xml`.
51
+
If all goes well, you should get XML on the output. This is for the _completions_XML file _only_— therefore, you need to pipe the output to `/Completions/Linden Scripting Language.xml`.
52
52
53
-
You can run `./kwdbxmlconvert --help` to see some more options. In particular, at the time of writing, `kwdbxmlconvert` can _optionally_ also generate a few XML tags for the syntax configuration file; however, you will need to manually copy & paste the output to the required section(s); the process is not fully automated yet (the syntax file is considerably more complex!).
53
+
You can run `./kwdbxmlconvert --help` to see some more options. In particular, at the time of writing, `kwdbxmlconvert` can _optionally_ also generate a few XML tags for the _syntax_ configuration file (by default, it generates a complete _auto-completions_ file, including tooltips); however, you will need to manually copy & paste the output for the _syntax_to the required section(s); the process is not automated yet, mostly because the syntax file is considerably more complex as well as having most of the built-in functions and constants properly classified according to their (many) subtypes — the KWDB doesn't do that, except for (sometimes) tagging grid-specific versions (i.e. available on SL, OpenSimulator and/or Aurora Sim). This tagging is quite inconsistent.
54
54
55
-
After you have copied the files to their proper places, go back to Nova and uncheck, then re-check this extension — it should reload the new completions file (which also includes descriptions/tooltips). If not, well, try to restart Nova. If not even that works, it means that my own code is unable to parse the latest version of the LSL2 Keyword Database. That's a bummer! Sorry, you'll have to deinstall this extension, and re-install it again, thus restoring the original files... and losing all your own work, unless you remembered to back it up!
55
+
There are also some weird duplications (or at least my simplistic coding finds a few duplicates here and there) and the overall KWDB is _not_ ordered; such ordering, where appropriate, was done manually. All this is _not_ automated, so consider the existing code as a work in progress.
56
+
57
+
Anyway... after you have copied the files to their proper places, go back to Nova and uncheck, then re-check this extension — it should reload the new completions file (which also includes descriptions/tooltips). If not, well, try to restart Nova. If not even that works, it means that my own code is unable to parse the latest version of the LSL2 Keyword Database. That's a bummer! Sorry, you'll have to deinstall this extension, and re-install it again, thus restoring the original files... and losing all your own work, unless you remembered to back it up!
0 commit comments