Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Fixed

- Document facade rendering now uses the same concealed wrapping path for display and full-height `--render` snapshots, preventing dropped wrap-boundary characters and preserving continuation indentation for facade list markers.
- Markdown shortcut typing now remaps the cursor through hidden syntax, so heading and inline formatting conversions do not jump to the wrong facade column.
- Typing `- [ ]` through the rendered bullet facade now converts to a checklist item.
- Empty rendered bullet items now exit cleanly on Enter instead of leaving stray bullet glyphs.
- Backspacing through rendered list and checklist markers now clears or unwraps the structural item instead of corrupting the marker text.
- Drag selection now copies once on mouse release instead of copying repeatedly while dragging.
- Visual selection yanking now supports `y` and the clipboard register form `"+y`.
- Copied full-block selections no longer insert extra blank lines between serialized Markdown blocks.
- Rendered table cells now stay editable after being cleared, and typing at table edges updates the nearest model cell instead of corrupting table source text.
- Table cell editing now escapes typed pipe characters so they remain cell content instead of splitting the row.
- Large document jumps now reuse wrap calculations and keep the viewport responsive when moving to distant lines.

## [0.1.8] - 2026-05-21

Full commit range: [`v0.1.7...v0.1.8`](https://github.com/pacificcodeinc/glass/compare/v0.1.7...v0.1.8)
Expand Down
47 changes: 11 additions & 36 deletions ISSUES.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,15 @@
# Issues
# Current Glass Issues

Bug & feature log for glass.
## Test Coverage

## Rendering
- Add app-level typing tests that drive Glass through key and mouse events.
- Use render snapshots for static layout checks and app harness tests for editing behavior.

- [ ] **Fenced code blocks**: highlight the language identifier (e.g., `rust` in ` ```rust `).
- [x] **Tables**: render Markdown tables.
- [ ] **Strikethrough**: render `~~text~~`, including inside list items.
- [ ] **URL display**: strip unnecessary parts (e.g., `https://`) from bare URLs that lack pretty titles.
- [ ] **Link expansion**: only expand URLs to their real Markdown form on hover, not whenever their line is active in Normal mode.
- [ ] **Inline elements**: fix broken behavior of inline elements across line breaks.
- [ ] **Wiki-links**: render `[[File.md]]` distinctly and support jumping to the linked file.
## Recently Addressed In The v0.2.0 PR

## Editor & Input

- [x] **Mouse support**: click anywhere in the editor to move the cursor.
- [ ] **Vim motions**: achieve full parity with standard Vim motions.
- [ ] **Simple mode**: add a non-Vim editing mode (post-1.0).
- [ ] **Spell check**: add spell-checking support.
- [ ] **Line breaking**: fix general line-breaking bugs.
- [ ] **Search**: in Normal mode, pressing `/` opens a bottom popup to search for text in the current document.
- [ ] **Command bar**: typing `:` in Normal mode opens the status bar for command input. Show a fuzzy-searchable suggestion popup above the status bar with all available commands; use Tab to cycle completions and Up/Down to navigate. Example: `:table` inserts a Markdown table at the cursor. Or `:read` sets the view to read-only without expanding the markdwon when you're active on the line.

## File Management

- [ ] **File picker**: rewrite the fuzzy-find / Command+P picker from scratch.
- [x] **Old picker cleanup**: remove the fuzzy finder, command palette overlay, and Command+P binding before the rewrite.
- [x] **Lazy file creation**: when opening a new file via `glass <new-file>.md`, only create it on disk after `:w` is used.
- [ ] **New file UI**: show the unsaved-change indicator and the target filename (instead of `[no note]`) when opening a non-existent file.

## UI / Status Bar

- [x] **Sidebar branding**: fix the "Glass" text in the sidebar randomly turning red.
- [ ] **Unsaved indicator**: use a white (instead of red) unsaved-change icon next to the filename in the status bar.

## Cursor Behavior

- [x] **`G` motion**: preserve the current column, like `dd` does.
- [x] **Column preservation**: preserve the cursor column when jumping lines with `h`/`j`/arrows/`g`/`gg`.
- Markdown shortcuts now convert reliably through the document model, including `# ` headings and `- [ ]` checklist items.
- Inline Markdown syntax edits route through the shared surface layer instead of corrupting facade text.
- Drag selection copies once on mouse release, and `"+y` copies through the clipboard/register path.
- Full-block Markdown selections no longer add extra blank lines between serialized blocks.
- Rendered table cells stay editable after being cleared, empty cells remain focusable, and typing at table row edges updates the nearest model cell.
- `G` and large visual jumps reuse wrap calculations so larger documents respond more quickly.
2 changes: 1 addition & 1 deletion benchmark.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Indented headings should stay plain:

## Paragraphs And Wrapping

This paragraph is intentionally long so it wraps across several visual rows in a normal terminal width. It includes plain words, punctuation, and a useful search target: glass benchmark needle. Cursor movement should preserve the intended visual column when moving through this wrapped paragraph, and selection should copy the selected text immediately.
This paragraph is intentionally long so it wraps across several visual rows in a normal terminal width. It includes plain words, punctuation, and a useful search target: glass benchmark needle. Cursor movement should preserve the intended visual column when moving through this wrapped paragraph, and selection should copy the selected text when dragging finishes.

This query is split across a physical line break for search testing:
multi
Expand Down
Loading