Open5

nvim再構築@2025

mikanmikan

augroupってなんだ?

augroupはautocmdグループ名を定義するためのコマンド
autocmdが重複して設定されないようにするための仕組みらしい

This prevents having the autocommands defined twice (e.g., after sourcing the vimrc file again).

mikanmikan

dpp#make_state({base-path}, {config-path}[, {name}])

dppのstateを保存し、スタートアップスクリプトをconfig-pathに生成する
第2引数はdppの設定ファイルへのパスを指定する
DenopsReady以降に呼び出す必要がある
runtimepathを動的に変更したあとに呼び出してはいけない

dppの設定ファイルは以下のようなオブジェクトを返す

{
    checkFiles: string[],  // タイムスタンプ更新時にチェックするファイルパス
    plugins: Plugin[],  // プラグイン一覧
    stateLines: string[],  // dpp-extに依存した追加のstate lines
}
mikanmikan

dpp#min#load_state({base-path}[, {name}])

dppのstateを読み込み、生成されたスタートアップスクリプトを実行する
スタートアップスクリプトが古いか、不正か、見つからなければ1を返す

mikanmikan

dpp.ts

  • BaseConfigを継承して、Configというクラスを作ってexportする
  • 返り値はConfigArguments

https://jsr.io/@shougo/dpp-vim/doc/config/~/ConfigArguments

args.contextBuilder.setGlobal

引数は↓を参照

https://github.com/Shougo/dpp.vim/blob/2340f7a72e8fcced381802cb4a0ed6237e741f89/doc/dpp.txt#L67

  • inlineVimrcs
    • dpp#min#load_state() で生成される startup.vim に展開されるvimrc
    • Neovimではluaファイルも使える
  • protocols
    • プロトコルリスト
  • extParams
    • dpp-ext-{hoge}-paramを設定する場所
  • extOptions
    • dpp-ext-{hoge}-optionを設定する場所

args.contextBuilder.get

プラグイン管理に必要なcontextとoptionsを生成・取得する

https://github.com/Shougo/dpp.vim/blob/2340f7a72e8fcced381802cb4a0ed6237e741f89/denops/dpp/context.ts#L177-L190

args.denops.dispatcher.getExt("toml")

toml拡張(dpp-ext-toml)を取得し、その拡張の各種情報や操作(アクション)を使えるようにする

https://github.com/Shougo/dpp.vim/blob/2340f7a72e8fcced381802cb4a0ed6237e741f89/denops/dpp/app.ts#L146-L163

https://github.com/Shougo/dpp.vim/blob/2340f7a72e8fcced381802cb4a0ed6237e741f89/denops/dpp/ext.ts#L108-L138