Skip to content

[codex] Implement D1 tab handling#47

Open
tig wants to merge 2 commits intodevelopfrom
experiment/codex/d1-tabs
Open

[codex] Implement D1 tab handling#47
tig wants to merge 2 commits intodevelopfrom
experiment/codex/d1-tabs

Conversation

@tig
Copy link
Copy Markdown
Member

@tig tig commented May 9, 2026

Summary

Refs #37 and #43.

This chooses option (b) from the experiment prompt: implement the VisualLineBuilder slice needed for D1, then implement tab handling on top of it. This is not the full B1/B2 pipeline; cache invalidation, folding markers, and line-number background migration remain out of scope and are called out in the final run report.

Changes:

  • add grapheme-aware visual-line elements, including TabElement
  • rename Editor.TabWidth to IndentationSize and add ConvertTabsToSpaces / ShowTabs
  • route editor drawing and tab hit-testing through visual-line mapping
  • add Tab, Shift+Tab, block indent/unindent, and indentation-aware Backspace
  • update ted status/options UI for indentation size, visible tabs, and spaces-on-tab
  • add public API notes and the required Codex final report

Validation

  • dotnet build Terminal.Gui.Text.slnx
  • dotnet run --project tests/Terminal.Gui.Text.Tests
  • dotnet run --project tests/Terminal.Gui.Editor.Tests
  • dotnet run --project tests/Terminal.Gui.Editor.IntegrationTests
  • dotnet format Terminal.Gui.Text.slnx --verify-no-changes --exclude third_party/

Note: dotnet tool restore succeeded. dotnet jb cleanupcode Terminal.Gui.Text.slnx --profile="Full Cleanup" failed because the JetBrains CLI did not recognize the solution cleanup profile in this .slnx checkout; cleanup against the touched projects ran with the built-in reformat profile.

@tig
Copy link
Copy Markdown
Member Author

tig commented May 9, 2026

CI note: macOS and Windows passed on run 25613380302. Ubuntu fails in the ReSharper cleanupcode step before tests with No items were found to cleanup from dotnet jb cleanupcode Terminal.Gui.Text.slnx --profile="Built-in: Full Cleanup" --no-build --exclude="third_party/**/*".

I checked current develop run 25613103283 and it fails the same way, so I’m treating this as an existing workflow/tooling issue. Per the task constraints I did not edit .github/workflows; the same rationale is recorded in specs/runs/test-codex-final.md.

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