MCPcopy Index your code
hub / github.com/Shougo/dpp.vim

github.com/Shougo/dpp.vim @v6.6.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v6.6.0 ↗ · + Follow
117 symbols 244 edges 17 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

dpp.vim

Dark Powered Plugin manager for Vim/Neovim

If you don't want to configure plugins, you don't have to use the plugin manager. It does not work with zero configuration. You can use other plugin managers.

Doc

Please read help for details.

The development is supported by github sponsors. Thank you!

Note: If you want to know why I use Deno or what means "dark powered", please see "FAQ" section in help.

Introduction

Install

NOTE: It requires Vim 9.1.0448+ or Neovim 0.10.0+. See requirements if you aren't sure whether you have this.

NOTE: To install plugins from remote, you need to install dpp-ext-installer.

NOTE: To install plugins from git, you need to install dpp-protocol-git.

Requirements

Please install both Deno 2.3.0+ and "denops.vim" v8.0+.

Config example

Show Vim script configuration example using
<strong>"~/.cache/dpp"</strong> as the base path location.
" Ward off unexpected things that your distro might have made, as
" well as sanely reset options when re-sourcing .vimrc
set nocompatible

" Set dpp base path (required)
const s:dpp_base = '~/.cache/dpp/'

" Set dpp source path (required)
" NOTE: The plugins must be cloned before.
const s:dpp_src = '~/.cache/dpp/repos/github.com/Shougo/dpp.vim'
const s:denops_src = '~/.cache/dpp/repos/github.com/denops/denops.vim'
"const s:denops_installer =
"\ '~/.cache/dpp/repos/github.com/Shougo/dpp-ext-installer'

" Set dpp runtime path (required)
execute 'set runtimepath^=' .. s:dpp_src

if s:dpp_base->dpp#min#load_state()
  " NOTE: dpp#make_state() requires denops.vim
  " NOTE: denops.vim and dpp plugins are must be added
  execute 'set runtimepath^=' .. s:denops_src
  "execute 'set runtimepath^=' .. s:denops_installer

  autocmd User DenopsReady
  \ : echohl WarningMsg
  \ | echomsg 'dpp load_state() is failed'
  \ | echohl NONE
  \ | call dpp#make_state(s:dpp_base, '{TypeScript config file path}')
endif

autocmd User Dpp:makeStatePost
      \ : echohl WarningMsg
      \ | echomsg 'dpp make_state() is done'
      \ | echohl NONE

" Attempt to determine the type of a file based on its name and
" possibly its " contents. Use this to allow intelligent
" auto-indenting " for each filetype, and for plugins that are
" filetype specific.
filetype indent plugin on

" Enable syntax highlighting
if has('syntax')
  syntax on
endif
Show Lua configuration using <strong>"~/.cache/dpp"</strong> as the base
path location.
local dppSrc = "~/.cache/dpp/repos/github.com/Shougo/dpp.vim"
local denopsSrc = "~/.cache/dpp/repos/github.com/denops/denops.vim"
--local denopsInstaller =
--  "~/.cache/dpp/repos/github.com/Shougo/dpp-ext-installer"

vim.opt.runtimepath:prepend(dppSrc)

local dpp = require("dpp")

local dppBase = "~/.cache/dpp"
if dpp.load_state(dppBase) then
  vim.opt.runtimepath:prepend(denopsSrc)
  --vim.opt.runtimepath:prepend(denopsInstaller)

  vim.api.nvim_create_autocmd("User", {
    pattern = "DenopsReady",
    callback = function()
      vim.notify("dpp load_state() is failed")
      dpp.make_state(dppBase, {TypeScript config file path})
    end,
  })
end

vim.api.nvim_create_autocmd("User", {
  pattern = "Dpp:makeStatePost",
  callback = function()
    vim.notify("dpp make_state() is done")
  end,
})

vim.cmd("filetype indent plugin on")
vim.cmd("syntax on")

Extensions

Extensions implement fancy features like other plugin managers.

You can find other extensions by the topic.

Protocols

Protocols implement VCS related features.

You can find other protocols by the topic.

Extension points exported contracts — how you extend this code

ContextBuilder (Interface)
(no doc) [2 implementers]
denops/dpp/types.ts
Dpp (Interface)
(no doc) [2 implementers]
denops/dpp/base/dpp.ts

Core symbols most depended-on inside this repo

get
called by 15
denops/dpp/types.ts
fixturePath
called by 15
denops/dpp/tests/loader_concurrent_test.ts
printError
called by 11
denops/dpp/utils.ts
isDirectory
called by 10
denops/dpp/utils.ts
registerPath
called by 9
denops/dpp/loader.ts
parseHooksFile
called by 9
denops/dpp/utils.ts
migrateEachKeys
called by 8
denops/dpp/context.ts
convert2List
called by 7
denops/dpp/utils.ts

Shape

Function 64
Method 32
Class 19
Interface 2

Languages

TypeScript100%

Modules by API surface

denops/dpp/context.ts23 symbols
denops/dpp/base/protocol.ts16 symbols
denops/dpp/dpp.ts15 symbols
denops/dpp/utils.ts13 symbols
denops/dpp/loader.ts10 symbols
denops/dpp/ext.ts8 symbols
denops/dpp/app.ts7 symbols
denops/dpp/types.ts5 symbols
denops/@ddu-sources/dpp/main.ts5 symbols
denops/dpp/base/dpp.ts4 symbols
denops/dpp/base/ext.ts3 symbols
denops/dpp/tests/testdata/ext_gamma.ts2 symbols

For agents

$ claude mcp add dpp.vim \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact