phpcomplete.vim icon indicating copy to clipboard operation
phpcomplete.vim copied to clipboard

Error detected while processing function phpcomplete#CompletePHP[60]

Open rainysia opened this issue 3 years ago • 6 comments

Hi there, I got the blow error after i updated my plugin phpcomlete.vim

Error detected while processing function phpcomplete#CompletePHP[60]..phpcomplete#GetCurrentNameSpace:
line    1:
E117: Unknown function: popup_create

phpcomplete version: c934e47 [David Szabo] 2021-02-08 14:44:22 +0100 (HEAD -> master, origin/master, origin/HEAD) Apply popup-content manipulation patch from @lacygoill The old phpcomplete version: ff5b5ef works fine. after the version, the b6ba63d, 77a0cf6, c934e47 will pop that error. php version 7.4.16 OS: debian 10 buster.

VIM - Vi IMproved 8.1 (2018 May 18, compiled Jun 15 2019 16:41:15)
Included patches: 1-875, 878, 884, 948, 1046, 1365-1368, 1382, 1401
Modified by [email protected]
Compiled by [email protected]
Huge version without GUI.  Features included (+) or not (-):
+acl               +extra_search      +mouse_netterm     +tag_old_static
+arabic            +farsi             +mouse_sgr         -tag_any_white
+autocmd           +file_in_path      -mouse_sysmouse    +tcl
+autochdir         +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +textprop
+byte_offset       -hangul_input      +num64             +timers
+channel           +iconv             +packages          +title
+cindent           +insert_expand     +path_extra        -toolbar
-clientserver      +job               +perl              +user_commands
-clipboard         +jumplist          +persistent_undo   +vartabs
+cmdline_compl     +keymap            +postscript        +vertsplit
+cmdline_hist      +lambda            +printer           +virtualedit
+cmdline_info      +langmap           +profile           +visual
+comments          +libcall           -python            +visualextra
+conceal           +linebreak         +python3           +viminfo
+cryptv            +lispindent        +quickfix          +vreplace
+cscope            +listcmds          +reltime           +wildignore
+cursorbind        +localmap          +rightleft         +wildmenu
+cursorshape       +lua               +ruby              +windows
+dialog_con        +menu              +scrollbind        +writebackup                                                                                                   
+diff              +mksession         +signs             -X11
+digraphs          +modify_fname      +smartindent       -xfontset                                                                                                      
-dnd               +mouse             +startuptime       -xim                                                                                                           
-ebcdic            -mouseshape        +statusline        -xpm                                                                                                           
+emacs_tags        +mouse_dec         -sun_workshop      -xsmp
+eval              +mouse_gpm         +syntax            -xterm_clipboard   
+ex_extra          -mouse_jsbterm     +tag_binary        -xterm_save
   system vimrc file: "$VIM/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: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-4Pursk/vim-8.1.0875=. -fstack-protector-strong -Wformat -Werror=forma
t-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lns
l  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.28/CORE -lperl -ldl -lm
-lpthread -lcrypt  -L/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu -lpython3.7m -lcrypt -lpthread -ldl -lutil -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthre
ad -lm -lruby-2.5 -lpthread -lgmp -ldl -lcrypt -lm

Any suggestions? Thx.

rainysia avatar Mar 17 '21 10:03 rainysia

Hi 👋

For the latest commit to work, you'd need vim 8.2 or newer. These changes were added to support newer vim versions (where manipulating buffer contents is not allowed from inside completion functions)

I've added a tag vim7 for the latest commit that supports vim older than 8.2, if your plugin system allows for it try limiting updates to that. So for example in vim-plug it would be like this:

Plug 'shawncplus/phpcomplete.vi', { 'tag': 'vim7' } 

I know it's not ideal to break backwards-compatibility like that, but sort-of assumed that people who update their plugins frequently would have new vim versions too and wanted to avoid littering the codebase with vim-version-checks 😓

Let me know if this helps!

complex857 avatar Mar 17 '21 10:03 complex857

Hi

For the latest commit to work, you'd need vim 8.2 or newer. These changes were added to support newer vim versions (where manipulating buffer contents is not allowed from inside completion functions)

I've added a tag vim7 for the latest commit that supports vim older than 8.2, if your plugin system allows for it try limiting updates to that. So for example in vim-plug it would be like this:

Plug 'shawncplus/phpcomplete.vi', { 'tag': 'vim7' } 

I know it's not ideal to break backwards-compatibility like that, but sort-of assumed that people who update their plugins frequently would have new vim versions too and wanted to avoid littering the codebase with vim-version-checks

Let me know if this helps!

Hi complex857,

Thanks for replying me, it's not working even i tried to set 

Plugin 'shawncplus/phpcomplete.vim', { 'tag': 'vim7' } or Plugin 'shawncplus/phpcomplete.vim', { 'tag': 'vim8.1 }

Still got that. now i have to change the phpcomplete.vim branch to old manually. BTW, I use "vundle" as vim plugin manage, didn't find any feature can support tag or commit revision no after check the plugin doc. but saw some issues discuss about that.

rainysia avatar Mar 18 '21 02:03 rainysia

@rainysia there is no tag vim8.1 in this repo. The tag lock sample code is for vim-plug, not Vundle.

Roy-Orbison avatar May 27 '21 09:05 Roy-Orbison

@rainysia there is no tag vim8.1 in this repo. The tag lock sample code is for vim-plug, not Vundle.

Got this, Thanks, that's why it doesn't work.

rainysia avatar Jun 01 '21 05:06 rainysia

Error detected while processing function phpcomplete#CompletePHP[60]..phpcomplete#GetCurre ntNameSpace: line 1: E117: Unknown function: popup_create

NVIM v0.6.1 Build type: Release LuaJIT 2.1.0-beta3 Compiled by brew@Monterey

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

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

Run :checkhealth for more info

more-pepsi avatar Feb 12 '22 13:02 more-pepsi

@more-pepsi Appears like that neovim doesn't implement the vim8.1+ popup API, so best I can recommend for now is to use a plugin version up to this commit: ff5b5eff2a792e8af4b43e71b88da400152dd5bd

In the future we either need to try to use some neovim specific floating-window api or perhaps some plugin for neovim that implements the vim-popup api, although not sure if that would not bring back the original "not allowed to switch windows here" errors.

complex857 avatar Feb 12 '22 16:02 complex857