GraphQL は API 向けのクエリ言語でよく対比される REST と違いクライアント側から必要なデータ属性を指定できたりするやつ
*.graphql
ファイルを編集する時のメジャーモード
こいつは el-get にレシピが用意されてないので自前で用意している
(:name graphql-mode
:description "An emacs mode to edit GraphQL schema and queries."
:type github
:pkgname "davazp/graphql-mode")
そして el-get-bundle
でインストール
(el-get-bundle graphql-mode)
graphql ファイルを弄る時に合わせて使いたい minor-mode があるのでそれらを有効にする hook を用意している
(defun my/graphql-mode-hook ()
(company-mode 1)
(turn-on-smartparens-strict-mode)
(highlight-indent-guides-mode 1)
(display-line-numbers-mode 1))
それぞれ以下の効果がある
そしてこの hook を graphql-mode-hook
に突っ込んでいる
(add-hook 'graphql-mode-hook 'my/graphql-mode-hook)
こちらは GraphQL API を Emacs Lisp から叩くためのライブラリ。命名的にややこしいけど。
こちらは el-get 本体にレシピがあるのでそのままインストールしている
(el-get-bundle graphql)
今のところ GraphQL を書くファイルは限られていることと tsx などで動くと重くてつらいので動く拡張子を限定している
(setopt lsp-graphql-target-file-extensions '("graphql" "gql"))