Internal link autocomplete tries too hard

Use case or problem

When autocompleting internal link syntax for a note that doesn’t exist, ala [[Some new thing, the autocompleter tries WAY too hard. It nearly always insists that there’s some crazy match for an entire unique new note name.

This is a pain, since I often find myself in a workflow of:

  • Working on a note, then
  • Realizing that I want to break out a new child/sibling note, then
  • Attempting to directly type the internal-link inline.

A special case of the above that I hit very regularly: when using Kanban, create a new card, then type a new internal link name as that card’s content. Autocompleter says: FIGHT MEEEEEE!

Proposed solution

The autocompleter needs to give up much sooner, at least for internal links. I think some trial and error around heuristics would be required. E.g. tools like Levenshtein distance are probably useless as a sole metric, since we’ve all been trained to type out somewhat randomly placed “significant” letters from existing autocompletion targets, ala “vinab” for “A Very Important Note About Some Things”.

A better first-cut would be a length cutoff, or perhaps a function of (length, match strength). Match strength is a bit abstract here, and depends on what’s already available from the autocompleter and/or some second-order metric like “number of unmatched characters relative to top a/c hit” etc. Learnable predictability is a key goal here. Envisioning an ideal solution, users should be able to form reliable muscle memory both for linking to existing notes and when creating new notes.

2 Likes

Agreed. Until there is a setting that allows Obsidian to warn you when you are creating a note with a name that already exists in another folder, I use this and another method to double check that no note already exists with the same name (see Warning: Note with same name exists in another folder). And, like you said, the autocomplete is definitely not one to easily back down.

Thanks.

There are a couple of FR that basically say that we don’t try hard enough.

What’s stopping you from ignoring the suggestion and close ]]?

2 Likes

Great point re: just closing out with ]]. I now think part of what I’ve been running into are some different expectations from other software on tabbing out of an a/c context – basically unexamined stuff graven into muscle memory.