Monday, June 27, 2011

Indentation of perl scripts with the key word 'when' are not correct

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')

--
You received this message from the "vim_use" 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

No comments: