From adb168d453ed1e77ad4dffc3d754af6dc2c971de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Thu, 17 Feb 2022 20:46:39 +0100 Subject: [PATCH] add formatter macros for \begin{macrocode} --- PyTeX/format/default_macros.py | 4 +++- PyTeX/format/macros.py | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/PyTeX/format/default_macros.py b/PyTeX/format/default_macros.py index a5c8d9d..8318b6f 100644 --- a/PyTeX/format/default_macros.py +++ b/PyTeX/format/default_macros.py @@ -29,7 +29,9 @@ def get_default_macros(tex_flavour: TeXFlavour): make_simple_macro('repodirty', FormatterProperty.repo_dirty), make_simple_macro('sourcename', FormatterProperty.source_file_name), ConfigEndMacro(), - ConfigBeginMacro() + ConfigBeginMacro(), + MacroCodeBeginMacro(), + MacroCodeBeginMacro(), ] tex2 = [ ArgumentMacro( diff --git a/PyTeX/format/macros.py b/PyTeX/format/macros.py index c08a286..6aede42 100644 --- a/PyTeX/format/macros.py +++ b/PyTeX/format/macros.py @@ -138,6 +138,28 @@ class ConfigEndMacro(SingleLineMacro): return [] +class MacroCodeBeginMacro(SingleLineMacro): + def __init__(self): + super(MacroCodeBeginMacro, self).__init__(r'\begin{macrocode}') + + def apply(self, line: str, formatter) -> Union[str, List[str]]: + if not formatter.mode == FormatterMode.meta: + raise NotImplementedError + formatter.mode = FormatterMode.macrocode + return r'% \begin{macrocode}' + + +class MacroCodeEndMacro(SingleLineMacro): + def __init__(self): + super(MacroCodeEndMacro, self).__init__(r'\end{macrocode}') + + def apply(self, line: str, formatter) -> Union[str, List[str]]: + if not formatter.mode == FormatterMode.macrocode: + raise NotImplementedError + formatter.mode = FormatterMode.meta + return r'% \end{macrocode}' + + class ArgumentMacro(Macro): def __init__( self,