()
| 226 | |
| 227 | #[test] |
| 228 | fn test_with_pretty_writer() { |
| 229 | let source_text = "foo{use:other;}"; |
| 230 | let bump = Bump::default(); |
| 231 | let lexer = Lexer::new(&EmptyAtomSet::ATOMS, source_text); |
| 232 | let mut p = Parser::new(&bump, source_text, lexer); |
| 233 | let output = p.parse_entirely::<Vec<'_, ComponentValue>>().output.unwrap(); |
| 234 | let ComponentValue::SimpleBlock(ref block) = output[1] else { panic!("output[1] was not a block") }; |
| 235 | |
| 236 | let overlay_text = "inner{foo: bar;}"; |
| 237 | let lexer = Lexer::new(&EmptyAtomSet::ATOMS, overlay_text); |
| 238 | let mut p = Parser::new(&bump, overlay_text, lexer); |
| 239 | let overlay = p.parse_entirely::<Vec<'_, ComponentValue>>(); |
| 240 | let mut source_cursors = Vec::new_in(&bump); |
| 241 | let mut sink = CursorToSourceCursorSink::new(overlay_text, &mut source_cursors); |
| 242 | overlay.to_cursors(&mut sink); |
| 243 | let mut overlays = CursorOverlaySet::new(&bump); |
| 244 | overlays.insert(block.values.to_span(), source_cursors); |
| 245 | |
| 246 | let mut str = String::new(); |
| 247 | let mut stream = CursorOverlaySink::new( |
| 248 | source_text, |
| 249 | &overlays, |
| 250 | CursorPrettyWriteSink::new(source_text, &mut str, None, QuoteStyle::Double), |
| 251 | ); |
| 252 | output.to_cursors(&mut stream); |
| 253 | |
| 254 | assert_eq!( |
| 255 | str, |
| 256 | r#" |
| 257 | foo { |
| 258 | inner { |
| 259 | foo: bar; |
| 260 | } |
| 261 | } |
| 262 | "# |
| 263 | .trim() |
| 264 | ); |
| 265 | } |
| 266 | |
| 267 | #[test] |
| 268 | fn test_insert_before_and_after() { |
nothing calls this directly
no test coverage detected