diff --git a/src/main/scala/leon/synthesis/FileInterface.scala b/src/main/scala/leon/synthesis/FileInterface.scala index 29445a5ca99b2198612c421fe2c42ba640499191..c2bac94cae74b3e573b56fc3b8754da99dcdd063 100644 --- a/src/main/scala/leon/synthesis/FileInterface.scala +++ b/src/main/scala/leon/synthesis/FileInterface.scala @@ -55,9 +55,18 @@ class FileInterface(reporter: Reporter) { val before = str.substring(0, from) val after = str.substring(to, str.length) - val newCode = ScalaPrinter(toTree, PrinterOptions(baseIndent = fromTree.getPos.col/2)) + // Get base indentation of last line: + val lineChars = before.substring(before.lastIndexOf('\n')+1).toList - before + newCode + after + println(lineChars) + println(lineChars.takeWhile(_ == ' ')) + + val indent = lineChars.takeWhile(_ == ' ').size + + val p = new ScalaPrinter(PrinterOptions()) + p.pp(toTree, Some(fromTree))(indent/2) + + before + p.toString + after case p => sys.error("Substitution requires RangePos on the input tree: "+fromTree +": "+fromTree.getClass+" GOT" +p)