Skip to content
Snippets Groups Projects
Commit f56a6c68 authored by Frederik Hennig's avatar Frederik Hennig
Browse files

refactored indentation

parent e02732bf
No related merge requests found
Pipeline #57753 passed with stages
in 3 minutes and 25 seconds
...@@ -7,11 +7,10 @@ from os import path ...@@ -7,11 +7,10 @@ from os import path
from enum import Enum, auto from enum import Enum, auto
from dataclasses import dataclass, replace, asdict, InitVar from dataclasses import dataclass, replace, asdict, InitVar
from argparse import ArgumentParser from argparse import ArgumentParser
from textwrap import indent
from importlib import util as iutil from importlib import util as iutil
from jinja2.filters import do_indent
from .exceptions import SfgException from .exceptions import SfgException
HEADER_FILE_EXTENSIONS = {'h', 'hpp'} HEADER_FILE_EXTENSIONS = {'h', 'hpp'}
...@@ -39,7 +38,8 @@ class SfgCodeStyle: ...@@ -39,7 +38,8 @@ class SfgCodeStyle:
indent_width: int = 2 indent_width: int = 2
def indent(self, s: str): def indent(self, s: str):
return do_indent(s, self.indent_width, first=True) prefix = " " * self.indent_width
return indent(s, prefix)
@dataclass @dataclass
......
...@@ -15,7 +15,7 @@ class SfgContext: ...@@ -15,7 +15,7 @@ class SfgContext:
self._code_namespace: str | None = None self._code_namespace: str | None = None
# Source Components # Source Components
self._prelude: list[str] = [] self._prelude: str = ""
self._includes: set[SfgHeaderInclude] = set() self._includes: set[SfgHeaderInclude] = set()
self._definitions: list[str] = [] self._definitions: list[str] = []
self._kernel_namespaces = {self._default_kernel_namespace.name: self._default_kernel_namespace} self._kernel_namespaces = {self._default_kernel_namespace.name: self._default_kernel_namespace}
...@@ -58,12 +58,19 @@ class SfgContext: ...@@ -58,12 +58,19 @@ class SfgContext:
# Prelude, Includes, Definitions, Namespace # Prelude, Includes, Definitions, Namespace
# ---------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------
def prelude(self) -> Generator[str, None, None]: @property
def prelude_comment(self) -> str:
"""The prelude is a comment block printed at the top of both generated files.""" """The prelude is a comment block printed at the top of both generated files."""
yield from self._prelude return self._prelude
def append_to_prelude(self, code_str: str): def append_to_prelude(self, code_str: str):
self._prelude.append(code_str) if self._prelude:
self._prelude += "\n"
self._prelude += code_str
if not code_str.endswith("\n"):
self._prelude += "\n"
def includes(self) -> Generator[SfgHeaderInclude, None, None]: def includes(self) -> Generator[SfgHeaderInclude, None, None]:
"""Includes of headers. Public includes are added to the header file, private includes """Includes of headers. Public includes are added to the header file, private includes
......
from typing import cast from typing import cast
from jinja2 import Environment, PackageLoader, StrictUndefined from jinja2 import Environment, PackageLoader, StrictUndefined
from textwrap import indent
from os import path from os import path
...@@ -59,13 +60,7 @@ class BasicCpuEmitter: ...@@ -59,13 +60,7 @@ class BasicCpuEmitter:
def get_prelude_comment(ctx: SfgContext): def get_prelude_comment(ctx: SfgContext):
prelude_lines = [] if not ctx.prelude_comment:
for p in ctx.prelude():
prelude_lines += p.splitlines()
prelude_lines += [""] # empty line in-between
prelude_lines = prelude_lines[:-1]
if not prelude_lines:
return "" return ""
return "\n".join(["/**"] + [f"* {line}" for line in prelude_lines] + ["*/"]) return "/*\n" + indent(ctx.prelude_comment, "* ", predicate=lambda _: True) + "*/\n"
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment