haskell-jp / questions #106 at 2024-12-08 02:03:22 +0900

最近の Emacs 29.4 を使ってHaskellプログラミングするための、おすすめ、あるいは、必須の .emacs.d/init.el の設定とか、Emacs でのプログラミングワークフローってどんなふうになっているのでしょうか? VS Codeへの浮気が長くて、Emacs なんも判らんマンになってしまいまして。
脱線してしまうかもしれませんが、ユースケースによってどんな設定をするか変わってくると思っています。
1. ローカルでアプリの開発をする
2. インフラ的なソフトでリモートのサーバーで開発やデバッグをする
私の場合は2の方で、Emacsは基本的には動けばいいと思っていて、LSPとかは要らなくて、常に確実に動く状態であるほうが望ましくて、nixで最低限のセットアップしてます。(例えばhaskell-modeをいれてインデントだけ調整するとか。)

VS Codeを使わないのは、接続が切れることがあるのが問題です。長時間動かすことが前提のアプリをVS Codeで実行するのは難しくて、
tmuxやscreenの上でemacsを使っています。

逆にこういったリモートの環境でもVS Codeを使って開発されていますか?
セッションの問題はどうやって解決されていますか?
VSCodeのRemote SSHでうまく解決できますか?
私の場合は、専らローカルです。

Windows PCを使う人にプログラミングをHaskellプログラミングを紹介する都合で、
VS Codeを使っています。拡張機能をつかってWSL上でプログラミングしていますが、
ローカル接続ですし、それほど長時間アプリを動かすこともしていません。

かつて intero が使えたころは、自分のためのプログラミングはUbuntu上でEmacsでやっていました。
プログラミングが目的のプログラミングということもあり、hls のサポートは必須です。

Emacsの設定作法などをちゃんと理解せずに使っていたこともあり、最近のEmacs 29.4などの作法など
よくわからず、どこから手を付けたものか途方にくれています。
VS Code上でのプログラミングと同様に、Emacs上でshell操作なども含めて全部できるようにしたいと考えています。
私もここ数年neovimに移行してしまっていますが、
• lspはlsp-modeとeglotがあり、emacs使いの同僚が言うにはlsp-modeの方が軽くておすすめらしいです。
• shellは私はeshellを使っていましたがelispの関数もコマンドの形式で呼べるなど一般的なシェルとやや違うので好き嫌いあるかもしれません。ターミナルエミュレータだと今探したら というのが出てきてちょっと面白そうだなと思いました
(これくらいの話だと釈迦に説法かもしれませんが……)
自分の設定貼っておきます
まあ普通にhaskell-modeとlsp-modeを使えば良いと思います。
https://github.com/ncaq/.emacs.d/blob/c22de6e3b871b2bdfae470b7e264b76ea8e2f22c/init.el#L1410
ありがとうございます。参考にさせていただきます。