Plugin icon

Wrapped Line Indentation

wrapped line indent screenshot 1

Description

Indent wrapped lines in the markdown editor (hanging indent)

Additional Information

Links:
Maintainers: bwat47
Version:1.1.2
Minimum app version:3.5
Downloads: This version:248
Last updated:2026-07-20T16:33:28Z

[!note] This plugin was created entirely with AI tools

Wrapped Line Indentation

Indent wrapped lines in Joplin’s Markdown editor so list items, task items, block quotes, and indented paragraphs stay visually aligned when they wrap.

What it does

Without this plugin, a long Markdown line wraps back to the start of the editor line. With this plugin, wrapped continuation lines align after the Markdown prefix.

Examples handled:

  • Bullet lists
  • Numbered lists
  • Task lists
  • Nested block quotes
  • Lists inside block quotes
  • Indented continuation paragraphs

The plugin skips fenced and indented code blocks.

Compatibility

  • Works with/without Joplin's render markup enabled.
  • Works whether you're using tabs or spaces for Indentation (or mixed tabs/spaces).
  • Works with proportional fonts.

Screenshot example

example image

Requirements

  • Joplin 3.5 or newer
  • Markdown editor using CodeMirror 6

Installation

Install from Joplin’s plugin manager, or install the .jpl file manually:

  1. Download com.bwat47.joplin-wrapped-line-indent.jpl from the latest release.
  2. In Joplin, open Tools > Options > Plugins.
  3. Select Install from file.
  4. Restart Joplin if prompted.

Notes

This plugin changes editor display only. It does not modify note content.

Development

npm test
npm run lint
npm run dist

Browser layout tests run the extension in a real CodeMirror editor using headless Chromium:

npx playwright install chromium
npm run test:browser

Use npm run test:browser:watch to inspect the tests in a visible browser. On Linux CI, use npx playwright install --with-deps chromium to install browser system dependencies as well.

The browser suite uses bundled Roboto and Roboto Mono fonts and DOM range measurements to verify wrapped-line alignment within one CSS pixel. It covers Markdown prefixes, tabs and mixed whitespace, font changes, resizing, edits, scrolling, tab-widget editing, and code-block exclusions. A simulated hidden quote marker exercises markup visibility changes.