下载和安装
cudatext主页:https://cudatext.github.io/
github:https://github.com/Alexey-T/CudaText
sourceforge:https://sourceforge.net/projects/cudatext/
到sourceforge下载最新版cudatext windows安装包解压就能用
clangd服务器下载地址:https://github.com/clangd/clangd/
下载后解压,把bin目录添加到windows的PATH路径里。在cmd里面输入测试命令能够输出信息就是对的
clangd -version
clangd version 21.1.8 (https://github.com/llvm/llvm-project 2078da43e25a4623cab2d0d60decddf709aaea28)
Features: windows+grpc
Platform: x86_64-pc-windows-msvc
配置文件
在安装目录的settings文件夹,建立lsp的配置文件,名字就是固定的lsp_language.json,比如c/cpp的就是lsp_c.json
lsp_c.json
{
"lexers": {
"C++": "cpp",
"C": "c"
},
"cmd_unix": [
"clangd-12",
],
"cmd_windows": [
"clangd",
],
}安装插件
启动cudatext,在Plugins->Addons Manager->Install选择插件安装。对于c/c++需要安装2个,LSP Client和Lexer:cpp。点击安装
如果网络有问题,那就需要手动下载插件安装,插件就是在sourceforge:https://sourceforge.net/projects/cudatext/
手动下载的插件,在cudetext里直接点击File->Open file,选择插件包就能够安装了。
安装之后要重启软件
中文输入法的问题
安装插件之后。编辑cpp代码应该就可以实现代码补全了。但是有一个问题,就是默认代码补全的快捷键是ctrl+space。如果系统是微软拼音中文输入法,这个快捷键就会变成切换中英文。屏蔽了代码补全的功能,导致你怎么样都不可能出现代码补全窗口。
解决办法是3个:
按windows+space,切换到纯英文输入法
在cudatext的setting里修改代码补全快捷键为别的
在cudatext的setting里设置代码自动补全,不需要按快捷键
第2办法:按F1弹出快捷键菜单。查找代码补全快捷键,按F9修改快捷键。修改成ctrl+enter也可以
第3种办法:在Options->Settings-default里面,修改一项
"autocomplete_autoshow_chars": 0,
把这个设置成2或者3。0是禁用自动补全,2,3是设置输入2-3个字符后自动弹出补全。
"autocomplete_autoshow_chars": 2,
之后就可以实现使用LSP服务器cpp代码自动补全了。
新建一个cpp文件。如果下面的状态栏没有识别是cpp文件,显示none,一定要在下方lexer手动选择cpp
之后会发现clangd服务启动。出现语法高亮和代码警告和报错信息,输入代码出现代码提示窗口
经历
我一开始使用cudatext配置了clangd作为代码服务器。按理说它应该出现代码补全。但是它没有出现。就像一个纯文本编辑器一样。我检查任务管理器,连clangd服务进程都没有。
我到github提了问题。他们作者回答。
一开始他们让我安装了MS build tool,但是没有用,后来他们看出来我没有语法高亮,让我安装lexer:cpp插件。
我安装了之后,选择cpp lexer,直接出现了语法高亮,和clangd服务启动的信息。
出现了代码错误和警告提示。但是还是没有代码补全窗口出现。
之后他们认为是clangd的问题。第二天我换了一个电脑。发现不仅仅是cpp,其它的html,css都没有任何补全窗口
他们告诉我要按ctrl+space触发补全。我按了,出现了1次窗口。我认为问题解决了。
之后我再按。又没有用了。
最后我看到右下角输入法在我按ctrl+space不停的切换中英文。之后我切换到纯英文输入法。语法补全窗口就出现了。
所以问题就是微软中文输入法和ctrl+space冲突的问题。
解决办法就是更改快捷键或者设置自动补全。