2 个版本
0.1.1 | 2020年10月25日 |
---|---|
0.1.0 | 2020年7月20日 |
#27 in #acme
27KB
811 代码行(不含注释)
acre
acre 是 Rust 中 acme 的 langserver 客户端。
目前处于 beta 阶段,并且故意在大多数错误情况下崩溃。如果发生崩溃,请提交错误报告以便添加此功能。镜头和一些其他功能尚不支持。配置文件可能会更改。
它通过在 acme 中创建一个新窗口来运行。该窗口列出了所有打开的支持文件和命令。可以通过右键单击它们来运行命令。当前聚焦的窗口前面带有 *
。在 acre 窗口中运行 Get
命令可清除当前输出。
注意:尽管打开的文件列表包含所有支持的文件类型,但这些文件是否由服务器支持(例如,如果它们所在的项目尚未在 acre.toml 中配置),则可能不一定。
演示
安装
最新版本可在此处下载,适用于 Linux 和 OSX。
配置
配置(要运行的服务器)由位于 ~/.config/acre.toml
的文件处理(注意:我不确定在 OSX 上是否也是如此,但如果文件不存在,则会打印出位置)。文件应包含一个 servers
对象,其中名称是 LSP 服务器,值是一个对象
executable
(可选):要调用的二进制文件名。如果没有提供,则使用名称。files
:匹配应与此服务器关联的文件的正则表达式。root_uri
(可选):工作区的根 URI。workspace_folders
(可选):工作区文件夹 URI 的数组。options
(可选):要发送到服务器的选项列表。format_on_put
(可选):布尔值(默认为 true),在 Put 上运行格式化。actions_on_put
(可选):在 Put 上运行的操作(字符串)数组。如果format_on_put
不是 false,则很有用。env
(可选):添加到executable
环境中的键值对表。
URI 应类似于 file:///home/user/project
。
以下是一个用于 rust-analyzer
和 gopls
的示例文件。
[servers.rust-analyzer]
files = "\\.rs$"
workspace_folders = [
"file:///home/username/some-project",
"file:///home/username/other-project",
]
[servers.rust-analyzer.env]
CARGO_TARGET_DIR = "target-ra"
RUSTFLAGS = ""
[servers.gopls]
files = '\.go$'
root_uri = "file:///home/username/go-project"
actions_on_put = ["source.organizeImports"]
这将执行 rust-analyzer-linux
可执行文件,并将其与所有以 .rs
结尾的文件关联。配置了两个工作区。gopls
将在单个根目录上为 .go
文件运行。在 gopls
中,当放置时将运行 organizeImports
命令(即 goimports
)。
可以为每个服务器添加要传递的选项
[servers.name]
files = '\.ext$'
root_uri = "file:///home/username/project"
[servers.name.options]
enableSomething = true
hoverMode = "OneLine"
# Disable checkOnSave in rust-analyzer:
[servers.rust-analyzer.options]
checkOnSave.enable = false
已测试的服务器
以下是经过 acre 测试且预期可以正常工作的服务器列表。
其他客户端
- acme-lsp 是 acme 的另一个客户端。它使用 Win 命令而不是 acre 使用的新窗口方法。
依赖项
约 5-7.5MB
约 160K SLoC