Skip to main content

Progress and prose

LSP progress in lualineโ€‹

Lualine renders native Neovim LspProgress events through a local plugin:

The statusline shows client name, spinner, latest title/message, optional server percentage, and a derived completed-token counter such as (1/1) - done. It replaces lsp-progress.nvim without emitting terminal/tmux OSC progress bars.

Markdown / MDX prose behaviorโ€‹

Markdown and MDX use Prettier with --prose-wrap=preserve so editor formatting does not reflow prose to printWidth. For plain Markdown, ,format-md runs after Prettier and leaves ordinary files unchanged. In recognized AI paths, it preserves authored sentence breaks and joins mid-sentence continuations around complete single-line inline code when the full line fits the soft 140-character boundary. Complete code spans keep their exact bytes, including backslashes and whitespace; outside a span, odd backslash runs escape a following backtick and even runs do not. Long lines split at sentence or strong clause boundaries when possible; unmatched or multiline code and other ambiguous markup retain their existing lines. Markdownlint and Prettier still apply their own formatting before this step. Only the first backtick after an odd backslash run is escaped; adjacent backticks remain eligible code delimiters.

<leader>cp toggles browser preview with MarkdownPreviewToggle in Markdown and MDX buffers. The plugin installs its preview binary on install/update and repairs a missing binary when it loads, including after switching plugin managers. Installation uses the version in the plugin's package.json and preserves Neovim's working directory. Matching binaries skip installation; successful installation must produce the requested version. The installer has a two-minute limit, and binary version probes have a five-second limit. Installation failures appear in a Markdown preview installation failed error.

Relevant files:

Session persistence omits localoptions, and default Neovim viewoptions does not include options, so window/buffer options stay driven by config and filetypes rather than replayed session state.