2018年お気に入り ATOM パッケージ
年末なので ATOM エディタの整理を。 といっても最近はあまりいじるところがないけど。
gocode を巡るあれこれ
本当のことを言うと Go 言語用の支援パッケージを LSP (Language Server Protocol) ベースにしたいんだけど,最近流行りの golsp や bingo を扱えるパッケージはなさそう。
以前からある go-langserver はバックエンドに gocode を利用しているのだが(今は違う?),本家の nsf/gocode が Go 1.10 以降で組み込まれたビルドキャッシュ機能に追従できず fork が乱立して混沌としている1。
結局 ATOM で Go 言語用の支援パッケージを利用するなら go-plus 一択で
- atom-ide-ui をインストール,またはインストール済みであることを確認する
- go-plus をインストールする。この際,サブパッケージおよび各種支援ツールが自動インストールされるのを確認する
- stamblerre/gocode を
go get
コマンドで上書きインストールする2
という手順になるだろう。 golsp や bingo が使えれば将来的に楽なんだけどねぇ。
それ以前に 1.12 でモジュール対応モードに本格的に移行した場合に go-plus が追従できるかどうかなんだけど。 最悪の場合は Visual Studio Code に乗り換えるか(vim は若い頃のデスマーチなトラウマがフラッシュバックするので使いたくない)。
atom-ide-ui と連携する document-outline
今まで markdown テキストのアウトライン表示は nav-panel-plus を使ってたんだけど atom-ide-ui に対応していないのが欠点だった。 で,色々探してみたら document-outline が良さげである。 document-outline の設定で “show by default” 項目を無効にしておけば atom-ide-ui のアウトライン表示のタブだけが表示される。
document-outline は以下の構造化テキストに対応している
- Markdown (Commonmark)
- LaTeX
- ReStructuredText
- AsciiDoc
- Knitr
らしいんだけど LaTeX ファイルのアウトラインが上手く表示されないんだよなぁ。 うーむ。
他にも ide-html で HTML を,ide-css で CSS を,ide-yaml で YAML を,ide-json で JSON を扱える。 これでメジャーな構造化テキストは大体扱えるかな3。
ブックマーク
-
gocode を巡るゴタゴタについては「gocode やめます(そして Language Server へ)」が参考になる。 ↩︎
-
go-plus では mdempsky/gocode が自動インストールされるが, mdempsky/gocode はモジュール対応モードに対応していないらしいので stamblerre/gocode を手動でインストールする必要がある。実は ide-go で go-langserver を駆動させていたのだが ide-go 自体が go-plus を要求するので意味がなかったっぽい。 ↩︎