correct»,
sent 06:10:16 28 June 2011, Tuesday
by Peng Yu:
> It seem that default perl indentation in vim is not correct with
> 'when' (see example at the end of email). Could anybody let me know
> how to fix the problem?
I guess it is not `when`, but `\`.  It was a known issue arised because in 
collection `[\[]' there are two characters: `\` and `\[`, not one `[` which is 
weird (but described in POSIX). I have wrote a patch for this, but sended it 
only to vim-dev mailing list, not to all maintainers of all scripts that have 
this error (there were way too many scripts and too many maintainers).
Original message:
> Hi,
> 
> It seem that default perl indentation in vim is not correct with
> 'when' (see example at the end of email). Could anybody let me know
> how to fix the problem?
> 
> $ vim --version
> VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar 24 2011 07:07:34)
> Included patches: 1-35
> Modified by pkg-vim-maintainers@lists.alioth.debian.org
> Compiled by buildd@
> Huge version with GTK2-GNOME 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_gui
> +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/dyn +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/dyn +persistent_undo
> +postscript
> +printer +profile +python/dyn +python3/dyn +quickfix +reltime
> +rightleft +ruby
> +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_interact +xterm_clipboard -xterm_save
>    system vimrc file: "$VIM/vimrc"
>      user vimrc file: "$HOME/.vimrc"
>       user exrc file: "$HOME/.exrc"
>   system gvimrc file: "$VIM/gvimrc"
>     user gvimrc file: "$HOME/.gvimrc"
>     system menu file: "$VIMRUNTIME/menu.vim"
>   fall-back for $VIM: "/usr/share/vim"
> Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -
> pthread -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/
> gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/
> glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/
> usr/include/libdrm -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -
> I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/
> pixman-1   -pthread -DORBIT2=1 -D_REENTRANT -I/usr/include/glib-2.0 -I/
> usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pango-1.0 -I/
> usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/include/gio-
> unix-2.0/ -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/
> libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/
> include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/
> libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/
> gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/
> usr/lib/gnome-vfs-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/
> libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/
> libxml2 -I/usr/include/gail-1.0 -I/usr/lib/gtk-2.0/include -I/usr/
> include/cairo -I/usr/include/pixman-1     -Wall -g -O2 -
> D_FORTIFY_SOURCE=1    -I/usr/include/tcl8.4  -D_REENTRANT=1  -
> D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -I/usr/lib/ruby/1.8/x86_64-
> linux -DRUBY_VERSION=18
> Linking: gcc -L/usr/lib/x86_64-linux-gnu    -L. -Wl,-Bsymbolic-
> functions -rdynamic -Wl,-export-dynamic  -Wl,-E  -Wl,--as-needed -o
> vim   -pthread -L/usr/lib/x86_64-linux-gnu -lgtk-x11-2.0 -lgdk-x11-2.0
> -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -
> lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0
> -lgthread-2.0 -lrt -lglib-2.0   -L/usr/lib/x86_64-linux-gnu   -
> lgnomeui-2 -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -
> lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -
> lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -
> lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgconf-2 -
> lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lXt -
> lncurses -lselinux   -lacl -lgpm -Wl,-E  -fstack-protector -L/usr/
> local/lib  -L/usr/lib/perl/5.10/CORE -L/usr/lib -ltcl8.4 -lieee -
> lruby1.8 -lrt -lm
> 
> 
> Regard,
> Peng
> 
> 
> $ cat main.pl
> #!/usr/bin/env perl
> 
> use strict;
> use warnings;
> 
> #use feature ":5.10";
> use feature "switch";
> 
> sub test_given {
>   my ($foo)=@_;
>   given($foo) {
>     when (undef) {
>       print '$foo is undefined';
>     }
>     when ("foo") {
>       print '$foo is the string "foo"';
>     }
>     when ([1,3,5,7,9]) {
>       print '$foo is an odd digit';
>       continue; # Fall through
>     }
>     when ($_ < 100) {
>       print '$foo is numerically less than 100';
>     }
>     when (\&complicated_check) {
>     print 'a complicated check for $foo is true';
>   }
>   default {
>     die q(I don't know what to do with $foo);
>   }
> }
>          }
> 
> 
>          test_given('foo')
 
No comments:
Post a Comment