ST3の頃のほとんどのプラグインは廃れているようだった。 もうインターネットにまともな情報は残ってない…
全て忘れて改めて見直した結果はこんな感じ。
構文強調ができること
組み込みまれているから何もしなくてよい。
ファイル保存時に goimports
が実行できること
先に goimports
をインストールしておく。
go install golang.org/x/tools/cmd/goimports@latest
Gofmt - Packages - Package Control をインストールして Gofmt
を次のように設定した。
設定項目の値に環境変数を使えるようになると嬉しいんだけど、ほとんど需要がなさそう。
{ "cmds": [ ["c:/Users/y_okazawa/.go/bin/goimports", "-e"] ], "format_on_save": true }
ファイル保存時に golangci-lint
が実行できること
先に golangci-lint
をインストールしておく。
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.44.0
次に lint フレームワークの SublimeLinter - Packages - Package Control をインストールする。 そして SublimeLinter-golangcilint - Packages - Package Control をインストールする。
最初意図したように動かなかったけど、こういう仕様が隠れていた。
- SublimeLinter-golangcilint は SublimeLinter から
golangci-lint
を実行する設定(のクラス)を追加する- SublimeLinter-golangcilint/linter.py at 6c633a23446c5430c92d99be76fe32ed6ff995b5 · SublimeLinter/SublimeLinter-golangcilint · GitHub
- PythonLinter class — SublimeLinter 4.0.0 documentation や RubyLinter class — SublimeLinter 4.0.0 documentation に相当するクラス
- 追加された設定の内容はユーザー設定から変更できない
- SublimeLinter が lint クラスをどういう名前にするのか分かればできるかもしれない
- 従ってユーザーは何がなんでも Sublime Text の認識している
PATH
にgolangci-lint
を置かないといけない - あるいは SublimeLinter のユーザー設定で
paths: {"windows": "c:/Users/y_okazawa/.go/bin"}
みたいに探索するディレクトリを設定するとよい
- ネストしたプロジェクト構成を想定していない
golangci-lint
を適切なworking_dir
で実行できないから-
go.mod
が無い場所でgolangci-lint
を実行したことになる(そしてエラーになる)
シンボルジャンプができると嬉しい
まだちゃんと確認してない。
先に golangci-lint
をインストールしておく。
go install golang.org/x/tools/gopls@latest
次に LSP フレームワークの LSP - Packages - Package Control をインストールする。 そして LSP-gopls - Packages - Package Control をインストールする。
LSP-gopls が gopls を使うための LSP の設定を追加する構造になっているので、ほとんど初期値でも動く。