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

github.com/Shougo/ddu.vim @v11.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v11.3.0 ↗ · + Follow
249 symbols 676 edges 18 files 0 documented · 0% updated 12d ago★ 3223 open issues

Browse by type

Functions 223 Types & classes 26
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ddu.vim

Dark deno-powered UI framework for Vim/Neovim

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

Doc

Please read help for details.

NOTE: I have created a Japanese article for ddu.vim.

Ddu is the abbreviation of "dark deno-powered UI". It provides an extensible and asynchronous UI framework for Vim/Neovim.

The development is supported by GitHub Sponsors. Thank you!

Introduction

I have chosen the denops.vim framework to create this plugin because denops.vim is better than the Neovim Python interface.

  • Easy to set up
  • Minimal dependency
  • Stability
  • Vim/Neovim compatibility
  • Speed
  • Library
  • Easy to hack

Screenshots

Please see: https://github.com/Shougo/ddu.vim/issues/10

ddu-ui-ff

Install

NOTE: For the current version requirements, see the COMPATIBILITY section in doc/ddu.txt (:h ddu-compatibility).

Quick Start

Below is a minimal configuration to get started with ddu.vim. For detailed documentation, see doc/ddu.txt.

You will need a UI, at least one source, and a kind plugin. The example below uses the popular combination of ddu-ui-ff, ddu-source-file, ddu-kind-file, and ddu-filter-matcher_substring.

Quick Start

A minimal runtime configuration example (no plugin-manager-specific instructions):

" Example: minimal settings to configure and start ddu.
" Ensure ddu.vim and at least one UI and one source are installed beforehand.

" Set a default UI and basic kind option.
call ddu#custom#patch_global(#{
    \   ui: 'ff',
    \ })

" Set the default action for file kind
call ddu#custom#patch_global(#{
    \   kindOptions: #{
    \     file: #{
    \       defaultAction: 'open',
    \     },
    \   },
    \ })

" Use substring matcher
call ddu#custom#patch_global(#{
    \   sourceOptions: #{
    \     _: #{
    \       matchers: ['matcher_substring'],
    \     },
    \   },
    \ })

" Open ddu with the file source in the current directory
call ddu#start(#{
    \   sources: [#{ name: 'file', params: {} }],
    \ })

" Start ddu with a simple source list and optional input.
" Replace 'file' with any installed source name.
:call ddu#start({'name': 'list', 'sources': ['file']})

Notes:

  • For full documentation, read :help ddu or open doc/ddu.txt.
  • If you are unsure which UI or source to install first, see the community topic: https://github.com/topics/ddu-vim

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 126
Method 97
Class 24
Enum 1
Interface 1

Languages

TypeScript100%

Modules by API surface

denops/ddu/ddu.ts58 symbols
denops/ddu/app.ts41 symbols
denops/ddu/context.ts26 symbols
denops/ddu/ext.ts25 symbols
denops/ddu/loader.ts17 symbols
denops/ddu/state.ts16 symbols
denops/ddu/base/ui.ts15 symbols
denops/ddu/utils.ts12 symbols
denops/ddu/types.ts9 symbols
denops/ddu/convert_cache.ts8 symbols
denops/ddu/base/source.ts5 symbols
denops/ddu/base/kind.ts4 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page