← スキル一覧に戻る

denops-author
by kyoh86
all of me in the computer
⭐ 8🍴 0📅 2026年1月23日
SKILL.md
name: denops-author description: Best practices for Denops plugin implementation drawn from lambdalisue's Denops plugins. Use when Codex needs concrete patterns for buffer/local/global/env vars, key mappings, and Vimscript/TypeScript boundaries in Denops plugins based on those repos.
Denops Author Practices (lambdalisue)
Use this skill to ground Denops implementation details in lambdalisue's Denops plugins only.
Quick reference (examples-based patterns)
- Buffer vars: use
vars.b.getand error if missing. Source:denops/gin/command/blame/buffer_utils.tshttps://raw.githubusercontent.com/lambdalisue/vim-gin/main/denops/gin/command/blame/buffer_utils.ts - Buffer-local mappings:
b:did_ftpluginguard +setlocal+<Plug>indirection +g:flag to disable. Source:ftplugin/gin-status.vimhttps://raw.githubusercontent.com/lambdalisue/vim-gin/main/ftplugin/gin-status.vim - g:/env vars batching:
batch.gather+batch.batchto reduce RPCs. Source:denops/askpass/main.tshttps://raw.githubusercontent.com/lambdalisue/vim-askpass/main/denops/askpass/main.ts - g: defaults: define helper with
get(g:, name, default)at plugin entry. Source:plugin/kensaku.vimhttps://raw.githubusercontent.com/lambdalisue/vim-kensaku/main/plugin/kensaku.vim - Batch config read:
collectto readv:andg:at once; coerce booleans. Source:denops/guise/main.tshttps://raw.githubusercontent.com/lambdalisue/vim-guise/main/denops/guise/main.ts - DenopsPluginPost hook: define commands that call
denops#notify, then wire autocmd. Source:plugin/chameleon.vimhttps://raw.githubusercontent.com/lambdalisue/vim-chameleon/main/plugin/chameleon.vim - Interrupt/cleanup: use
denops.interruptedand returnSymbol.asyncDispose. Source:denops/chameleon/main.tshttps://raw.githubusercontent.com/lambdalisue/vim-chameleon/main/denops/chameleon/main.ts - Collect + fn wrappers: batch multiple
fn.*calls withcollect. Source:denops/initial/main.tshttps://raw.githubusercontent.com/lambdalisue/vim-initial/main/denops/initial/main.ts - Abort signal composition: combine
denops.interruptedwith localAbortController. Source:denops/refine/main.tshttps://raw.githubusercontent.com/lambdalisue/vim-refine/main/denops/refine/main.ts - Early exit + autocmd setup: check env/args and
finish, thenaugroup+autocmd. Source:plugin/guise.vimhttps://raw.githubusercontent.com/lambdalisue/vim-guise/main/plugin/guise.vim
Workflow
- Identify the task type (buffer vars, mappings, global/env vars, dispatcher/API boundary).
- Open
references/denops-author-examples.mdand extract the closest matching example. - Follow the same structure and naming conventions; adapt to the target plugin but keep the pattern.
- When responding, cite the example file path and explain the rationale briefly.
Notes
- Keep Vimscript responsibilities minimal; push logic into Denops TypeScript where possible.
- Prefer
@denops/stdmodules for Vim interactions instead of rawdenops.callwhen an example shows that pattern. - Use buffer-local mappings and
<Plug>indirections as shown in the references.
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です