Skip to content

Commit e78f5fb

Browse files
committed
Avoid accessing member func with subscript
It's difficult to translate into other language (e.g. Go)
1 parent c4a3509 commit e78f5fb

File tree

1 file changed

+97
-1
lines changed

1 file changed

+97
-1
lines changed

autoload/vimlparser.vim

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,103 @@ function! s:VimLParser.parse_command()
797797
call self.parse_argcmd()
798798
endif
799799

800-
call self[self.ea.cmd.parser]()
800+
call self._parse_command(self.ea.cmd.parser)
801+
endfunction
802+
803+
function! s:VimLParser._parse_command(parser) abort
804+
if a:parser == 'parse_cmd_append'
805+
call self.parse_cmd_append()
806+
elseif a:parser == 'parse_cmd_break'
807+
call self.parse_cmd_break()
808+
elseif a:parser == 'parse_cmd_call'
809+
call self.parse_cmd_call()
810+
elseif a:parser == 'parse_cmd_catch'
811+
call self.parse_cmd_catch()
812+
elseif a:parser == 'parse_cmd_common'
813+
call self.parse_cmd_common()
814+
elseif a:parser == 'parse_cmd_continue'
815+
call self.parse_cmd_continue()
816+
elseif a:parser == 'parse_cmd_delfunction'
817+
call self.parse_cmd_delfunction()
818+
elseif a:parser == 'parse_cmd_echo'
819+
call self.parse_cmd_echo()
820+
elseif a:parser == 'parse_cmd_echoerr'
821+
call self.parse_cmd_echoerr()
822+
elseif a:parser == 'parse_cmd_echohl'
823+
call self.parse_cmd_echohl()
824+
elseif a:parser == 'parse_cmd_echomsg'
825+
call self.parse_cmd_echomsg()
826+
elseif a:parser == 'parse_cmd_echon'
827+
call self.parse_cmd_echon()
828+
elseif a:parser == 'parse_cmd_else'
829+
call self.parse_cmd_else()
830+
elseif a:parser == 'parse_cmd_elseif'
831+
call self.parse_cmd_elseif()
832+
elseif a:parser == 'parse_cmd_endfor'
833+
call self.parse_cmd_endfor()
834+
elseif a:parser == 'parse_cmd_endfunction'
835+
call self.parse_cmd_endfunction()
836+
elseif a:parser == 'parse_cmd_endif'
837+
call self.parse_cmd_endif()
838+
elseif a:parser == 'parse_cmd_endtry'
839+
call self.parse_cmd_endtry()
840+
elseif a:parser == 'parse_cmd_endwhile'
841+
call self.parse_cmd_endwhile()
842+
elseif a:parser == 'parse_cmd_execute'
843+
call self.parse_cmd_execute()
844+
elseif a:parser == 'parse_cmd_finally'
845+
call self.parse_cmd_finally()
846+
elseif a:parser == 'parse_cmd_finish'
847+
call self.parse_cmd_finish()
848+
elseif a:parser == 'parse_cmd_for'
849+
call self.parse_cmd_for()
850+
elseif a:parser == 'parse_cmd_function'
851+
call self.parse_cmd_function()
852+
elseif a:parser == 'parse_cmd_if'
853+
call self.parse_cmd_if()
854+
elseif a:parser == 'parse_cmd_insert'
855+
call self.parse_cmd_insert()
856+
elseif a:parser == 'parse_cmd_let'
857+
call self.parse_cmd_let()
858+
elseif a:parser == 'parse_cmd_loadkeymap'
859+
call self.parse_cmd_loadkeymap()
860+
elseif a:parser == 'parse_cmd_lockvar'
861+
call self.parse_cmd_lockvar()
862+
elseif a:parser == 'parse_cmd_lua'
863+
call self.parse_cmd_lua()
864+
elseif a:parser == 'parse_cmd_modifier_range'
865+
call self.parse_cmd_modifier_range()
866+
elseif a:parser == 'parse_cmd_mzscheme'
867+
call self.parse_cmd_mzscheme()
868+
elseif a:parser == 'parse_cmd_perl'
869+
call self.parse_cmd_perl()
870+
elseif a:parser == 'parse_cmd_python'
871+
call self.parse_cmd_python()
872+
elseif a:parser == 'parse_cmd_python3'
873+
call self.parse_cmd_python3()
874+
elseif a:parser == 'parse_cmd_return'
875+
call self.parse_cmd_return()
876+
elseif a:parser == 'parse_cmd_ruby'
877+
call self.parse_cmd_ruby()
878+
elseif a:parser == 'parse_cmd_tcl'
879+
call self.parse_cmd_tcl()
880+
elseif a:parser == 'parse_cmd_throw'
881+
call self.parse_cmd_throw()
882+
elseif a:parser == 'parse_cmd_try'
883+
call self.parse_cmd_try()
884+
elseif a:parser == 'parse_cmd_unlet'
885+
call self.parse_cmd_unlet()
886+
elseif a:parser == 'parse_cmd_unlockvar'
887+
call self.parse_cmd_unlockvar()
888+
elseif a:parser == 'parse_cmd_usercmd'
889+
call self.parse_cmd_usercmd()
890+
elseif a:parser == 'parse_cmd_while'
891+
call self.parse_cmd_while()
892+
elseif a:parser == 'parse_wincmd'
893+
call self.parse_wincmd()
894+
elseif a:parser == 'parse_cmd_syntax'
895+
call self.parse_cmd_syntax()
896+
endif
801897
endfunction
802898

803899
function! s:VimLParser.find_command()

0 commit comments

Comments
 (0)