| 227 | |
| 228 | |
| 229 | def _get_previous_line_indent(buffer: list[str], pos: int) -> tuple[int, int | None]: |
| 230 | prevlinestart = pos |
| 231 | while prevlinestart > 0 and buffer[prevlinestart - 1] != "\n": |
| 232 | prevlinestart -= 1 |
| 233 | prevlinetext = prevlinestart |
| 234 | while prevlinetext < pos and buffer[prevlinetext] in " \t": |
| 235 | prevlinetext += 1 |
| 236 | if prevlinetext == pos: |
| 237 | indent = None |
| 238 | else: |
| 239 | indent = prevlinetext - prevlinestart |
| 240 | return prevlinestart, indent |
| 241 | |
| 242 | |
| 243 | def _get_first_indentation(buffer: list[str]) -> str | None: |