pseewald / vim-anyfold

Language agnostic vim plugin for folding and motion based on indentation.
MIT License
268 stars 11 forks source link

Errors at the bottom of a file #10

Closed onlyanegg closed 6 years ago

onlyanegg commented 7 years ago

Firstly, thanks for developing this. Folding can be kind of a pain in vim, and this makes it better!

I'm getting errors when editing the end of a file

E684: list index out of range: 2266
E15: Invalid expression: b:anyfold_ind_buffer[v:lnum-1]
Press ENTER or type command to continue
...

This error repeats a few times before completing my command and returning.

This happens, for example, when I try adding a line to the bottom of the file.

Version Info

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 23 2016 20:22:47)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
pseewald commented 7 years ago

I could not confirm this issue with Vim 7.4. But I discovered an issue that could have caused this behaviour (folds are not updated after leaving insert mode). I managed to fix this with commit 0153540fed7ac14e2ee358bf103a3914dac074cd - could you check whether this also fixes this issue?

onlyanegg commented 7 years ago

Hi, @pseewald. Your latest commit didn't fix this issue. It may be a little different now though, so I'll post the new errors I'm getting. Thanks!

$ git config --get remote.origin.url
https://github.com/pseewald/vim-anyfold.git
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

I'm using pathogen, and I'm using these commands in my .vimrc.

filetype plugin indent on
syntax on
let anyfold_activate=1
set foldlevel=0

Now when I open a file, I get the following errors.

Error detected while processing function anyfold#init:
line   61:
E216: No such group or event: TextChanged,InsertLeave <buffer> :call s:ReloadFolds()

And when I append a new line at the end of a python file (from exec mode using o), I get this.

E684: list index out of range: 1251
E15: Invalid expression: b:anyfold_ind_buffer[v:lnum-1]
Press ENTER or type command to continue
E684: list index out of range: 1252
Press ENTER or type command to continue
E15: Invalid expression: b:anyfold_ind_buffer[v:lnum-1]
Press ENTER or type command to continue
Error detected while processing function GetPythonIndent:
line   30:
E121: Undefined variable: dummy
Press ENTER or type command to continue
Error detected while processing function GetPythonIndent:
line   30:
E15: Invalid expression: line('.') < 1200 ? dummy : synIDattr(synID(line('.'), col('.'), 1), 'name') =~ '\(Comment\|String\)$'
Press ENTER or type command to continue
Error detected while processing function GetPythonIndent:
line   49:
E121: Undefined variable: dummy
Press ENTER or type command to continue
Error detected while processing function GetPythonIndent:
line   49:
E15: Invalid expression: line('.') < 1203 ? dummy : synIDattr(synID(line('.'), col('.'), 1), 'name') =~ '\(Comment\|String\)$'
Press ENTER or type command to continue

And here's the error I get when doing the same thing in my .vimrc

E684: list index out of range: 113
E15: Invalid expression: b:anyfold_ind_buffer[v:lnum-1]
Press ENTER or type command to continue
pseewald commented 6 years ago

Hi @onlyanegg

Sorry for not replying sooner. I think the error message means that your Vim does not know the events TextChanged or InsertLeave, so updating your vim will probably fix the issue. In fact this means that vim-anyfold requires vim version 7.4 at least.

onlyanegg commented 6 years ago

Thanks, @pseewald. I'll give that a shot.