@@ -47,6 +47,10 @@ impl Commands {
47
47
state = add_space ( & mut self . state_machine , state, i) ;
48
48
state = add_quoted_dynamic_segment ( & mut self . state_machine , state) ;
49
49
param_names. push ( & segment[ 1 ..segment. len ( ) - 1 ] ) ;
50
+ } else if segment. starts_with ( "```" ) && segment. ends_with ( "```" ) {
51
+ state = add_space ( & mut self . state_machine , state, i) ;
52
+ state = add_triple_tick_code_segment ( & mut self . state_machine , state) ;
53
+ param_names. push ( & segment[ 3 ..segment. len ( ) - 3 ] ) ;
50
54
} else if segment. starts_with ( "{" ) && segment. ends_with ( "}" ) {
51
55
state = add_space ( & mut self . state_machine , state, i) ;
52
56
state = add_dynamic_segment ( & mut self . state_machine , state) ;
@@ -139,3 +143,19 @@ fn add_quoted_dynamic_segment(state_machine: &mut StateMachine, mut state: usize
139
143
140
144
state
141
145
}
146
+
147
+ #[ inline]
148
+ fn add_triple_tick_code_segment ( state_machine : & mut StateMachine , mut state : usize ) -> usize {
149
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
150
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
151
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
152
+ state = state_machine. add ( state, CharacterSet :: any ( ) ) ;
153
+ state_machine. add_next_state ( state, state) ;
154
+ state_machine. start_parse ( state) ;
155
+ state_machine. end_parse ( state) ;
156
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
157
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
158
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
159
+
160
+ state
161
+ }
0 commit comments