🌲

Neovim Part4.0 ~tree sitterを導入する~

2024/06/21に公開

NeovimにTree-sitterを導入する方法と詳細な解説

Neovimは、その柔軟性と拡張性により、多くの開発者に愛用されています。Neovimの強力な機能の一つに「Tree-sitter」があります。この記事では、Tree-sitterとは何か、そしてNeovimに導入する際の手順を詳しく解説します。

Tree-sitterとは?

Tree-sitterは、高速で正確な構文解析ツールです。これにより、コードの構造を理解し、シンタックスハイライトやコードフォールディング、インデントなどを高精度に実現できます。具体的には以下のような利点があります:

  • 精度の高いシンタックスハイライト:Tree-sitterは文法規則に基づいてコードを解析するため、従来の正規表現ベースのハイライトよりも正確です。
  • コードナビゲーションの向上:関数やクラスの定義に素早くジャンプできるようになります。
  • 一貫したインデント:コードの構造を理解しているため、正確なインデントが可能です。

NeovimにTree-sitterを導入する手順

以下のコードをinit.luaに追加することで、Tree-sitterをNeovimに導入し設定します。

local plugins = {
    { "nvim-treesitter/nvim-treesitter", build=":TSUpdate" }
}

local configs = require("nvim-treesitter.configs")
configs.setup({
    ensure_installed = { "lua", "javascript" },
    sync_install = false,
    highlight = { enable = true },
    indent = { enable = true },
})

設定の詳細な解説

1. プラグインのインストール

まず、Tree-sitterプラグインをインストールするための設定を行います。

local plugins = {
    { "nvim-treesitter/nvim-treesitter", build=":TSUpdate" }
}

この設定により、nvim-treesitterプラグインがインストールされ、:TSUpdateコマンドが実行されます。これにより、Tree-sitterの解析ファイルが最新の状態に保たれます。

2. Tree-sitterの設定

次に、Tree-sitterの設定を行います。

local configs = require("nvim-treesitter.configs")
configs.setup({
    ensure_installed = { "lua", "javascript" },
    sync_install = false,
    highlight = { enable = true },
    indent = { enable = true },
})
設定項目の詳細
  • ensure_installed: Tree-sitterがサポートする言語を指定します。この例では、luajavascriptの解析を有効にしています。
  • sync_install: trueに設定すると、Tree-sitterのインストールが同期的に行われます。通常はfalseで非同期インストールを推奨します。
  • highlight: シンタックスハイライトを有効にする設定です。enabletrueにすることで、Tree-sitterのハイライト機能が有効になります。
  • indent: インデント機能を有効にする設定です。enabletrueにすることで、Tree-sitterに基づくインデントが適用されます。

まとめ

NeovimにTree-sitterを導入することで、コード編集がさらに効率的かつ快適になります。Tree-sitterの強力な構文解析機能を活用して、正確なシンタックスハイライトやインデントを実現しましょう。この記事の手順に従って設定を行い、Neovimの機能を最大限に引き出してみてください。

Discussion