@@ -44,48 +44,41 @@ public void escape(final Indent next, final StringBuilder b, final int idx) {
4444 end = b .offsetByCodePoints (i , 1 );
4545 switch (c ) {
4646 // only use entities where necessary or very common practice
47- case '<' : b .replace (i , end , "<" ); i += 4 ; break ;
48- case '>' : b .replace (i , end , ">" ); i += 4 ; break ;
49- case '&' : b .replace (i , end , "&" ); i += 5 ; break ;
50- case '@' : b .replace (i , end , "@" ); i += 5 ; break ;
51- case 0xAD : b .replace (i , end , "­" ); i += 5 ; break ;
52- case 0x200D : b .replace (i , end , "‍" ); i += 5 ; break ;
53- case 0x200E : b .replace (i , end , "‎" ); i += 5 ; break ;
54- case 0x200F : b .replace (i , end , "‏" ); i += 5 ; break ;
55- case 0xA0 : b .replace (i , end , " " ); i += 6 ; break ;
56- case 0x2002 : b .replace (i , end , " " ); i += 6 ; break ;
57- case 0x2003 : b .replace (i , end , " " ); i += 6 ; break ;
58- case 0x200C : b .replace (i , end , "‌" ); i += 6 ; break ;
59- case 0x2009 : b .replace (i , end , "&thisp;" ); i += 7 ; break ;
47+ case '<' -> { b .replace (i , end , "<" ); i += 4 ; }
48+ case '>' -> { b .replace (i , end , ">" ); i += 4 ; }
49+ case '&' -> { b .replace (i , end , "&" ); i += 5 ; }
50+ case '@' -> { b .replace (i , end , "@" ); i += 5 ; }
51+ case 0xAD -> { b .replace (i , end , "­" ); i += 5 ; }
52+ case 0x200D -> { b .replace (i , end , "‍" ); i += 5 ; }
53+ case 0x200E -> { b .replace (i , end , "‎" ); i += 5 ; }
54+ case 0x200F -> { b .replace (i , end , "‏" ); i += 5 ; }
55+ case 0xA0 -> { b .replace (i , end , " " ); i += 6 ; }
56+ case 0x2002 -> { b .replace (i , end , " " ); i += 6 ; }
57+ case 0x2003 -> { b .replace (i , end , " " ); i += 6 ; }
58+ case 0x200C -> { b .replace (i , end , "‌" ); i += 6 ; }
59+ case 0x2009 -> { b .replace (i , end , "&thisp;" ); i += 7 ; }
6060 // special cases
61- case ' ' : i ++; break ;
62- case '\n' : i ++; break ;
61+ case ' ' , '\n' -> i ++;
6362 // otherwise escape it
64- default : {
65- switch (Character .getType (c )) {
66- case Character .UNASSIGNED :
67- case Character .CONTROL :
68- case Character .FORMAT :
69- case Character .SURROGATE :
70- case Character .NON_SPACING_MARK :
71- case Character .COMBINING_SPACING_MARK : // also DIRECTIONALITY_NONSPACING_MARK
72- case Character .ENCLOSING_MARK :
73- case Character .LINE_SEPARATOR :
74- case Character .PARAGRAPH_SEPARATOR :
75- case Character .SPACE_SEPARATOR :
76- {
63+ default -> {
64+ switch (Character .getType (c )) { // also DIRECTIONALITY_NONSPACING_MARK
65+ case Character .UNASSIGNED ,
66+ Character .CONTROL ,
67+ Character .FORMAT ,
68+ Character .SURROGATE ,
69+ Character .NON_SPACING_MARK ,
70+ Character .COMBINING_SPACING_MARK ,
71+ Character .ENCLOSING_MARK ,
72+ Character .LINE_SEPARATOR ,
73+ Character .PARAGRAPH_SEPARATOR ,
74+ Character .SPACE_SEPARATOR -> {
7775 b .replace (i , end , "&#x" );
7876 final String hs = Integer .toHexString (c );
7977 b .insert (i += 3 , hs );
8078 b .insert (i += hs .length (), ';' );
81- break ;
82- }
83- default : {
84- i ++;
85- break ;
8679 }
80+ default -> i ++;
8781 }
88- break ;
8982 }
9083 }
9184 }
0 commit comments