# Precise Line Sync > Disclaimer: This plugin was generated by AI. Precise Line Sync keeps corresponding logical lines aligned while you read two related notes side by side in Obsidian. It's most useful for translators who need to view two files at the same time, with proper line alignment. It is designed for two horizontally adjacent **Markdown Live Preview** panes. If a line wraps to a different height in either note, the plugin adds a view-only spacer to the shorter pane so the next logical line remains aligned. ## Features - Aligns line 1 with line 1, line 2 with line 2, and so on. - Synchronizes scrolling in either pane. - Handles different wrapping and line heights. - Inserts view-only gaps; Markdown files are never modified. - Enable, disable, or toggle alignment from the Command Palette. - Shows the current state in the status bar. - Recalculates after editing, resizing, pane replacement, and Live Preview virtualization. ## Requirements - Obsidian desktop. - Two visible, horizontally adjacent Markdown panes. - Both panes set to **Live Preview**. ## Usage 1. Open the two related notes in side-by-side panes. 2. Set both editors to **Live Preview**. 3. Open the Command Palette and run one of: - **Precise Line Sync: Enable line alignment** - **Precise Line Sync: Disable line alignment** - **Precise Line Sync: Toggle line alignment** 4. Scroll either pane. Corresponding logical line starts will track each other. The status bar displays `Line sync: on` or `Line sync: off`. ## Installation ### Community Plugins After approval, install **Precise Line Sync** from the [Obsidian Community directory](https://community.obsidian.md/plugins/precise-line-sync): open **Settings → Community plugins**, search for **Precise Line Sync**, and select **Install**. ### Manual installation 1. Download [`main.js`](https://github.com/zmn-hamid/Precise-Line-Sync/releases/latest/download/main.js), [`manifest.json`](https://github.com/zmn-hamid/Precise-Line-Sync/releases/latest/download/manifest.json), and [`styles.css`](https://github.com/zmn-hamid/Precise-Line-Sync/releases/latest/download/styles.css) from the [latest GitHub release](https://github.com/zmn-hamid/Precise-Line-Sync/releases/latest). 2. Create a folder named `precise-line-sync` under your vault's `.obsidian/plugins/` directory. 3. Copy the three downloaded files into that folder. 4. Restart or reload Obsidian. 5. Enable **Precise Line Sync** under **Settings → Community plugins** (`ctrl+p`). ## Important limitations - Alignment is intentionally based on source line numbers, not semantic paragraph matching. Inserted or deleted lines shift all subsequent correspondence. - Reading view, mobile, and pop-out windows are not supported. - The plugin chooses one horizontally adjacent pair when more than two Markdown panes are visible. - Tables, embeds, folded sections, math blocks, and other renderers that combine or replace multiple source lines may not preserve exact line correspondence. - The plugin is intended for ordinary prose, blank lines, headings, and wrapped text. ## Privacy Precise Line Sync does not make network requests, collect telemetry, or send note contents anywhere. It stores only its enabled/disabled state and local display settings using Obsidian's plugin data storage. All alignment gaps are editor-view decorations. The Markdown files remain unchanged. ## Development ```bash npm install npm run validate ``` `npm run validate` builds the distribution bundle, checks JavaScript syntax, and validates the release metadata. The files distributed to users are: - `main.js` - `manifest.json` - `styles.css` The project is licensed under the MIT License. See [LICENSE](LICENSE).