docs: def writeln(self, string='', *args, **kwargs):
          """Writes a string into the source code _and_ appends a new line,
             applying indentation if required
          """
          self.write(string + '\n', *args, **kwargs)
          self.on_new_line = True
  
          # If we're writing a block, increment indent for the next time
          if string and string[-1] == ':':
              self.current_indent += 1
  
          # Clear state after the user adds a new line
          self.auto_added_line = False