ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

LSL

Makopo 全部

为 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

说明文件

源代码
raw.​githubusercontent.​com

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 作为构建系统(F7CtrlBCommandB)。
  • 没有命令,没有宏,没有模板……

语法缩进

请参阅 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

只需按下F7CtrlBCommandB即可检查当前打开的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发送内部信息。