split up postprocessing of lines and shipout. add trailing % characters for latex2e packages
This commit is contained in:
parent
b4526f5d0c
commit
190ff1a339
2 changed files with 20 additions and 3 deletions
|
@ -2,6 +2,7 @@ from .formatting_config import FormattingConfig
|
||||||
from .tex_formatter import TexFormatter
|
from .tex_formatter import TexFormatter
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional, List, Tuple, Dict
|
from typing import Optional, List, Tuple, Dict
|
||||||
|
from .enums import TeXFlavour
|
||||||
|
|
||||||
|
|
||||||
class SimpleTeXFormatter(TexFormatter):
|
class SimpleTeXFormatter(TexFormatter):
|
||||||
|
@ -26,3 +27,10 @@ class SimpleTeXFormatter(TexFormatter):
|
||||||
@property
|
@property
|
||||||
def output_files(self) -> List[str]:
|
def output_files(self) -> List[str]:
|
||||||
return [self.input_file.with_suffix('').name]
|
return [self.input_file.with_suffix('').name]
|
||||||
|
|
||||||
|
def _post_process_line(self, line: str) -> str:
|
||||||
|
if self.config.tex_flavour == TeXFlavour.LaTeX2e:
|
||||||
|
raw = line.rstrip(' %\n')
|
||||||
|
return '' if raw == '' else raw + '%'
|
||||||
|
else:
|
||||||
|
return line.rstrip()
|
||||||
|
|
|
@ -105,8 +105,15 @@ class TexFormatter(PyTeXFormatter, ABC):
|
||||||
self.line_stream.pop_line()
|
self.line_stream.pop_line()
|
||||||
self.line_stream.push_lines(res)
|
self.line_stream.push_lines(res)
|
||||||
|
|
||||||
def _shipout_line(self):
|
def _post_process_line(self, line: str) -> str:
|
||||||
line = self.line_stream.pop_line().rstrip()
|
"""
|
||||||
|
Can strip line or add comment symbols etc.
|
||||||
|
:param line: Line, potentially with trailing newline
|
||||||
|
:return: Line without newline symbol
|
||||||
|
"""
|
||||||
|
return line.rstrip()
|
||||||
|
|
||||||
|
def _shipout_line(self, line):
|
||||||
self.write_line(line + '\n')
|
self.write_line(line + '\n')
|
||||||
|
|
||||||
def write_line(self, line: str):
|
def write_line(self, line: str):
|
||||||
|
@ -135,7 +142,9 @@ class TexFormatter(PyTeXFormatter, ABC):
|
||||||
self._handle_macro(macro)
|
self._handle_macro(macro)
|
||||||
recent_replacement = True
|
recent_replacement = True
|
||||||
break
|
break
|
||||||
self._shipout_line()
|
self._shipout_line(self._post_process_line(
|
||||||
|
self.line_stream.pop_line()
|
||||||
|
))
|
||||||
|
|
||||||
def format(self, build_dir: Path, overwrite: bool = False) -> List[Tuple[str, FormattingConfig]]:
|
def format(self, build_dir: Path, overwrite: bool = False) -> List[Tuple[str, FormattingConfig]]:
|
||||||
self.open_output_stream(build_dir)
|
self.open_output_stream(build_dir)
|
||||||
|
|
Loading…
Reference in a new issue