Coder Social home page Coder Social logo

shougo / ddc.vim Goto Github PK

View Code? Open in Web Editor NEW
651.0 12.0 31.0 768 KB

Dark deno-powered completion framework for neovim/Vim

License: MIT License

Makefile 0.27% TypeScript 84.62% Vim Script 14.99% JavaScript 0.12%
neovim vim vim-denops auto-completion ddc-vim

ddc.vim's Introduction

ddc.vim

Dark deno-powered completion framework for neovim/Vim

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.

Ddc is the abbreviation of "dark deno-powered completion". It provides an extensible and asynchronous completion framework for neovim/Vim.

NOTE: I have created Japanese article for ddc.vim. After that I have created the next article Japanese article for both ddc.vim and pum.vim recently. You can read them by translation service.

The development is supported by github sponsors. Thank you!

Introduction

I have chosen denops.vim framework to create new plugin. Because denops.vim is better than neovim Python interface.

  • Easy to setup
  • Minimal dependency
  • Stability
  • neovim/Vim compatibility
  • Speed
  • Library
  • Easy to hack

Screenshots

Please see: #32

nvim-lsp

command line completion

Install

NOTE: Ddc.vim requires Neovim (0.8.0+ and of course, latest is recommended) or Vim 9.0+. See requirements if you aren't sure whether you have this.

Requirements

Ddc.vim requires both Deno 1.42+ and denops.vim.

NOTE: Ddc.vim does not include any UIs, sources and filters. You must install them which you want manually. You can search ddc plugins(sources and filters) from here.

ddc.vim's People

Contributors

110y avatar 4513echo avatar amadeus avatar digital-carver avatar e-kwsm avatar erw7 avatar haruyama avatar hokorobi avatar ippachi avatar kuuote avatar lambdalisue avatar lumakernel avatar matsui54 avatar milly avatar nat-chan avatar nocd5 avatar octaltree avatar phgz avatar pusewicz avatar ryota2357 avatar shougo avatar thinca avatar uga-rosa avatar ujihisa avatar yasunori0418 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ddc.vim's Issues

[Request] Ability to close pop-up

Thank you for creating this plugin.
I made an issue because I wanted to request one function.

Expected

I want the function to close the pop-up that existed in 'deoplete'.

Environment Information

[Development question] Is apiVersion a public interface?

I found each filer & source succeeds the apiVersion property. Can plugin authors use this to show warnings when the user is using old ddc.vim?

For instance, I want to use updated onInit() that has sourceParams in its arguments. Can I warn when apiVersion < 2, that is, no sourceParams in arguments?

onInit({ sourceParams }: OnInitArguments) {
  if (this.apiVersion < 3) {
    some_warning_func('Use ddc.vim >=0.5.0')
    return
  }
  ...
}

Help : How do I prevent whitespace character completion

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

How do I prevent whitespace character completion? I set 'minAutoCompleteLength': 0, but I don't want <space> ,<cr> and other whitespace character to trigger completion. What should I do ?

Expected

Environment Information

  • ddc.vim version (SHA1):
    latest
  • denops.vim version (SHA1):
    latest
  • deno version(deno -V output):
    deno 1.14.1
  • OS:
    windows wsl ubuntu 20.04
  • neovim/Vim :version output:
    NVIM v0.5.0
  • :checkhealth or :CheckHealth result(neovim only):
health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.14.1`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.5.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#lspconfig#check
========================================================================
 Checking language server protocol configuration
  - INFO: clangd: configuration checked.

health#nvim#check
========================================================================
Configuration
  - OK: no issues found

Performance
  - OK: Build type: RelWithDebInfo

 Remote Plugins
  - OK: Up to date

 terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

health#provider#check

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

set encoding=utf-8
"dein Scripts-----------------------------
if &compatible
    set nocompatible               " Be iMproved
endif
set runtimepath+=~/.cache/nvim/dein/repos/github.com/Shougo/dein.vim
let s:dein_path = $HOME . '/.cache/nvim/dein'
let g:dein#auto_recache = 1
call dein#begin(s:dein_path)
call dein#add(s:dein_path)
call dein#add('neovim/nvim-lspconfig')
call dein#add('vim-denops/denops.vim')
call dein#add('Shougo/ddc.vim')
call dein#add('Shougo/ddc-matcher_head')
call dein#add('Shougo/ddc-sorter_rank')
call dein#add('Shougo/ddc-nvim-lsp')
call dein#add('LumaKernel/ddc-file')
call dein#add('Shougo/ddc-converter_remove_overlap')
call dein#end()
call dein#call_hook('source')
call dein#call_hook('post_source')
" Required:
filetype plugin indent on
syntax enable
set background=dark

call ddc#custom#patch_global('sources', [ 'file', 'nvimlsp'])
call ddc#custom#patch_global('sources',
    \ ['around', 'file', 'nvimlsp'],
    \ )
call ddc#custom#patch_global('sourceOptions', {
    \ '_': {
    \   'ignoreCase': v:true,
    \   'matchers': ['matcher_head'],
    \   'sorters': ['sorter_rank'],
    \   'converters': ['converter_remove_overlap'],
    \   'keywordPattern': '[a-zA-Z_]\w*',
    \   'minAutoCompleteLength': 0,
    \ },
    \ 'around': {
    \   'mark': 'A',
    \   'matchers': ['matcher_head'],
    \ },
    \ 'nvimlsp': {
    \   'mark': 'lsp',
    \   'isVolatile': v:true,
    \   'minAutoCompleteLength': 0,
    \   'forceCompletionPattern': "\\.|:\\s*|->"
    \ },
    \ 'file': {
    \   'mark': 'F',
    \   'isVolatile': v:true,
    \ },
    \ })
call ddc#custom#patch_global('sourceParams', {
      \ 'nvimlsp': {'useIcon': v:true},
      \ })
" Use ddc.
call ddc#enable()

lua require'lspconfig'.clangd.setup{}

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim -u minimal.vim a.c
  2. in normal mode , type gg
  3. type o

Screenshot (if possible)

Snipaste_2021-09-25_18-56-02

ddc.vim does not work in Perl scripts

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

Some (all?) sources cannot work in Perl scripts.

Expected

Want to work in Perl scripts.

Environment Information

  • ddc.vim version (SHA1): 58c6854

  • denops.vim version (SHA1): 8976e48

  • deno version(deno -v output):

    • deno 1.13.2 (release, x86_64-unknown-linux-gnu)
    • v8 9.3.345.11
    • typescript 4.3.5
  • OS: macOS 11.15.2 & Ubuntu 21.04 (Docker)

  • neovim/Vim :version output:

NVIM v0.5.0
Build type: Debug
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvl
a -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=1 -I/root/neovim/build/config -I/root/neovim/src -I/root/neov
im/.deps/usr/include -I/usr/include -I/root/neovim/build/src/nvim/auto -I/root/neovim/build/include
Compiled by root@buildkitsandbox

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/root/local/nvim/share/nvim"
  • :checkhealth or :CheckHealth result(neovim only):
result

health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.11.0`
  - INFO: Detected Deno version: `1.13.2`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.4.4`
  - INFO: Detected Neovim version: `0.5.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#nvim#check
========================================================================
## Configuration
  - ERROR: Locale does not support UTF-8. Unicode characters may not display correctly.
    $LANG= $LC_ALL= $LC_CTYPE=
    - ADVICE:
      - If using tmux, try the -u option.
      - Ensure that your terminal/shell/tmux/etc inherits the environment, or set $LANG explicitly.
      - Configure your system locale.

## Performance
  - INFO: Build type: Debug
  - WARNING: Non-optimized (DEBUG) build. Nvim will be slower.
    - ADVICE:
      - Install a different Nvim package, or rebuild with `CMAKE_BUILD_TYPE=RelWithDebInfo`.
      - https://github.com/neovim/neovim/wiki/FAQ

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

health#provider#check
========================================================================
## Clipboard (optional)
  - WARNING: No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.
    - ADVICE:
      - :help clipboard

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          python2.7 not found in search path or not executable.
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 3:
          python3 not found in search path or not executable.
          python3.10 not found in search path or not executable.
          python3.9 not found in search path or not executable.
          python3.8 not found in search path or not executable.
          python3.7 not found in search path or not executable.
          python3.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - WARNING: `node` and `npm` (or `yarn`) must be in $PATH.
    - ADVICE:
      - Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13
  - OK: Loaded parser for c: ABI version 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

call ddc#custom#patch_global({
      \ 'keywordPattern': '[a-zA-Z_]\w*',
      \ 'smartCase': v:true,
      \ 'sources': ['around'],
      \ 'sourceOptions': {
      \   '_': {'matchers': ['matcher_head']},
      \   'around': {'mark': 'A'},
      \ },
      \ })
call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Run Dockerfile
  2. nvim
  3. :e /tmp/hoge.sh
    • It show candidates validly.
  4. :e /tmp/hoge.pl
    • It shows none ;(

NOTE: This Dockerfile always fetches the latest repositories for plugins.

It shows ddc-around in config, but I experienced with several other sources. If you try, change init.vim as below.

diff
--- /root/.config/nvim/init.vim.orig    2021-09-03 14:08:05.422130237 +0900
+++ /root/.config/nvim/init.vim 2021-09-03 14:08:15.948261303 +0900
@@ -1,10 +1,10 @@
 call ddc#custom#patch_global({
       \ 'keywordPattern': '[a-zA-Z_]\w*',
       \ 'smartCase': v:true,
-      \ 'sources': ['around'],
+      \ 'sources': ['look'],
       \ 'sourceOptions': {
       \   '_': {'matchers': ['matcher_head']},
-      \   'around': {'mark': 'A'},
+      \   'around': {'look': 'K'},
       \ },
       \ })
 call ddc#enable()

Screenshot (if possible)

asciicast

cmdline completion is enabled without the need to call ddc#enable_cmdline_completion()

Problems summary

If cmdlineSources is set, cmdline completion is enabled without the need to call ddc#enable_cmdline_completion().

I can use cmdline completion by setting cmdlineSource and calling ddc#enable()

call ddc#custom#patch_global('cmdlineSources', ['cmdline'])
call ddc#custom#patch_global('autoCompleteEvents', ['CmdlineChanged'])
call ddc#custom#patch_global('completionMenu', 'pum.vim')
call ddc#enable()

Japanese

日本語で失礼します。

ddc#enable()とcmdSourceを設定するだけでコマンドライン補完を使えるのはddc#enable_cmdline_completion()があることを考えると不自然に感じます。
docのddc#enable()の説明にこのことを追記する、もしくはddc#enable()のみではコマンドライン補完を有効にしない、などの対応をした方が良いと思いました。

私の勘違いでしたら申し訳ありません。
よろしくお願いします。

Environment Information

  • ddc.vim version (SHA1):

73a0573

  • denops.vim version (SHA1):

4e694e1ebd868e7448e7f6f82e844c88719f0756

  • deno version(deno -V output):

deno 1.21.1

  • OS: (uname -a output)
Darwin MBP-2021.elecom 21.4.0 Darwin Kernel Version 21.4.0: Fri Mar 18 00:46:32 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T6000 arm64
  • neovim/Vim :version output:
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 30 2022 15:10:27)
NVIM v0.7.0
Build type: Release
LuaJIT 2.1.0-beta3
`:checkhealth` or `:CheckHealth` result(neovim only):

denops: health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.17.1`
  - INFO: Detected Deno version: `1.21.1`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.6.0`
  - INFO: Detected Neovim version: `0.7.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

nvim: health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='tmux'
  - INFO: $COLORTERM='truecolor'

## tmux
  - OK: escape-time: 0
  - INFO: Checking stuff
  - OK: focus-events: on
  - INFO: $TERM: screen-256color

nvim-lsp-installer: require("nvim-lsp-installer.health").check()
========================================================================
## nvim-lsp-installer report
  - OK: neovim version >= 0.7.0
  - WARNING: **Go**: not available
  - WARNING: **Composer**: not available
  - WARNING: **julia**: not available
  - OK: **bash**: `GNU bash, version 3.2.57(1)-release (arm64-apple-darwin21)`
  - OK: **tar**: `bsdtar 3.5.1 - libarchive 3.5.1 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8 `
  - OK: **gzip**: `Apple gzip 353.100.22`
  - OK: **curl**: `curl 7.79.1 (x86_64-apple-darwin21.0) libcurl/7.79.1 (SecureTransport) LibreSSL/3.3.5 zlib/1.2.11 nghttp2/1.45.1`
  - OK: **wget**: `GNU Wget 1.21.3 built on darwin21.3.0.`
  - WARNING: **java**: not available
  - WARNING: **javac**: not available
  - OK: **node**: `v18.0.0`
  - OK: **cargo**: `cargo 1.59.0`
  - OK: **sh**: `Ok`
  - OK: **PHP**: `PHP 8.1.5 (cli) (built: Apr 16 2022 00:03:52) (NTS)`
  - OK: **Ruby**: `ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin21]`
  - OK: **python3**: `Python 3.10.3`
  - OK: **RubyGem**: `3.3.7`
  - OK: **npm**: `8.6.0`
  - OK: **pip3**: `pip 22.0.4 from /Users/otsukiryota/.pyenv/versions/3.10.3/lib/python3.10/site-packages/pip (python 3.10)`

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 3 provider (optional)
  - INFO: pyenv: Path: /opt/homebrew/Cellar/pyenv/2.2.5/libexec/pyenv
  - INFO: pyenv: $PYENV_ROOT is not set. Infer from `pyenv root`.
  - INFO: pyenv: Root: /Users/otsukiryota/.pyenv
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /Users/otsukiryota/.pyenv/versions/3.10.3/bin/python3
  - INFO: Python version: 3.10.3
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin21]
  - INFO: Host: /Users/otsukiryota/.rbenv/shims/neovim-ruby-host
  - OK: Latest "neovim" gem is installed: 0.9.0

## Node.js provider (optional)
  - INFO: Node.js: v18.0.0
  - INFO: Nvim node.js host: /opt/homebrew/lib/node_modules/neovim/bin/cli.js
  - OK: Latest "neovim" npm/yarn package is installed: 4.10.1

## Perl provider (optional)
  - WARNING: "Neovim::Ext" cpan module is not installed
    - ADVICE:
      - See :help |provider-perl| for more information.
      - You may disable this provider (and warning) by adding `let g:loaded_perl_provider = 0` to your init.vim

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /Users/otsukiryota/.cache/nvim/lsp.log
  - INFO: Log size: 12480 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 14

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

set runtimepath+=~/.cache/dein/repos/github.com/vim-denops/denops.vim
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/ddc.vim
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/ddc-cmdline
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/pum.vim

call ddc#custom#patch_global('cmdlineSources', ['cmdline'])
call ddc#custom#patch_global('autoCompleteEvents', ['CmdlineChanged'])
call ddc#custom#patch_global('completionMenu', 'pum.vim')
call ddc#enable()

cnoremap <C-n> <Cmd>call pum#map#select_relative(+1)<CR>
cnoremap <C-p> <Cmd>call pum#map#select_relative(-1)<CR>
cnoremap <C-y> <Cmd>call pum#map#confirm()<CR>
cnoremap <C-e> <Cmd>call pum#map#cancel()<CR>

There is a syntax error in the configuration example written in README.md. Specifically, the quotation marks are not closed.

Problems summary

There is a syntax error in the configuration example written in README.md.
Specifically, the quotation marks are not closed.

Expected

It is expected to work properly;
just copy-paste the example configuration into init.vim/.vimrc
and launch without error messages.

Environment Information

  • ddc version (SHA1): 21e0258

  • OS: Ubuntu 20.04

  • neovim/Vim :version output:

version:
NVIM v0.5.0-dev
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -g -O2 -fdebug-prefix-map=/build/neovim-FcanTI/neovim-0.5.0+ubuntu2+git202106241800-24e0c16fd-d569569c9=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SO
Compiled by buildd@lgw01-amd64-026

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

call plug#begin('~/.vim/plugged')
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
call plug#end()

" Use around source.                                          V here is Missing quote 
call ddc#custom#global('sources', { '_': ['around] })
" Enable default matcher.
call ddc#custom#source('_', 'matchers', ['matcher_head'])

" Use ddc.
call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Save the above configuration file as minimal.vim.
  2. Specify the above configuration file in the vim/nvim startup options.
  • e.g.) nvim -u minimal.vim
  1. You can see the error messages. check log with :messages.

Upload the log file

Error detected while processing /path/to/minimal.vim:
line    7:
E115: Missing quote: 'around] })
E116: Invalid arguments for function ddc#custom#global

Error with neco-vim on Vim where many functions exist

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

When there're a lot of functions registered in Vim, triggering completion causes error Failed to parse received text '...': Syntax Error: Unexpected token i in JSON at position 65540. (Actually '...' is received JSON. The position or exact error message may differ, but error position is around 65000-. The shown received JSON seems incomplete.)

Expected

ddc.vim normally shows completion list.

Environment Information

  • ddc version (SHA1): 80c5f2e

  • OS: Windows 10 20H2 19042.1165

  • neovim/Vim :version output:

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Aug 15 2021 22:20:28)
MS-Windows 64 ビット GUI 版
適用済パッチ: 1-3350
Compiled by dicen@THUNDERBOLT
Huge 版 with GUI.  機能の一覧 有効(+)/無効(-)
+acl                +cursorbind         +iconv/dyn          -mzscheme           -sodium             +vartabs
+arabic             +cursorshape        +insert_expand      +netbeans_intg      +sound              +vertsplit
+autocmd            +darkmode_w32       +ipv6               +num64              +spell              +virtualedit
+autochdir          +dialog_con_gui     +job                -ole                +startuptime        +visual
+autoservername     +diff               +jumplist           +packages           +statusline         +visualextra
+balloon_eval       +digraphs           +keymap             +path_extra         -sun_workshop       +viminfo
-balloon_eval_term  +directx            +lambda             -perl               +syntax             +vreplace
+browse             -dnd                +langmap            +persistent_undo    +tag_binary         -vtp
++builtin_terms     -ebcdic             +libcall            +popupwin           -tag_old_static     +wildignore
+byte_offset        +emacs_tags         +linebreak          -postscript         -tag_any_white      +wildmenu
+channel            +eval               +lispindent         +printer            -tcl                +windows
+cindent            +ex_extra           +listcmds           +profile            -termguicolors      +writebackup
+clientserver       +extra_search       +localmap           -python             +terminal           -xfontset
+clipboard          -farsi              +lua/dyn            +python3/dyn        -termresponse       -xim
+cmdline_compl      +file_in_path       +menu               +quickfix           +textobjects        +xpm_w32
+cmdline_hist       +find_in_path       +mksession          +reltime            +textprop           -xterm_save
+cmdline_info       +float              +modify_fname       +rightleft          -tgetent            
+comments           +folding            +mouse              -ruby               +timers             
+conceal            -footer             +mouseshape         +scrollbind         +title              
+cryptv             +gettext/dyn        +multi_byte_ime/dyn +signs              +toolbar            
+cscope             -hangul_input       +multi_lang         +smartindent        +user_commands      
      システム vimrc: "$VIM\vimrc"
      ユーザー vimrc: "$HOME\_vimrc"
   第2ユーザー vimrc: "$HOME\vimfiles\vimrc"
   第3ユーザー vimrc: "$VIM\_vimrc"
       ユーザー exrc: "$HOME\_exrc"
    第2ユーザー exrc: "$VIM\_exrc"
     システム gvimrc: "$VIM\gvimrc"
     ユーザー gvimrc: "$HOME\_gvimrc"
  第2ユーザー gvimrc: "$HOME\vimfiles\gvimrc"
  第3ユーザー gvimrc: "$VIM\_gvimrc"
  デフォルトファイル: "$VIMRUNTIME\defaults.vim"
    システムメニュー: "$VIMRUNTIME\menu.vim"
コンパイル: cl -c /W3 /GF /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32  -DFEAT_CSCOPE -DFEAT_TERMINAL -DFEAT_SOUND -DFEAT_NETBEANS_INTG -DFEAT_JOB_CHANNEL -DFEAT_IPV6   -DFEAT_XPM_W32    -DFEAT_DARKMODE_W32   -DWINVER=0x0501 -D_WIN32_WINNT=0x0501 /source-charset:utf-8 /MP -DHAVE_STDINT_H /Ox /GL -DNDEBUG  /Zl /MT /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_GUI_MSWIN -DFEAT_DIRECTX -DDYNAMIC_DIRECTX -DFEAT_DIRECTX_COLOR_EMOJI -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_LUA -DDYNAMIC_LUA  -DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python39.dll\" -DFEAT_HUGE /Fd.\ObjGXUHKAMD64/ /Zi
リンク: link  /nologo /opt:ref /LTCG:STATUS /HIGHENTROPYVA:NO oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib netapi32.lib uuid.lib /machine:AMD64 gdi32.lib version.lib  Dwmapi.lib  winspool.lib comctl32.lib advapi32.lib shell32.lib netapi32.lib  /machine:AMD64  libcmt.lib  user32.lib  /nodefaultlib:lua53.lib    /nodefaultlib:python39.lib    winmm.lib WSock32.lib Ws2_32.lib xpm\x64\lib-vc14\libXpm.lib  /PDB:gvim.pdb -debug
  • :checkhealth or :CheckHealth result(neovim only):

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

Save the following file as a repro.vim.

set nocompatible laststatus=2 cmdheight=2

" Please prepare dependencies in the current directory or specify the path to
" those plugins.
" - 'vim-denops/denops.vim'
" - 'Shougo/ddc.vim'
" - 'Shougo/ddc-matcher_head'
" - 'Shougo/ddc-sorter_rank'
" - 'Shougo/neco-vim'
set runtimepath+=denops.vim,ddc.vim,ddc-matcher_head,ddc-sorter_rank,neco-vim

" Register a lot of functions.
for i in range(20000)
  function! ASDF{i}() abort
  endfunction
endfor

call ddc#custom#patch_global('sourceOptions', {
  \   '_': {
  \     'matchers': ['matcher_head'],
  \     'sorters': ['sorter_rank'],
  \   },
  \ })
call ddc#custom#patch_filetype(['vim'], 'sources', ['necovim'])

" This manual completion is not required
inoremap <silent><expr> <C-Space> ddc#manual_complete()

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Prepare dependencies
  2. gvim -u repro.vim test.vim
  3. :set ft=vim
  4. Type call exp in insert mode and wait for compleion (or press to force completion).
  5. You'll see error message as below and no completions show up.

image

  1. :message to see complete error messages.

Screenshot (if possible)

Very long error messages show up like below.

image

Omni source ?

Hello,

Is it possible to use Omni sources with ddc ? I was previously using Deoplete with Vimtex autocompletion, but wanted to move to ddc now, since it is being maintained.

Thank you !

no pum when inserting a dot

Problems summary

I configured ddc.vim and vim-lsp as source. When I edited a file in a "go.mod" project, <Tab> can trigger a complete as expected. But there's no complete when i insert a dot

Expected

a complete popup should show up

Environment Information

  • ddc.vim version (SHA1): 15eb314

  • denops.vim version (SHA1): 333aa178

  • deno version(deno -V output): deno 1.17.3

  • OS: MacOS Monterey

  • neovim/Vim :version output:

VIM - Vi IMproved 8.2
+acl               +comments          +find_in_path      +lispindent        +multi_byte        +rightleft         +terminal          +wildignore
+arabic            +conceal           +float             +listcmds          +multi_lang        -ruby              +terminfo          +wildmenu
+autocmd           +cryptv            +folding           +localmap          -mzscheme          +scrollbind        +termresponse      +windows
+autochdir         -cscope            -footer            -lua               +netbeans_intg     +signs             +textobjects       +writebackup
-autoservername    +cursorbind        +fork()            +menu              +num64             +smartindent       +textprop          -X11
-balloon_eval      +cursorshape       +gettext           +mksession         +packages          -sodium            +timers            -xfontset
+balloon_eval_term +dialog_con        -hangul_input      +modify_fname      +path_extra        -sound             +title             -xim
-browse            +diff              +iconv             +mouse             -perl              +spell             -toolbar           -xpm
++builtin_terms    +digraphs          +insert_expand     -mouseshape        +persistent_undo   +startuptime       +user_commands     -xsmp
+byte_offset       -dnd               +ipv6              +mouse_dec         +popupwin          +statusline        +vartabs           -xterm_clipboard
+channel           -ebcdic            +job               -mouse_gpm         +postscript        -sun_workshop      +vertsplit         -xterm_save
+cindent           +emacs_tags        +jumplist          -mouse_jsbterm     +printer           +syntax            +vim9script
-clientserver      +eval              +keymap            +mouse_netterm     +profile           +tag_binary        +viminfo
+clipboard         +ex_extra          +lambda            +mouse_sgr         -python            -tag_old_static    +virtualedit
+cmdline_compl     +extra_search      +langmap           -mouse_sysmouse    -python3           -tag_any_white     +visual
+cmdline_hist      -farsi             +libcall           +mouse_urxvt       +quickfix          -tcl               +visualextra
+cmdline_info      +file_in_path      +linebreak         +mouse_xterm       +reltime           +termguicolors     +vreplace
  • :checkhealth or :CheckHealth result(neovim only):

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
set runtimepath+=~/path/to/ddc.vim/
" Async LSP plugin
Plug 'prabirshrestha/vim-lsp'

Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'

" ddc.vim sources
Plug 'shun/ddc-vim-lsp'

" ddc.vim filters
Plug 'Shougo/ddc-matcher_head'
Plug 'Shougo/ddc-sorter_rank'

call ddc#enable()

inoremap <silent><expr> <TAB>
			\ ddc#map#pum_visible() ? '<C-n>' :
			\ (col('.') <= 1 <Bar><Bar> getline('.')[col('.') - 2] =~# '\s') ?
			\ '<TAB>' : ddc#map#manual_complete()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Install gopls and create a go.mod project
  2. Configure vim using ddc and vim-lsp as source
  3. Edit a main file and insert like "fmt."

Screenshot (if possible)

截屏2022-01-19 上午12 56 39

Invalid path to a file

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

Invalid path to a file
Invalid path
This thing could be fixed if i "hardcode" path to directory, i.e.

let s:root_dir = fnamemodify(expand('<sfile>'), ':h:h') " line 87

changed to

let s:root_dir = 'C:/Users/autriz/.vim/plugged/ddc.vim'

in file ddc.vim/autoload/ddc.vim.

Invalid path also breaks ddc-around, ddc-matcher_head, etc. when onEvent is called.
Broken ddc-around
Broken ddc-matcher_head

Expected

Working

Environment Information

  • ddc.vim version (SHA1): 9600d45

  • denops.vim version (SHA1): a104cbf

  • deno version(deno -V output): 1.24.0

  • OS: Win10

  • neovim/Vim :version output: 8.2.5117

:version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 23 2022 04:01:15)
Included patches: 1-5117
Compiled by <https://www.msys2.org/>
Huge version without GUI.  Features included (+) or not (-):
+acl               +channel           +cscope            +ex_extra          -hangul_input      +linebreak         +mouse_dec         -mzscheme          +profile           -sodium            -tcl               +user_commands     +wildmenu
+arabic            +cindent           +cursorbind        +extra_search      +iconv             +lispindent        -mouse_gpm         +netbeans_intg     -python            -sound             +termguicolors     +vartabs           +windows
+autocmd           -clientserver      +cursorshape       -farsi             +insert_expand     +listcmds          -mouse_jsbterm     +num64             +python3/dyn       +spell             +terminal          +vertsplit         +writebackup
+autochdir         +clipboard         +dialog_con        +file_in_path      +ipv6              +localmap          +mouse_netterm     +packages          +quickfix          +startuptime       +terminfo          +vim9script        -X11
-autoservername    +cmdline_compl     +diff              +find_in_path      +job               -lua               +mouse_sgr         +path_extra        +reltime           +statusline        +termresponse      +viminfo           -xfontset
-balloon_eval      +cmdline_hist      +digraphs          +float             +jumplist          +menu              -mouse_sysmouse    +perl/dyn          +rightleft         -sun_workshop      +textobjects       +virtualedit       -xim
+balloon_eval_term +cmdline_info      -dnd               +folding           +keymap            +mksession         +mouse_urxvt       +persistent_undo   +ruby/dyn          +syntax            +textprop          +visual            -xpm
-browse            +comments          -ebcdic            -footer            +lambda            +modify_fname      +mouse_xterm       +popupwin          +scrollbind        +tag_binary        +timers            +visualextra       -xsmp
++builtin_terms    +conceal           +emacs_tags        +fork()            +langmap           +mouse             +multi_byte        +postscript        +signs             -tag_old_static    +title             +vreplace          -xterm_clipboard
+byte_offset       +cryptv            +eval              +gettext           +libcall           -mouseshape        +multi_lang        +printer           +smartindent       -tag_any_white     -toolbar           +wildignore        -xterm_save
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/etc"
 f-b for $VIMRUNTIME: "/usr/share/vim/vim82"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -I/usr/include/ncursesw -march=x86-64 -mtune=generic -O2 -pipe -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -pipe -fstack-protector-strong -pipe -Wl,--as-needed -o vim.exe -lm -lncursesw -lrt -liconv -lacl -lintl -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector-strong -L/usr/lib/perl5/core_perl/CORE -lperl -lpthr
ead -ldl -lcrypt

Provide a minimal init.vim/vimrc without plugin managers (Required!)

call plug#begin('~/.vim/plugged')

Plug 'gruvbox-community/gruvbox'
Plug 'rhysd/vim-healthcheck'
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
Plug 'Shougo/ddc-matcher_head'
Plug 'Shougo/ddc-sorter_rank'
Plug 'Shougo/ddc-nvim-lsp'

call plug#end()

call ddc#custom#patch_global('sourceOptions', {
    \ '_': {
    \     'matchers': ['matcher_head'],
    \     'sorters': ['sorter_rank']
    \ },
    \ 'nvim-lsp': {
    \     'mark': 'lsp',
    \     'forceCompletionPattern': '\.\w*|:\w*|->\w*'
    \ },
    \ 'around': {
    \    'mark': 'A'
    \ }
    \})
call ddc#custom#patch_global('sources', [
    \ 'around',
    \ 'nvim-lsp'
    \])
call ddc#custom#patch_global('souceParams', {
    \ 'around': {
    \     'maxSize': 500
    \ },
    \ 'nvim-lsp': {
    \     'kindLabels': {
    \         'Class': 'c'
    \     }
    \ },
    \})

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

start denops server
start vim

LSP completion error

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

When I select the LSP item in the completion, an error occurs.

Expected

No error occurs when selecting the LSP item in the completion.

Environment Information

  • ddc.vim version (SHA1): 40d9142

  • denops.vim version (SHA1): ca660c25fe947e43de60dcc14e5e0ceaa339313d

  • deno version(deno -V output): deno 1.22.0

  • OS: Mac

  • neovim/Vim :version output: NVIM v0.8.0-dev+1791-ge9803e1de

  • :checkhealth or :CheckHealth result(neovim only): OK

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

vim.cmd('syntax off')
vim.cmd('filetype off')
vim.cmd('filetype plugin indent off')

local cache_dir = vim.env.HOME .. '/.cache'
local dein_dir = cache_dir .. '/dein'
local dein_repo_dir = dein_dir .. '/repos/github.com/Shougo/dein.vim'

if not string.match(vim.o.runtimepath, '/dein.vim') then
	if vim.fn.isdirectory(dein_repo_dir) ~= 1 then
		os.execute('git clone https://github.com/Shougo/dein.vim ' .. dein_repo_dir)
	end
	vim.o.runtimepath = dein_repo_dir .. ',' .. vim.o.runtimepath 
end

if vim.call('dein#min#load_state', dein_dir) ~= 1 then
    return
end

vim.call('dein#begin', dein_dir)

vim.call('dein#add', 'neovim/nvim-lspconfig')
vim.call('dein#add', 'vim-denops/denops.vim')
vim.call('dein#add', 'Shougo/ddc.vim')
vim.call('dein#add', 'Shougo/ddc-matcher_head')
vim.call('dein#add', 'Shougo/ddc-sorter_rank')
vim.call('dein#add', 'Shougo/ddc-nvim-lsp')

vim.call('dein#end')
vim.call('dein#save_state')


require'lspconfig'.rust_analyzer.setup {}

vim.call('ddc#custom#patch_global',
  'sources', {'nvim-lsp'})
vim.call('ddc#custom#patch_global',
  'sourceOptions', {_ = {matchers = {'matcher_head'}}})
vim.call('ddc#custom#patch_global',
  'sourceOptions', {_ = {sorters = {'sorter_rank'}}})
vim.call('ddc#custom#patch_global',
  'sourceOptions', {['nvim-lsp'] = {mark = {'[LSP]'}}})
vim.call('ddc#custom#patch_filetype', 'rust',
  'sourceOptions', {['nvim-lsp'] = {forceCompletionPattern = {[[\.\w*|::\w*]]}}})
vim.call('ddc#enable')

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

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Install Rust. (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  2. $ cargo new sample
  3. $ cd sample
  4. $ nvim src/main.rs
  5. Type use std::io::, select Read from the suggestions, and type a semicolon.

Screenshot (if possible)

スクリーンショット 2022-05-31 9 44 14

This error seems to occur when I set the mark.

Some (all?) sources show errors on registration

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

Some sources cannot been registered.

...I cannot find this problem out caused by ddc.vim or sources. I detected this in ddc-around, neco-vim, ddc-buffer and so on.

Expected

All sources works good.

Environment Information

  • ddc version (SHA1): 9073abe

  • OS: macOS 11.5.2

  • neovim/Vim :version output:

:version
:version
NVIM v0.6.0-dev+189-g274a3504a
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by jinnouchi.yasushi@O-10413-MAC

Features: +acl +iconv +tui
See ":help feature-compile"

      システム vimrc: "$VIM/sysinit.vim"
       省略時の $VIM: "/usr/local/Cellar/neovim/HEAD-274a350/share/nvim"

Run :checkhealth for more info
続けるにはENTERを押すかコマンドを入力してください
  • :checkhealth or :CheckHealth result(neovim only):
:checkhealth

health#lspconfig#check
========================================================================
## Checking language server protocol configuration
  - INFO: bashls: configuration checked.
  - INFO: denols: configuration checked.
  - INFO: vuels: configuration checked.
  - INFO: yamlls: configuration checked.
  - INFO: vimls: configuration checked.
  - INFO: terraformls: configuration checked.
  - INFO: sourcekit: configuration checked.
  - INFO: solargraph: configuration checked.
  - INFO: pyright: configuration checked.
  - INFO: intelephense: configuration checked.
  - INFO: dockerls: configuration checked.
  - ERROR: cssls: The given command "vscode-css-language-server" is not executable.
  - INFO: clangd: configuration checked.
  - INFO: tsserver: configuration checked.
  - INFO: efm: configuration checked.
  - ERROR: html: The given command "vscode-html-language-server" is not executable.
  - INFO: gopls: configuration checked.
  - INFO: sumneko_lua: configuration checked.
  - INFO: teal: configuration checked.

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='tmux'
  - INFO: $COLORTERM='truecolor'

## tmux
  - OK: escape-time: 0
  - INFO: Checking stuff
  - OK: focus-events: on
  - INFO: $TERM: xterm-256color
  - ERROR: $TERM should be "screen-256color" or "tmux-256color" in tmux. Colors might look wrong.
    - ADVICE:
      - Set default-terminal in ~/.tmux.conf:
          set-option -g default-terminal "screen-256color"
      - https://github.com/neovim/neovim/wiki/FAQ
  - WARNING: Neither Tc nor RGB capability set. True colors are disabled. |'termguicolors'| won't work properly.
    - ADVICE:
      - Put this in your ~/.tmux.conf and replace XXX by your $TERM outside of tmux:
          set-option -sa terminal-overrides ',XXX:RGB'
      - For older tmux versions use this instead:
          set-option -ga terminal-overrides ',XXX:Tc'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /usr/bin/python does not have the "neovim" module. :help |provider-python|
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Multiple python3 executables found.  Set `g:python3_host_prog` to avoid surprises.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Other python executable: /usr/bin/python3
  - INFO: Python version: 3.9.6
  - INFO: pynvim version: 0.4.2 (outdated; from ~/Library/Python/3.9/lib/python/site-packages/neovim)
  - WARNING: Latest pynvim is NOT installed: 0.4.3

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-darwin20]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v14.15.0
  - INFO: Nvim node.js host: /Users/jinnouchi.yasushi/.nodenv/versions/14.15.0/lib/node_modules/neovim/bin/cli.js
  - WARNING: Package "neovim" is out-of-date. Installed: 4.9.0, latest: 4.10.0
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

call ddc#custom#patch_global({
      \ 'keywordPattern': '[a-zA-Z_]\w*',
      \ 'smartCase': v:true,
      \ 'sources': ['around'],
      \ 'sourceOptions': {
      \   '_': {'matchers': ['matcher_head']},
      \   'around': {'mark': 'A'},
      \ },
      \ })
call ddc#enable()
let g:denops#debug = 1

See this Dockerfile

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Run this Dockerfile above
  2. nvim .config/nvim/init.vim
  3. Type some texts and wait for a while.
  4. See this error
error
[denops] Error: Failed to call 'registerSource' with [{"name":"around","path":"/root/.local/share/nvim/site/pack/packer/start/ddc-around/denops/ddc/sources/around.ts"}]: TypeError: TS2416 [ERROR]: Property 'gatherCandidates' in type 'Source'
is not assignable to the same property in base type 'BaseSource'.
[denops]   Type '(args: { denops: Denops; sourceParams: Record<string, unknown>; completeStr: string; }) => Promise<Candidate[]>' is not assignable to type '{ (denops: Denops, context: Context, options: DdcOptions, sourceOptions: SourceOption
s, sourceParams: Record<string, unknown>, completeStr: string): Promise<...>; (args: GatherCandidatesArguments): Promise<...>; }'.
[denops]     Types of parameters 'args' and 'denops' are incompatible.
[denops]       Type 'Denops' is missing the following properties from type '{ denops: Denops; sourceParams: Record<string, unknown>; completeStr: string; }': denops, sourceParams, completeStr
[denops]   async gatherCandidates(args: {
[denops]         ~~~~~~~~~~~~~~~~
[denops]     at file:///root/.local/share/nvim/site/pack/packer/start/ddc-around/denops/ddc/sources/around.ts:21:9
[denops]     at async Ddc.registerSource (file:///root/.local/share/nvim/site/pack/packer/start/ddc.vim/denops/ddc/ddc.ts:129:17)
[denops]     at async Session.registerSource (file:///root/.local/share/nvim/site/pack/packer/start/ddc.vim/denops/ddc/app.ts:18:7)
[denops]     at async Session.dispatch (https://deno.land/x/[email protected]/session.ts:99:12)
[denops]     at async https://deno.land/x/[email protected]/session.ts:108:18
[denops]     at async Session.handleRequest (https://deno.land/x/[email protected]/session.ts:104:29)
[denops]     at Session.call (https://deno.land/x/[email protected]/session.ts:207:13)
[denops]     at async Service.dispatch (file:///root/.local/share/nvim/site/pack/packer/start/denops.vim/denops/@denops-private/service/service.ts:112:14)
[denops]     at async Session.invoke (file:///root/.local/share/nvim/site/pack/packer/start/denops.vim/denops/@denops-private/service/host/nvim.ts:44:16)
[denops]     at async Session.dispatch (https://deno.land/x/[email protected]/session.ts:99:12)
[denops]     at async Session.handleNotification (https://deno.land/x/[email protected]/session.ts:130:7)
[denops] Error: Failed to call 'registerFilter' with [{"name":"matcher_head","path":"/root/.local/share/nvim/site/pack/packer/start/ddc-matcher_head/denops/ddc/filters/matcher_head.ts"}]: TypeError: TS2416 [ERROR]: Property 'filter' in type '
Filter' is not assignable to the same property in base type 'BaseFilter'.
[denops]   Type '(args: { sourceOptions: SourceOptions; completeStr: string; candidates: Candidate[]; }) => Promise<Candidate[]>' is not assignable to type '{ (denops: Denops, context: Context, options: DdcOptions, sourceOptions: SourceOption
s, filterOptions: FilterOptions, filterParams: Record<...>, completeStr: string, candidates: Candidate[]): Promise<...>; (args: FilterArguments): Promise<...>; }'.
[denops]     Types of parameters 'args' and 'denops' are incompatible.
[denops]       Type 'Denops' is missing the following properties from type '{ sourceOptions: SourceOptions; completeStr: string; candidates: Candidate[]; }': sourceOptions, completeStr, candidates
[denops]   filter(args: {
[denops]   ~~~~~~
[denops]     at file:///root/.local/share/nvim/site/pack/packer/start/ddc-matcher_head/denops/ddc/filters/matcher_head.ts:8:3
[denops]     at async Ddc.registerFilter (file:///root/.local/share/nvim/site/pack/packer/start/ddc.vim/denops/ddc/ddc.ts:139:17)
[denops]     at async Session.registerFilter (file:///root/.local/share/nvim/site/pack/packer/start/ddc.vim/denops/ddc/app.ts:22:7)
[denops]     at async Session.dispatch (https://deno.land/x/[email protected]/session.ts:99:12)
[denops]     at async https://deno.land/x/[email protected]/session.ts:108:18
[denops]     at async Session.handleRequest (https://deno.land/x/[email protected]/session.ts:104:29)
[denops]     at Session.call (https://deno.land/x/[email protected]/session.ts:207:13)
[denops]     at async Service.dispatch (file:///root/.local/share/nvim/site/pack/packer/start/denops.vim/denops/@denops-private/service/service.ts:112:14)
[denops]     at async Session.invoke (file:///root/.local/share/nvim/site/pack/packer/start/denops.vim/denops/@denops-private/service/host/nvim.ts:44:16)
[denops]     at async Session.dispatch (https://deno.land/x/[email protected]/session.ts:99:12)
[denops]     at async Session.handleNotification (https://deno.land/x/[email protected]/session.ts:130:7)

Screenshot (if possible)

asciicast

Split UI like ddu.vim

I think it should be ddc.vim version 3 core feature.
Users can create new UI for ddc.vim.

Inline completion duplicates already present part

Problems summary

Inline completion does not replace the actual word but instead insert the whole completion after the partial word.

Expected

It should insert only the absent part.

Environment Information

  • ddc.vim version (SHA1): 5935db0

  • denops.vim version (SHA1): cd01bad

  • deno version(deno -V output): deno 1.15.3

  • OS: macOS Catalina 10.15.7

  • neovim/Vim :version output:

NVIM v0.5.1
Build type: Release
LuaJIT 2.1.0-beta3
Compilation: clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -O2 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -W
conversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS
_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20210927-21425-quzo0s/neovim-0.5.1/build/config -I/tmp/neovim-20210927-21425-quzo0s/neovim-0.5.1/src -I/usr/local/include
 -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include -I/usr/local/opt/gettext/include -I/tmp/neovim-20210927-21425-quzo0s/neovim-0.5.1/build/src/nvim/auto -I/tmp/neovim-
20210927-21425-quzo0s/neovim-0.5.1/build/include
Compiled by brew@iMac-Pro

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/Cellar/neovim/0.5.1/share/nvim"
:checkhealth
health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.15.3`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.5.1`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='iTerm.app'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /Users/philip/miniconda3/bin/python is Python 3.8 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3.9 in the environment.
  - INFO: Executable: /usr/local/bin/python3.9
  - INFO: Python version: 3.9.7
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v17.0.1
  - INFO: Nvim node.js host: /usr/local/lib/node_modules/neovim/bin/cli.js
  - OK: Latest "neovim" npm/yarn package is installed: 4.10.0

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13
## Provide a minimal init.vim/vimrc with less than 50 lines (Required!)
call ddc#custom#patch_global('sources', ['around'])

call ddc#custom#patch_global('sourceOptions', {
      \ '_': {
      \   'matchers': ['matcher_head'],
      \   'sorters': ['sorter_rank']},
      \ })

inoremap <expr> <tab> ddc#insert_candidate(0)
call ddc#custom#patch_global('completionMode', 'inline')

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Start typing a word that has completion.
  2. Trigger completion.
  3. Go to normal mode.
  4. Delete a few chars (x).
  5. Go back in insert mode.
  6. Trigger completion again.

Screenshot (if possible)

asciicast

It shows duplicated candidates when with pum.vim.

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

Candidates duplicate with pum.vim feature even when dup == false.

Expected

Candidates do not duplicate even with pum.vim.

Environment Information

  • ddc.vim version (SHA1): 9afba4e

  • denops.vim version (SHA1): b6f96d9fdcaccaf0d2fcbd821d93e3995d04cf0b

  • deno version(deno -V output): deno 1.14.3

  • OS: macOS 11.6 & Ubuntu 21.04

  • neovim/Vim :version output:

:version
NVIM v0.6.0-dev+a161559
Build type: Debug
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SE
T_MATCH_LIMIT -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototy
pes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthroug
h -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLU
DE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI
_HAS_VAR_FROM -DMIN_LOG_LEVEL=1 -I/root/neovim/build/config -I/root/neovim/src
-I/root/neovim/.deps/usr/include -I/usr/include -I/root/neovim/build/src/nvim/a
uto -I/root/neovim/build/include
Compiled by root@buildkitsandbox

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/root/local/nvim/share/nvim"

Run :checkhealth for more info
  • :checkhealth or :CheckHealth result(neovim only):
:checkhealth

denops: health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.14.3`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.6.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

nvim: health#nvim#check
========================================================================
## Configuration
  - ERROR: Locale does not support UTF-8. Unicode characters may not display correctly.
    $LANG= $LC_ALL= $LC_CTYPE=
    - ADVICE:
      - If using tmux, try the -u option.
      - Ensure that your terminal/shell/tmux/etc inherits the environment, or set $LANG explicitly.
      - Configure your system locale.

## Performance
  - INFO: Build type: Debug
  - WARNING: Non-optimized (DEBUG) build. Nvim will be slower.
    - ADVICE:
      - Install a different Nvim package, or rebuild with `CMAKE_BUILD_TYPE=RelWithDebInfo`.
      - https://github.com/neovim/neovim/wiki/FAQ

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - WARNING: No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.
    - ADVICE:
      - :help clipboard

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          python2.7 not found in search path or not executable.
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 3:
          python3 not found in search path or not executable.
          python3.10 not found in search path or not executable.
          python3.9 not found in search path or not executable.
          python3.8 not found in search path or not executable.
          python3.7 not found in search path or not executable.
          python3.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - WARNING: `node` and `npm` (or `yarn`) must be in $PATH.
    - ADVICE:
      - Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /root/.cache/nvim/lsp.log
  - INFO: Log size: 0 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 13
  - OK: Loaded parser for c: ABI version 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

call ddc#custom#patch_global({
      \ 'completionMenu': 'pum.vim',
      \ 'sources': ['around', 'look'],
      \ 'sourceOptions': {
      \   '_': {
      \     'matchers': ['matcher_head'],
      \     'converters': ['converter_truncate'],
      \   },
      \   'around': {'mark': 'A'},
      \   'look': {'mark': 'L'},
      \ },
      \ })
call ddc#enable()
inoremap <expr> <C-n> pum#visible() ? '<Cmd>call pum#map#insert_relative(+1)<CR>' : '<C-n>'
inoremap <expr> <C-p> pum#visible() ? '<Cmd>call pum#map#insert_relative(-1)<CR>' : '<C-p>'

How to reproduce the problem from neovim/Vim startup (Required!)

  1. It shows duplicated candidates from around & look sources with init.vim above.
  2. Then I delete the line: 2 (\ 'completionMenu': 'pum.vim',) and re-run Neovim, it does not show duplicated candidates.

Screenshot (if possible)

asciicast

`.` does not repeat insertion for `indentkeys`

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

Repetition . does not work if a user inserts a ddc completion word that contains—or in this case starts with—indentkeys, e.g., \bibitem and \item for tex, see runtime/indent/tex.vim#L153 and runtime/indent/tex.vim#L168.

This bisects to 58c6854.

Expected

. works, i.e. repeats insertion.

Environment Information

  • ddc.vim version (SHA1): 5b4dd56

  • denops.vim version (SHA1): vim-denops/denops.vim@4b7d229

  • deno version(deno -V output): 1.14.0

  • OS: Debian 11.0

  • neovim/Vim :version output: NVIM v0.6.0-dev+286-g4881456e8

  • :checkhealth or :CheckHealth result(neovim only):

health#lsp#check
========================================================================
## Checking language server client configuration
  - INFO: LSP log level : WARN
  - INFO: Log path: /home/kwsm/.cache/nvim/lsp.log
  - INFO: Log size: 0 KB

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $VTE_VERSION='6203'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - WARNING: No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.
    - ADVICE:
      - :help |clipboard|

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          python2.7 not found in search path or not executable.
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python version: 3.9.2
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - WARNING: `node` and `npm` (or `yarn`) must be in $PATH.
    - ADVICE:
      - Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13
  - OK: Loaded parser for c: ABI version 13

health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.11.0`
  - INFO: Detected Deno version: `1.14.0`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.4.4`
  - INFO: Detected Neovim version: `0.6.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
set runtimepath-=~/.config/nvim
set runtimepath-=~/.config/nvim/after
set runtimepath-=~/.local/share/nvim/site
set runtimepath-=~/.local/share/nvim/site/after

set runtimepath+=/path/to/ddc.vim
set runtimepath+=/path/to/denops.vim

call ddc#register_source({'name': 'tex', 'path': '/tmp/tex.ts',})
call ddc#custom#patch_filetype('tex', 'sources', ['tex'])

call ddc#enable()

Register the following source:

// /tmp/tex.ts
import {
  BaseSource,
  Candidate,
} from "https://deno.land/x/[email protected]/types.ts#^";
import { GatherCandidatesArguments } from "https://deno.land/x/[email protected]/base/source.ts#^";

export class Source extends BaseSource {
  async gatherCandidates(
    _args: GatherCandidatesArguments,
  ): Promise<Candidate[]> {
    return [
      { word: "\\large" }, // this works
      { word: "\\item" }, // this doesn't
    ];
  }
}

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim -u vimrc -c 'setf tex' - <<< ' foo'
  2. I\large <ESC>... —works as expected
  3. I\item <ESC>... —does not work

Screenshot (if possible)

5b4dd56:
5b4dd56

e74e919 (= 58c6854^):
e74e919

NORC:
NORC

ddc#disable_cmdline_completion() is fail when cmdline is empty

Problems summary

ddc#disable_cmdline_completion() is fail when cmdline is empty

Expected

Environment Information

  • ddc.vim version (SHA1):

51995c851b470cbca801f44a41c6f28a6b1a0f65

  • denops.vim version (SHA1):¬

228d446132825bd8035a5530a206611f639f9a74

  • deno version(deno -V output):

deno 1.16.3

  • OS:

Ubuntu 21.04

  • neovim/Vim :version output:
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec  3 2021 08:00:46)
適用済パッチ: 1-3724
Compiled by Hibiki <[email protected]>
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
  • :checkhealth or :CheckHealth result(neovim only):

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
if &compatible
  set nocompatible
endif
autocmd!

set runtimepath+=/path/to/repos/github.com/vim-denops/denops.vim
set runtimepath+=/path/to/repos/github.com/Shougo/ddc.vim

function! s:ddc_cmdlime_pre() abort
  autocmd User DDCCmdlineLeave ++once call s:ddc_cmdlime_post()
  call ddc#enable_cmdline_completion()
endfunction

function! s:ddc_cmdlime_post() abort
  call ddc#disable_cmdline_completion()
endfunction

autocmd CmdlineEnter : call s:ddc_cmdlime_pre()

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Type :
  2. Type <BS>

Screenshot (if possible)

5E9414B3-7538-45B8-9263-18E239BC7F95

Keybindings for popup menu navigation

Are popup menu navigation TAB and S-TAB keybindings enabled by default? If not, can you please give an example to achieve this similar to deoplete.nvim plugin?

ddc screenshots

I want to add the screenshots link in README.
If you have good screenshots for ddc.vim, can you add it in this issue?

Ddc randomly stops cycling between the completion candidates when you hold C-n or C-p instead of typing slowly

Problems summary

Ddc randomly stops cycling between the completion candidates when you hold C-n or C-p instead of typing slowly. This does not happen when I'm not using ddc.vim.

Expected

Holding C-n should keep going down and loop back to top, and C-p should go backward, without selecting one of them and stop.

Environment Information

  • ddc.vim version (SHA1): ba28bc9

  • denops.vim version (SHA1): a104cbff7e47a63978cfb3921da4333465fc6d15

  • deno version(deno -V output): 1.23.0

  • OS: ArchLinux

  • neovim/Vim :version output:



VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 07 2022 00:51:41)
Included patches: 1-5046
Compiled by Arch Linux
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +comments          +find_in_path      +lispindent        +multi_byte        +rightleft         +terminal          +wildignore
+arabic            +conceal           +float             +listcmds          +multi_lang        +ruby/dyn          +terminfo          +wildmenu
+autocmd           +cryptv            +folding           +localmap          -mzscheme          +scrollbind        +termresponse      +windows
+autochdir         +cscope            -footer            +lua/dyn           +netbeans_intg     +signs             +textobjects       +writebackup
-autoservername    +cursorbind        +fork()            +menu              +num64             +smartindent       +textprop          +X11
+balloon_eval      +cursorshape       +gettext           +mksession         +packages          -sodium            +timers            -xfontset
+balloon_eval_term +dialog_con_gui    -hangul_input      +modify_fname      +path_extra        +sound             +title             +xim
+browse            +diff              +iconv             +mouse             +perl/dyn          +spell             +toolbar           -xpm
++builtin_terms    +digraphs          +insert_expand     +mouseshape        +persistent_undo   +startuptime       +user_commands     +xsmp_interact
+byte_offset       +dnd               +ipv6              +mouse_dec         +popupwin          +statusline        +vartabs           +xterm_clipboard
+channel           -ebcdic            +job               +mouse_gpm         +postscript        -sun_workshop      +vertsplit         -xterm_save
+cindent           +emacs_tags        +jumplist          -mouse_jsbterm     +printer           +syntax            +vim9script        
+clientserver      +eval              +keymap            +mouse_netterm     +profile           +tag_binary        +viminfo           
+clipboard         +ex_extra          +lambda            +mouse_sgr         -python            -tag_old_static    +virtualedit       
+cmdline_compl     +extra_search      +langmap           -mouse_sysmouse    +python3/dyn       -tag_any_white     +visual            
+cmdline_hist      -farsi             +libcall           +mouse_urxvt       +quickfix          +tcl/dyn           +visualextra       
+cmdline_info      +file_in_path      +linebreak         +mouse_xterm       +reltime           +termguicolors     +vreplace          
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cloudproviders -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/vim/src=/usr/src/debug -flto=auto -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.36/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -L/usr/local/lib -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lelf -lcanberra -lacl -lattr -lgpm -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.36/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto -fstack-protector-strong -L/usr/local/lib -L/usr/lib/perl5/5.36/core_perl/CORE -lperl -lpthread -ldl -lm -lcrypt -lutil -lc -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm 
  • :checkhealth or :CheckHealth result(neovim only):

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" git/config/_vimrc_mini
set nocompatible

if has('vim_starting')
  set runtimepath+=~/.vimbundles/neobundle.vim
endif

call neobundle#begin(expand('~/.vimbundles'))

let g:neobundle#enable_name_conversion = 1
NeoBundle 'vim-denops/denops.vim'
NeoBundle 'Shougo/ddc.vim'
NeoBundle 'LumaKernel/ddc-file'

call neobundle#end()

filetype plugin indent on

function! s:init_ddc()
  let l:sources = []

  call ddc#custom#patch_global('completionMode', 'popupmenu')
  call ddc#custom#patch_global('specialBufferCompletion', v:true)
  let l:sources += ['file']
  call ddc#custom#patch_global('sourceOptions', {
        \ 'file': {
        \   'mark': 'F',
        \   'isVolatile': v:true,
        \   'forceCompletionPattern': '/\S*',
        \ }})
  call ddc#custom#patch_global('sources', l:sources)
  " call ddc#enable_cmdline_completion()
  call ddc#enable()
endfunction

call s:init_ddc()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Open vim
  2. Type i./
  3. Press <C-n> and keep holding it

Screenshot (if possible)

I'll upload to youtube shortly.

Exception during denops#notify: `TextChangedI Autocommands for "*"..function`

Problems summary

When enabling ddc, after hitting some words then ddc outputs errors during denops#server#notify .
I checked denops itself worked without troubles.

Error output

TextChangedI Autocommands for "*"..function denops#notify[1]..denops#server#notify[2]..TextChangedI Autocommands for "*"..function denops#notify[1]..denops#server#notify の処理中にエラーが検出されました:
行    2:
E605: 例外が捕捉されませんでした: The server is not ready yet

Expected

I'm quite new to the vim area. Any trouble shoot guides are quite helpful. Thank you.

Environment Information

  • ddc version (SHA1): 0.4

  • OS: Windows 10

  • neovim/Vim :version output: Vim 8.2

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" I use dein installation to get ddc

call ddc#custom#patch_global('sources', ['around'])

call ddc#custom#patch_global('sourceOptions', {
			\ '_': {
			\   'matchers': ['matcher_head'],
			\   'sorters': ['sorter_rank'],},
			\ })

inoremap <silent><expr> <TAB>
			\ pumvisible() ? '<C-n>' :
			\ (col('.') <= 1 <Bar><Bar> getline('.')[col('.') - 2] =~# '\s') ?
			\ '<TAB>' : ddc#manual_complete()

inoremap <expr><S-TAB>  pumvisible() ? '<C-p>' : '<C-h>'

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Install ddc and dependencies. (Install also ddc-around, ddc-matcher_head, ddc-sorter_rank)
  2. Type settings into .vimrc like above.
  3. Enabling ddc with call ddc#enable() (Before enabling, any errors is not output)

Screenshot (if possible)

image

Autocomplete Issues when Typing Quickly

This is probably going to be a bit long winded of a post, so bear with me.

The high level issue I've been encountering is that the popup completion window seems to appear quite inconsistently for me. Sometimes it shows, sometimes it doesn't and I finally took the time to today to sit down and figure out why, which I will outline below.

I made a quick video here that shows the issue in action -- when I type quickly, I get no autocomplete results. If I type slowly, I get the expected results:

CleanShot.2022-05-22.at.14.37.13.mp4

For context, my minimal configuration for this:

Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc.vim'
Plug 'Shougo/ddc-matcher_head'
Plug 'Shougo/ddc-sorter_rank'
Plug 'Shougo/ddc-converter_remove_overlap'
Plug 'statiolake/ddc-ale'

call ddc#custom#patch_global('sources', ['ale'])

call ddc#custom#patch_global('sourceOptions', {
  \ '_': {
    \ 'matchers': ['matcher_head'],
    \ 'sorters': ['sorter_rank'],
    \ 'converters': ['converter_remove_overlap'],
    \ 'timeout': 30000,
  \ },
  \ 'ale': {
    \ 'mark': 'lsp',
    \ 'forceCompletionPattern': '\.|:|->|\./',
    \ 'timeout': 30000,
    \ 'isVolatile': v:true,
  \ },
\ })

Most of the projects I work on are very large Typescript projects, so results can be slow to return.

Anyways, given this issue, I started tracing both the ale plugin and inside dcc to see if I could figure out where the issue was coming from.

The situation that I will document my findings is from the example video of trying autocomplete magerAsset. Basically, if I type ma and wait, then I will get results back perfectly. If I quickly type mag -- a language server task will be kicked off to ale to search for the results for ma, but before the results get back the g for mag will be typed and no results will be shown.

I added a few different logs around the two plugins to trace what was going on:

And what I found when logging, was the following:

CleanShot 2022-05-22 at 14 36 11

What you can see happening here is when we get TextChangedI for mag in vim (that's the log line that says LOCKED, btw) -- we prevent any subsequent searches for results from appearing, or new searches to get queued up. I have to wait until results have returned before I can type again to get new/improved results

I get the sense that locked has some architectural significance here, but at the very least, it feels like we should be queuing up new searches to perform on the updated input if those updates come in while locked. Forcing one to type slowly on large codebases that may take a while to lookup seems a bit fragile?

Cannot restore options when vim invoke `DDCCmdlineLeave`

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

Cannot restore options when vim invoke DDCCmdlineLeave.

Expected

Environment Information

  • ddc.vim version (SHA1):

8c827a0

  • denops.vim version (SHA1):

e2f1704

  • deno version(deno -V output):
deno 1.18.2
  • OS:
    (cat /proc/version_signature output)
Ubuntu 5.11.0-1027.30-raspi 5.11.22
  • neovim/Vim :version output:
neovim version output
NVIM v0.7.0-dev+1094-gdeb33a977
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_TS_HAS_SET_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/hibiki/Develops/github.com/neovim/neovim/build/config -I/home/hibiki/Develops/github.com/neovim/neovim/src -I/home/hibiki/Develops/github.com/neovim/neovim/.deps/usr/include -I/usr/include -I/home/hibiki/Develops/github.com/neovim/neovim/build/src/nvim/auto -I/home/hibiki/Develops/github.com/neovim/neovim/build/include
Compiled by hibiki@rpi0ubuntu

Features: +acl +iconv +tui
See ":help feature-compile"

      システム vimrc: "$VIM/sysinit.vim"
       省略時の $VIM: "/usr/local/share/nvim"

Run :checkhealth for more info
  • :checkhealth or :CheckHealth result(neovim only):
`:checkhealth` output
denops: health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.17.1`
  - INFO: Detected Deno version: `1.18.2`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.6.0`
  - INFO: Detected Neovim version: `0.7.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

nvim: health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $SSH_TTY='/dev/pts/0'

## tmux
  - OK: escape-time: 1
  - INFO: Checking stuff
  - OK: focus-events: on
  - INFO: $TERM: tmux-256color

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: tmux

## Python 3 provider (optional)
  - INFO: Using: g:python3_host_prog = "/home/hibiki/.local/share/nvim/venv/bin/python"
  - INFO: Executable: /home/hibiki/.local/share/nvim/venv/bin/python
  - INFO: Python version: 3.9.5
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [aarch64-linux-gnu]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v12.21.0
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /home/hibiki/.cache/nvim/lsp.log
  - INFO: Log size: 6 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 14
  - OK: Loaded parser for c: ABI version 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

if &compatible
  set nocompatible
endif

set runtimepath+=~/.cache/vim/dein/repos/github.com/vim-denops/denops.vim
set runtimepath+=~/.cache/vim/dein/repos/github.com/Shougo/ddc.vim
set runtimepath+=~/.cache/vim/dein/repos/github.com/Shougo/ddc-around
set runtimepath+=~/.cache/vim/dein/repos/github.com/Shougo/ddc-cmdline
set runtimepath+=~/.cache/vim/dein/repos/github.com/Shougo/pum.vim

call ddc#custom#patch_global({
      \ 'sources': ['around'],
      \ 'completionMenu': 'pum.vim',
      \ 'sourceOptions': {
      \   'around': {'mark': 'ard'},
      \   'cmdline': {'mark': 'cmd'},
      \ }})

nnoremap : <Cmd>call CmdlinePre()<CR>:
cnoremap <expr> <Tab> pum#visible()
      \ ? '<Cmd>call pum#map#select_relative(+1)<CR>'
      \ : ddc#map#manual_complete()

function! CmdlinePre() abort
  let b:prev_config = ddc#custom#get_buffer()
  call ddc#custom#patch_buffer({'sources': ['cmdline']})
  autocmd User DDCCmdlineLeave ++once call CmdlinePost()
  call ddc#enable_cmdline_completion()
  call ddc#enable()
endfunction

function! CmdlinePost() abort
  call ddc#custom#set_buffer(b:prev_config)
  unlet b:prev_config
endfunction

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. type <C-w>n (make new window)
  2. execute :quit! on cmdline

Screenshot (if possible)

Volatile bug?

I have problem with volatile option.

I've created very simple sample extension, and I make it volatile.
When I run vim on one terminal with minimal setup, and sample code on the other.
Then I change available options, they are not reloaded.

Software:
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled May 28 2021 06:58:52)
Zadane łaty: 1-2891
Skompilowany przez Arch Linux

5.13.13-1-MANJARO updated with latest packages available in repository

Plugins:
ddc-around 82df6d0
ddc.vim b78349c
ddc-matcher_head 6413635
ddc-sorter_rank 5af81b0
denops.vim ee7fab4

Command:
vim -u ~/.vimrc-ddc-sample

Files:
ddc-sample/denops/ddc-sources/sample.ts

import {
  BaseSource,
  Candidate,
  Context
} from "https://deno.land/x/[email protected]/types.ts#^";
import { readLines, writeAll } from "https://deno.land/[email protected]/io/mod.ts#^";

export class Source extends BaseSource {
  _proc: Deno.Process | undefined = undefined;

  constructor() {
    super();
  }

  async gatherCandidates(args: { context: Context }): Promise<Candidate[]> {
    return [
      { word: "sample1" },
      { word: "sample2" },
      { word: "xample1V" },
      { word: "xample1Vx" },
      { word: "xample9V" },
      { word: "xample9Vx" },
      { word: "xample2V" },
      { word: "wir" },
      { word: "wira" }
    ];
  }
}

.vimrc

" # VIMRC deno sample #

if &compatible
  set nocompatible
endif

filetype plugin indent on
syntax enable
let mapleader = "\<Space>"
if &shell =~# 'fish$'
  set shell=sh
endif

set path=**,./
set tags+=.git/tags

call plug#begin('~/.vim/plugged')
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
Plug 'Shougo/ddc-matcher_head'
Plug 'Shougo/ddc-sorter_rank'
Plug '~/.vim/plugins/ddc-sample'
call plug#end()

" Use around source.
call ddc#custom#patch_global('sources', ['around', 'sample'])

call ddc#custom#patch_global('sourceOptions', {
      \ '_': {
      \   'matchers': ['matcher_head'],
      \   'sorters': ['sorter_rank']},
      \   'minAutoCompleteLength': 1
      \ })

call ddc#custom#patch_global('sourceOptions', {
      \ 'sample': {
      \   'mark': 'S',
      \   'isVolatile': v:true,
      \   'minAutoCompleteLength': 1
      \ }})

" Change source options
call ddc#custom#patch_global('sourceOptions', {
      \ 'around': {'mark': 'A'},
      \ })
call ddc#custom#patch_global('sourceParams', {
      \ 'around': {'maxSize': 500},
      \ })

" <TAB>: completion.
inoremap <silent><expr> <TAB>
\ pumvisible() ? '<C-n>' :
\ (col('.') <= 1 <Bar><Bar> getline('.')[col('.') - 2] =~# '\s') ?
\ '<TAB>' : ddc#manual_complete()

" <S-TAB>: completion back.
inoremap <expr><S-TAB>  pumvisible() ? '<C-p>' : '<C-h>'

" Use ddc.
call ddc#enable()

user_data of complete() is not passed to Vim.

Vim's complete item accepts user_data, which is snake case, but in ddc, user data is defined as camel case like this. Because of this mismatch of name, user_data is not passed to Vim.

Converting Candidates' userData to user_data or changing Candidate's type is needed.

Completion candidates in popupmenu are not aligned

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

Completion candidates in popupmenu are not aligned

Environment Information

  • ddc.vim version (SHA1):
    latest
  • denops.vim version (SHA1):
    latest
  • deno version(deno -V output):
    deno 1.14.1 (release, x86_64-unknown-linux-gnu)
    v8 9.4.146.15
    typescript 4.4.2
  • OS:
    wsl ubuntu20.04
  • neovim/Vim :version output:
    NVIM v0.5.0
  • :checkhealth or :CheckHealth result(neovim only):
health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.14.1`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.5.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

set encoding=utf-8
"dein Scripts-----------------------------
if &compatible
    set nocompatible               " Be iMproved
endif
set runtimepath+=~/.cache/nvim/dein/repos/github.com/Shougo/dein.vim
let s:dein_path = $HOME . '/.cache/nvim/dein'
let g:dein#auto_recache = 1
call dein#begin(s:dein_path)
call dein#add('~/.cache/nvim/dein/repos/github.com/Shougo/dein.vim')
call dein#add('vim-denops/denops.vim')
call dein#add('Shougo/ddc.vim')
call dein#add('Shougo/ddc-matcher_head')
call dein#add('Shougo/ddc-sorter_rank')
call dein#add('Shougo/ddc-nvim-lsp')
call dein#add('Shougo/ddc-around')
call dein#add('neovim/nvim-lspconfig')
call dein#add('hrsh7th/vim-vsnip')
call dein#add('hrsh7th/vim-vsnip-integ')
call dein#add('rafamadriz/friendly-snippets')
call dein#end()
call dein#call_hook('source')
call dein#call_hook('post_source')
" Required:
filetype plugin indent on
syntax enable
set background=dark

call ddc#custom#patch_global('sources',
    \ [ 'nvimlsp','around','vsnip'],
    \ )
call ddc#custom#patch_global('sourceOptions', {
    \ '_': {
    \   'ignoreCase': v:true,
    \   'matchers': ['matcher_head'],
    \   'sorters': ['sorter_rank'],
    \ },
    \ 'nvimlsp': {
    \   'mark': 'LSP',
    \   'isVolatile': v:true,
    \   'minAutoCompleteLength': 1,
    \   'forceCompletionPattern': '\.\w*|:\w*|->\w*|\\\w*'
    \ },
    \ 'around': {
    \   'mark': 'A',
    \ },
    \ 'vsnip': {
    \   'mark': 'Vsnip',
    \   'dup': v:true
    \ },
    \ })
autocmd CompleteDone * silent! pclose!
" Use ddc.
call ddc#enable()
lua require'lspconfig'.clangd.setup{}
lua require'lspconfig'.texlab.setup{}

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim -u minimal.vim a.c
  2. type #de

Screenshot (if possible)

Snipaste_2021-09-26_21-53-56

Expected

Snipaste_2021-09-26_21-57-20

ddc does not work if argument of `ddc#custom#patch_global` does not exist

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

As title says.

Expected

Existing ddc sources work as expected; ddc warns, e.g., "passed source does not exist".

Environment Information

  • ddc version (SHA1): 315d8b8

  • OS: Debian 11.0

  • neovim/Vim :version output: v0.6.0-dev+132-g7d2233fad

  • :checkhealth or :CheckHealth result(neovim only):


health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.11.0`
  - INFO: Detected Deno version: `1.12.2`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.4.4`
  - INFO: Detected Neovim version: `0.6.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $VTE_VERSION='6203'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - WARNING: No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.
    - ADVICE:
      - :help |clipboard|

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python version: 3.9.2
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - WARNING: `node` and `npm` (or `yarn`) must be in $PATH.
    - ADVICE:
      - Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13
  - OK: Loaded parser for c: ABI version 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" use dein for convenience
set runtimepath+=/path/to/dein.vim
call dein#begin('~/.cache/dein')

call dein#add('Shougo/ddc-around')
call dein#add('Shougo/ddc.vim')
call dein#add('vim-denops/denops.vim')
call dein#end()

" Use around source.
call ddc#custom#patch_global('sources', ['around'])

call ddc#custom#patch_global('sourceOptions', {
			\ 'around': {'mark': 'A'},
			\ })
call ddc#custom#patch_global('sourceParams', {
			\ 'around': {'maxSize': 500},
			\ })

" XXX
if exists('g:nonexist') && g:nonexist
	call ddc#custom#patch_global('sources', ['NON-EXISTING'])
endif

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

nvim -u vimrc works as expected, while nvim -u vimrc --cmd 'let g:nonexist=1' does not.

Screenshot (if possible)

works
does-not-work

Vim `completeopt`'s `noselect` doesn't work

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

I followed the documentation to setup ddc.vim, and the FAQ section about "auto select behavior" says to use set completeopt+=noselect.

As seen in the image, even with this option set (I ran :set completeopt), the first popup menu item is not selected.
image

Expected

The first popup menu item to be selected (auto select behavior)

Environment Information

  • ddc.vim version (SHA1): d9111bd83986c2cac588e123b3bfe357bec34509

  • denops.vim version (SHA1): 53ce6187e04da044c85b79ef856f1487326a7ac5

  • deno version(deno -V output): deno 1.26.1

  • OS: macOS 13 Ventura

  • neovim/Vim :version output:

:version
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Oct  8 2022 19:49:40)
macOS version - arm64
Included patches: 1-696
Compiled by haze@202210081949/89e86cc7e
Huge version with MacVim GUI.  Features included (+) or not (-):
+acl               +clipboard         +dnd               +fullscreen        +lispindent        +mouse_sgr         +persistent_undo   +smartindent       +terminal          +viminfo           -xsmp
-arabic            +cmdline_compl     -ebcdic            -gettext           +listcmds          -mouse_sysmouse    +popupwin          -sodium            +terminfo          +virtualedit       -xterm_clipboard
+autocmd           +cmdline_hist      +emacs_tags        -hangul_input      +localmap          +mouse_urxvt       +postscript        +sound             +termresponse      +visual            -xterm_save
+autochdir         +cmdline_info      +eval              +iconv             +lua/dyn           +mouse_xterm       +printer           +spell             +textobjects       +visualextra
-autoservername    +comments          +ex_extra          +insert_expand     +menu              +multi_byte        +profile           +startuptime       +textprop          +vreplace
+balloon_eval      +conceal           +extra_search      +ipv6              +mksession         +multi_lang        -python            +statusline        +timers            +wildignore
+balloon_eval_term +cryptv            -farsi             +job               +modify_fname      -mzscheme          -python3           -sun_workshop      +title             +wildmenu
+browse            -cscope            +file_in_path      +jumplist          +mouse             +netbeans_intg     +quickfix          +syntax            +toolbar           +windows
++builtin_terms    +cursorbind        +find_in_path      +keymap            +mouseshape        +num64             +reltime           +tag_binary        +transparency      +writebackup
+byte_offset       +cursorshape       +float             +lambda            +mouse_dec         +odbeditor         -rightleft         -tag_old_static    +user_commands     -X11
+channel           +dialog_con_gui    +folding           +langmap           -mouse_gpm         +packages          -ruby              -tag_any_white     +vartabs           -xfontset
+cindent           +diff              -footer            +libcall           -mouse_jsbterm     +path_extra        +scrollbind        -tcl               +vertsplit         +xim
+clientserver      +digraphs          +fork()            +linebreak         +mouse_netterm     -perl              +signs             +termguicolors     +vim9script        -xpm
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe -DMACOS_X -DMACOS_X_DARWIN -g -O2 -arch arm64 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -arch arm64 -L/usr/local/lib -o Vim -lm -lncurses -liconv -framework AppKit

Provide a minimal init.vim/vimrc without plugin managers (Required!)

call ddc#custom#patch_global('sources', ['vim-lsp'])
call ddc#custom#patch_global('sourceOptions', {
  \ 'vim-lsp': {
  \   'matchers': ['matcher_fuzzy'],
  \   'mark': 'lsp',
  \ }})

set completeopt+=noselect

" Use ddc.
call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Get any completion, the first item is not selected when the popup menu shows up

Typing keys quickly may not open the popup correctly.

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

Typing keys quickly may not open the ddc completion window correctly.
It seems to be reproduced when there are many candidates.
I'm using skkeleton here for reproduction, but I think it's a problem that can occur with other sources.
Thanks.

Expected

Even if you type the key quickly, popups open correctly.

Environment Information

  • ddc.vim version (SHA1): b764dee

  • denops.vim version (SHA1): 53ce618

  • deno version(deno -V output): deno 1.27.0

  • OS: macOS Monterey 12.4

  • neovim/Vim :version output: NVIM v0.9.0-dev-1288-gd5db93b8a-dirty

Provide a minimal init.vim/vimrc without plugin managers (Required!)

let s:plugins = [
      \ 'vim-denops/denops.vim',
      \ 'Shougo/ddc.vim',
      \ 'Shougo/ddc-ui-native',
      \ 'Shougo/ddc-matcher_head',
      \ 'Shougo/ddc-sorter_rank',
      \ 'Shougo/ddc-around',
      \ 'kuuote/denops-skkeleton.vim',
      \ ]

for item in s:plugins
  execute 'set runtimepath+=~/.cache/dein/repos/github.com/' . item
endfor

call ddc#custom#patch_global('sourceOptions', {
\ 'skkeleton': {'mark': 'skk', 'matchers': ['skkeleton'], 'sorters': [], 'isVolatile': v:true},
\ })
call ddc#custom#patch_global({'ui': 'native'})
call ddc#custom#patch_global('sources', ['skkeleton'])

call skkeleton#config({'globalJisyo': expand('~/.skk/SKK-JISYO.L')})

imap <C-j> <Plug>(skkeleton-toggle)

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Open neovim and enter insert mode.
  2. to enable skkelton
  3. input 'kou' and popup open
  4. If inputting 'ho' insanely quick, popup doesn't open.

Screenshot (if possible)

2022-10-31.21.32.17.mov

Conflicts with deoplete? a candidate is automatically inserted

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

A deoplete candidate is automatically inserted if deoplete and ddc coexist, which implies that ddc may conflict with other plugins.

This seems to be bisected to 17cc3b0.

Expected

No candidate is automatically inserted.

Environment Information

  • ddc version (SHA1): eeeedf0

  • OS: Debian 11.0

  • neovim/Vim :version output: NVIM v0.6.0-dev+181-g5d633546b

  • :checkhealth or :CheckHealth result(neovim only):


health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $VTE_VERSION='6203'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - WARNING: No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.
    - ADVICE:
      - :help |clipboard|

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          python2.7 not found in search path or not executable.
          python2.6 not found in search path or not executable.
          /home/kwsm/bin/python is Python 3.9 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python version: 3.9.2
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - WARNING: `node` and `npm` (or `yarn`) must be in $PATH.
    - ADVICE:
      - Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13
  - OK: Loaded parser for c: ABI version 13

health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.11.0`
  - INFO: Detected Deno version: `1.12.2`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.4.4`
  - INFO: Detected Neovim version: `0.6.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#deoplete#check
========================================================================
## deoplete.nvim
  - OK: exists("v:t_list") was successful
  - OK: has("timers") was successful
  - OK: has("python3") was successful
  - OK: Require Python 3.6.1+ was successful
  - OK: Require msgpack 1.0.0+ was successful
  - INFO: If you're still having problems, try the following commands:
    - $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    - $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    - $ nvim
    - $ cat /tmp/log_{PID}
    - and then create an issue on github

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
set runtimepath-=~/.config/nvim
set runtimepath-=~/.config/nvim/after
set runtimepath-=~/.local/share/nvim/site
set runtimepath-=~/.local/share/nvim/site/after

set runtimepath+=/path/to/ddc.vim
set runtimepath+=/path/to/denops.vim
set runtimepath+=/path/to/deoplete.nvim

call ddc#enable()

let g:deoplete#enable_at_startup = 1

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim -u vimrc - <<< foobarbaz
  2. o**<ESC>
  3. ifofoobarbaz is inserted (deoplete around source)

Screenshot (if possible)

screenshot

dot repeat is broken using ddc.vim with pum.vim

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

The candidate that is selected by pum.vim isn't reflected to dot repeat

Expected

Reflected.

Environment Information

  • ddc.vim version (SHA1):
    9afba4e
  • denops.vim version (SHA1):
    b6f96d9fdcaccaf0d2fcbd821d93e3995d04cf0b
  • pum.vim version (SHA1):
    6eef66e95853382639222d310c29f0838aa04354
  • deno version(deno -V output):
    deno 1.14.3
  • OS:
    macOS Big Sur 11.6
  • neovim/Vim :version output:
NVIM v0.6.0-dev+c61a3865e
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by ippachi@IFM

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD-c61a386/share/nvim"

Run :checkhealth for more info
  • :checkhealth or :CheckHealth result(neovim only):

denops: health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.14.3`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.6.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

nvim: health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='tmux'
  - INFO: $COLORTERM='truecolor'

## tmux
  - OK: escape-time: 10
  - INFO: Checking stuff
  - WARNING: `focus-events` is not enabled. |'autoread'| may not work.
    - ADVICE:
      - (tmux 1.9+ only) Set `focus-events` in ~/.tmux.conf:
          set-option -g focus-events on
  - INFO: $TERM: screen-256color

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /usr/bin/python does not have the "neovim" module. :help |provider-python|
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Multiple python3 executables found.  Set `g:python3_host_prog` to avoid surprises.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Other python executable: /usr/bin/python3
  - INFO: Python version: 3.9.7
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin20]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v15.6.0
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /Users/ippachi/.cache/nvim/lsp.log
  - INFO: Log size: 847 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

set rtp+=~/.cache/dein/repos/github.com/vim-denops/denops.vim
set rtp+=~/.cache/dein/repos/github.com/Shougo/ddc.vim
set rtp+=~/.cache/dein/repos/github.com/Shougo/ddc-around
set rtp+=~/.cache/dein/repos/github.com/Shougo/pum.vim

call ddc#custom#patch_global('sources', ['around'])
call ddc#custom#patch_global('sourceOptions', {
      \ 'around': {'mark': 'A'},
      \ })
call ddc#custom#patch_global('completionMenu', 'pum.vim')
call ddc#enable()

inoremap <C-n>   <Cmd>call pum#map#insert_relative(+1)<CR>
inoremap <C-p>   <Cmd>call pum#map#insert_relative(-1)<CR>
inoremap <C-y>   <Cmd>call pum#map#confirm()<CR>
inoremap <C-e>   <Cmd>call pum#map#cancel()<CR>

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Open file.
  2. Select a candidate
  3. .

Screenshot (if possible)

CleanShot 2021-10-07 at 18 48 18

Invalid filters are detected issue

Problems summary

I've recently noticed the error:

[ddc] Invalid filters are detected!
[ddc] ['converter_remove_overlap', 'matcher_head', 'sorter_rank'] 

Seems to appear at the beginning of any editing session. It doesn't seem to affect anything and I don't think I have anything configured incorrectly. Based on what I can find in the readme and help, I can't really tell what might've changed. In fact, some of these filters are still referenced in the README (i.e. sorter_rank).

Expected

To not have the error messages, are these filters perhaps deprecated? Or are there new ways of doing things that I need to be aware of?

Environment Information

  • ddc.vim version (SHA1): 6596342

  • denops.vim version (SHA1): 228d446

  • deno version(deno -V output): deno 1.16.3

  • OS: macOS 11.6

  • neovim/Vim :version output: MacVim 8.2 patches 1-3863

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Current ddc configuration
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc.vim'
Plug 'Shougo/pum.vim'
Plug 'Shougo/ddc-matcher_head'
Plug 'matsui54/ddc-buffer'
Plug 'statiolake/ddc-ale'
Plug 'Shougo/ddc-sorter_rank'
Plug 'Shougo/ddc-converter_remove_overlap'
Plug 'amadeus/ddc-file-source'
Plug 'LumaKernel/ddc-tabnine'
Plug 'Shougo/ddc-omni'

call ddc#custom#patch_global('sources', ['ale', 'buffer'])

call ddc#custom#patch_global('sourceOptions', {
  \ '_': {
    \ 'matchers': ['matcher_head'],
    \ 'sorters': ['sorter_rank'],
    \ 'converters': ['converter_remove_overlap'],
    \ 'minAutoCompleteLength': 1,
  \ },
  \ 'ale': {
    \ 'mark': 'lsp',
    \ 'forceCompletionPattern': '\.|:|->|\./',
  \ },
  \ 'buffer': {
    \ 'mark': 'buf',
  \ },
  \ 'file': {
    \ 'mark': 'file',
  \ },
  \ 'omni': {
    \ 'mark': 'omni',
  \ },
  \ 'tabnine': {
    \ 'mark': 'TN',
    \ 'isVolatile': v:true,
    \ 'maxSize': 200,
  \ }
\ })

call ddc#enable()

No next auto-completion is shown if finishing completion with typing.

Problems summary

No next auto-completion is shown if finishing completion with typing.

Expected

Next auto-completion is shown. ( v0.15.0 is working expectedly. See screencast for details. )

Environment Information

nvim v0.6.0
NVIM v0.6.0-dev+220-gdb695cc4c
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/luma/mybuild/neovim/build/config -I/home/luma/mybuild/neovim/src -I/home/luma/mybuild/neovim/.deps/usr/include -I/usr/include -I/home/luma/mybuild/neovim/build/src/nvim/auto -I/home/luma/mybuild/neovim/build/include
Compiled by luma

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/home/luma/.local/build/nvim/nightly/share/nvim"

Run :checkhealth for more info
nvim v0.5.0
NVIM v0.5.0
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/luma/mybuild/neovim/build/config -I/home/luma/mybuild/neovim/src -I/home/luma/mybuild/neovim/.deps/usr/include -I/usr/include -I/home/luma/mybuild/neovim/build/src/nvim/auto -I/home/luma/mybuild/neovim/build/include
Compiled by luma@MyComputer

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/home/luma/.local/build/nvim/v0.5.0/share/nvim"

Run :checkhealth for more info
  • :checkhealth or :CheckHealth result(neovim only):
nvim v0.6.0
health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.14.3`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.6.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

## tmux
  - OK: escape-time: 0
  - INFO: Checking stuff
  - WARNING: `focus-events` is not enabled. |'autoread'| may not work.
    - ADVICE:
      - (tmux 1.9+ only) Set `focus-events` in ~/.tmux.conf:
          set-option -g focus-events on
  - INFO: $TERM: screen-256color
  - WARNING: Neither Tc nor RGB capability set. True colors are disabled. |'termguicolors'| won't work properly.
    - ADVICE:
      - Put this in your ~/.tmux.conf and replace XXX by your $TERM outside of tmux:
          set-option -sa terminal-overrides ',XXX:RGB'
      - For older tmux versions use this instead:
          set-option -ga terminal-overrides ',XXX:Tc'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: win32yank.exe from WSL

## Python 2 provider (optional)
  - INFO: pyenv: Path: /home/luma/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/luma/.pyenv
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: pyenv: Path: /home/luma/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/luma/.pyenv
  - INFO: Using: g:python3_host_prog = "/home/luma/.local/venvs/nvim/bin/python3"
  - INFO: Executable: /home/luma/.local/venvs/nvim/bin/python3
  - INFO: Python version: 3.8.5
  - INFO: pynvim version: 0.4.2 (outdated; from ~/.local/venvs/nvim/lib/python3.8/site-packages/neovim)
  - WARNING: Latest pynvim is NOT installed: 0.4.3

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v14.17.5
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed
nvim v0.5.0
health#denops#check
========================================================================
  - INFO: Supported Deno version: `1.14.0`
  - INFO: Detected Deno version: `1.14.3`
  - OK: Deno version check: passed
  - INFO: Supported Neovim version: `0.5.0`
  - INFO: Detected Neovim version: `0.5.0`
  - OK: Neovim version check: passed
  - INFO: Denops status: `running`
  - OK: Denops status check: passed

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

## tmux
  - OK: escape-time: 0
  - INFO: Checking stuff
  - WARNING: `focus-events` is not enabled. |'autoread'| may not work.
    - ADVICE:
      - (tmux 1.9+ only) Set `focus-events` in ~/.tmux.conf:
          set-option -g focus-events on
  - INFO: $TERM: screen-256color
  - WARNING: Neither Tc nor RGB capability set. True colors are disabled. |'termguicolors'| won't work properly.
    - ADVICE:
      - Put this in your ~/.tmux.conf and replace XXX by your $TERM outside of tmux:
          set-option -sa terminal-overrides ',XXX:RGB'
      - For older tmux versions use this instead:
          set-option -ga terminal-overrides ',XXX:Tc'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: win32yank.exe from WSL

## Python 2 provider (optional)
  - INFO: pyenv: Path: /home/luma/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/luma/.pyenv
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: pyenv: Path: /home/luma/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/luma/.pyenv
  - INFO: Using: g:python3_host_prog = "/home/luma/.local/venvs/nvim/bin/python3"
  - INFO: Executable: /home/luma/.local/venvs/nvim/bin/python3
  - INFO: Python version: 3.8.5
  - INFO: pynvim version: 0.4.2 (outdated; from ~/.local/venvs/nvim/lib/python3.8/site-packages/neovim)
  - WARNING: Latest pynvim is NOT installed: 0.4.3

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v14.17.5
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

set rtp+=~/path/to/repos/github.com/vim-denops/denops.vim
set rtp+=~/path/to/repos/github.com/Shougo/ddc.vim
set rtp+=~/path/to/repos/github.com/Shougo/ddc-around

call ddc#custom#patch_global('sources', ['around'])
call ddc#custom#patch_global({
    \ 'sourceOptions': {
    \   'around': {
    \     'mark': 'A',
    \     'minAutoCompleteLength': 1,
    \     'forceCompletionPattern': '/',
    \   },
    \ }})

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim -u init.vim
  2. Insert foo bar in line 1.
  3. Inser fo in line 2.
  4. <C-N> to select foo
  5. Type / to finish completion.
  6. No next auto-completion is shown.

Screenshot (if possible)

ddc

ddc v0.15.0

ddc

ctrl-e could not close completion menu

Problems summary

Ctrl-e could not close the completion menu

Expected

Ctrl-e would close the completion menu. By the way, Ctrl-y selects the condidate as expected.

Environment Information

  • ddc.vim version (SHA1): latest

  • denops.vim version (SHA1): latest

  • deno version(deno -V output): deno 1.22.0

  • OS: linux

  • neovim/Vim :version output:

NVIM v0.7.2
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/gcc-11 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_TS_HAS_SET
_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wc
onversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthr
ough -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Wvla
-fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DN
VIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/runner/work/neovim/neovim/build/config
-I/home/runner/work/neovim/neovim/src -I/home/runner/work/neovim/neovim/.deps/usr/include -I/usr/include -I/home/
runner/work/neovim/neovim/build/src/nvim/auto -I/home/runner/work/neovim/neovim/build/include
Compiled by runner@fv-az395-591

  • :checkhealth or :CheckHealth result(neovim only):

denops: health#denops#check

  • INFO: Supported Deno version: 1.17.1
  • INFO: Detected Deno version: 1.22.0
  • OK: Deno version check: passed
  • INFO: Supported Neovim version: 0.6.0
  • INFO: Detected Neovim version: 0.7.2
  • OK: Neovim version check: passed
  • INFO: Denops status: running
  • OK: Denops status check: passed

nvim: health#nvim#check

Configuration

  • OK: no issues found

Performance

  • OK: Build type: RelWithDebInfo

Remote Plugins

  • OK: Up to date

terminal

  • INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  • INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  • INFO: $VTE_VERSION='5803'
  • INFO: $COLORTERM='truecolor'

provider: health#provider#check

Clipboard (optional)

  • OK: Clipboard tool found: xclip

Python 3 provider (optional)

  • INFO: Using: g:python3_host_prog = "/home/shao/miniconda3/envs/env_nvim/bin/python"
  • INFO: Executable: /home/shao/miniconda3/envs/env_nvim/bin/python
  • INFO: Python version: 3.8.5
  • INFO: pynvim version: 0.4.3
  • OK: Latest pynvim is installed.

Python virtualenv

  • OK: no $VIRTUAL_ENV

Ruby provider (optional)

  • INFO: Ruby: ruby 2.5.9p229 (2021-04-05 revision 67939) [x86_64-linux-gnu]
  • WARNING: neovim-ruby-host not found.
    • ADVICE:
      • Run gem install neovim to ensure the neovim RubyGem is installed.
      • Run gem environment to ensure the gem bin directory is in $PATH.
      • If you are using rvm/rbenv/chruby, try "rehashing".
      • See :help |g:ruby_host_prog| for non-standard gem installations.
      • You may disable this provider (and warning) by adding let g:loaded_ruby_provider = 0 to your init.vim

Node.js provider (optional)

  • INFO: Node.js: v14.19.1
  • WARNING: Missing "neovim" npm (or yarn) package.
    • ADVICE:
      • Run in shell: npm install -g neovim
      • Run in shell (if you use yarn): yarn global add neovim
      • You may disable this provider (and warning) by adding let g:loaded_node_provider = 0 to your init.vim

Perl provider (optional)

  • WARNING: "Neovim::Ext" cpan module is not installed
    • ADVICE:
      • See :help |provider-perl| for more information.
      • You may disable this provider (and warning) by adding let g:loaded_perl_provider = 0 to your init.vim

vim.lsp: require("vim.lsp.health").check()

  • INFO: LSP log level : WARN
  • INFO: Log path: /home/shao/.cache/nvim/lsp.log
  • INFO: Log size: 844 KB

vim.treesitter: require("vim.treesitter.health").check()

  • INFO: Runtime ABI version : 14
  • OK: Loaded parser for c: ABI version 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

call ddc#custom#patch_global('sources', ['around', 'buffer', 'nvim-lsp', 'file', 'ultisnips'])
call ddc#custom#patch_global('sourceOptions', {
  \ '_': {
  \   'sorters': [],
  \   'converters': ['converter_truncate'],
  \   'ignoreCase': v:true},
...
  \ 'file': {
  \   'matchers': ['matcher_full_fuzzy', 'matcher_length'],
  \   'mark': 'F',
  \   'isVolatile': v:true,
  \   'forceCompletionPattern': '\S/\S*'},
  \ })

call ddc#custom#patch_global('postFilters', ["postfilter_score"])

call ddc#custom#patch_filetype(
  \ ['ps1', 'dosbatch', 'autohotkey', 'registry'], {
  \ 'sourceOptions': {
  \   'file': {
  \     'forceCompletionPattern': '\S\\\S*',
  \   }},
  \ })

call ddc#custom#patch_global('filterParams', {
  \ 'converter_truncate': {'maxAbbrWidth': 40, 'maxKindWidth':20, 'maxMenuWidth':40},
  \ })

inoremap <silent><expr> <TAB>
\ ddc#map#pum_visible() ? '<C-n>' :
\ (col('.') <= 1 <Bar><Bar> getline('.')[col('.') - 2] =~# '\s') ?
\ '<TAB>' : ddc#map#manual_complete()

" <S-TAB>: completion back.
inoremap <expr><S-TAB>  ddc#map#pum_visible() ? '<C-p>' : '<C-h>'
set completeopt+=noinsert
call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

open a file, type a few char and wait for the completion menu. ctrl-e could not close the men.

How to configure the final produced candidates

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

The candidates are sorted individually
image

Expected

The final candidates are sorted by the filter, to reduce tabing

Environment Information

  • ddc.vim version (SHA1):
    0.17
    commit 200203438c606ad763e669ff2b1177c69a6c039f (HEAD -> main, origin/main, origin/HEAD)

  • denops.vim version (SHA1):
    commit 228d446132825bd8035a5530a206611f639f9a74 (HEAD -> main, tag: v2.1.2, origin/main, origin/HEAD)

  • deno version(deno -V output):
    deno 1.16.3

  • OS:
    Ubuntu-20.04

  • neovim/Vim :version output:

  • nvim

NVIM v0.6.0-dev+637-gafbf89dc0
Build type: Debug
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -DNVIM_TS_HAS_SET_MATCH_LIMIT -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GEN
ERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=1 -I/home/randyt/Downloads/neovim/build/config -I/home/randyt/Downloads/neovim/src -I/home/randyt/Downloads/neovim/.deps/usr/include -I/usr/include -I/home/randyt/Downloads/neovim/b
uild/src/nvim/auto -I/home/randyt/Downloads/neovim/build/include
  • vim
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Nov 28 2021 00:05:22)
Included patches: 1-3685
Compiled by randyt@randyt-MS-7C84
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       -tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
+balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
+browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     +perl              +title
+channel           +ipv6              +persistent_undo   +toolbar
+cindent           +job               +popupwin          +user_commands
+clientserver      +jumplist          +postscript        +vartabs
+clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +virtualedit
+cmdline_hist      +langmap           -python            +visual
+cmdline_info      +libcall           +python3           +visualextra
+comments          +linebreak         +quickfix          +viminfo
+conceal           +lispindent        +reltime           +vreplace
+cryptv            +listcmds          +rightleft         +wildignore
+cscope            +localmap          +ruby              +wildmenu
+cursorbind        +lua               +scrollbind        +windows
+cursorshape       +menu              +signs             +writebackup
+dialog_con_gui    +mksession         +smartindent       +X11
+diff              +modify_fname      +sodium            -xfontset
+digraphs          +mouse             -sound             +xim
+dnd               +mouseshape        +spell             -xpm
-ebcdic            +mouse_dec         +startuptime       +xsmp_interact
+emacs_tags        -mouse_gpm         +statusline        +xterm_clipboard
+eval              -mouse_jsbterm     -sun_workshop      -xterm_save
+ex_extra          +mouse_netterm     +syntax            
+extra_search      +mouse_sgr         +tag_binary        
-farsi             -mouse_sysmouse    -tag_old_static    
  • :checkhealth or :CheckHealth result(neovim only):
 19 nvim: health#nvim#check                                                                                                                                                                                                                                                                 
 20 ========================================================================                                                                                                                                                                                                                
 21 ## Configuration                                                                                                                                                                                                                                                                        
 22   - OK: no issues found                                                                                                                                                                                                                                                                 
 23                                                                                                                                                                                                                                                                                         
 24 ## Performance                                                                                                                                                                                                                                                                          
 25   - INFO: Build type: Debug                                                                                                                                                                                                                                                             
 26   - WARNING: Non-optimized (DEBUG) build. Nvim will be slower.                                                                                                                                                                                                                          
 27     - ADVICE:                                                                                                                                                                                                                                                                           
 28       - Install a different Nvim package, or rebuild with `CMAKE_BUILD_TYPE=RelWithDebInfo`.                                                                                                                                                                                            
 29       - https://github.com/neovim/neovim/wiki/FAQ                                                                                                                                                                                                                                       
 30             

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
set runtimepath+=~/path/to/ddc.vim/
call dein#begin()
call dein#add()
call dein#end()
call ddc#enable()

call ddc#custom#patch_global('sources', ['tabnine','ale','tmux','vim-lsp','buffer','path','around','rg'])
 call ddc#custom#patch_global({
    \   'completionMenu' : 'pum.vim',
    \   'autoCompleteDelay' : '0',
    \   })
  call ddc#custom#patch_global('sourceOptions', {
    \   '_': {
        \   'matchers' : ['matcher_fuzzy'],
        \   'sorters' : ['sorter_fuzzy','sorter_onp'],
        \   'converters' : ['converter_onp'],
    \   },
    \   'tabnine': {
        \   'mark': 'tabnine',
        \   'isVolatile': v:true,
        \   'maxCandidates' : 20,
        \   },
    \   'buffer' : {
        \   'mark' : 'buf',
        \   'maxCandidates' : 3,
    \   },
    \   'tmux' : {
        \   'mark' : 'tmux',
        \   'maxCandidates' : 3,
    \   },
    \   'vim-lsp' : {
        \   'mark' : 'lsp',
        \   'maxCandidates' : 5,
    \   },
    \   'path' : {
        \   'mark' : 'path',
        \   'maxCandidates' : 5,
    \    },
    \   'around' : {
        \   'mark' : 'around',
        \   'maxCandidates' : 3,
    \   },
    \   'rg' : {
        \   'mark' : 'rg',
        \   'minAutoCompleteLength' : 2,
        \   'maxCandidates' : 3,
    \   },
    \   'ale' : {
        \   'mark' : 'ale',
        \   'maxCandidates' : 5,
    \   },
    \ })

How to reproduce the problem from neovim/Vim startup (Required!)

  1. using multiple source call ddc#custom#patch_global('sources', ['tabnine','ale','tmux','vim-lsp','buffer','path','around','rg'])
    image
  2. work around : order the source by the engine power call ddc#custom#patch_global('sources', ['tabnine','vim-lsp','ale','tmux','buffer','path','around','rg'])
    image
  3. some behaviour encountered
  • required '<Tab>' to recycle around source
    image
    image

copilot.vim not working

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

When I use ddc.vim, copilot.vim does not work.

Expected

ddc.vim and copilot.vim can be used together.

Environment Information

  • ddc.vim version (SHA1): latest

  • denops.vim version (SHA1): latest

  • deno version(deno -V output): deno 1.23.3

  • OS: macOS Monterey 12.4

  • neovim/Vim :version output:

    NVIM v0.6.1
    Build type: Release
    LuaJIT 2.1.0-beta3
    Compiled by [email protected]

    Features: +acl +iconv +tui
    See ":help feature-compile"

      システム vimrc: "$VIM/sysinit.vim"
       省略時の $VIM: "/opt/homebrew/Cellar/neovim/0.6.1/share/nvim"
    

    Run :checkhealth for more info

  • :checkhealth or :CheckHealth result(neovim only):

nvim: health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='Hyper'
  - INFO: $COLORTERM='truecolor'

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 2 provider (optional)
  - INFO: pyenv: Path: /opt/homebrew/Cellar/pyenv/2.3.1/libexec/pyenv
  - INFO: pyenv: Root: /Users/uhooi/.pyenv
  - WARNING: No Python executable found that can `import neovim`. Using the first      available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          python2.7 not found in search path or not executable.
          python2.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: pyenv: Path: /opt/homebrew/Cellar/pyenv/2.3.1/libexec/pyenv
  - INFO: pyenv: Root: /Users/uhooi/.pyenv
  - WARNING: No Python executable found that can `import neovim`. Using the first      available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 3:
          /opt/homebrew/bin/python3 does not have the "neovim" module. :help                   provider-python
          python3.10 not found in search path or not executable.
          /opt/homebrew/bin/python3.9 does not have the "neovim" module. :help                 provider-python
          python3.8 not found in search path or not executable.
          python3.7 not found in search path or not executable.
          python3.6 not found in search path or not executable.
          python not found in search path or not executable.
  - INFO: Executable: Not found

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-          darwin21]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help g:ruby_host_prog for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v16.15.1
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim
## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /Users/uhooi/.cache/nvim/lsp.log
  - INFO: Log size: 83 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 13

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

.vimrc

filetype off
filetype plugin indent off

source ~/.vim/config/plugins.vim

syntax enable
filetype plugin indent on

plugins.vim

let $DEIN_DIR = expand('~/.cache/dein')

if has('vim_starting')
  set runtimepath+=$DEIN_DIR/repos/github.com/Shougo/dein.vim/
endif

if !dein#load_state($DEIN_DIR)
  finish
endif

call dein#begin($DEIN_DIR)

let s:config_dir = expand('~/.vim/config/dein')
call dein#load_toml(s:config_dir . '/dein.toml', {'lazy': 0}
call dein#load_toml(s:config_dir . '/dein_lazy.toml', {'lazy': 1})
call dein#load_toml(s:config_dir . '/dein_ddc.toml', {'lazy': 1})

call dein#end()
call dein#save_state()

dein/dein.toml

[[plugins]]  
repo = 'Shougo/dein.vim'  

[[plugins]]
repo = 'github/copilot.vim'

dein/dein_lazy.toml

[[plugins]]
repo = 'vim-denops/denops.vim'
on_event = 'CursorHold'

dein/dein_ddc.toml

[[plugins]]
repo = 'Shougo/ddc.vim'
depends = ['denops.vim', 'pum.vim']
on_event = ['InsertEnter', 'CursorHold']
hook_source = 'source ~/.vim/config/plugins/ddc.rc.vim'

[[plugins]]
repo = 'Shougo/pum.vim'

# Sources

[[plugins]]
repo = 'Shougo/ddc-around'
on_source = 'ddc.vim'

# Matchers

[[plugins]]
repo = 'Shougo/ddc-matcher_head'
on_source = 'ddc.vim'

# Sorters

[[plugins]]
repo = 'Shougo/ddc-sorter_rank'
on_source = 'ddc.vim'

plugins/ddc.rc.vim

call ddc#custom#patch_global('sources',
\  ['around']
\)

call ddc#custom#patch_global('sourceOptions', {
\  '_': {
\    'ignoreCase': v:true,
\    'matchers': ['matcher_head'],
\    'sorters': ['sorter_rank'],
\  },
\  'around': {
\    'mark': 'A',
\  },
\})

call ddc#custom#patch_global('autoCompleteEvents', [
\  'InsertEnter', 'TextChangedI', 'TextChangedP',
\  'CmdlineEnter', 'CmdlineChanged',
\])
call ddc#custom#patch_global('completionMenu', 'pum.vim')

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Enter insert mode and launch ddc.vim
  2. Enter two or more characters
  3. A pum.vim popup appears
  4. Completion in copilot.vim does not appear

Screenshot (if possible)

スクリーンショット 2022-07-19 23 22 24

How to enable completions after a `.`

Problems summary

Ale completions not working after using .

Expected

See completions after pressing . and also while typing text

Environment Information

  • ddc version (SHA1):
    75e6b2722799ff3abede8b1c465ee5d42db11525

  • OS:
    macOS

  • neovim/Vim :version output:
    MacVim 8.2, 1-3376

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

call plug#begin('~/.vim/bundle')
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc.vim'
Plug 'statiolake/ddc-ale'
call plug#end()

call ddc#custom#patch_global('sources', ['ale'])
call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. See attached video

Video Example

CleanShot.2021-08-29.at.14.53.05.mp4

cmdline: onCompleteDone() is not called when select item by pum#map#select_relative().

Problems summary

source.onCompleteDone() is not called when select item by pum#map#select_relative().

It is fine when select item by pum#map#insert_relative().

Expected

source.onCompleteDone() is called both.

Or, document to pum#map#select_relative() is not usable in cmdline-mode.

Environment Information

  • ddc.vim version (SHA1): e338c37
  • ddc-ui-pum version (SHA1): Shougo/ddc-ui-pum@298e605
  • pum.vim version (SHA1): Shougo/pum.vim@43f585f
  • denops.vim version (SHA1): vim-denops/denops.vim@448f84c
  • deno version(deno -V output):
    deno 1.28.1
    
  • Environment 1:
    • OS: Windows 10 22H2 19045.2251
    • neovim/Vim :version output:
      VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Nov 14 2022 23:33:49)
      MS-Windows 64 ビット GUI 版 with OLE サポート
      適用済パッチ: 1-883
      
  • Environment 2:
    • OS: Ubuntu 18.04 LTS
    • neovim/Vim :version output:
      VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Nov 24 2022 03:43:18)
      Included patches: 1-929
      

Provide a minimal init.vim/vimrc without plugin managers (Required!)

" minimum vimrc
set nocompatible

set rtp^=path/to/denops.vim
set rtp^=path/to/ddc.vim
set rtp^=path/to/ddc-ui-pum
set rtp^=path/to/pum.vim
set rtp^=path/to/testdir

call ddc#custom#patch_global(#{
\ autoCompleteEvents: ['CmdlineChanged'],
\ ui: 'pum',
\ sources: ['test'],
\ cmdlineSources: {':': ['test']},
\})
call ddc#enable()

nnoremap : <Cmd>call ddc#enable_cmdline_completion()<CR>:

cnoremap <silent> <C-J> <Cmd>call pum#map#select_relative(+1)<CR>
cnoremap <silent> <C-N> <Cmd>call pum#map#insert_relative(+1)<CR>
cnoremap <silent> <C-Y> <Cmd>call pum#map#confirm()<CR>

" testing
function! TestSelect() abort
  echomsg "use select_relative"
  call feedkeys(":test")
  call timer_start(500,  {-> feedkeys("\<C-J>\<C-Y>\<Esc>", 't')})
endfunction
function! TestInsert() abort
  echomsg "use insert_relative"
  call feedkeys(':test')
  call timer_start(500,  {-> feedkeys("\<C-N>\<C-Y>\<Esc>", 't')})
endfunction
call timer_start(3000, {-> TestSelect()})
call timer_start(5000, {-> TestInsert()})
call timer_start(7000, {-> TestInsert()})
call timer_start(9000, {-> TestSelect()})
// &rtp/denops/@ddc-sources/test.vim
import { BaseSource, Item } from "https://deno.land/x/[email protected]/types.ts";

type Params = Record<string, never>;
type UserData = {foo: string;};

export class Source extends BaseSource<Params, UserData> {
  override params(): Params {
    return {};
  }
  override async gather(): Promise<Item<UserData>[]> {
    return [{word: 'testword', user_data: {foo: 'bar'}}];
  }
  override async onCompleteDone({userData}: {userData: UserData}): Promise<void> {
    console.error('test: onComleteDone()', userData);
  }
}

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Run vim -u vimrc.
  2. Wait testing done (10 seconds).
  3. Execute command :messages.

Actual messages

use select_relative
use insert_relative
[denops] test: onComleteDone() { foo: "bar" }
use insert_relative
[denops] test: onComleteDone() { foo: "bar" }
use select_relative

Expected messages

use select_relative
[denops] test: onComleteDone() { foo: "bar" }
use insert_relative
[denops] test: onComleteDone() { foo: "bar" }
use insert_relative
[denops] test: onComleteDone() { foo: "bar" }
use select_relative
[denops] test: onComleteDone() { foo: "bar" }

Question

pum#map#insert_relative() in cmdline-mode doesn't "insert" strings, isn't that what "select" does?

"insert" was working correctly. I think it is because <silent> was attached.

`ddc#syntax#get()` return always `[]` on latest neovim

Problems summary

ddc#syntax#get() return always [] on latest neovim.

For example, ddc#syntax#get() return [] on this yaml file.

key: value
echo ddc#syntax#get() " return []

This problem occurred in same filetypes other than YAML(Ruby, Scala, etc..).
It seems that Treesitter's behavior or interface has changed.

Expected

ddc#syntax#get() return not empty value.

For example, ddc#syntax#get() return ['String', 'Identifier'] on this yaml file.

key: value
echo ddc#syntax#get() " return `['String', 'Identifier']` 

Environment Information

  • ddc.vim version (SHA1): d9111bd

    • 2022-10-18
  • denops.vim version (SHA1): 17030b4

  • deno version(deno -V output): deno 1.26.1

  • OS: 6.0.1-arch2-1

  • neovim/Vim :version output:

Neovim commit hash history

There seems to have been a breaking change in treesitter's behaviour, but I don't know the details.

Provide a minimal init.vim/vimrc without plugin managers (Required!)

set runtimepath+=~/.cache/dein/repos/github.com/Shougo/ddc.vim
set runtimepath+=~/.cache/dein/repos/github.com/nvim-treesitter/nvim-treesitter
set runtimepath+=~/.cache/dein/repos/github.com/vim-denops/denops.vim

call ddc#enable()

lua <<EOF
require'nvim-treesitter.configs'.setup {
  highlight = { enable = true }
}
EOF

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim 'hoge.yaml'
  2. Move cursor any position.
  3. :echo ddc#syntax#get()

Screenshot (if possible)

Upload the log messages by :redir and :message (if errored)

[Enhance] add floating preview window feature support to vim

Problems summary

Are you consider adding floating preview window feature support to vim to show snippet and hook information, just like coc.nvim?
Or create a new plugin to implement this feature both work on nvim and vim ? I noticed that both ddc.vim and coc.nvim are plugins based on ts scripts. Does this make it possible to increase floating windows feature for vim ?

Autocomplete does not work at cmdwin even with specialBufferCompletion

Problems summary

Autocomplete does not work at cmdwin even with specialBufferCompletion

Expected

Autocomplete works at cmdwin exactly like other buffers with filetype=vim

Environment Information

  • ddc.vim version (SHA1): ba28bc9

  • denops.vim version (SHA1): a104cbff7e47a63978cfb3921da4333465fc6d15

  • deno version(deno -V output): 1.23.0

  • OS: ArchLinux

  • neovim/Vim :version output:



VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 07 2022 00:51:41)
Included patches: 1-5046
Compiled by Arch Linux
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +comments          +find_in_path      +lispindent        +multi_byte        +rightleft         +terminal          +wildignore
+arabic            +conceal           +float             +listcmds          +multi_lang        +ruby/dyn          +terminfo          +wildmenu
+autocmd           +cryptv            +folding           +localmap          -mzscheme          +scrollbind        +termresponse      +windows
+autochdir         +cscope            -footer            +lua/dyn           +netbeans_intg     +signs             +textobjects       +writebackup
-autoservername    +cursorbind        +fork()            +menu              +num64             +smartindent       +textprop          +X11
+balloon_eval      +cursorshape       +gettext           +mksession         +packages          -sodium            +timers            -xfontset
+balloon_eval_term +dialog_con_gui    -hangul_input      +modify_fname      +path_extra        +sound             +title             +xim
+browse            +diff              +iconv             +mouse             +perl/dyn          +spell             +toolbar           -xpm
++builtin_terms    +digraphs          +insert_expand     +mouseshape        +persistent_undo   +startuptime       +user_commands     +xsmp_interact
+byte_offset       +dnd               +ipv6              +mouse_dec         +popupwin          +statusline        +vartabs           +xterm_clipboard
+channel           -ebcdic            +job               +mouse_gpm         +postscript        -sun_workshop      +vertsplit         -xterm_save
+cindent           +emacs_tags        +jumplist          -mouse_jsbterm     +printer           +syntax            +vim9script        
+clientserver      +eval              +keymap            +mouse_netterm     +profile           +tag_binary        +viminfo           
+clipboard         +ex_extra          +lambda            +mouse_sgr         -python            -tag_old_static    +virtualedit       
+cmdline_compl     +extra_search      +langmap           -mouse_sysmouse    +python3/dyn       -tag_any_white     +visual            
+cmdline_hist      -farsi             +libcall           +mouse_urxvt       +quickfix          +tcl/dyn           +visualextra       
+cmdline_info      +file_in_path      +linebreak         +mouse_xterm       +reltime           +termguicolors     +vreplace          
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cloudproviders -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/vim/src=/usr/src/debug -flto=auto -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.36/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -L/usr/local/lib -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lelf -lcanberra -lacl -lattr -lgpm -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.36/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto -fstack-protector-strong -L/usr/local/lib -L/usr/lib/perl5/5.36/core_perl/CORE -lperl -lpthread -ldl -lm -lcrypt -lutil -lc -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm 
  • :checkhealth or :CheckHealth result(neovim only):

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" git/config/_vimrc_mini
set nocompatible

if has('vim_starting')
  set runtimepath+=~/.vimbundles/neobundle.vim
endif

call neobundle#begin(expand('~/.vimbundles'))

let g:neobundle#enable_name_conversion = 1
NeoBundle 'vim-denops/denops.vim'
NeoBundle 'Shougo/ddc.vim'
NeoBundle 'LumaKernel/ddc-file'

call neobundle#end()

filetype plugin indent on

function! s:init_ddc()
  let l:sources = []

  call ddc#custom#patch_global('completionMode', 'popupmenu')
  call ddc#custom#patch_global('specialBufferCompletion', v:true)
  let l:sources += ['file']
  call ddc#custom#patch_global('sourceOptions', {
        \ 'file': {
        \   'mark': 'F',
        \   'isVolatile': v:true,
        \   'forceCompletionPattern': '/\S*',
        \ }})
  call ddc#custom#patch_global('sources', l:sources)
  " call ddc#enable_cmdline_completion()
  call ddc#enable()
endfunction

call s:init_ddc()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. Open vim
  2. Type i./
  3. Observe that Vim automatically pops up the candidates of files under the current directory
  4. Type <Esc>q:i./
  5. Observe that Vim does not pop up anything.

Screenshot (if possible)

https://gyazo.com/1dc0f415546053d8f7c378844cd9794e

What is the inline completion expected behaviour?

Hi,

Just a quick question concerning this feature.

Is it the intended behaviour that when the cursor is not at the end of the line, the inline suggestion erases what follows? For example (bold chars mean inline suggestion, "|" is cursor):

Let's say I'm here:
print("p|")

Now, if I type "o", then the displays become:
print("pr|operty

Or if there is something in front, the completion should not trigger or expand ( print("pr|operty") )?

Thank you

Regression: `<C-f>` is appended to `indentkeys`

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

If I insert a word that ends with dodo, sudo, or todo—in a shell file, then <C-f> is appended.

This bisects to e54a5c6 (#105; the revisions of the other plugins shown below are pinned).

Expected

<C-f> is not appended.

Environment Information

Provide a minimal init.vim/vimrc without plugin managers (Required!)

" Your minimal init.vim/vimrc
set runtimepath-=~/.config/nvim
set runtimepath-=~/.config/nvim/after
set runtimepath-=~/.local/share/nvim/site
set runtimepath-=~/.local/share/nvim/site/after

set runtimepath+=path/to/denops.vim
set runtimepath+=path/to/ddc.vim
set runtimepath+=path/to/ddc-source-around
set runtimepath+=path/to/ddc-ui-native

call ddc#custom#patch_global('ui', 'native')
call ddc#custom#patch_global('sources', ['around'])

call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

  1. nvim -u vimrc -c 'setf sh'
  2. insert sudo

Screenshot (if possible)

sudo

Upload the log messages by :redir and :message (if errored)

`onEvent()` with `BufWritePost` causes strange behavior.

Problems summary

If source calls onEvent() on BufWritePost, saving files after moving to the bottom of the buffer causes behavior like Gzt (Vim normal command).

I found this bug when investigating this.
matsui54/ddc-source-buffer#6

Expected

No movement of screen.

Environment Information

NVIM v0.6.0-dev+319-gc20899302
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by root

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/share/nvim"

Run :checkhealth for more info
  • :checkhealth or :CheckHealth result(neovim only):
    No issues.

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

Put this lines in (runtimepath)/denops/@ddc-sources/empty.ts

import {
  BaseSource,
  Candidate,
  DdcEvent,
} from "https://deno.land/x/[email protected]/types.ts#^";
import {
  GatherCandidatesArguments,
  OnEventArguments,
} from "https://deno.land/x/[email protected]/base/source.ts#^";

export class Source extends BaseSource<{}> {
  events = [
    "BufWritePost",
  ] as DdcEvent[];
  async onEvent({
  }: OnEventArguments<{}>): Promise<void> {
  }

  async gatherCandidates({
  }: GatherCandidatesArguments<{}>): Promise<Candidate[]> {
    return [
    ]
  }
}

This is minimal vimrc

set rtp+=~/.cache/dein/repos/github.com/vim-denops/denops.vim
set rtp+=~/.cache/dein/repos/github.com/Shougo/ddc.vim
set rtp+=/path/to/ddc-empty

call ddc#custom#patch_global('sources', ['empty'])
call ddc#enable()

How to reproduce the problem from neovim/Vim startup (Required!)

Whether this happens depends on file.
it happens on https://github.com/rails/rails/blob/main/activerecord/lib/arel.rb
But not in https://github.com/matsui54/ddc-buffer/blob/main/denops/%40ddc-sources/buffer.ts

  1. Open buffer
  2. Enter insert mode, type something, then return to normal mode
  3. G or Gk
  4. :w

Screenshot (if possible)

Peek 2021-09-22 22-32

Can onInit() have sourceParams?

Problems summary

onInit() does not have sourceParams in arguments.

Expected

onInit() can have sourceParams in arguments.

Detail

I am writing ddc-ctags and want to add a feature to specify a path to ctags executable. There are several kinds of “Ctags”'s, but the latest Universal Ctags is the one I want to use in this plugin.

So I need to test the executable the user set in sourceParams, but it is annoying that it runs tests every time gatherCandidates() is called.

If onInit() can have sourceParams, it needs to test only once.

The snippet is not expanded by the combination of LSP and vsnip.

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.

Problems summary

Unable to expand snippet.

Expected

Snippets can be expanded.

Environment Information

  • ddc.vim version (SHA1):161cb742b4f2cb4922d60072b8a4f5ccfe236bb9

  • denops.vim version (SHA1):448f84ce91a573a6ce0b74044df986f6ab6dd906

  • deno version(deno -V output):deno 1.28.1

  • OS:Arch Linux

  • neovim/Vim :version output:

NVIM v0.9.0-dev-5e1687e-dirty
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions     -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security     -fstack-clash-protection -fcf-protection -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_TS_HAS_SET_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/hyuoou/.cache/paru/clone/neovim-git/src/build/cmake.config -I/home/hyuoou/.cache/paru/clone/neovim-git/src/neovim-git/src -I/usr/include -I/home/hyuoou/.cache/paru/clone/neovim-git/src/build/src/nvim/auto -I/home/hyuoou/.cache/paru/clone/neovim-git/src/build/include
Compiled by hyuoou

Features: +acl +iconv +tui
See ":help feature-compile"

      システム vimrc: "$VIM/sysinit.vim"
       省略時の $VIM: "/usr/share/nvim"

Run :checkhealth for more info

Provide a minimal init.vim/vimrc without plugin managers (Required!)

set rtp^=$HOME/plugins/denops.vim
set rtp^=$HOME/plugins/ddc.vim
set rtp^=$HOME/plugins/ddc-ui-pum
set rtp^=$HOME/plugins/pum.vim
set rtp^=$HOME/plugins/ddc-matcher_head
set rtp^=$HOME/plugins/ddc-sorter_rank
set rtp^=$HOME/plugins/ddc-source-nvim-lsp
set rtp^=$HOME/plugins/nvim-lspconfig
set rtp^=$HOME/plugins/vim-vsnip
set rtp^=$HOME/plugins/vim-vsnip-integ

call ddc#custom#patch_global('ui', 'pum')
call ddc#custom#patch_global('sources', ['nvim-lsp'])

call ddc#custom#patch_global('sourceOptions', #{
      \ _: #{
      \   matchers: ['matcher_head'],
      \   sorters: ['sorter_rank']},
      \ })

call ddc#custom#patch_global('sourceOptions', #{
      \   nvim-lsp: #{ mark: 'lsp', dup: 'keep' },
      \ })

call ddc#enable()

inoremap <C-n> <Cmd>call pum#map#insert_relative(+1)<CR>
inoremap <C-p> <Cmd>call pum#map#insert_relative(-1)<CR>
inoremap <C-y> <Cmd>call pum#map#confirm()<CR>

lua <<EOF
    local capabilities = vim.lsp.protocol.make_client_capabilities()
    capabilities.textDocument.completion.completionItem.snippetSupport = true
    require('lspconfig').clangd.setup{ capabilities = capabilities }
EOF

imap <expr> <Tab>   vsnip#jumpable(1)  ? '<Plug>(vsnip-jump-next)' : '<Tab>'
smap <expr> <Tab>   vsnip#jumpable(1)  ? '<Plug>(vsnip-jump-next)' : '<Tab>'
imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
autocmd User PumCompleteDone call vsnip_integ#on_complete_done(g:pum#completed_item)

How to reproduce the problem from neovim/Vim startup (Required!)

Select an item such as #include <header>. The snippet will not be expanded here.

This problem did not occur with ddc.vime338c37ed0de9edcbeb065a1be199759a8cf360f.

Error on startup `this[#remain].subarray is not a function`

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

Error message:
[denops] Unexpected error occured in session: TypeError: this[#remain].subarray is not a function

It is may related to deno version. I have deno 1.13.1 installed

Expected

No error

Environment Information

  • ddc version (SHA1):
    latest

  • OS: Mac

  • neovim/Vim :version output:
    NVIM v0.6.0-dev+205-g9695691ee-dirty
    Build type: Release
    LuaJIT 2.1.0-beta3

  • :checkhealth or :CheckHealth result(neovim only):
    health#denops#check
    ========================================================================

  • INFO: Supported Deno version: 1.11.0
  • INFO: Detected Deno version: 1.8.2
  • ERROR: Unsupported Deno version is detected. You need to upgrade it to 1.11.0 or later.
  • INFO: Supported Neovim version: 0.4.4
  • INFO: Detected Neovim version: 0.6.0
  • OK: Neovim version check: passed
  • INFO: Denops status: running
  • OK: Denops status check: passed

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
set termguicolors

call plug#begin('~/.vim/plugged')
Plug 'ray-x/guihua.lua'
Plug 'ray-x/navigator.lua'
Plug 'ray-x/aurora'
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
Plug 'Shougo/ddc-matcher_head'
Plug 'Shougo/ddc-sorter_rank'
Plug 'Shougo/deoppet.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'Shougo/neco-vim'
Plug 'Shougo/ddc-nvim-lsp'
Plug 'Shougo/ddc-nextword'
Plug 'matsui54/ddc-buffer'
Plug 'matsui54/ddc-nvim-lsp-doc'
Plug 'matsui54/ddc-dictionary'
call plug#end()

call ddc#custom#patch_global('sources', ['around'])
call ddc#custom#patch_global('sources', ['nvimlsp'])
  call ddc#custom#patch_global('sourceOptions', {
  \ '_': { 'matchers': ['matcher_head'] },
  \ 'nvimlsp': { 'mark': 'lsp', 'forceCompletionPattern': '\.|:|->' },
  \ })

call ddc#custom#patch_global('sourceParams', {
  \ 'nvimlsp': { 'kindLabels': { 'Class': 'c' } },
  \ })
inoremap <silent><expr> <TAB>
  \ pumvisible() ? '<C-n>' :
  \ (col('.') <= 1 <Bar><Bar> getline('.')[col('.') - 2] =~# '\s') ?
  \ '<TAB>' : ddc#manual_complete()
  
inoremap <expr><S-TAB>  pumvisible() ? '<C-p>' : '<C-h>'
call ddc#enable()

msgpack TimeoutErrors

Problems summary

After a while in a session, I start seeing msgpack timeout errors, and was wondering if there was an expectation here. I am pretty sure it's due to various sources never resolving their completion results. Is this something source authors need to ensure they handle properly? Or is this an error that ddc should suppress?

Expected

Not to see TimeoutErrors in the message logs

Environment Information

  • ddc version (SHA1): e392213

  • OS:
    macOS

  • neovim/Vim :version output:
    macVim, 8.2, 1-3376

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

I am continuing to dig in and see if I can find a specific source of the problem, but figured I would start the dialogue about whether it's a plugin or ddc issue.

Screenshot (if possible)

CleanShot 2021-08-30 at 12 39 08

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.