Skip to content

Releases: xRyul/gremlins

Gremlins 0.10.0

Choose a tag to compare

@xRyul xRyul released this 19 Sep 18:34

Fix every gremlin in the current note

Run Gremlins: Fix all in current note from the command palette to clean up the entire active note in one action.

  • Uses your enabled rules and current indentation width; disabled rules stay disabled.
  • Works in Source mode and Live Preview, including unsaved edits and text outside the viewport.
  • Works even when gutter icons or Click gutter icons to fix are turned off.
  • Rechecks the note after structural fixes to catch newly exposed gremlins.
  • Keeps the cleanup in one undo step and leaves already-clean notes unchanged.

Nothing changes automatically. Existing line and gutter fixes remain available with their current behavior.

Full changelog: 0.9.0...0.10.0

Gremlins 0.9.0

Choose a tag to compare

@xRyul xRyul released this 19 Sep 17:00

GOV.UK-inspired list punctuation

A new opt-in mode applies different punctuation rules to bullet and numbered lists. Enable it under Settings → Gremlins → List style → List item punctuation → By list type (GOV.UK-inspired).

This mode:

  • uses no terminal punctuation for bullet items (-, +, *)
  • uses periods for numbered items (1., 1))
  • follows each nested list's own marker type
  • applies the same rules to task items without changing their checkboxes
  • checks the final content line of multiline items

Existing punctuation exceptions still apply. Question marks, exclamation marks, ellipses, structural parent colons and display maths are preserved. Numbered items retain the period-policy exceptions for standalone wikilinks, all-caps labels and unpunctuated nested-list parents.

Optional and manual

Punctuation checking remains disabled by default. Existing modes, saved preferences and the separate line-ending setting are unchanged. Notes change only when you explicitly run a fix.

This is a punctuation preference, not a full GOV.UK writing checker. It does not check capitalisation, grammar, lead-ins or whether numbered items describe a process.

Gremlins 0.8.5

Choose a tag to compare

@xRyul xRyul released this 19 Sep 13:49

Settings grouped by task

The settings page now has 5 sections:

  • characters
  • indentation
  • list markers
  • list style
  • display and fixes

Your saved settings and default options have not changed. Gremlins still changes notes only when you ask it to.

List detection and fixes

This release corrects how Gremlins handles:

  • tab-indented lines that continue a list item
  • items that continue without indentation, including text with inline code or emphasis
  • lists inside blockquotes, and items containing code blocks or comments
  • displayed maths within list items, so punctuation and Markdown hard-break fixes leave formulas unchanged

Text after a formula still gets checked. Punctuation and spacing checks use the correct line when an item spans several lines.

Tests in Obsidian

Most tests now run against the plugin in Source mode and Live Preview. They check highlights, fixes, tooltips, gutter layout and saved note contents.

The test runner restores settings and removes test files after success or failure. Contributors can use the live testing guide for setup and recovery instructions.

Compare all changes from 0.8.4 to 0.8.5.

Gremlins 0.8.4

Choose a tag to compare

@xRyul xRyul released this 18 Sep 09:40

Maintenance and cleanup

  • Reduce duplication in settings controls, match types, editor detection, highlighting, and fix handling
  • Reuse CodeMirror's indentation counting and test-edit application instead of handwritten utilities
  • Remove the jiti development dependency by switching ESLint configuration to native ESM
  • Make live Obsidian tests independent of saved vault settings, restoring the original settings after each run
  • Add regression coverage for tabbed parent-list delimiters and unknown characters

Gremlins 0.8.3

Choose a tag to compare

@xRyul xRyul released this 05 Aug 07:06

List punctuation false-positive fixes

Gremlins 0.8.3 refines the opt-in Period list-item punctuation policy:

  • Standalone Obsidian wikilinks no longer require a trailing period.
  • Single-token all-caps labels, including task-list labels such as - [ ] TALESCAPE, no longer require a trailing period.
  • Unpunctuated parent labels such as Work and Home no longer require periods when they directly introduce nested lists.
  • Wikilinks followed by prose continue to require sentence-ending punctuation.
  • The dropdown remains named Period, with the exemptions documented in its description.

List-item punctuation enforcement remains opt-in and disabled by default.

Gremlins 0.8.2

Choose a tag to compare

@xRyul xRyul released this 03 Aug 22:50

List-ending false-positive fixes

Gremlins 0.8.2 makes the opt-in list-item ending rules more Markdown-aware:

  • Question marks, exclamation marks, combinations such as ?!, ellipses, and Unicode sentence terminators are preserved under every punctuation policy and excluded from automatic style inference.
  • Meaningful punctuation is recognized before closing quotation marks.
  • Display-math items ending in $$ are exempt from punctuation enforcement and the two-space hard-break policy.
  • Parent items that introduce nested lists no longer require a two-space hard break.
  • Regression coverage now includes the reported nested-list and display-math scenario in both unit and live Obsidian tests.

Both list-item ending rules remain opt-in and disabled by default.

Gremlins 0.8.1

Choose a tag to compare

@xRyul xRyul released this 03 Aug 22:16

List-ending safety fixes

Gremlins 0.8.1 fixes two Markdown-aware edge cases in the list-item ending rules:

  • Parent list items ending in a colon are now left unchanged when they introduce a nested list. Structural colons are also excluded from automatic style inference without changing item positions for the semicolon/final-period policy.
  • The two-space hard-break policy now skips lines ending in an Obsidian block ID, preventing fixes from invalidating block references.
  • Colons on ordinary leaf list items continue to follow the selected punctuation policy.

Both list-item ending rules remain opt-in and disabled by default.

Gremlins 0.8.0

Choose a tag to compare

@xRyul xRyul released this 03 Aug 21:39

Consistent list item endings

Gremlins 0.8.0 adds two opt-in rules for enforcing consistent endings across Markdown list items.

List item punctuation

Choose one of five policies:

  • Match each list automatically
  • No terminal punctuation
  • Periods
  • Semicolons
  • Semicolons with a period on the final item

Automatic matching infers the dominant style independently for each contiguous list and nested level. It also recognizes the conventional semicolon/final-period pattern.

List item line endings

Choose one of three policies:

  • Remove trailing whitespace
  • Require exactly two ordinary spaces for a Markdown hard break
  • Require a blank line between sibling items

Blank-line fixes are inserted after nested subtrees, and no separator is added after the final sibling.

Markdown-aware behavior

  • Supports unordered, ordered, task, nested, multiline, and blockquoted lists.
  • Checks the final content line of multiline items.
  • Keeps inline code, links, Obsidian block IDs, fenced code, frontmatter, and other literal Markdown safe.
  • Handles escaped punctuation and unusual Unicode trailing spaces without overlapping fixes.
  • Integrates with editor highlights, hover tooltips, gutter warnings, click-to-fix, and the fix command.

Configuration

Both rules are disabled by default. Configure them under Settings → Gremlins → List item punctuation and List item line endings. To repair highlighted items from the gutter, also enable Gutter icons and Click gutter icons to fix.

Gremlins 0.7.0

Choose a tag to compare

@xRyul xRyul released this 03 Aug 18:44

Duplicate list markers and list marker spacing

Gremlins 0.7.0 adds two opt-in rules for cleaning up malformed Markdown list markers.

Gremlins highlighting duplicate list markers and extra marker spacing

Duplicate list markers

Highlights consecutive unordered markers such as:

- - Detect double bullets

Clicking the Gremlin gutter icon removes the redundant first marker:

- Detect double bullets

List marker spacing

Highlights unordered and ordered markers followed by extra spaces or a tab:

-  Detect space
1.  Detect space

The gutter fix normalizes each marker delimiter to one ordinary ASCII space:

- Detect space
1. Detect space

Safeguards

  • Both rules are disabled by default because compact nested-list syntax and multiple delimiter spaces can be intentional Markdown.
  • Unordered, ordered, nested, and blockquoted list markers are supported.
  • Compact nested marker chains are checked without producing overlapping fixes.
  • Ordered markers follow Markdown's one-to-nine-digit limit.
  • Thematic breaks, potential Setext underlines, marker-only lines, fenced code, comments, frontmatter, math, and other literal Markdown regions are ignored.
  • Gremlins never changes a note automatically.

Configuration

Enable Settings → Gremlins → Duplicate list markers and/or List marker spacing. To repair highlighted lines from the gutter, also enable Gutter icons and Click gutter icons to fix.

Gremlins 0.6.0

Choose a tag to compare

@xRyul xRyul released this 03 Aug 15:13

Ambiguous empty list markers

Gremlins 0.6.0 adds an opt-in Ambiguous empty list markers rule for list lines containing a lone hyphen with no following delimiter.

In this pattern, Obsidian can interpret the hyphen as a Setext level-two heading underline instead of an empty list item:

2. **Audit trail**
    -
    - Primarily supports traceability and internal audit.

Clicking the Gremlin gutter icon inserts one ordinary ASCII space after the lone hyphen, changing - to - so Obsidian parses it as an explicit empty list item.

Safeguards

  • Detection requires a following dash item at exactly the same indentation.
  • The preceding line must be either the parent list item or a same-level dash item.
  • Parent marker width and delimiter spacing are respected, including multi-digit ordered markers.
  • Blockquotes and callouts are supported.
  • Ordinary Setext headings, code, comments, frontmatter, math, and other literal Markdown regions are ignored.
  • The rule is disabled by default and never modifies a note automatically.

Configuration

Enable Settings → Gremlins → Ambiguous empty list markers. To repair highlighted lines from the gutter, also enable Gutter icons and Click gutter icons to fix.