• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / revdiff / 24277672794
90%

Build:
DEFAULT BRANCH: master
Ran 11 Apr 2026 07:30AM UTC
Jobs 1
Files 37
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Apr 2026 07:29AM UTC coverage: 88.4% (+0.2%) from 88.217%
24277672794

push

github

web-flow
refactor(ui): extract style sub-package with Resolver/Renderer/SGR (#92)

* docs: add style extraction implementation plan

Add plan for extracting color/style logic from app/ui into
dedicated app/ui/style sub-package with Resolver, Renderer,
and SGR types. Include go-pkgz/enum dependency.

* feat(style): add style sub-package with Resolver, Renderer, SGR types

Create app/ui/style/ package containing:
- Color type with HSL helpers and hex-to-ANSI conversion
- colorKey/styleKey enums via go-pkgz/enum
- Colors struct with normalizeColors for theme color management
- Resolver for static and runtime style/color lookups
- Renderer for compound ANSI assembly (annotations, cursor, status bar)
- SGR processor for ANSI state tracking across wrap-mode continuation lines

* refactor(ui): migrate all UI files to style sub-package API

Wire Resolver, Renderer, and SGR into Model and main.go.
Migrate all UI files (view, diffview, collapsed, filetree,
annotate, annotlist, handlers, mdtoc, themeselect) from
inline color/style logic to style package API calls.
Delete old styles.go and colorutil.go. Convert Colors
helpers to methods. Add consumer-side style interfaces.

* refactor(ui): inject style dependencies via interfaces and ModelConfig

Replace concrete style types with consumer-side interfaces
(styleResolver, styleRenderer, sgrProcessor) in Model.
Consolidate NewModel to accept single ModelConfig struct
with all dependencies injected explicitly. Fold deps.go
into model.go.

* docs(plan): reflect ansi.go merged into color.go

An early draft of the plan scoped a separate ansi.go + ansi_test.go for
the Write helper, private ansiColor, and hexVal. During implementation
those were consolidated into color.go / color_test.go because they are
tightly-related ANSI-output machinery that belongs next to the Color
type — splitting them fragmented a conceptual unit.

Update the plan to reflect what actually shipped:
- file layout: remove ansi.go / ansi_test.go lines, expand... (continued)

880 of 996 new or added lines in 19 files covered. (88.35%)

1 existing line in 1 file now uncovered.

6066 of 6862 relevant lines covered (88.4%)

382.9 hits per line

Uncovered Changes

Lines Coverage ∆ File
43
51.43
-1.51% app/main.go
25
60.32
app/ui/style/color_key_enum.go
25
73.12
app/ui/style/style_key_enum.go
12
86.51
-3.42% app/ui/model.go
3
71.13
2.38% app/ui/themeselect.go
2
96.33
-0.02% app/ui/annotlist.go
2
95.93
2.94% app/ui/diffview.go
2
97.92
app/ui/style/sgr.go
1
94.21
0.13% app/ui/collapsed.go
1
98.45
app/ui/style/color.go

Coverage Regressions

Lines Coverage ∆ File
1
96.33
-0.02% app/ui/annotlist.go
Jobs
ID Job ID Ran Files Coverage
1 24277672794.1 11 Apr 2026 07:30AM UTC 37
88.4
GitHub Action Run
Source Files on build 24277672794
  • Tree
  • List 37
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 317cd37e on github
  • Prev Build on master (#24269886359)
  • Next Build on master (#24277753967)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc