#assembly #language-server #lsp #x86 #tooling #root-directory

bin+lib asm-lsp

适用于 x86/x86_64 和 z80 汇编代码的语言服务器

12 个不稳定版本 (5 个破坏性更新)

0.7.4 2024年7月30日
0.7.1 2024年6月29日
0.6.0 2023年11月26日
0.3.2 2023年3月30日
0.2.0 2020年7月27日

#209开发工具

Download history 306/week @ 2024-04-26 261/week @ 2024-05-03 286/week @ 2024-05-10 276/week @ 2024-05-17 314/week @ 2024-05-24 409/week @ 2024-05-31 306/week @ 2024-06-07 266/week @ 2024-06-14 288/week @ 2024-06-21 824/week @ 2024-06-28 518/week @ 2024-07-05 572/week @ 2024-07-12 681/week @ 2024-07-19 861/week @ 2024-07-26 565/week @ 2024-08-02 455/week @ 2024-08-09

每月下载量 2,786

BSD-2-Clause 协议

1.5MB
5K SLoC

适用于 GAS/GO 汇编的语言服务器

crates.io Tests

目标

为 GAS/NASM 或 GO 汇编风格编写的汇编文件提供悬停、自动完成、签名帮助、转到定义和查看引用。它支持 x86、x86_64 和 z80 指令集的汇编文件。

此工具在阅读程序的汇编输出时可作为参考。这样您可以查询每个命令的确切功能,并思考编译器是否生成了所需的输出,或者是否需要调整代码以进行优化。

安装

使用 cargo

使用 cargo 包管理器安装,无论是从 crates.io 还是 GitHub

cargo install asm-lsp
# or to get the latest version from github
cargo install --git https://github.com/bergercookie/asm-lsp

设置为语言服务器

在您的 settings.json 文件中添加以下部分

"asm-lsp": {
    "command": "asm-lsp",
    "filetypes": [
        "asm", "s", "S"
    ]
}

[可选] 通过 .asm-lsp.toml 进行配置

在您的项目根目录和/或 ~/.config/asm-lsp/ (项目配置将覆盖全局配置) 中添加如下 .asm-lsp.toml 文件,以选择性地针对特定的汇编器和/或指令集。

version = "0.1"

[assemblers]
gas = true
go = false
z80 = false

[instruction_sets]
x86 = false
x86_64 = true
z80 = false

[可选] 通过 compile_commands.json/compile_flags.txt 扩展功能

compile_commands.jsoncompile_flags.txt 文件添加到项目的 build 目录中,以启用内联诊断功能,以及指定用于悬停功能的其他包含目录。

VSCode 支持

该项目尚未发布任何VSCode扩展包。然而,在 editors/code 目录中有一个开发扩展,其中包含设置说明。

根目录必须包含 .git

LSP会在你的项目根目录中搜索.git目录。请确保你的项目已经配置为git仓库,如果不是,请运行git init

演示/功能文档

悬停/文档支持

自动补全

诊断

转到定义

查看引用

签名帮助

  • 触发签名帮助取决于你的编辑器和LSP客户端。
    • 使用Neovim的内置LSP客户端,可以通过命令 :lua vim.lsp.buf.signature_help() 来实现。
    • 使用coc, 这个评论 建议将 inoremap <silent> ,s <C-r>=CocActionAsync('showSignatureHelp')<CR> 映射到插入模式以触发签名帮助。

致谢

当前的rust包建立在 opcodes python包 之上

依赖

~12–25MB
~405K SLoC