essential_code_buffer 2.0.0 copy "essential_code_buffer: ^2.0.0" to clipboard
essential_code_buffer: ^2.0.0 copied to clipboard

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

code_buffer #

Pub build status

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

Installation #

In your pubspec.yaml:

dependencies:
  code_buffer: ^1.0.0

Usage #

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...
  var buf = new CodeBuffer(newline: '\r\n', space: '\t', trailingNewline: true);
  
  // 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 someFunc(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 yetAnotherFunc(CodeBuffer a, CodeBuffer b) {
  b.copyInto(a);
}
1
likes
150
points
26
downloads

Publisher

verified publishergalileodart.com

Weekly Downloads

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

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

charcode, source_span

More

Packages that depend on essential_code_buffer