Skip to content

Feat/genspec tui#38

Open
fredbi wants to merge 2 commits into
go-openapi:masterfrom
fredbi:feat/genspec-tui
Open

Feat/genspec tui#38
fredbi wants to merge 2 commits into
go-openapi:masterfrom
fredbi:feat/genspec-tui

Conversation

@fredbi

@fredbi fredbi commented Jun 12, 2026

Copy link
Copy Markdown
Member

Change type

Please select: 🆕 New feature or enhancement|🔧 Bug fix'|📃 Documentation update

Short description

Fixes

Full description

Checklist

  • I have signed all my commits with my name and email (see DCO. This does not require a PGP-signed commit
  • I have rebased and squashed my work, so only one commit remains
  • I have added tests to cover my changes.
  • I have properly enriched go doc comments in code.
  • I have properly documented any breaking change.

@fredbi fredbi force-pushed the feat/genspec-tui branch 7 times, most recently from 6edc3d8 to 9c48c39 Compare June 17, 2026 18:49
fredbi and others added 2 commits June 17, 2026 20:53
A bubbletea front-end in a separate module (cmd/genspec-tui) that scans a
Go package set and renders the Swagger spec live as the source changes:
source-tree, spec (JSON/YAML with search) and diagnostics panes, an
fsnotify-debounced whole-scope rescan, a scanner-options popup, a
read-only navigable file viewer with an opt-in editor, mouse focus/scroll
and clipboard copy.

Position-backed cross-reference navigation, uniform on `f` across panes:
spec node ↔ Go source, source line ↔ spec node, and diagnostic → source.
Each is a persistent auto-follow mode — the driver pane keeps focus and
the follower mirrors on every cursor move, with both sides highlighting
the linked node. Built on a caller-owned SpecIndex (rendered line ↔ JSON
pointer) and SourceIndex (pointer ↔ token.Position, nearest-ancestor both
ways); the diagnostics pane is navigable and follows the position carried
on each grammar.Diagnostic.

The spec-side index uses encoding/json/jsontext, so the module REQUIRES
GOEXPERIMENT=jsonv2 to build and test. Kept out of the lean library via
its own go.mod (replace → ../..); bubbletea deps stay off the library.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
Tie cmd/genspec-tui into the repo as a second module via go.work, and add
its CI: a monorepo test workflow, release/tag automation and dependabot,
plus the lint config and .gitignore (go.work.sum is generated, not
committed). The TUI module builds under GOEXPERIMENT=jsonv2 (jsontext);
official binaries/wasm are pinned to go1.26 with the flag, and users
building their own are warned.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
@fredbi fredbi force-pushed the feat/genspec-tui branch from 9c48c39 to 0c2351b Compare June 17, 2026 18:53
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.

1 participant