angel3_code_buffer 2.0.2 copy "angel3_code_buffer: ^2.0.2" to clipboard
angel3_code_buffer: ^2.0.2 copied to clipboard

discontinuedreplaced by: belatuk_code_buffer
outdated

An advanced StringBuffer geared toward generating code, and source maps.

example/main.dart

import 'package:angel3_code_buffer/angel3_code_buffer.dart';
import 'package:test/test.dart';

/// Use a `CodeBuffer` just like any regular `StringBuffer`:
String someFunc() {
  var buf = new CodeBuffer();
  buf
    ..write('hello ')
    ..writeln('world!');
  return buf.toString();
}

/// However, a `CodeBuffer` supports indentation.
void someOtherFunc() {
  var buf = new CodeBuffer();

  // Custom options...
  // ignore: unused_local_variable
  var customBuf =
      new CodeBuffer(newline: '\r\n', space: '\t', trailingNewline: true);

  // Without whitespace..
  // ignore: unused_local_variable
  var minifyingBuf = new CodeBuffer.noWhitespace();

  // Any following lines will have an incremented indentation level...
  buf.indent();

  // And vice-versa:
  buf.outdent();
}

/// `CodeBuffer` instances keep track of every `SourceSpan` they create.
//This makes them useful for codegen tools, or to-JS compilers.
void yetAnotherOtherFunc(CodeBuffer buf) {
  buf.write('hello');
  expect(buf.lastLine!.text, 'hello');

  buf.writeln('world');
  expect(buf.lastLine!.lastSpan!.start.column, 5);
}

/// You can copy a `CodeBuffer` into another, heeding indentation rules:
void yetEvenAnotherFunc(CodeBuffer a, CodeBuffer b) {
  b.copyInto(a);
}
0
likes
140
pub points
0%
popularity

Publisher

verified publisherdukefirehawk.com

An advanced StringBuffer geared toward generating code, and source maps.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

charcode, source_span

More

Packages that depend on angel3_code_buffer