docs: def save_file(self):
          """Write the file out to disk."""
  
          l = []
          walk = self.walker
          for edit in walk.lines:
              # collect the text already stored in edit widgets
              if edit.original_text.expandtabs() == edit.edit_text:
                  l.append(edit.original_text)
              else:
                  l.append(re_tab(edit.edit_text))
  
          # then the rest
          while walk.file is not None:
              l.append(walk.read_next_line())
  
          # write back to disk
          outfile = open(self.save_name, "w")
  
          l_iter = iter(l)
  
          line = next(l_iter)
          prefix = ""
  
          while True:
              try:
                  outfile.write(prefix + line)
                  prefix = "\n"
                  line = next(l_iter)
              except StopIteration:
                  if line != "\n":
                      outfile.write("\n")
                  break