Helix-Editor编辑器,是一款用Rust语言编写的编辑器,操作体验继承了Vim的传统操作方式,又有SpaceVim一样Space按键触发的的提示框,用SpaceVim后,再用Helix-Editor会很习惯。
Helix-Editor在某些场合,可以代替SpaceVim使用,同Vim类似,配置了LSP和DAP之后,一样可以做到像VSCode那样的,有代码补全,定义跳转,还有实时运行调试等功能,DAP的调度功能,目前是实验性质的,如果在调试中过程中,出现崩溃的情况,也有可能。
图1 类似SpaceVim一样的空格操作方式
图2 安装LSP之间直接会提示代码编辑过程中的格式错误
图 3 呼出文件选择对话框
图4 类似SpaceVim的命令行提示框
LSP和DAP是完整使用Helix功能过程中,要接触的基础的概念,简短了解一下:
LSP
语言服务器协议(Language Server Protocol,LSP)是一个开放的、基于JSON-RPC的网络传输协议,源代码编辑器或集成开发环境(IDE)与提供特定编程语言特性的服务器之间交互时会用到这个协议。该协议的目标是让编辑器或集成开发环境能支持更多的编程语言。
DAP
DAP 即调试适配协议( Debug Adapter Protocol ),顾名思义,它是用来对多种调试器进行抽象统一的适配层,将原有 IDE 和调试工具直接交互的模式更改为和 DAP 进行交互。该模式可以让 IDE 集成多种调试器变得更简单,且灵活性更好。
为了说明方便,只举Mac系统如何安装部署HX的例子。
brew install helix
如果是Lua语言,安装的Lua的LSP,使用下面的命令就行了。
brew install lua-language-server
Python的LSP,本地安装Python Conda环境后带有,可不另独立安装。
brew install conda
在Mac安装HX还是很方便的,要实现自动补全提示,Python代码调试,需要在安装SAP之后,进行配置文件的设置。
这两个配置文件的位置, 如下:
cd ~/.config/helix
文件夹中,没有对应的文件就创建一下,一共两个文件。
config.toml
theme = "onedark"
[editor]
line-number = "relative"
mouse = true
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false
languages.toml
[[language]]
name = "lua"
auto-format = false
language-server = { command = "lua-language-server", args = ["--stdio"] }
[[language]]
name = "python"
[language.debugger]
name = "debugpy"
transport = "stdio"
command = "python"
args = ["-m", "debugpy.adapter"]
[[language.debugger.templates]]
name = "source"
request = "launch"
completion = [ { name = "entrypoint", completion = "filename", default = "." } ]
args = { mode = "debug", program = "{0}" }
配置完后,需要检查一下,HX现在是否支持了LSP和DAP。
hx --health python
执行结果:
Configured language server: pylsp
Binary for language server: /Users/candylab/opt/anaconda3/bin/pylsp
Configured debug adapter: python
Binary for debug adapter: /Users/candylab/opt/anaconda3/bin/python
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓
国内用HX的用户数量多寡,不清楚,但基本没有太多关于DAP设置的文章,官方文档的中文,也没有太多涉及到DAP,在Github官方的Wiki里有介绍。国内HX DAP相关信息,接近于没有,直接复制上面的配置,测试即可。
图5 Debug调试命令
图6 Debug调试命令
配置完成LSP和DAP之后,就可以在HX里调试Python代码程序。因为DAP还在实验阶段,可以简单尝试使用。HX的LSP和DAP的配置过程,比SpaceVim要步骤少一些相对。