Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion codeflash/languages/java/formatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import tempfile
from pathlib import Path

_FORMATTER_CACHE: dict[str | None, JavaFormatter] = {}

logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -236,7 +238,7 @@ def format_java_code(source: str, project_root: Path | None = None) -> str:
Formatted source code.

"""
formatter = JavaFormatter(project_root)
formatter = _get_cached_formatter(project_root)
return formatter.format_code(source)


Expand Down Expand Up @@ -327,3 +329,12 @@ def normalize_java_code(source: str) -> str:
normalized_lines.append(stripped)

return "\n".join(normalized_lines)


def _get_cached_formatter(project_root: Path | None) -> JavaFormatter:
key = str(project_root) if project_root is not None else None
fmt = _FORMATTER_CACHE.get(key)
if fmt is None:
fmt = JavaFormatter(project_root)
_FORMATTER_CACHE[key] = fmt
return fmt
6 changes: 3 additions & 3 deletions codeflash/languages/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ def _ensure_languages_registered() -> None:
import contextlib

with contextlib.suppress(ImportError):
from codeflash.languages.python import support as _
from codeflash.languages.python import support as _python_support # noqa: F401

with contextlib.suppress(ImportError):
from codeflash.languages.javascript import support as _
from codeflash.languages.javascript import support as _js_support # noqa: F401

with contextlib.suppress(ImportError):
from codeflash.languages.java import support as _
from codeflash.languages.java import support as _java_support # noqa: F401

_languages_registered = True

Expand Down
Loading