[PR #656] [MERGED] text-buffer: encapsulate internals behind accessors #1470

Closed
opened 2026-03-14 09:38:27 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/anomalyco/opentui/pull/656
Author: @simonklee
Created: 2/9/2026
Status: Merged
Merged: 2/10/2026
Merged by: @kommander

Base: mainHead: pr1-core-encapsulation


📝 Commits (2)

  • 2f5ef1a text-buffer: encapsulate internals behind accessor API
  • 2a3fb1c Merge branch 'main' into pr1-core-encapsulation

📊 Changes

12 files changed (+483 additions, -406 deletions)

View changed files

📝 packages/core/src/zig/buffer.zig (+8 -7)
📝 packages/core/src/zig/edit-buffer.zig (+59 -59)
📝 packages/core/src/zig/editor-view.zig (+18 -18)
📝 packages/core/src/zig/lib.zig (+8 -8)
📝 packages/core/src/zig/tests/edit-buffer_test.zig (+24 -24)
📝 packages/core/src/zig/tests/editor-view_test.zig (+2 -2)
📝 packages/core/src/zig/tests/segment-merge.test.zig (+1 -1)
📝 packages/core/src/zig/tests/text-buffer-iterators_test.zig (+90 -90)
📝 packages/core/src/zig/tests/text-buffer-view_test.zig (+7 -7)
📝 packages/core/src/zig/tests/text-buffer_test.zig (+132 -132)
📝 packages/core/src/zig/text-buffer-view.zig (+21 -29)
📝 packages/core/src/zig/text-buffer.zig (+113 -29)

📄 Description

Stop view, render, and edit layers from reaching into rope, mem_registry,
allocator, tab_width, and width_method fields directly. All external access
now goes through accessor methods.

This decouples the read/render paths from the rope data structure, which is
the prerequisite for making UnifiedTextBuffer generic over backend type.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/anomalyco/opentui/pull/656 **Author:** [@simonklee](https://github.com/simonklee) **Created:** 2/9/2026 **Status:** ✅ Merged **Merged:** 2/10/2026 **Merged by:** [@kommander](https://github.com/kommander) **Base:** `main` ← **Head:** `pr1-core-encapsulation` --- ### 📝 Commits (2) - [`2f5ef1a`](https://github.com/anomalyco/opentui/commit/2f5ef1a653e4ccda5856dd93b376ca30b8354290) text-buffer: encapsulate internals behind accessor API - [`2a3fb1c`](https://github.com/anomalyco/opentui/commit/2a3fb1c240a8f13288a926ad45c3e89c468ce1e5) Merge branch 'main' into pr1-core-encapsulation ### 📊 Changes **12 files changed** (+483 additions, -406 deletions) <details> <summary>View changed files</summary> 📝 `packages/core/src/zig/buffer.zig` (+8 -7) 📝 `packages/core/src/zig/edit-buffer.zig` (+59 -59) 📝 `packages/core/src/zig/editor-view.zig` (+18 -18) 📝 `packages/core/src/zig/lib.zig` (+8 -8) 📝 `packages/core/src/zig/tests/edit-buffer_test.zig` (+24 -24) 📝 `packages/core/src/zig/tests/editor-view_test.zig` (+2 -2) 📝 `packages/core/src/zig/tests/segment-merge.test.zig` (+1 -1) 📝 `packages/core/src/zig/tests/text-buffer-iterators_test.zig` (+90 -90) 📝 `packages/core/src/zig/tests/text-buffer-view_test.zig` (+7 -7) 📝 `packages/core/src/zig/tests/text-buffer_test.zig` (+132 -132) 📝 `packages/core/src/zig/text-buffer-view.zig` (+21 -29) 📝 `packages/core/src/zig/text-buffer.zig` (+113 -29) </details> ### 📄 Description Stop view, render, and edit layers from reaching into rope, mem_registry, allocator, tab_width, and width_method fields directly. All external access now goes through accessor methods. This decouples the read/render paths from the rope data structure, which is the prerequisite for making UnifiedTextBuffer generic over backend type. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-14 09:38:27 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/opentui#1470
No description provided.