| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(website): add live demo links and corresponding tests for showcases | 1 个月前 | |
Update dependencies and refactor editor scroll handling - Updated MoUI dependencies to version 0.2.0 for improved features and stability. - Refactored editor scroll handling in editor_view.mbt to use Point for scroll state. - Removed unused state import in moon.pkg. - Adjusted pkg.generated.mbti to reflect changes in scroll state type. - Modified playground_model.mbt to accommodate new scroll handling logic. - Updated compiler-worker.js to use the new moui_web_renderer instead of webgpu_adapter. - Changed script imports in index.html files to reference the updated renderer. | 1 个月前 | |
Refactor code for improved readability and consistency - Adjusted formatting in text_history.mbt for better alignment and clarity. - Simplified expressions in text_layout.mbt and text_paragraph_cache.mbt for enhanced readability. - Streamlined function parameters and return values in various test files to maintain consistency. - Improved the layout and structure of test cases in text_area_layout.mbt and text_area_viewport.mbt for better organization. - Enhanced clarity in rich text editor files by refining function definitions and test cases. - General code cleanup across multiple files to ensure uniformity in style and formatting. | 6 天前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
refactor: move rich text and markdown to moui_richtext | 2 个月前 | |
fix: fmt code | 15 天前 | |
Enhance Markdown Editor with Edit Range Tracking - Added edit_range to various markdown editor functions to track the character range affected by edits. - Updated functions in commands_code.mbt, commands_inline.mbt, commands_table_columns.mbt, commands_table_rows.mbt, commands_toc_refs.mbt, editor_input_transforms.mbt, editor_model.mbt, editor_selection.mbt, editor_session.mbt, input_blocks.mbt, input_blocks_code.mbt, input_blocks_ordered.mbt, input_delete_merge.mbt, input_pairs.mbt, and rich_text_document.mbt to include this new parameter. - Introduced tests in rich_text_input_fast_path_wbtest.mbt to verify the correctness of the edit range tracking and its impact on transaction construction. - Improved performance by allowing direct transaction construction from recorded edit ranges, bypassing the need for O(doc) common-prefix/suffix diffs in certain scenarios. | 3 天前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
Enhance Markdown Editor with Edit Range Tracking - Added edit_range to various markdown editor functions to track the character range affected by edits. - Updated functions in commands_code.mbt, commands_inline.mbt, commands_table_columns.mbt, commands_table_rows.mbt, commands_toc_refs.mbt, editor_input_transforms.mbt, editor_model.mbt, editor_selection.mbt, editor_session.mbt, input_blocks.mbt, input_blocks_code.mbt, input_blocks_ordered.mbt, input_delete_merge.mbt, input_pairs.mbt, and rich_text_document.mbt to include this new parameter. - Introduced tests in rich_text_input_fast_path_wbtest.mbt to verify the correctness of the edit range tracking and its impact on transaction construction. - Improved performance by allowing direct transaction construction from recorded edit ranges, bypassing the need for O(doc) common-prefix/suffix diffs in certain scenarios. | 3 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
feat: Enhance rich text document handling with image galleries and alignment options - Added support for image width fractions in RichTextRun to allow responsive image sizing. - Introduced line alignment options in RichTextBlock for better text layout control. - Updated rich text document view to accommodate block width for accurate rendering. - Implemented line height calculations that consider available width for rich text blocks. - Developed a new Markdown HTML image gallery parser to handle image galleries in Markdown. - Ensured that image sources in Markdown are resolved correctly to use WebP assets from GitHub. - Added regression tests to verify the functionality of new features and maintain existing behavior. | 1 个月前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
refactor: clean up unused function and comments in editor model and text store | 3 天前 | |
chore: normalize formatting, refresh generated interfaces, ratchet budgets Bring the tree in line with moon 0.1.20260824: apply moon fmt output (unused pkg import aliases and wrapping), regenerate the committed pkg.generated.mbti interfaces that had drifted, and ratchet the five registered source-file-policy budgets down to their current measured logic-line counts. Surfaces while validating the Markdown Editor excision; the overflows and interface drift predate it. | 3 天前 | |
perf(richtext): optimize hot-path allocations and text store updates Implement in-place updates for source ranges and text segments to reduce allocation overhead during incremental edits. - Make MarkdownSourceRange fields mutable to allow in-place updates of block ranges during suffix shifts, avoiding massive allocation spikes on large documents. - Add a fast path to MarkdownDocumentTextStore::edit for edits contained within a single segment, performing in-place segment updates and tail offset shifts. - Optimize markdown_document_height_index to use the live text store for bounded window reads, avoiding O(document) character offset scans. - Replace full source string encoding in the view facade's declaration key with a length/digest pair to prevent O(document) UTF-8 passes and memory comparisons on every keystroke. | 4 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
perf(editor): O(1)-per-keystroke bookkeeping, merged open scans, cached text lengths Stress-fixture (5MB / 100k blocks) benchmark deltas, measured through the moui-md adapters: - input-to-visible 90-97ms -> 45-47ms (P95 98-139ms -> 49-53ms) - open first-interactive 255-278ms -> 228-271ms - per-frame work during input 13ms -> 4.6ms Session bookkeeping (editor_session.mbt): - the incremental apply splices the shared editor-block table, block table, and height index in place (zero per-suffix-block allocations) instead of rebuilding all three arrays per keystroke; MarkdownEditor Block / MarkdownDocumentBlock / height metrics carry mutable absolute ranges under the same shared-mutable contract as the text store - dirty-range detection binary-searches the first touching block instead of scanning all blocks - scroll geometry entries are shared and rebased in place after an edit (window splice + Fenwick point updates), so per-keystroke digest churn no longer forces a full block walk; new hot_path_scroll_geometry_rebase _hits counter plus a whitebox test pinning rebase == full walk - block fingerprints are 64-bit kind-tag + content-hash mixes instead of per-block kind-key strings (no allocation on open) - the open path merges the whole-source digest scan and the per-block newline-count scan into one pass (bit-identical digest) Text layer (editor_model.mbt, rich_text_editor_helpers.mbt): - two-slot physical-identity text-length memo kills the previous/new source cache thrash that re-decoded the whole document per keystroke - the caret/overlay per-frame text_length routes through the same memo Core text input (moui/core/text_editing.mbt): - scan_text_for_range stops once both range endpoints resolve; an early-document keystroke no longer walks the whole 5MB control text | 5 天前 | |
chore: normalize formatting, refresh generated interfaces, ratchet budgets Bring the tree in line with moon 0.1.20260824: apply moon fmt output (unused pkg import aliases and wrapping), regenerate the committed pkg.generated.mbti interfaces that had drifted, and ratchet the five registered source-file-policy budgets down to their current measured logic-line counts. Surfaces while validating the Markdown Editor excision; the overflows and interface drift predate it. | 3 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
Enhance Markdown Editor with Edit Range Tracking - Added edit_range to various markdown editor functions to track the character range affected by edits. - Updated functions in commands_code.mbt, commands_inline.mbt, commands_table_columns.mbt, commands_table_rows.mbt, commands_toc_refs.mbt, editor_input_transforms.mbt, editor_model.mbt, editor_selection.mbt, editor_session.mbt, input_blocks.mbt, input_blocks_code.mbt, input_blocks_ordered.mbt, input_delete_merge.mbt, input_pairs.mbt, and rich_text_document.mbt to include this new parameter. - Introduced tests in rich_text_input_fast_path_wbtest.mbt to verify the correctness of the edit range tracking and its impact on transaction construction. - Improved performance by allowing direct transaction construction from recorded edit ranges, bypassing the need for O(doc) common-prefix/suffix diffs in certain scenarios. | 3 天前 | |
Enhance Markdown Editor with Edit Range Tracking - Added edit_range to various markdown editor functions to track the character range affected by edits. - Updated functions in commands_code.mbt, commands_inline.mbt, commands_table_columns.mbt, commands_table_rows.mbt, commands_toc_refs.mbt, editor_input_transforms.mbt, editor_model.mbt, editor_selection.mbt, editor_session.mbt, input_blocks.mbt, input_blocks_code.mbt, input_blocks_ordered.mbt, input_delete_merge.mbt, input_pairs.mbt, and rich_text_document.mbt to include this new parameter. - Introduced tests in rich_text_input_fast_path_wbtest.mbt to verify the correctness of the edit range tracking and its impact on transaction construction. - Improved performance by allowing direct transaction construction from recorded edit ranges, bypassing the need for O(doc) common-prefix/suffix diffs in certain scenarios. | 3 天前 | |
perf(richtext): open path — line views, merged counts, hashed fingerprints markdown_editor_lines now returns StringView lines instead of a copied String per line (the dominant open cost on the stress fixture); the shell classifiers take StringView (String passes as a subtype) and only materialize where a line's text actually becomes block text. The same line scan now also accumulates the document word/line counts, which the session builder reads through a memo instead of two more whole-source passes. Block fingerprints became kind key + 64-bit content hash instead of the concatenated block text, removing one full-document copy into ~100k strings per open. | 5 天前 | |
Enhance Markdown Editor with Edit Range Tracking - Added edit_range to various markdown editor functions to track the character range affected by edits. - Updated functions in commands_code.mbt, commands_inline.mbt, commands_table_columns.mbt, commands_table_rows.mbt, commands_toc_refs.mbt, editor_input_transforms.mbt, editor_model.mbt, editor_selection.mbt, editor_session.mbt, input_blocks.mbt, input_blocks_code.mbt, input_blocks_ordered.mbt, input_delete_merge.mbt, input_pairs.mbt, and rich_text_document.mbt to include this new parameter. - Introduced tests in rich_text_input_fast_path_wbtest.mbt to verify the correctness of the edit range tracking and its impact on transaction construction. - Improved performance by allowing direct transaction construction from recorded edit ranges, bypassing the need for O(doc) common-prefix/suffix diffs in certain scenarios. | 3 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
refactor(core): extract shared text helpers and tighten richtext visibility | 2 个月前 | |
feat: add WGPU support for Markdown Editor on Linux, macOS, and Windows - Introduced WGPU renderer for Markdown Editor on Linux, macOS, and Windows platforms. - Created new package files for Linux and macOS WGPU implementations. - Implemented main entry points for macOS and Windows WGPU versions, allowing command-line document opening. - Enhanced the Markdown Editor's runtime to support WGPU rendering. - Added caching mechanisms for parsing Markdown blocks and editor blocks to improve performance. - Implemented tests for grapheme boundaries and block key uniqueness in Markdown content. - Updated existing modules to integrate new features and ensure compatibility with WGPU rendering. | 6 天前 | |
perf(richtext): open path — line views, merged counts, hashed fingerprints markdown_editor_lines now returns StringView lines instead of a copied String per line (the dominant open cost on the stress fixture); the shell classifiers take StringView (String passes as a subtype) and only materialize where a line's text actually becomes block text. The same line scan now also accumulates the document word/line counts, which the session builder reads through a memo instead of two more whole-source passes. Block fingerprints became kind key + 64-bit content hash instead of the concatenated block text, removing one full-document copy into ~100k strings per open. | 5 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
perf(richtext): open path — line views, merged counts, hashed fingerprints markdown_editor_lines now returns StringView lines instead of a copied String per line (the dominant open cost on the stress fixture); the shell classifiers take StringView (String passes as a subtype) and only materialize where a line's text actually becomes block text. The same line scan now also accumulates the document word/line counts, which the session builder reads through a memo instead of two more whole-source passes. Block fingerprints became kind key + 64-bit content hash instead of the concatenated block text, removing one full-document copy into ~100k strings per open. | 5 天前 | |
feat(moui_richtext): add intrinsic size lookup for markdown images and enhance image handling in rich text | 1 天前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
fix(markdown_viewer): optimize layout height calculation for better performance | 9 天前 | |
feat(moui_richtext): implement block-view contribution registry for markdown Introduce a MarkdownBlockView registry to allow specialized rendering projections (like HTML image galleries) to plug into the rich-text conversion process without modifying the core block model. This change includes: - A new MarkdownBlockView system for decoupled block projections. - Improved HTML block parsing with nesting-aware depth tracking to correctly handle containers like <div> and <center>. - A lookahead mechanism to prevent unclosed HTML containers from incorrectly swallowing subsequent blocks. - Refactored markdown_html_image_gallery to be a registered view contribution. - Added regression tests for the new view registry and nesting logic. docs: update README with improved screenshot layout | 2 天前 | |
Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 16 天前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
feat(moui_richtext): add intrinsic size lookup for markdown images and enhance image handling in rich text | 1 天前 | |
perf(editor): O(1)-per-keystroke bookkeeping, merged open scans, cached text lengths Stress-fixture (5MB / 100k blocks) benchmark deltas, measured through the moui-md adapters: - input-to-visible 90-97ms -> 45-47ms (P95 98-139ms -> 49-53ms) - open first-interactive 255-278ms -> 228-271ms - per-frame work during input 13ms -> 4.6ms Session bookkeeping (editor_session.mbt): - the incremental apply splices the shared editor-block table, block table, and height index in place (zero per-suffix-block allocations) instead of rebuilding all three arrays per keystroke; MarkdownEditor Block / MarkdownDocumentBlock / height metrics carry mutable absolute ranges under the same shared-mutable contract as the text store - dirty-range detection binary-searches the first touching block instead of scanning all blocks - scroll geometry entries are shared and rebased in place after an edit (window splice + Fenwick point updates), so per-keystroke digest churn no longer forces a full block walk; new hot_path_scroll_geometry_rebase _hits counter plus a whitebox test pinning rebase == full walk - block fingerprints are 64-bit kind-tag + content-hash mixes instead of per-block kind-key strings (no allocation on open) - the open path merges the whole-source digest scan and the per-block newline-count scan into one pass (bit-identical digest) Text layer (editor_model.mbt, rich_text_editor_helpers.mbt): - two-slot physical-identity text-length memo kills the previous/new source cache thrash that re-decoded the whole document per keystroke - the caret/overlay per-frame text_length routes through the same memo Core text input (moui/core/text_editing.mbt): - scan_text_for_range stops once both range endpoints resolve; an early-document keystroke no longer walks the whole 5MB control text | 5 天前 | |
perf(richtext): segment-based text store as the session source of truth MarkdownDocumentTextStore holds the document as contiguous segments with a per-revision materialized whole-source cache. Edits splice only the covered segments and shift the tail offsets in place; the whole string materializes only when a reader asks for it. MarkdownDocumentSession.source moves from an eagerly stored String field to a materializing view over the store (text_store + source()), so the coming per-keystroke path can mutate text O(local) instead of rebuilding and re-hashing multi-megabyte strings. Behavior is unchanged for now: every session builder still holds the materialized text and seeds the store zero-copy. Includes the temporary keystroke-path timing probes (editor_input_probe_temp + capture call sites), scheduled for removal with the benchmark rerun. | 5 天前 | |
Enhance Markdown Editor with Edit Range Tracking - Added edit_range to various markdown editor functions to track the character range affected by edits. - Updated functions in commands_code.mbt, commands_inline.mbt, commands_table_columns.mbt, commands_table_rows.mbt, commands_toc_refs.mbt, editor_input_transforms.mbt, editor_model.mbt, editor_selection.mbt, editor_session.mbt, input_blocks.mbt, input_blocks_code.mbt, input_blocks_ordered.mbt, input_delete_merge.mbt, input_pairs.mbt, and rich_text_document.mbt to include this new parameter. - Introduced tests in rich_text_input_fast_path_wbtest.mbt to verify the correctness of the edit range tracking and its impact on transaction construction. - Improved performance by allowing direct transaction construction from recorded edit ranges, bypassing the need for O(doc) common-prefix/suffix diffs in certain scenarios. | 3 天前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
Refactor and enhance Markdown editor and Skia renderer functionality - Improved Markdown editor's target kind determination logic for better clarity. - Updated runtime function signature to include an optional initial document path. - Added documentation for GPU surface functions and improved hit testing. - Enhanced markdown quote block text parsing to streamline content handling. - Adjusted test cases for better readability and consistency in Markdown parsing. - Introduced a new copy_from method for Skia surfaces to facilitate pixel copying. - Implemented tests for GPU surface resizing and backing surface behavior in Metal. - Enhanced renderer to manage GPU backing surfaces effectively, ensuring pixel preservation. - Updated text rendering functions for improved handling of CJK and mixed text. - Added comprehensive tests for effective damage policies and GPU backing behavior. | 8 天前 | |
chore: normalize formatting, refresh generated interfaces, ratchet budgets Bring the tree in line with moon 0.1.20260824: apply moon fmt output (unused pkg import aliases and wrapping), regenerate the committed pkg.generated.mbti interfaces that had drifted, and ratchet the five registered source-file-policy budgets down to their current measured logic-line counts. Surfaces while validating the Markdown Editor excision; the overflows and interface drift predate it. | 3 天前 | |
chore: normalize formatting, refresh generated interfaces, ratchet budgets Bring the tree in line with moon 0.1.20260824: apply moon fmt output (unused pkg import aliases and wrapping), regenerate the committed pkg.generated.mbti interfaces that had drifted, and ratchet the five registered source-file-policy budgets down to their current measured logic-line counts. Surfaces while validating the Markdown Editor excision; the overflows and interface drift predate it. | 3 天前 | |
chore: normalize formatting, refresh generated interfaces, ratchet budgets Bring the tree in line with moon 0.1.20260824: apply moon fmt output (unused pkg import aliases and wrapping), regenerate the committed pkg.generated.mbti interfaces that had drifted, and ratchet the five registered source-file-policy budgets down to their current measured logic-line counts. Surfaces while validating the Markdown Editor excision; the overflows and interface drift predate it. | 3 天前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
chore: normalize formatting, refresh generated interfaces, ratchet budgets Bring the tree in line with moon 0.1.20260824: apply moon fmt output (unused pkg import aliases and wrapping), regenerate the committed pkg.generated.mbti interfaces that had drifted, and ratchet the five registered source-file-policy budgets down to their current measured logic-line counts. Surfaces while validating the Markdown Editor excision; the overflows and interface drift predate it. | 3 天前 | |
feat(moui): add text_selection_origin to track pointer selection start Add text_selection_origin to TextControlStateContext and ElementControlState to track the screen position where a pointer selection gesture begins. This prevents phantom selection expansion caused by view layout changes (like typewriter centering or marker expansion) during a drag by allowing hit-testing against a frozen snapshot of the document at the gesture's anchor point. Includes updates to: - moui/core: added field to generated types and view protocols - moui/runtime: updated element tree state management - moui_richtext: implemented origin tracking and stationary detection in markdown session editor - moui_richtext/tests: added new webtest to verify hit-testing consistency with varying text systems | 22 小时前 | |
Refactor semantics handling and update API surface - Updated semantics structure in test-browser-runtime-events.mjs to use node_id instead of element_id. - Introduced flattenedNodes and fullUpdate functions in test-web-semantics-dom.mjs for better semantics management. - Adjusted API surface classification budgets in api_surface_classification.mbt to reflect new counts for various categories. - Enhanced validation tests in validate_api_surface_wbtest.mbt to ensure updated budget counts are correctly enforced. - Modified validate_harness_invariants to check for a split mobile build pipeline implementation. - Updated compiler-worker.js and main.mbt to accommodate changes in the web_dispatch_semantics_action function signature. - Added new documentation for committed semantics and agent actions in docs-catalog.json. - Updated sitemap to include new documentation paths. | 1 个月前 | |
Update dependencies and refactor editor scroll handling - Updated MoUI dependencies to version 0.2.0 for improved features and stability. - Refactored editor scroll handling in editor_view.mbt to use Point for scroll state. - Removed unused state import in moon.pkg. - Adjusted pkg.generated.mbti to reflect changes in scroll state type. - Modified playground_model.mbt to accommodate new scroll handling logic. - Updated compiler-worker.js to use the new moui_web_renderer instead of webgpu_adapter. - Changed script imports in index.html files to reference the updated renderer. | 1 个月前 | |
style(moui_richtext): reformat code and improve layout consistency Perform extensive code style updates across the moui_richtext module to improve readability and maintain consistent formatting. This includes: - Reformatting long function calls and complex expressions into multi-line structures. - Standardizing indentation and whitespace in MarkdownEditTransaction and MarkdownBlockView logic. - Cleaning up block-level formatting in command handlers for blocks, code, inline, and tables. - Improving the layout of test files and webtests to follow a more consistent pattern. - Refactoring several single-line expressions into multi-line blocks for better clarity. | 22 小时前 | |
feat(moui): add text_selection_origin to track pointer selection start Add text_selection_origin to TextControlStateContext and ElementControlState to track the screen position where a pointer selection gesture begins. This prevents phantom selection expansion caused by view layout changes (like typewriter centering or marker expansion) during a drag by allowing hit-testing against a frozen snapshot of the document at the gesture's anchor point. Includes updates to: - moui/core: added field to generated types and view protocols - moui/runtime: updated element tree state management - moui_richtext: implemented origin tracking and stationary detection in markdown session editor - moui_richtext/tests: added new webtest to verify hit-testing consistency with varying text systems | 22 小时前 | |
feat(moui): add text_selection_origin to track pointer selection start Add text_selection_origin to TextControlStateContext and ElementControlState to track the screen position where a pointer selection gesture begins. This prevents phantom selection expansion caused by view layout changes (like typewriter centering or marker expansion) during a drag by allowing hit-testing against a frozen snapshot of the document at the gesture's anchor point. Includes updates to: - moui/core: added field to generated types and view protocols - moui/runtime: updated element tree state management - moui_richtext: implemented origin tracking and stationary detection in markdown session editor - moui_richtext/tests: added new webtest to verify hit-testing consistency with varying text systems | 22 小时前 | |
Refactor rich text editor and enhance undo history management - Removed public visibility from rich_text_editor and controlled_rich_text_document_editor functions. - Introduced a new module for managing rich text editor history, implementing a merge window for undo operations to improve user experience. - Added tests for the undo history merge window to ensure correct behavior during text edits, including handling of newlines and paste operations. - Implemented soft-wrap functionality for rich text blocks, ensuring consistent layout and hit-testing across wrapped lines. - Enhanced selection rendering to paint one highlight band per visual line, addressing issues with previous implementations. - Updated markdown session editor to utilize the new text system for improved rendering and interaction. | 8 天前 | |
perf(richtext): segment-based text store as the session source of truth MarkdownDocumentTextStore holds the document as contiguous segments with a per-revision materialized whole-source cache. Edits splice only the covered segments and shift the tail offsets in place; the whole string materializes only when a reader asks for it. MarkdownDocumentSession.source moves from an eagerly stored String field to a materializing view over the store (text_store + source()), so the coming per-keystroke path can mutate text O(local) instead of rebuilding and re-hashing multi-megabyte strings. Behavior is unchanged for now: every session builder still holds the materialized text and seeds the store zero-copy. Includes the temporary keystroke-path timing probes (editor_input_probe_temp + capture call sites), scheduled for removal with the benchmark rerun. | 5 天前 | |
perf(richtext): segment-based text store as the session source of truth MarkdownDocumentTextStore holds the document as contiguous segments with a per-revision materialized whole-source cache. Edits splice only the covered segments and shift the tail offsets in place; the whole string materializes only when a reader asks for it. MarkdownDocumentSession.source moves from an eagerly stored String field to a materializing view over the store (text_store + source()), so the coming per-keystroke path can mutate text O(local) instead of rebuilding and re-hashing multi-megabyte strings. Behavior is unchanged for now: every session builder still holds the materialized text and seeds the store zero-copy. Includes the temporary keystroke-path timing probes (editor_input_probe_temp + capture call sites), scheduled for removal with the benchmark rerun. | 5 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 8 天前 | ||
| 8 天前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 8 天前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 2 个月前 | ||
| 15 天前 | ||
| 3 天前 | ||
| 8 天前 | ||
| 3 天前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 22 小时前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 22 小时前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 22 小时前 | ||
| 8 天前 | ||
| 2 个月前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 5 天前 | ||
| 1 天前 | ||
| 8 天前 | ||
| 9 天前 | ||
| 2 天前 | ||
| 16 天前 | ||
| 8 天前 | ||
| 1 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 8 天前 | ||
| 8 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 22 小时前 | ||
| 3 天前 | ||
| 22 小时前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 22 小时前 | ||
| 8 天前 | ||
| 5 天前 | ||
| 5 天前 |