bbannier/zeek-language-server

GitHub: bbannier/zeek-language-server

为Zeek脚本提供LSP语言服务器支持,在主流编辑器中实现代码补全、跳转定义、语义高亮等智能开发辅助功能。

Stars: 17 | Forks: 4

# Zeek script 语言服务器 本项目为 [Zeek](https://zeek.org/) script 实现了一个 [language server](https://microsoft.github.io/language-server-protocol/)。 这是 Alpha 质量的软件,特别是在类型解析方面。虽然它目前已经提供了有用的结果,但并未解析所有 Zeek script;不过,我们要么正确解析符号,要么完全不解析,即,如果呈现了结果,它应该是正确的。 ## 安装 许多不同平台的二进制文件托管在 [GitHub](https://github.com/bbannier/zeek-language-server/releases/latest) 上,可以通过以下方式安装 ``` curl -L https://github.com/bbannier/zeek-language-server/releases/latest/download/zeek-language-server-installer.sh | sh ``` 这也会安装一个二进制文件,可用于更新安装。 ``` $ zeek-language-server-update Checking for updates... Already up to date; not upgrading ``` 或者,可以使用 Python 包管理器安装二进制文件,例如 [`pipx`](https://pipx.pypa.io/) ``` $ pipx install git+https://github.com/bbannier/zeek-language-server@t/wip installed package zeek-language-server 0.73.4, installed using Python 3.13.8 These apps are now globally available - zeek-language-server done! ✨ 🌟 ✨ ``` ### 从源码构建 本项目需要 Rust 才能构建,可以通过例如 [rustup](https://rustup.rs) 进行设置。 然后可以通过以下方式安装本项目 ``` cargo install --git https://github.com/bbannier/zeek-language-server.git ``` 这将安装一个名为 `zeek-language-server` 的二进制文件,提供完整的服务器功能。 ## 设置 为了查看 Zeek 系统脚本中的符号,需要安装 Zeek,并且 `zeek-config` 应该在 `PATH` 中。 为了获得可选的格式化支持,[`zeek-format`](https://github.com/zeek/zeekscript/) 应该在 `PATH` 中。 ### 配置 服务器解释以下 `initializationOptions`: - `inlay_hints_parameters` (默认值: `true`): 是否显示函数调用参数的 inlay hints - `inlay_hints_variables` (默认值: `true`): 是否显示变量声明的 inlay hints - `references` (默认值: `false`): 是否启用 _Go To References_。 - `rename` (默认值: `false`): 是否启用 _Rename_。 - `semantic_highlighting` (默认值: `true`) 启用语义高亮。 - `debug_ast_nodes` (默认值: `false`) 在悬停时启用 AST 节点的调试输出 **警告**:由于 Zeek 脚本通常具有不完整的 `@load` 语句,因此提供的列表很可能是不完整的。请使用 `grep` 等工具来搜索标识符的所有引用。 #### 编辑器设置 ##### vscode 我们提供了一个 [minimal extension for vscode](https://github.com/bbannier/zeek-language-server/tree/main/vscode),它被 [published to the vscode marketplace](https://marketplace.visualstudio.com/items?itemName=bbannier.zeek-language-server)。 此外,每个 [release](https://github.com/bbannier/zeek-language-server/releases) 都会创建一个扩展 VSIX 文件。 启动时,扩展会自动下载该版本的 server 二进制文件。 #### Emacs 有关 Emacs 的安装说明,请参阅 [此处](README.emacs.md)。 #### JetBrains IDEs 有关 JetBrains IDEs 的安装说明,请参阅 [此处](README.intellij.md)。 #### 其他编辑器 我们为 x86_64 Darwin 或 Linux 系统提供了 [binaries for releases](https://github.com/bbannier/zeek-language-server/releases)。然后,您应该设置客户端以使用此二进制文件。 可以在例如 [此处](https://langserver.org/#implementations-client) 找到编辑器插件列表。 ## 调试 有关 VS Code 设置和功能列表(其中一些是 VS Code 特有的),请参阅 [这些说明](./DEBUGGING.md)。 ## 开发 此服务器通过 [tree-sitter highlighting queries](https://tree-sitter.github.io/tree-sitter/syntax-highlighting) 提供高亮支持。要调整现有内容或添加新查询,需要编辑 [`crates/tree-sitter-zeek/vendor`](https://github.com/bbannier/zeek-language-server/tree/main/crates/tree-sitter-zeek/vendor) 中的文件,并对子模块进行升级。
标签:Golang, IDE支持, LSP, Rootkit, Rust, SOC Prime, Zeek, Zeek-Script, 云安全监控, 代码格式化, 代码补全, 可视化界面, 安全编程, 开发工具, 网络安全, 网络流量审计, 脚本语言, 语法高亮, 语言服务器, 逆向工具, 通知系统, 隐私保护, 静态分析