配置 linux + vim + vala 开发环境

隐身守侯 提交于 2020-03-07 17:04:33

配置 linux + vim + vala 开发环境

环境

  • linux

  • vim8

你需要先了解的知识

  • Language Server Protocol - 语言服务器协议,简称 lsp

    简单的说,就是原来只有 IDE 才支持的 自动补全、查找、格式化等功能,现在被抽离出来,拆分成语言服务器的和客户端, 中间通过协议进行通讯。只要我们的 IDE 或文本编辑器支持 lsp 客户端,那么就能使用这些功能了。即然是 cs 架构, 那我们要做的事情就很清楚了:配置 lsp 客户端、构建语言服务器、调用语言服务器

  • vim-plug - vim 插件管理器

    vim 的插件管理器。网上很多博客,这里就不再赘述了。

  • meson - 新的构建系统

    功能和 cmake 差不多,但是构建速度更快,语法也更加规范。

  • git - 非常流行的版本控制系统

一、配置 lsp 客户端

这里我们用至 vim-lsp 插件, 其实还有其它插件可供选择,但是这个插件使用起来比较简单

" lsp 及相关插件
Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'thomasfaingnaert/vim-lsp-snippets'
Plug 'thomasfaingnaert/vim-lsp-ultisnips'
" 自动补全插件 
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
Plug 'ajh17/vimcompletesme'
" vala 语法高亮插件
Plug 'arrufat/vala.vim'

接下来 :PlugInstall 进行安装

二、构建语言服务器

vala 语言服务器其实也有几种可供选择,这里使用 vala-language-server

依赖

  • glib-2.0
  • gobject-2.0
  • gio-2.0
  • gee-0.8
  • jsonrpc-glib-1.0
  • libvala-0.48

如果你的系统没有安装这些库,需要先安装它们。

克隆

git clone https://github.com/benwaffle/vala-language-server.git

构建

进入文件夹

meson build
ninja -C build

编译完成之后,把 build 文件夹中的 vala-language-server(这个就是我们构建好的语言服务器了) 复制到 ~/.local/bin

三、调用语言服务器

在 .vimrc 中添加如下信息

if executable('vala-language-server')
  au User lsp_setup call lsp#register_server({
        \ 'name': 'vala-language-server',
        \ 'cmd': {server_info->[&shell, &shellcmdflag, 'vala-language-server']},
        \ 'whitelist': ['vala'],
        \ })

重新加载 .vimrc。现在我们只需要打开 vala 源文件,就可以使用 vala-language-server 的功能了。

vala-language-server 和 pkg-config 配合使用

在类 unix 环境中,我们经常使用到 pkg-config。vala-language-server 怎么识别 pkg-config 信息呢? 我们只需要配置好 meson.build,然后执行下 meson.build,如果没有报告,vala-language-server 就能正常识别了。

最后

vala-language-server 目前还在快速开发中,功能尚不完善,依赖也随时可能会发生变化,如果你发现构建不过了, 请点击链接,按照官方教程进行构建。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!