Skip to content

feat: Export TerminalCanvas, BorderStyle, and AsciiLayoutEngine - #91

Merged
FXschwartz merged 3 commits into
Norbert515:mainfrom
serverpod:export-symbols
Aug 26, 2026
Merged

feat: Export TerminalCanvas, BorderStyle, and AsciiLayoutEngine#91
FXschwartz merged 3 commits into
Norbert515:mainfrom
serverpod:export-symbols

Conversation

@FXschwartz

Copy link
Copy Markdown
Collaborator

Adds three already public by association symbols to nocterm's public API:

  • TerminalCanvas and BorderStyle (lib/nocterm.dart)
  • AsciiLayoutEngine (lib/src/components/ascii_text.dart, next to the existing AsciiLayoutConfig / AsciiLayoutResult exports)

These types are already part of nocterm's public surface but weren't exported:

Downstream packages that use these have to via import 'package:nocterm/src/...' with // ignore: implementation_imports.

This is mainly to get Copilot to stop complaining about this on our PR's 😅

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR formalizes nocterm’s public API surface by exporting three symbols that were already effectively public via type leakage, allowing downstream users to avoid implementation_imports of lib/src/....

Changes:

  • Re-export AsciiLayoutEngine alongside the existing AsciiLayoutConfig / AsciiLayoutResult exports.
  • Export TerminalCanvas and BorderStyle from the main package:nocterm/nocterm.dart entrypoint.
  • Keep exports narrowly scoped via show to avoid unintentionally widening the public surface.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
lib/src/components/ascii_text.dart Expands the convenience re-export to include AsciiLayoutEngine.
lib/nocterm.dart Exposes TerminalCanvas and BorderStyle as first-class public API exports.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@nielsenko

Copy link
Copy Markdown
Collaborator

@FXschwartz These classes are already used on public interfaces. Seems fine to export them, but this introduces some redundant imports in the code base that causes the analyze CI step to fail. Could you fix those?

@FXschwartz

Copy link
Copy Markdown
Collaborator Author

@nielsenko Imports removed! Ready for a final review

@nielsenko

Copy link
Copy Markdown
Collaborator

@nielsenko Imports removed! Ready for a final review

There is still an analyzer failure on CI

@FXschwartz

Copy link
Copy Markdown
Collaborator Author

@nielsenko CI is now passing! It was an error that currently exists on main.

@nielsenko nielsenko left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@FXschwartz
FXschwartz merged commit fec14c2 into Norbert515:main Aug 26, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: Drop nocterm implementation imports once upstream exports land

3 participants