Workspace Word Highlight

by harduino
5
4
3
2
1
Score: 50/100

Description

Highlight the word under the cursor or selected text across all visible Markdown editor panes.

Reviews

No reviews yet.

Stats

0
stars
32
downloads
0
forks
6
days
6
days
6
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
7
commits

Latest Version

7 days ago

Changelog

Workspace Word Highlight 1.0.5

Documentation and showcase update: add an 8-second GIF recorded in Obsidian from synthetic notes in two side-by-side editors. The README includes this demo for GitHub and the Community directory's next release scan. There are no changes to plugin runtime JavaScript or CSS compared to 1.0.4; the manifest and package version advance to 1.0.5. Separate readable assets and checksums remain available. The owner previously reported basic desktop and Android smoke tests; a new full device/minimum-version test matrix has not been recorded. See README for installation and limitations.

README file from

Github

Workspace Word Highlight

Highlight the word under the cursor or selected text across Markdown editor panes in Obsidian. In a split workspace, a query from the focused editor is shared with other registered editor panes, including different notes. Source mode and Live Preview use the same CodeMirror decorations; notes are never modified.

Demo

Real Obsidian recording: matching text is highlighted in two panes containing different notes

The two panes show separate synthetic notes (alpha and beta). Selecting text in either pane updates matching highlights in the other pane.

Use and limitations

Place the caret inside a word (not immediately after it), or select single-line text. Cursor words use Unicode letters/digits, underscore and optionally additional word characters; selected text is matched literally, including punctuation and spaces. Whole-word mode applies only to cursor words. The primary selection is used; multiline or >500 UTF-16-unit selections are ignored. Only CodeMirror visible ranges are scanned, with a configurable per-editor match cap. Hidden tabs may retain an editor view; actual Obsidian leaf visibility and pop-out behavior need host testing. Reading View is not highlighted.

Settings: Enable highlighting, Case sensitive, Whole words, Minimum word length, Additional word characters (e.g. -.$), Highlight active occurrence, Protect Android text selection, Debounce (ms), Maximum matches per editor. The commands Toggle highlights and Clear highlights use the IDs toggle-highlighting and clear-highlighting. These replace the unpublished local command IDs before the first public release; local hotkeys assigned to older builds may need rebinding. CSS classes .workspace-word-highlight and .workspace-word-highlight-active can be themed in styles.css.

The Android selection guard is on by default. While a non-empty selection exists it postpones mark rebuilds in that editor, except for edits and explicit clearing; other panes may update. This does not guarantee native selection stability on every device. The owner reports successful basic Android smoke testing; the detailed long-press, Copy/Cut/Paste and IME matrix has not been recorded separately.

Installation

Install from the Obsidian Community directory or use the Add to Obsidian button there. For manual installation, download the separate manifest.json, main.js and styles.css assets from the latest release into .obsidian/plugins/workspace-word-highlight/, reload Obsidian and enable the plugin under Community plugins. Alternatively extract the release ZIP into .obsidian/plugins/; it contains exactly workspace-word-highlight/ with those three files.

Development and transparency

Use Node 22+, npm ci, npm run check, npm run package, npm run release:check. npm run dev watches source. npm run version:sync -- 1.0.5 synchronizes metadata without creating a tag; read CONTRIBUTING.md and the release runbook first. src/main.ts, styles and configuration are plain text; release main.js is readable and not minified or obfuscated. The generated main.js is intentionally ignored by Git and overwritten on build: make lasting edits in TypeScript. The plugin makes no network requests, collects no telemetry and reads/writes only its own plugin settings; it does not write note contents. Build tools use Node, runtime does not. MIT license.

Acknowledgements

The initial implementation, iterative fixes, and release preparation were developed with assistance from ChatGPT (OpenAI), acting as an AI coding collaborator. The project maintainer is responsible for reviewing, testing, and maintaining the code. This project is not affiliated with or endorsed by OpenAI or Obsidian.