工作是学习的坟墓

这篇文章没啥实质内容,就感叹一下。首先恭喜自己毕业进入社会坟场吧。

虽然不至于像标题一样这么严重,时间挤挤还是有的,但是像以前那样系统性地去学习一个新事物是真的没这个时间、精力了,最近基本所有的学习时间都只是学习某个工具如何使用。

最近也就偶尔有时间更新一下编译狂魔笔记……

大学有时间的话,就抓紧学习吧。

20200822

花了一个周末时间熟悉 Scala 项目结构和 SBT 并成功编译 https://scalameta.org/metals/,又花了一个周末(只有六,大小周)时间成功运行 metals,碰到几个坑。

首先是第一周卡在 JVM 异常退出。之前 metals 的 ClassNotFoundException 日志直接输出到 stdout,在加载了 scribe 类库之后就不往 stdout 而是 $HOME/.cache/metals/global.log 打了,我总以为 JVM 异常退出。

然后是 metals 总提示

code navigation does not work for the file ” because it doesn’t belong to a build target.

这个问题的解决方案是 YouCompleteMe 在 https://github.com/ycm-core/lsp-examples#scala 提到的执行 YcmCompleter ExecuteCommand build-import。这里又会多出一堆 ClassNotFoundException(我大概应该去试试 sbt assembly)。首次执行多半都会超时,因为需要把项目完整编译一遍,自己从日志里捞命令跑一遍吧,之后都会自动执行了。

解决了所有的 ClassNotFoundException 并成功跑起来 Metals 接入 YouCompleteMe,在 Metals 自己和 Flink 上都测试了可以正常跳转。

之所以开始折腾 Scala 的 LSP 是为了研究 Flink 源码。我要是找得到 Metals 的二进制话我也不至于自己编译了,一搜全是 VSC 的教程。

before

最近的工作内容:学习 Flink SQL、学习 Elastic Search。

最近的业余活动:写 QQ bot,顺便学习了 Kotlin/Java 的生态。

发表评论