@@ -3,16 +3,57 @@ use crate::{symbol_shortcut, utils};
33/// 규칙 33~35에서 종료표(⠲)를 생략해야 하는 기호 모음.
44/// 기호 앞뒤에서는 로마자 종료표를 생략한다.
55pub ( crate ) fn should_skip_terminator_for_symbol ( symbol : char ) -> bool {
6- matches ! ( symbol, '.' | '?' | '!' | '…' | '⋯' | '"' | '\'' | '”' | '’' | '」' | '』'
7- | '〉' | '》' | '(' | ')' | ']' | '}' | ',' | ':' | ';' | '―' )
6+ matches ! (
7+ symbol,
8+ '.' | '?'
9+ | '!'
10+ | '…'
11+ | '⋯'
12+ | '"'
13+ | '\''
14+ | '”'
15+ | '’'
16+ | '」'
17+ | '』'
18+ | '〉'
19+ | '》'
20+ | '('
21+ | ')'
22+ | ']'
23+ | '}'
24+ | ','
25+ | ':'
26+ | ';'
27+ | '―'
28+ )
829}
930
1031/// 종료표를 생략한 뒤에도 연속표(⠐)로 이어야 하는 기호 모음.
1132/// 여는 괄호 '(' 는 새 영어 구간을 열게 되므로 제외한다.
1233/// 종료표를 생략했지만 이어지는 로마자에 연속표를 붙여야 하는지 판단한다.
1334pub ( crate ) fn should_request_continuation ( symbol : char ) -> bool {
14- matches ! ( symbol, '.' | '?' | '!' | '…' | '⋯' | '"' | '\'' | '”' | '’' | '」' | '』' | '〉'
15- | '》' | ')' | ']' | '}' | ',' | ':' | ';' | '―' )
35+ matches ! (
36+ symbol,
37+ '.' | '?'
38+ | '!'
39+ | '…'
40+ | '⋯'
41+ | '"'
42+ | '\''
43+ | '”'
44+ | '’'
45+ | '」'
46+ | '』'
47+ | '〉'
48+ | '》'
49+ | ')'
50+ | ']'
51+ | '}'
52+ | ','
53+ | ':'
54+ | ';'
55+ | '―'
56+ )
1657}
1758
1859/// 제33항 [다만] : '/', '-', '~' 앞에는 종료표를 강제로 붙인다.
@@ -194,7 +235,13 @@ mod tests {
194235 fn should_render_symbol_as_english_for_parentheses ( ) {
195236 let opener: Vec < char > = "(Hello" . chars ( ) . collect ( ) ;
196237 assert ! ( should_render_symbol_as_english(
197- true , false , & [ ] , '(' , & opener, 0 , & [ ]
238+ true ,
239+ false ,
240+ & [ ] ,
241+ '(' ,
242+ & opener,
243+ 0 ,
244+ & [ ]
198245 ) ) ;
199246
200247 let korean_before: Vec < char > = "가(" . chars ( ) . collect ( ) ;
@@ -209,7 +256,13 @@ mod tests {
209256 ) ) ;
210257
211258 assert ! ( !should_render_symbol_as_english(
212- false , false , & [ ] , '(' , & opener, 0 , & [ ]
259+ false ,
260+ false ,
261+ & [ ] ,
262+ '(' ,
263+ & opener,
264+ 0 ,
265+ & [ ]
213266 ) ) ;
214267 }
215268
0 commit comments