编写了一个 protobuf 的 company backend,也许对道友有用

之前在论坛里询问过如何编写 company 后端。后来自己研究了一下发现官方文档写的就已经不错了。整体实现起来还是挺简单的。 现在支持的能力:

  1. 补全基本关键字
  2. 根据当前位置判断能用的补全候选
  3. 补全候选项包含本文件的自定义 message 和 enum

实现原理:

  1. 利用 imenu 获取当前文件都自定义类型
  2. 利用正则判断找明显的分割符,判断当前位置所在节点

未必实现的内容:

  1. import 进来的包里的自定义类型没有保护在候选项里面
  2. 基于 imenu,如果 imenu 没有 rescan 可能有些新的自定义类型补全不出来

我还没弄清楚 company 的 meta 和 annotation 是什么作用,所以没有实现

happy hacking

3 个赞

道友是做游戏的嘛

不是咧,俺是做 web 后端滴