emacs/lsp-mode + goplsでGo用のLSP環境を設定する


1 min read
emacs/lsp-mode + goplsでGo用のLSP環境を設定する

Language Server Protocol(以下LSP)はこれまでエディタ/IDEが独自に実装する必要があった、補完や定義参照、静的解析によるエラー分析などをサービスとして実現するためのプロトコルです。
LSPを実装したクライアントは、Language Serverを提供している言語であれば何でも補完や定義参照、静的解析といった便利機能を使用することができます。

Microsoftが2016年にその仕様を公開してから、多くのエディタ用のLSPのクライアント実装が作られ、また各種言語用のLanguage Serverも公開されています。

Go言語も例に漏れずLanguage Serverの実装がいくつか存在します。今回は準公式提供のgoplsを使用して設定してみます。
もちろんemacsにも複数のLSP Client実装がありますが、今回はlsp-modeを使用します。

まずはemacs用のパッケージをインストールします。次のモノをpackage-installpackage-list-packagesか、そのあたりでよしなにインストールします。

  • lsp-mode
  • lsp-ui
  • company-lsp

インストールできたら、(私はuse-packageを使っているので)設定ファイルにuse-packageの設定を入れておきます。ついでにgo用の設定も入れておきましょう。

;; Golang
(defun lsp-go-install-save-hooks()
  (add-hook 'before-save-hook #'lsp-format-buffer t t)
  (add-hook 'before-save-hook #'lsp-organize-imports t t))

(use-package go-mode
  :ensure t
  :mode (("\\.go\\'" . go-mode))
  :init
  (add-hook 'go-mode-hook #'lsp-go-install-save-hooks))

;; Language Server
(use-package lsp-mode
  :ensure t
  :hook
  (go-mode . lsp-deferred)
  :commands (lsp lsp-deferred))

(use-package lsp-ui
  :ensure t
  :commands lsp-ui-mode)

(use-package company-lsp
  :ensure t
  :commands company-lsp)

goplsのインストールもしましょう。

$ go get golang.org/x/tools/gopls@latest

これで完了です!


Flutter環境構築 with emacs
Previous article

Flutter環境構築 with emacs

ここ数日、FlutterでAndroidアプリを書く、ということに入門してみています。 Androidアプリの開発自体は大分前(無印Galaxy Sを使っていた頃なので、EclairとかFroyoとかの頃)にすこしだけやったことがあるんですが、そのころと比べるとかなり簡単に、きれいなアプリがシュッと動いて、ちょっとばかし感動しています。 扨、Flutter/Android開発の環境構築ですが、ほとんどのドキュメントがAndroid Studioを前提としており、私のようなemacsユーザがどうしたらいいのか、ちょっとばかし躓きそうなので、メモがてら残しておきます。 なお、基本的な手順は公式サイトに準じます。また、環境はmacOS Catalina バージョン

サーモンをAnovaでやる
Next article

サーモンをAnovaでやる

昨晩の晩ご飯として、サーモンを低温調理でやりましたので、記録に残しておきます。 なお、使用したサーモンは刺身用のサーモンを使用しています。多分刺身用じゃなくても良いとは思うんですが、ちょっと怖かったので。 使用するサーモンはこちら。近所の西友で割引になっていたもので、300g前後で600円弱だった気がします。二人分です。 水気を適当に拭いた後、半分にざっくりと切ってステンレスのトレー?バット?に置きます。実家にはバットというものは存在しなかったんですが、使ってみると非常に便利です。100均でも売っているので、適当に数枚そろえておくとなんだかんだ重宝します。 塩と水と砂糖を何やら混ぜ合わせたものに浸します。細かい分量はオライリーさんの「家庭の低温調理」を参照してください。なお、私は紙の本を買いましたが、


GO TOP

🎉 You've successfully subscribed to something tech.!
OK