dap-modeでEmacs上でgoをデバッグする

goでもなんでもいいんだけれど,最近Emacsでプログラムを書くときはLSPのお世話になることが非常に多い.ここまでEmacsでいろいろとできると,デバッグもやりたくなってくる.

LSPが流行るのと同時にDAPというのも流行っていて,LSPと同じようにエディタを問わずDebug Adapter Protocolを使えば,言語ごとのデバッグ支援が受けられるというものだ.そういうわけで,Emacsでもdap-modeというのがあり,これを使うことでEmacsでもIDEのようにデバッグができるようになる.

ちなみに,全面的にgoのデバッグをする話をするが,適切なextensionさえあれば他言語でも同じようにデバッグできるはずなので(そのためのAdapter Protocolだ),別言語の場合は言語ごとの設定だけを読み替えてくれれば良い.

続きを読む

Emacsのlsp-requestがtimeoutする

新しいMacEmacsの設定を入れているときに,ほかはいつもどおり行ったのだが,goのlspだけがTimeoutするようになってしまった. 具体的には,

lsp-request: Timeout while waiting for response. Method: textDocument/definition.

というエラーが出る.

ちなみに使っているのは,

の組み合わせ.

ちなみに他のMacLinuxとは共通の設定を使っており,そちらは正常に動いてたので,このMacの設定がなにかおかしい.

続きを読む

Kubernetes the hard wayを自宅のPCでやってみる

古いPCが余っていて,こいつでKubernetesクラスタを作ろうと思って公式ガイドを久しぶりに見に行ったのだが,デプロイツールを使ってインストールする方法しか案内されていない. 昔俺がKubernetesをインストールしようとしたときは,まだkubeadmをここまで推していなくて,公式でも「etcdを用意しましょう」とか書いてあって,心を折りに来ていた気がするんだけど,そのガイドは既になくなっていた.

kubeadmでもいいんだけど,ガイドを見る限りそこまで手数も多くないしあんまり面白くなさそうだったので,

github.com

をやってみることにした.これだよこれ,この長ったらしい手順がやりたかったんだよ.なのでこの記事も長いよ.

最終的なスクリプトが見たい人はこちら

続きを読む

MacのEmacsを複数起動する

LinuxEmacsを使っていると,Emacsを起動するごとにプロセスが立ち上がり,別のウィンドウが生成される.これに対して,Macの場合,基本的に複数のプロセスが起動することはないし,ウィンドウも一つしか生成されないのが普通だ.

これを複数起動できるようにしてみたい.

続きを読む