Skip to content

言語サポートプラグイン

このページでは、言語サーバーとシンタックスハイライトに関連するプラグインを説明します。

nvim-treesitter

シンタックスハイライトとテキストオブジェクトを提供します。

設定ファイル: lua/peinan/plugins/treesitter.lua

依存関係:

  • nvim-treesitter-textobjects

主な機能:

  • 高速なシンタックスハイライト
  • テキストオブジェクトの拡張
  • インクリメンタル選択
  • コードフォールディング

設定の特徴:

  • 自動インストール
  • テキストオブジェクトの設定
  • ハイライトの優先度設定

nvim-lspconfig

LSP(Language Server Protocol)の設定を提供します。

設定ファイル: lua/peinan/native/lsp/

主な機能:

  • 言語サーバーの設定
  • 診断の表示
  • コード補完
  • 定義・参照へのジャンプ
  • リネーム
  • フォーマット

設定ファイル:

主な機能:

  • 診断の表示(エラー、警告、情報、ヒント)
  • 仮想テキスト診断(トグル可能)
  • 自動フォーマット(トグル可能)
  • 診断フロート表示
  • 診断間の移動

キーマップ: キーマップ一覧のLSP関連セクションを参照

nvim-cmp

補完エンジンを提供します。

設定ファイル: lua/peinan/plugins/completion.lua

依存関係:

  • cmp-omni
  • cmp-nvim-lsp
  • cmp-buffer
  • cmp-path
  • cmp-cmdline
  • cmp_luasnip
  • LuaSnip
  • friendly-snippets

主な機能:

  • LSP補完
  • パス補完
  • バッファ補完
  • コマンドライン補完
  • スニペット補完

設定内容:

lua
local sources = CMP.config.sources({
    { name = "nvim_lsp" },
    { name = "path" },
})

キーマップ:

  • <C-Space> - 補完開始
  • <C-u> / <C-d> - ドキュメントスクロール
  • <C-e> - 補完中止
  • <CR> - 補完確定

補完ソース:

  • nvim_lsp: LSPからの補完
  • path: ファイルパスの補完
  • buffer: バッファ内のテキスト補完(検索時)
  • cmdline: コマンドライン補完

nvim-lint

リンターを統合します。

設定ファイル: lua/peinan/plugins/linter.lua

主な機能:

  • 複数のリンターの統合
  • 自動リント
  • 診断の表示

設定の特徴:

  • LSPアタッチ時に自動的に有効化
  • ファイルタイプ別のリンター設定

todo-comments.nvim

TODOコメントをハイライトし、検索可能にします。

設定ファイル: lua/peinan/plugins/todo.lua

依存関係:

  • plenary.nvim

主な機能:

  • TODOコメントのハイライト
  • カスタムキーワードのサポート
  • Telescopeとの統合

サポートされているキーワード:

  • FIX - バグ修正
  • HACK - ハック
  • TODO - タスク
  • WARN - 警告
  • PERF - パフォーマンス
  • NOTE - メモ
  • TEST - テスト

設定内容:

lua
require("todo-comments").setup({
    signs = false,
    keywords = {
        FIX = { icon = "" },
        HACK = { icon = "󱠇" },
        TODO = { icon = "" },
        WARN = { icon = "" },
        PERF = { icon = "󱑂" },
        NOTE = { icon = "" },
        TEST = { icon = "󰙨" },
    },
})

キーマップ:

  • ft - TODO検索(カレントディレクトリ)
  • fT - TODO検索(Gitルート)

lazydev.nvim

Lua開発を支援します。

依存関係:

  • luvit-meta

主な機能:

  • Lua APIの補完
  • 型情報の表示

設定の特徴:

  • Luaファイルタイプでのみ有効
  • LSPアタッチ時に自動的に有効化

Neovim Configuration Documentation