🌉 VSCodeでマークダウンのコードブロックで補完とかホバーとかできる、kakehashiの拡張機能作った

by
カテゴリ:
タグ:

kakehashiを使うと、Markdownのコードブロックみたいな、ソースコード内に埋め込まれた別言語でも補完や定義ジャンプといったインテリジェントな機能を活用できます。

そんな便利なkakehashiをVSCodeでも使えるように、拡張機能を開発しました!動作の様子は以下!是非使ってみてください。

ちなみに、例はマークダウンなだけで、実際には様々な文書フォーマットに拡張可能です。そのあたりの話はまた別の機会に……。

導入方法

  1. kakehashi (CLI)をインストール
    • cargoやbrewでインストール
      • brew install atusy/tap/kakehashi
      • cargo install --git https://github.com/atusy/kakehashi
    • 必要に応じてPATH環境変数を調整
  2. kakehashi (CLI)を設定
    • ~/.config/kakehashi/kakehashi.tomlを作成

    • kakehashiで使いたい言語の言語サーバーを設定

      # kakehashi.toml
      [languageServers.basedpyright]
      cmd = ["basedpyright-langserver", "--stdio"]
      languages = ["python"]
      
      [languageServers.r_language_server]
      cmd = [ "R", "--no-echo", "-e", "languageserver::run()"]
      languages = ["R", "r"]
  3. kakehashi (拡張)をインストール
    • マーケットプレイスでkakehashiを検索するか、code --install-extension atusy.kakehashi-vscodeを実行
  4. VSCodeを設定(settings.json
    • Ctrl+Shift+Pでコマンドパレットを開きPreferences: Open User Settings (JSON)を実行

    • 以下のように["markdown"]"kakehashi.documentSelector"を追記

      {
        "[markdown]": { "editor.quickSuggestions": { "other": "on" } },
        "kakehashi.documentSelector": [ "markdown" ]
      }

QuartoやR Markdownで使いたい場合

  • kakehashi (CLI)を追加設定 toml [languages.qmd] base = "markdown" [languages.rmd] base = "markdown"
  • VSCodeを追加設定
    • 必要な拡張機能(quarto.quartoREditorSupport.r)をインストール
    • settings.jsonkakehashi.documentSelector"rmd""quarto"追記

ENJOY!!

kakehashi本体や拡張機能についてもっと詳しく知りたい方は、リポジトリのREADMEを参照してください。スターつけてただけるとモチベーション爆上がりします!!

RユーザーとしてはPositron対応が気になるところかと思いますが、未対応です!乞うご期待!!

スポンサーもお待ちしてます!