/obsidian-completr

Auto-completion plugin for the obsidian editor.

Primary LanguageTypeScriptMIT LicenseMIT

Completr

This plugin provides advanced auto-completion functionality for obsidian. Legacy editor not supported.

Features

  • Latex support
    • No need to start with a \
    • Includes all MathJax commands
    • Allows \begin... completion for all environments
    • Support for inserting snippets with placeholders
  • YAML Front Matter support
    • Learns any key with any value and provides completions for them
  • Word list support
    • Load files where each line is a word
    • Performant, even with very big lists
  • Scanning your vault for words
    • Scans the current file or your whole vault to find new words which can then be suggested

Installation

Community plugin list

Browse the community plugins list and search for Completr.

Manually

  • Download main.js, styles.css and manifest.json from a release of your choice
  • Copy the three files to your vault VaultFolder/.obsidian/plugins/obsidian-completr/

After installation

  1. Restart obsidian to ensure internal hooks can get registered properly
  2. Check out the hotkeys section to further configure the plugin

Configuration

Blacklist

  • You can blacklist any suggestion by adding it to the .obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt file
  • Alternatively, you can use the hotkey to blacklist the currently selected suggestion (Default Shift+D)

LaTeX commands

  • All default LaTeX commands can be found in the .obsidian/plugins/obsidian-completr/latex_commands.json file
  • You can add, remove or modify commands by editing this file
  • Replacement syntax
    • # is a placeholder for snippets
    • ~ marks the cursor position to jump to. This cannot be on the same line as a placeholder
    • \n is a newline
  • If the file contains incorrect syntax, a notice will pop up and the console will contain a more detailed error message

Hotkeys

  • All hotkeys are changeable from the hotkeys settings page
  • The "bypass" hotkeys are useful to run actions which pretend that the popup isn't open.
    • If for example your insertion key is Enter, you couldn't press enter to go to the next line while the popup is open. This is where you could use the bypass key.
    • This also allows for other modifiers to be used, for example pressing Tab might require holding Shift to move backwards. Only modifiers which are not used in the bypass keybinding will be forwarded.
    • Note: The default bypass hotkeys might be shadowed by a built-in command. Check your keybindings if they don't work.
  • If you want to change a hotkey without using any modifier, you need to use a workaround which can be found here or here, as Obsidian currently does not support this.

Example usage

Latex snippets

Latex

YAML Front Matter

Front matter

File scanning

File scanner

Two million german words loaded

Word list

Looking for word lists?

Development

  • Clone the repo to the plugins folder of an obsidian vault
  • Run npm i and npm run dev
  • Enable the plugin in obsidian