2022-01-01から1年間の記事一覧

Vimの極意

vim

この記事はVim Advent Calendar 2022の1日目の記事です。 今年でVimをメインエディタにして15年になります。 最近どうすれば思考する速度でテキストを編集できるようになる*1のか考えたりすることがあったので、この機会に軽くまとめてみます。 簡単な操作で…

goplsに独自Analyzerを組み込む

Go

internal/lsp/source/options.goのdefaultAnalyzers()が返すmapに自作のAnalyzerを追加してgo installすれば使えるようになる*1。 用途としてはチームのコーディング規約をtextDocument/diagnosticでチェックしたり、チェックに引っかかったコードの修正や一…

QNAPをTS-233に移行した

今までTS-231を使っていたけど、たまに落ちることがあったり去年ついにサポートが切れてしまったのでTS-233に移行した。 手順はTS-231の電源を落として、HDDを入れ替えて、TS-233を起動するだけ。 起動後は固定IPにしていたのがDHCPになっていた*1のでQfinde…

golang.org/x/exp/jsonrpc2を使ってgoplsに接続する

Go

最近golang.org/x/expにjsonrpc2が追加されていることを知ったので試してみた。 pkg.go.dev 基本的な使い方としてはDialでConnectionを作成し、 レスポンスが返ってくるメソッドはCall + Await レスポンスが返ってこないメソッドはNotify を呼べば良い。 Con…

go-cmpでmap内の時間文字列を近似比較する

Go

以下のような関数をテストする際、期待する値もtime.Now()で生成して概ね問題ない。 func f() map[string]interface{} { return map[string]interface{}{ "time": time.Now().Format("2006-01-02 15:04:05"), } } ただし関数内に多くの処理がある場合など、…