In the context of source code generation it is often required to enclose emitted strings with (escaped) quotation marks. In the following, such strings are called quoted strings. Manually delimiting strings with quotation marks is error-prone and repetitive especially when dealing with a collection of string-items.
The package quote_buffer provides Quote
an extension on Dart's StringBuffer that adds methods for
transforming single objects and iterables into quoted strings.
To use this library include quote_buffer
as dependency in your pubspec.yaml file.
The section below lists the methods provided
and shows the console output obtained by printing the buffer content.
-
writeQ: WritesquotationMark + obj + quotationMarkto the buffer.import 'package:quote_buffer/quote_buffer.dart'; final b = StringBuffer(); b.writeQ(29); print(b.toString()); // Console output below
'29' -
writelnQ: WritesquotationMark + obj + quotationMark + newlineto the buffer.import 'package:quote_buffer/quote_buffer.dart'; final b = StringBuffer(); b.writelnQ('name', quotationMark: QuotationMark.double); print(b.toString()); // Console output below print('--- ---');
"name" --- ---
-
writeAllQ: WritesquotationMark + objects[0] + quotationMark + separator ..., to the buffer.import 'package:quote_buffer/quote_buffer.dart'; final b = StringBuffer(); b.writeAllQ(['one','two','three'], separator: ', '); print(b.toString()); // Console output below
'one', 'two', 'three', -
writelnAllQ: WritesquotationMark + objects[0] + separator1 + quotationMark + separator2 + newline ...to the buffer.import 'package:quote_buffer/quote_buffer.dart'; final b = StringBuffer(); b.writelnAllQ( ['one','two','three'], separator1: '#', separator2: ',', quotationMark: QuotationMark.double, ); print(b.toString()); // Console output below print('--- ---');
"one#", "two#", "three#", --- ---
-
writelnAll: Writesobjects[0] + separator + newline ...to the buffer.import 'package:quote_buffer/quote_buffer.dart'; final b = StringBuffer(); b.writelnAll(['one','two','three'], separator: ','); print(b.toString()); // Console output below print('--- ---');
one, two, three, --- ---
The methods writing an Iterable to the StringBuffer accept
the parameter addTrailingSeparator. Its value may be set to false
to prevent the addition of a trailing separator.
The example located in the folder example shows how to use the extension
Quote to simplify the generation of string literals whose content is enclosed by escaped quotation marks.
Please file feature requests and bugs at the issue tracker.