2017-06-19 13:08 GMT+03:00 Nikolay Aleksandrovich Pavlov <zyx....@gmail.com>: > 2017-06-19 12:41 GMT+03:00 Björn Linse <bjorn.li...@gmail.com>: >> vim --cmd "$(printf 'func! XX()\nechomsg "aa"\nendfunc')" >> works fine but >> vim --cmd "$(printf 'func! XX()\nechomsg "aa"\nendfunc\ncall XX()')" >> does not. One would expect at least an error about 'trailing characters' as >> vim does in some similar situations, expect for 'endfunc "comment' (and >> perhaps also allow 'endfunc FuncName' if someone does that already, but I >> haven't seen it) > > As I said in referenced discussion basically one needs to adapt to > `endfunction!` (with bang) and `endfunction " comment`. The patch > there does just that, though I have not tested it. > > It has a flaw of not giving a warning on the code like > > function F() > endfunction " Comment > call F() > > should it be executed via `:execute {multiline string}`, but given > that `execute {multiline string}` or other similar places (`-c`, > `--cmd`, Neovim API (`nvim_command()`), `execute({multiline string})`) > do not normally have any comments this should be OK. > > It may be not the only or the best way to fix things though. > > BTW, I have recently cloned all 5208 repositories belonging to > https://github.com/vim-scripts so am capable of performing searches on > the codebase, though they are going to take way too long time (and > obviously do not touch plugins nobody bothered to post to vim.org). > The resulting ~/tmp/vim-scripts directory surprisingly ended only with > less then a GiB space though (979M according to `du -hs`). Currently > running > > ag '^\s*endf(?:u(?:n(?:c(?:t(?:i(?:o(?:n)?)?)?)?)?)?)?\b!?[ > \t]*(?!")\S' ~/tmp/vim-scripts
Had to modify search, replacing `!?` with `!?+` to take out lines like `"endfunction!"`. > > which should gather some data on the matter (`ag` is an alias to `ag > --case-sensitive`, I never need and actually hate the default). > > So long it appears that `:endfunction funcname` is actually being > used: incomplete search revealed > > ``` > /home/zyx/tmp/vim-scripts/4NT-Bundle.git/autoload/btm.vim:161:endfunction > btm#User_Complete > /home/zyx/tmp/vim-scripts/accurev.git/plugin/accurev.vim:5006:endfunction :}}} > /home/zyx/tmp/vim-scripts/accurev.git/plugin/accurev.vim:5014:endfunction :}}} > /home/zyx/tmp/vim-scripts/accurev.git/plugin/accurev.vim:5021:endfunction :}}} > /home/zyx/tmp/vim-scripts/accurev.git/plugin/accurev.vim:5036:endfunction :}}} > /home/zyx/tmp/vim-scripts/accurev.git/plugin/accurev.vim:5044:endfunction :}}} > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:279:endfunction > ada#Word > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:316:endfunction > ada#List_Tag > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:345:endfunction > ada#Jump_Tag > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:362:endfunction > ada#InsertBackspace > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:401:endfunction > ada#User_Complete > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:409:endfunction > ada#Completion > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:416:endfunction > ada#Completion_End > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:432:endfunction > ada#Create_Tags > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:476:endfunction > ada#Switch_Session > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:527: > endfunction ada#Pretty_Print_Folding " }}}2 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:544:endfunction > ada#Switch_Syntax_Option > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/ada.vim:612:endfunction > ada#Map_Popup > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/adacomplete.vim:99:endfunction > adacomplete#Complete > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/decada.vim:30:endfunction > decada#Unit_Name " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/decada.vim:41:endfunction > decada#Build " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/decada.vim:52:endfunction > decada#Set_Session " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/decada.vim:65:endfunction > decada#New " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:36:endfunction > gnat#Make " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:40:endfunction > gnat#Make " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:44:endfunction > gnat#Find " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:52:endfunction > gnat#Tags " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:91:endfunction > gnat#Set_Project_File " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:96:endfunction > gnat#Get_Command " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:104:endfunction > gnat#Set_Session " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:125:endfunction > gnat#New " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/autoload/gnat.vim:137:endfunction > gnat#Insert_Tags_Header " }}}1 > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/indent/ada.vim:89:endfunction > MainBlockIndent > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/indent/ada.vim:133:endfunction > EndBlockIndent > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/indent/ada.vim:172:endfunction > StatementIndent > /home/zyx/tmp/vim-scripts/Ada-Bundle.git/indent/ada.vim:293:endfunction > GetAdaIndent > /home/zyx/tmp/vim-scripts/autoloadadacomplete.vim.git/ftplugin/adacomplete.vim:90: > endfunction adacomplete#Complete > /home/zyx/tmp/vim-scripts/Buffergator.git/autoload/buffergator.vim:329:endfunction! > /home/zyx/tmp/vim-scripts/Buffergator.git/autoload/buffergator.vim:337:endfunction! > /home/zyx/tmp/vim-scripts/cbackup.vim.git/plugin/cbackup.vim:55: > endfunction Do_Purge > /home/zyx/tmp/vim-scripts/cbackup.vim.git/plugin/cbackup.vim:84: > endfunction Make_Backup_Dir > /home/zyx/tmp/vim-scripts/cbackup.vim.git/plugin/cbackup.vim:93: > endfunction s:Get_Version > /home/zyx/tmp/vim-scripts/cbackup.vim.git/plugin/cbackup.vim:105: > endfunction s:Version_Compare > /home/zyx/tmp/vim-scripts/cbackup.vim.git/plugin/cbackup.vim:127: > endfunction Set_Backup > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/commands.vim:159:endfunction! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/commands.vim:204:endfunction! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/flags.vim:27:endfunction! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/flags.vim:41:endfunction! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/targets.vim:11:endfunc! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/targets.vim:28:endfunc! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/targets.vim:49:endfunc! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/targets.vim:108:endfunc! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/targets.vim:123:endfunc! > /home/zyx/tmp/vim-scripts/cmake.vim--Alcin.git/autoload/cmake/targets.vim:152:endfunc! > /home/zyx/tmp/vim-scripts/cmakeref.git/doc/cmakecmds.txt:841: > /home/zyx/tmp/vim-scripts/cmakeref.git/doc/cmakecmds.txt:842: > /home/zyx/tmp/vim-scripts/cmakeref.git/doc/cmakecmds.txt:843: > /home/zyx/tmp/vim-scripts/cmakeref.git/doc/cmakecmds.txt:844:endfunction > *endfunction* > /home/zyx/tmp/vim-scripts/ColorSchemeMenuMaker.git/plugin/ColorSchemeMenuMaker.vim:315:endfunction > }}} > /home/zyx/tmp/vim-scripts/compilergnat.vim.git/compiler/gnat.vim:39: > endfunction Make > /home/zyx/tmp/vim-scripts/cream-vimabbrev.git/plugin/cream-vimabbrev.vim:1073: > /home/zyx/tmp/vim-scripts/cream-vimabbrev.git/plugin/cream-vimabbrev.vim:1074:endfunction > 1}}} > /home/zyx/tmp/vim-scripts/ctrlp-cmdpalette.git/autoload/ctrlp/internal_commands.txt:146:endfunction\t:endf[unction] > end of a user function > /home/zyx/tmp/vim-scripts/d.vim--Suhoverhov.git/after/ftplugin/d.vim:70:endfunction > s:Autoimport > /home/zyx/tmp/vim-scripts/d.vim--Suhoverhov.git/after/ftplugin/d.vim:124: > endfunction Compare " }}} > /home/zyx/tmp/vim-scripts/d.vim--Suhoverhov.git/after/ftplugin/d.vim:129: > endfunction GetPackage " }}} > /home/zyx/tmp/vim-scripts/d.vim--Suhoverhov.git/after/ftplugin/d.vim:153:endfunction > OrganizeImports > /home/zyx/tmp/vim-scripts/d.vim--Suhoverhov.git/autoload/omni/d/complete.vim:46:endfunction > omni#d#complete#Complete > /home/zyx/tmp/vim-scripts/drawing.vim.git/plugin/drawing.vim:198:endf! > /home/zyx/tmp/vim-scripts/DrawIt.git/autoload/DrawIt.vim:2771:endf! > ``` > >> >> Some discussion in >> https://github.com/neovim/neovim/pull/6844#issuecomment-309213209 and below >> >> -- >> -- >> You received this message from the "vim_dev" maillist. >> Do not top-post! Type your reply below the text you are replying to. >> For more information, visit http://www.vim.org/maillist.php >> >> --- >> You received this message because you are subscribed to the Google Groups >> "vim_dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to vim_dev+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.