@@ -691,66 +691,109 @@ Describe filetype indent
691691 Describe try statement
692692 It aligns with left brackets
693693 let in = "try:\<CR>...\<CR>"
694- let in .= "except (TypeError,\<CR>ValueError):"
694+ let in .= "except (TypeError,\<CR>ValueError):\<CR>pass\<CR>"
695+ let in .= "try:\<CR>...\<CR>"
696+ let in .= "except* (TypeError,\<CR>ValueError):"
695697 let out = [
696698 \ 'try:',
697699 \ ' ...',
698700 \ 'except (TypeError,',
699701 \ ' ValueError):',
702+ \ ' pass',
703+ \ 'try:',
704+ \ ' ...',
705+ \ 'except* (TypeError,',
706+ \ ' ValueError):',
700707 \]
701708 Assert Equals(Insert(in), Buffer(out))
702709 End
703710
704711 It increases the indent level by 2
705712 let b:python_indent_multiline_statement = 1
706713 let in = "try:\<CR>...\<CR>"
707- let in .= "except (TypeError,\<CR>ValueError):"
714+ let in .= "except (TypeError,\<CR>ValueError):\<CR>pass\<CR>"
715+ let in .= "try:\<CR>...\<CR>"
716+ let in .= "except* (TypeError,\<CR>ValueError):"
708717 let out = [
709718 \ 'try:',
710719 \ ' ...',
711720 \ 'except (TypeError,',
712721 \ ' ValueError):',
722+ \ ' pass',
723+ \ 'try:',
724+ \ ' ...',
725+ \ 'except* (TypeError,',
726+ \ ' ValueError):',
713727 \]
714728 Assert Equals(Insert(in), Buffer(out))
715729 End
716730
717731 It increases the indent level (hanging indent)
718732 let in = "try:\<CR>...\<CR>"
719- let in .= "except (\<CR>TypeError,\<CR>ValueError\<CR>):"
733+ let in .= "except (\<CR>TypeError,\<CR>ValueError\<CR>):\<CR>pass\<CR>"
734+ let in .= "try:\<CR>...\<CR>"
735+ let in .= "except* (\<CR>TypeError,\<CR>ValueError\<CR>):"
720736 let out = [
721737 \ 'try:',
722738 \ ' ...',
723739 \ 'except (',
724740 \ ' TypeError,',
725741 \ ' ValueError',
726742 \ '):',
743+ \ ' pass',
744+ \ 'try:',
745+ \ ' ...',
746+ \ 'except* (',
747+ \ ' TypeError,',
748+ \ ' ValueError',
749+ \ '):',
727750 \]
728751 Assert Equals(Insert(in), Buffer(out))
729752 End
730753
731754 It increases the indent level by 2 (hanging indent)
732755 let b:python_indent_multiline_statement = 1
733756 let in = "try:\<CR>...\<CR>"
734- let in .= "except (\<CR>TypeError,\<CR>ValueError\<CR>):"
757+ let in .= "except (\<CR>TypeError,\<CR>ValueError\<CR>):\<CR>pass\<CR>"
758+ let in .= "try:\<CR>...\<CR>"
759+ let in .= "except* (\<CR>TypeError,\<CR>ValueError\<CR>):"
735760 let out = [
736761 \ 'try:',
737762 \ ' ...',
738763 \ 'except (',
739764 \ ' TypeError,',
740765 \ ' ValueError',
741766 \ '):',
767+ \ ' pass',
768+ \ 'try:',
769+ \ ' ...',
770+ \ 'except* (',
771+ \ ' TypeError,',
772+ \ ' ValueError',
773+ \ '):',
742774 \]
743775 Assert Equals(Insert(in), Buffer(out))
744776 End
745777
746778 It increases the indent level (line continueation)
747779 let in = "try:\<CR>...\<CR>"
748- let in .= "except TypeError, \\\<CR>ValueError:"
780+ let in .= "except TypeError, \\\<CR>ValueError:\<CR>pass\<CR>"
781+ let in .= "try:\<CR>...\<CR>"
782+ let in .= "except* TypeError, \\\<CR>ValueError:\<CR>pass\<CR>"
783+ let in .= "except * \\\<CR>OSError:"
749784 let out = [
750785 \ 'try:',
751786 \ ' ...',
752787 \ 'except TypeError, \',
753788 \ ' ValueError:',
789+ \ ' pass',
790+ \ 'try:',
791+ \ ' ...',
792+ \ 'except* TypeError, \',
793+ \ ' ValueError:',
794+ \ ' pass',
795+ \ 'except * \',
796+ \ ' OSError:',
754797 \]
755798 Assert Equals(Insert(in), Buffer(out))
756799 End
@@ -771,10 +814,29 @@ Describe filetype indent
771814 Assert Equals(Insert(in), Buffer(out))
772815 End
773816
817+ It indents the except* clause
818+ let in = "try:\<CR>"
819+ let in .= "try:\<CR>...\<CR>"
820+ let in .= "except* TypeError:\<CR>pass\<CR>"
821+ let in .= "except* ValueError:"
822+ let out = [
823+ \ 'try:',
824+ \ ' try:',
825+ \ ' ...',
826+ \ ' except* TypeError:',
827+ \ ' pass',
828+ \ ' except* ValueError:',
829+ \]
830+ Assert Equals(Insert(in), Buffer(out))
831+ End
832+
774833 It indents the else clause
775834 let in = "try:\<CR>"
776835 let in .= "try:\<CR>...\<CR>"
777836 let in .= "except TypeError:\<CR>pass\<CR>"
837+ let in .= "else:\<CR>pass\<CR>"
838+ let in .= "try:\<CR>...\<CR>"
839+ let in .= "except* TypeError:\<CR>pass\<CR>"
778840 let in .= "else:"
779841 let out = [
780842 \ 'try:',
@@ -783,6 +845,12 @@ Describe filetype indent
783845 \ ' except TypeError:',
784846 \ ' pass',
785847 \ ' else:',
848+ \ ' pass',
849+ \ ' try:',
850+ \ ' ...',
851+ \ ' except* TypeError:',
852+ \ ' pass',
853+ \ ' else:',
786854 \]
787855 Assert Equals(Insert(in), Buffer(out))
788856 End
@@ -792,10 +860,17 @@ Describe filetype indent
792860 let in .= "try:\<CR>...\<CR>"
793861 let in .= "except TypeError:\<CR>pass\<CR>"
794862 let in .= "finally:\<CR>pass\<CR>"
863+ let in .= "try:\<CR>...\<CR>"
864+ let in .= "except* TypeError:\<CR>pass\<CR>"
865+ let in .= "finally:\<CR>pass\<CR>"
795866 let in .= "finally:\<CR>"
796867 let in .= "try:\<CR>...\<CR>"
797868 let in .= "except ValueError:\<CR>pass\<CR>"
798869 let in .= "else:\<CR>pass\<CR>"
870+ let in .= "finally:\<CR>pass\<CR>"
871+ let in .= "try:\<CR>...\<CR>"
872+ let in .= "except* ValueError:\<CR>pass\<CR>"
873+ let in .= "else:\<CR>pass\<CR>"
799874 let in .= "finally:"
800875 let out = [
801876 \ 'try:',
@@ -805,6 +880,12 @@ Describe filetype indent
805880 \ ' pass',
806881 \ ' finally:',
807882 \ ' pass',
883+ \ ' try:',
884+ \ ' ...',
885+ \ ' except* TypeError:',
886+ \ ' pass',
887+ \ ' finally:',
888+ \ ' pass',
808889 \ 'finally:',
809890 \ ' try:',
810891 \ ' ...',
@@ -813,6 +894,14 @@ Describe filetype indent
813894 \ ' else:',
814895 \ ' pass',
815896 \ ' finally:',
897+ \ ' pass',
898+ \ ' try:',
899+ \ ' ...',
900+ \ ' except* ValueError:',
901+ \ ' pass',
902+ \ ' else:',
903+ \ ' pass',
904+ \ ' finally:',
816905 \]
817906 Assert Equals(Insert(in), Buffer(out))
818907 End
0 commit comments