@@ -1806,16 +1806,15 @@ exports.copyAText = (atext1, atext2) => {
18061806} ;
18071807
18081808/**
1809- * Append the set of operations from atext to an assembler.
1810- *
1811- * @param {AText } atext -
1812- * @param assem - Assembler like SmartOpAssembler TODO add desc
1809+ * Convert AText to a series of operations.
1810+ * @param {AText } atext - The AText to convert.
1811+ * @yields {Op}
18131812 */
1814- exports . appendATextToAssembler = ( atext , assem ) => {
1813+ exports . opsFromAText = function * ( atext ) {
18151814 // intentionally skips last newline char of atext
18161815 let lastOp = null ;
18171816 for ( const op of new exports . OpIter ( atext . attribs ) ) {
1818- if ( lastOp != null ) assem . append ( lastOp ) ;
1817+ if ( lastOp != null ) yield lastOp ;
18191818 lastOp = op ;
18201819 }
18211820 if ( lastOp == null ) return ;
@@ -1828,11 +1827,24 @@ exports.appendATextToAssembler = (atext, assem) => {
18281827 const lastLineLength = atext . text . length - nextToLastNewlineEnd - 1 ;
18291828 lastOp . lines -- ;
18301829 lastOp . chars -= ( lastLineLength + 1 ) ;
1831- assem . append ( lastOp ) ;
1830+ yield copyOp ( lastOp ) ;
18321831 lastOp . lines = 0 ;
18331832 lastOp . chars = lastLineLength ;
18341833 }
1835- if ( lastOp . chars ) assem . append ( lastOp ) ;
1834+ if ( lastOp . chars ) yield lastOp ;
1835+ } ;
1836+
1837+ /**
1838+ * Append the set of operations from atext to an assembler.
1839+ *
1840+ * @deprecated Use `opsFromAText` instead.
1841+ * @param {AText } atext -
1842+ * @param assem - Assembler like SmartOpAssembler TODO add desc
1843+ */
1844+ exports . appendATextToAssembler = ( atext , assem ) => {
1845+ warnDeprecated (
1846+ 'Changeset.appendATextToAssembler() is deprecated; use Changeset.opsFromAText() instead' ) ;
1847+ for ( const op of exports . opsFromAText ( atext ) ) assem . append ( op ) ;
18361848} ;
18371849
18381850/**
0 commit comments