#acme #server #interaction #server-client #github #plan9port #com-9fans-go

plan9

基于 github.com/9fans/go 的 Plan9 交互

2 个版本

0.1.1 2020年10月25日
0.1.0 2020年7月20日

#27 in #acme

Apache-2.0

27KB
811 代码行(不含注释)

acre

acre 是 Rust 中 acme 的 langserver 客户端。

目前处于 beta 阶段,并且故意在大多数错误情况下崩溃。如果发生崩溃,请提交错误报告以便添加此功能。镜头和一些其他功能尚不支持。配置文件可能会更改。

它通过在 acme 中创建一个新窗口来运行。该窗口列出了所有打开的支持文件和命令。可以通过右键单击它们来运行命令。当前聚焦的窗口前面带有 *。在 acre 窗口中运行 Get 命令可清除当前输出。

注意:尽管打开的文件列表包含所有支持的文件类型,但这些文件是否由服务器支持(例如,如果它们所在的项目尚未在 acre.toml 中配置),则可能不一定。

演示

demo

安装

最新版本可在此处下载,适用于 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-analyzergopls 的示例文件。

[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