class LineBuffer(object): def __init__(self): self._lines = [] self._wrapper = MBTextWrapper(encoding='utf-8') def __len__(self): return len(self._lines) def __getitem__(self, i): return self._lines[i] def __setitem__(self, i, value): self._lines[i] = value def clear(self): self._lines[:] = [] def read(self): return '\n'.join(self._lines) def write(self, s): #normalise whitespace s = ' '.join(s.split()) self._lines.extend(self._wrapper.wrap(s)) def rawwrite(self, s): self._lines.extend(s.splitlines()) def indent(self, numspaces=4, start=0): linebuf = self._lines n = len(linebuf) if n > start: indent = ' ' * numspaces for i in range(start, n): linebuf[i] = indent + linebuf[i] def tab(self, num=1, start=0): linebuf = self._lines n = len(linebuf) if n > start: tab = '\t' * num for i in range(start, n): linebuf[i] = tab + linebuf[i] def lstrip(self): linebuf = self._lines for i in range(len(linebuf)): linebuf[i] = linebuf[i].lstrip()
def __init__(self): self._lines = [] self._wrapper = MBTextWrapper(encoding='utf-8')