feature: opt-in stable wrapped tables while reading in Normal mode
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 38/100
調査の方向性
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 にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
MeanderingProgrammer/render-markdown.nvim のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
feature: allow concealing latex code対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン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 日以内に返信