# Tab Link [![GitHub release](https://img.shields.io/github/v/release/Jon-Vii/obsidian-tab-link?style=flat-square)](https://github.com/Jon-Vii/obsidian-tab-link/releases) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE) Ghost text autocomplete for wiki-links in Obsidian. ![Tab Link Demo](demo.gif) Type naturally. When you start typing a note name, ghost text appears inline. Press **Tab** to accept and create the link. ## Features - **Ghost text, not popups** — Non-intrusive inline suggestions that don't break your flow - **Tab to accept** — Fast keyboard-driven workflow - **Smart context** — Won't suggest inside existing links, code blocks, or frontmatter - **Frecency scoring** — Ranks suggestions by frequency + recency of use - **Phrase matching** — "mach learn" matches "Machine Learning" - **Alias support** — Searches frontmatter aliases alongside note titles - **Auto-space** — Optionally adds a space after accepting (configurable) ## Installation ### Using BRAT (recommended) 1. Install [BRAT](https://github.com/TfTHacker/obsidian42-brat) from Community Plugins 2. Open BRAT settings → Add Beta Plugin 3. Enter: `Jon-Vii/obsidian-tab-link` 4. Enable the plugin ### Manual Installation 1. Download the latest release from [GitHub Releases](https://github.com/Jon-Vii/obsidian-tab-link/releases) 2. Extract to `/.obsidian/plugins/obsidian-tab-link/` 3. Enable in Settings → Community Plugins ## Usage 1. Start typing text that matches a note name (5+ characters by default) 2. Ghost text appears showing the suggested completion 3. Press **Tab** to accept → creates the link 4. Press **Escape** or keep typing to dismiss | Key | Action | |-----|--------| | `Tab` | Accept suggestion | | `Escape` | Dismiss suggestion | | `Space` | Dismiss and continue typing | | Arrow keys | Dismiss suggestion | ## Settings | Setting | Default | Description | |---------|---------|-------------| | Enable ghost text | On | Toggle suggestions on/off | | Auto-space after link | On | Add space after accepting a link | | Minimum characters | 5 | Characters needed before suggestions appear (3-8) | | Debounce delay | 150ms | Wait time after typing before showing suggestions | | Excluded folders | — | Comma-separated folders to ignore | ## How It Works - **Trie-based matching** — O(k) prefix lookups where k = query length - **Frecency scoring** — Recently and frequently linked notes rank higher - **Performance-conscious** — Debounced updates, chunked indexing on startup ## License MIT