LSL
为 Second Life 中的 LSL(林登脚本语言)和 OpenSimulator 中的 OSSL(开放模拟器脚本语言)提供语法定义。
详细信息
安装
- 总计 3K
- Win 2K
- Mac 444
- Linux 430
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | 6月22日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 1 | 0 |
Mac | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
说明文件
Sublime Text 的 LSL/OSSL 打包工具
当前支持的语言
- LSL [*.lsl]: Second Life 2023-03-24.579022
- OSSL [*.ossl]: OpenSimulator v0.9.2.1
- 包括 mod*、os*、wl*(LightShare)功能
kwdb版本 0.0.20230409000
功能
- 更快的函数和事件完成。
- 更严格的语法检测 - 如果遗漏了某个部分,其余部分将以奇怪的颜色显示。
- 甚至可以使用 Second Life Viewer 样式的主题。
- 与 TextMate 范围规则 兼容。
- lslint 作为构建系统(F7,CtrlB 或 CommandB)。
- 没有命令,没有宏,没有模板……
语法缩进
请参阅 LSL 编码规范 以获取编码示例。(方法一 = K&R 风格,方法二 = Allman 风格)
安装
本打包工具设计用于与 Sublime Text 2 的最新版本一起使用。
v1.3.2 或更高版本将与 Sublime Text 3 兼容。
使用 Sublime Package Control
安装本工具最简单的方法是通过 Package Control。
- 如果您刚刚安装了 Package Control,在完成以下步骤之前可能需要重新启动 Sublime Text。
- 调用命令面板(在 OS X 上为 CommandShiftP,在 Linux/Windows 上为 CtrlShiftP)。
- 选择“Package Control: Install Package”(此操作可能需要几秒钟)
- 当列表出现时,键入并选择“LSL”。
Package Control 将自动将 LSL/OSSL Bundle 更新到最新版本。
使用 Git
或者,如果您是Git用户,可以安装插件,并通过将仓库直接克隆到Sublime Text应用设置区域的Packages
目录中保持最新。
您可以通过使用菜单项首选项 -> 浏览包...
定位到Sublime Text的Packages
目录。
在Packages
目录内,请使用以下命令克隆插件仓库
git clone https://github.com/Makopo/sublime-text-lsl LSL
手动下载
- 使用GitHub的
*.zip
或*.tar.gz
下载选项下载文件。。 - 解压文件,并将文件夹重命名为
LSL
。 - 将文件夹复制到您的Sublime Text
Packages
目录。
升级
我会尽力在kwdb更新后立即更新关键词列表,但有时我可能做不到。请至少在一月后kwdb高于以上版本后请求维护。如果您需要紧急请求,请通过Twitter上的@makopo
(网址:https://www.twitter.com/makopo)或者给Mako Nozaki发inworld IM来打扰我。
使用 Sublime Package Control
如果您设置文件中的auto_upgrade
选项或其他原因,Package Control可能不会升级此插件。如果您觉得您的版本落后了,请尝试更新它
- 调用命令面板(在 OS X 上为 CommandShiftP,在 Linux/Windows 上为 CtrlShiftP)。
- 选择“Package Control: Upgrade Package”(这可能需要几秒钟)
- 当列表出现时,键入并选择“LSL”。
手动下载
由于没有人会为您的版本负责,您需要自己维护它。只需重新下载*.zip或*.tar.gz并将它覆盖到Packages
目录中即可。
附加功能
Second Life Viewer主题
您可以使用内嵌主题,仅用于.lsl和.ossl文件,以获得与inworld编辑器相同的外观和感受。
要激活它,请使用菜单项首选项 -> 包设置 -> LSL/OSSL -> 使用查看器主题
。
取消激活它的步骤相同。
注意,您需要将此套餐放入“LSL”包目录才能使用它。
更改代码片段插入样式
您可以更改代码片段的插入样式,从默认Allman样式更改为K & R样式。
要激活它,请使用菜单项首选项 -> 包设置 -> LSL/OSSL -> K & R样式
。
取消激活它的步骤相同。
lslint构建系统
您可以运行lslint作为LSL/OSSL构建系统。
lslint由http://w-hat.com发起。
我为其添加了一些功能,以便在Sublime Text中用作构建命令。见https://github.com/Makopo/lslint
只需按下F7或CtrlB或CommandB即可检查当前打开的lsl/ossl脚本的语法。
目前它不支持os/mod/wl函数。
如果您想更改键绑定,请在您的Default.sublime-keymap中使用“build”命令。以下示例将CommandL分配给lslint。
[
{
"keys": ["super+l"],
"command": "build",
"context":[
{ "key": "selector", "operator": "equal", "operand": "source.lsl" }
]
},
{
"keys": ["super+l"],
"command": "build",
"context":[
{ "key": "selector", "operator": "equal", "operand": "source.ossl" }
]
}
]
非ASCII系统问题
如果您的路径包含非ASCII(例如UTF-8)字符,检查可能会失败。
您可能希望避免将脚本放在这样的路径中,或者如果您不能这样做,
您可以在“Packages/Default/exec.py”的第99行之后插入一行来解决这个问题。
cmd = [c.encode(sys.getfilesystemencoding()) for c in cmd]
此外,如果您的系统编码不是UTF-8,您可能需要修改“Packages/LSL/LSL.sublime-build”。
"windows":
{
"encoding": "cp932",
"cmd": ["$packages\\LSL\\windows\\lslint.exe", "-p", "$file"]
},
以上示例是为Windows的日语版本。根据您的环境更改相应的块(windows/linux/osx)。
使用其他构建系统进行方言
您可以为某些方言使用除lslint之外的其他构建系统。
LSL-PyOptimizer
您可以使用LSL-PyOptimizer来优化您的lsl代码。
导航到工具
-> 构建系统
-> 新建构建系统...
并编辑新创建的文件,如下所示
针对Windows:配置文件正则表达式为“ ::[A-Z]++::”((?:.|[\“\]>)*+)”(:\d+\d+):(.*+)”,选择器为“source.lsl”,命令为[“C:\Python27\python.exe”,“PYOPTIMIZER_PATH\main.py”,“–emap”,“–bom”,“$file”,“-o”,“$file_path/${file_base_name}_optimized.$file_extension”],环境变量为{“PYTHONIOENCODING”: “utf-8”}
For osx:
配置文件正则表达式为“ ::[A-Z]++::”((?:.|[\“\]>)*+)”(:\d+\d+):(.*+)”,选择器为“source.lsl”,命令为[“python2.7”,“PYOPTIMIZER_PATH/main.py”,“–emap”,“–bom”,“$file”,“-o”,“$file_path/${file_base_name}_optimized.$file_extension”],环境变量为{“PYTHONIOENCODING”: “utf-8”}
* These samples assume that LSL-PyOptimizer revision is 7282e53 (Feb 5, 2019) or later.
* In this example, output will be created as `SOURCE_FILE_NAME_optimized.SOURCE_EXTENSION`.
* [Official document](http://lsl.blacktulip-virtual.com/lsl-pyoptimizer/) says you need to use Python 2.7.
* Outputs are streamed as utf-8 so you need `PYTHONIOENCODING` environment variable to successfully decode them.
Save this file as `LSL-PyOptimizer.sublime-build`.
Now you'll find `LSL-PyOptimizer` in `Tools` -> `Build System`.
Select `Tools` -> `Build With...`(<kbd>Ctrl</kbd><kbd>Shift</kbd><kbd>B</kbd> or <kbd>Command</kbd><kbd>Shift</kbd><kbd>B</kbd>) and choose `LSL-PyOptimizer`.
From now on, your source will be compiled with LSL-PyOptimizer. `Tools` -> `Build With...` again to switch back to lslint.
## Using lslint as Build System for files with non-ascii characters in their paths
lslint prints output in ascii characters. When calling lslint on the Build System, Python tries to decode the output as utf8, which translates most non-ASCII characters incorrectly. To avoid this, add an argument and specify your system encoding in `LSL.sublime-build`. The encoding value must be one of the codecs in [this list](https://docs.pythonlang.cn/3.3/library/codecs.html#id3).
"windows":
{
"cmd": ["$packages\\LSL\\windows\\lslint.exe", "-p", "$file"],
"encoding": "YOUR_CODEC"
},
## LSL/OSSL sidebar icons
Starting from Sublime Text 3062, you can assign file icons on the sidebar. However, since this plugin is not a theme, I can't provide this feature, instead you can assign your favorite icon to LSL/OSSL entries by yourself.
In short: scope "source.lsl" for LSL and "source.ossl" for OSSL.
1. Create or fetch a 16x16 image. FYI, you can find SecondLife icons in [BitBucket repository](https://bitbucket.org/lindenlab/viewer-release/src/5b51b28e057c/indra/newview/icons/release/?at=default).
2. Rename the image to "file_type_lsl.png".
3. You can even add secondary 32x32 image as "[email protected]". I don't know how it will be used though.
4. Create a file "icon_lsl.tmPreferences" with the following contents.
5. Put the file above and PNG image(s) into your active theme folder.
icon_lsl.tmPreferences:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>scope</key>
<string>source.lsl</string>
<key>settings</key>
<dict>
<key>icon</key>
<string>file_type_lsl</string>
</dict>
</dict>
</plist>
对于ossl,将16x16的“file_type_ossl.png”和“icon_ossl.tmPreferences”带有范围“source.ossl”放入主题文件夹中。
API参考工具提示
从Sublime Text 3070开始,您可以通过上下文菜单中的API参考来查找关键字。由于性能开销,我创建了另一个插件“TooltipLSL”。项目可以在这里找到。
简而言之,使用Package Control安装“TooltipLSL”,然后在功能/常量/事件前放置光标,然后从右键菜单中选择“显示LSL参考”。
关于关键字数据库
该组件使用kwdb作为其LSL/OSSL函数/事件/常名称的源。.tmLanguage和.sublime-completions中的LSL/OSSL关键字自动从内部的文件kwdb.xml生成。我在另一个项目(kwdb_to_sublime)中有自动化工具。因此,如果您发现关键字中有任何缺陷,请首先搜索您想使用的关键字在kwdb.xml
中。然后比较本说明上方kwdb版本的顶部与kwdb.xml
中的。如果发现自己的比kwdb.xml
落后很多,请耐心等待或在Twitter上联系@makopo,或者向Mako Nozaki发送内部信息。