feature: opt-in stable wrapped tables while reading in Normal mode
还没有人认领这个 Issue。
评估
调研方向
Start by reading the Updater:hide behavior described in the issue and the linked discussions in #692 and #689, then trace how wrapped table rows are rendered and revealed. The issue does not name source files or tests; first locate the table rendering and cursor handling entry points. Done means an opt-in setting preserves wrapped table alignment in Normal mode, reveals source in Insert mode, and leaves current behavior as the default, with cursor limitations documented.
由索引模型根据 Issue 内容生成。
描述
Is your feature request related to a problem? Please describe.
Related: #692 and #689. I read the explanation about virtual lines and the decision to retain the current behavior. This is a request for an opt-in reading behavior, following the suggestion in this comment.
I like the wrapped tables and want to keep them enabled. However, moving the cursor onto a wrapped row in Normal mode reveals the underlying Markdown source. That row loses its column layout and the content below it shifts, making the table difficult to read while navigating through the document.
For example, in a window narrow enough to wrap the descriptions:
| Application | Fit for your workflow | Assessment |
| --- | --- | --- |
| Session tagging | Label chats by topic and distinguish implementation work from review | Useful when retrieving previous work across many sessions |
| Skill suggestions | Suggest an appropriate review or implementation skill based on the request | Useful when several skills could apply to the same task |
| Title refresh | Decide whether the conversation has changed enough to justify a new title | Keep the existing title when the topic has not materially changed |
I tried anti_conceal.disabled_modes = { 'n' } and restarted Neovim, but the wrapped row still switches to source. My configuration also had anti_conceal.ignore.table_border = { 'n' }, which does not prevent this behavior either.
Looking at Updater:hide, replacement marks on the cursor row are hidden before the ordinary anti-conceal handling. That explains why the setting does not affect wrapped rows.
Describe the solution you'd like
Would an opt-in option to keep wrapped table rows rendered in Normal mode fit the project?
The desired behavior is:
- Keep cell wrapping and column alignment while reading in Normal mode.
- Reveal the underlying source for editing in Insert mode.
- Retain the current behavior by default.
- Keep this option scoped to wrapped tables rather than changing anti-conceal for headings, links, and other elements.
I understand virtual lines cannot provide normal buffer navigation, selection, or editing. This request does not require native interaction with every rendered continuation line or a separate preview-buffer implementation. A reading mode with documented cursor limitations, including skipping virtual content if necessary, would still be useful. Entering editing or selection modes would need a defined transition back to source.
If that trade-off cannot work reliably with Neovim's cursor behavior, documenting explicitly that wrapped cursor rows bypass anti-conceal settings would at least make the limitation easier to discover.
Describe alternatives you've considered
pipe_table.wrap = false: removes the wrapping I want to preserve, so it does not solve the reading problem.anti_conceal.disabled_modes = { 'n' }: tried locally; it does not affect the forced source reveal for wrapped rows and applies more broadly than tables.anti_conceal.ignore.table_border = { 'n' }: already configured; it does not preserve the wrapped row.- Disabling anti-conceal entirely: #692 reports the same limitation with that setting.
- A separate preview buffer: discussed in #689, but I understand that introduces substantially more complexity.
Additional information
Observed with:
- Plugin commit:
8e8795368391036643b622875a6da6a51bcd33f4 - Neovim:
v0.13.0-dev-1929+g17f43325b1 - Arch Linux
Relevant configuration during the unsuccessful test:
require('render-markdown').setup({
render_modes = true,
win_options = {
conceallevel = { rendered = 2 },
concealcursor = { rendered = 'nc' },
},
anti_conceal = {
disabled_modes = { 'n' },
ignore = {
table_border = { 'n' },
},
},
pipe_table = {
cell = 'padded',
wrap = true,
},
})
- 主要语言
- Lua
- 星标
- 5.2k
- 派生
- 152
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
MeanderingProgrammer/render-markdown.nvim 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
-
feature: allow concealing latex code可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭enhancement
难度 3/5 1-2 天 新手友好度 65/100
MeanderingProgrammer/render-markdown.nvim#717 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 57/100
-
enhancement
难度 4/5 3-5 天 新手友好度 55/100
-
bug
难度 4/5 1-2 天 新手友好度 55/100
查看 MeanderingProgrammer/render-markdown.nvim 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 67/100
维护者通常 1 天内回复
-
bug confirmed discord guide:tyrs-watch locale:enUS navigation v0.3.2
难度 2/5 1-3 小时 新手友好度 67/100
fitzforge/polestar#855 · 1 条评论 ·
维护者通常 1 天内回复
-
translation
难度 2/5 1-3 小时 新手友好度 64/100
KristanLaimon/PanelsPlus#16 ·
-
Bug
难度 1/5 1 小时以内 新手友好度 91/100
DennisRas/WeeklyKnowledge#164 ·
-
bug
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 1 天内回复