vim-lspでgoplsがディレクトリ構成によっては正しく動作しない

こんにちは、VimとGo使いのゴリラです。

zenn.devが良さそうだったので使ってみようと思い、最近ハマっていた問題を記事にしました。 同じ問題にハマった方の助けになれればと思います。

2020/09/19追記 こちらのissueの対応が終わったので、本記事で言及している問題は無事解決しました。

goplsが正しく動作しないディレクトリ構成

backendがGoのプロジェクトになっていますが、このような場合vim-lspでgoplsを使うと 定義ジャンプなどができなくなります。

project
├── .git
├── frontend
│   ├── src
│   ├── config.js
│   └── package.json
└── backend
    ├── go.mod
    ├── go.sum
    ├── handler
    ├── usecase
    └── repo

原因はvim-lspが.gitディレクトリをワークスペースとするからです。 本来ならgoplsの場合はgo.modがあるディレクトリをワークスペースとしてほしいですが、 現在そうなっていません。(悲しい)

一応本件はissueを起こしていますが、いつ解決されるのやら…(方針をどうするかってところで止まっている)

応急処理

Goのディレクトリに mkdir .git をしておけば動きます。 さきほどの例だとbackend/.gitになります。

雑感

検索してもこのような事象にハマったって方は見かけなかったので、 このプロジェクト構成にしているのは自分だけかなぁって気持ちになっています。(ツライ)

話変わりますが、zenn.dev軽いですね。デザインが良きです(おしゃれ) 自分のブログをここに移そうかなって考えていますがいったん様子見ています。

使い勝手は良さそうな感じでしたので、このまま頑張ってほしいところですね。