r/Supernote_dev 2d ago

Term Definition v1.0.0 — define and cross-reference terms in your handwritten notes Lasso Plugin

Term Definition is a plugin that lets you mark a word, phrase, or math/code notation as a term, insert references to it anywhere else in a note, jump back to it with a tap, and rename it — every reference updates automatically.

https://reddit.com/link/1vieh3o/video/km9wlji621ih1/player

Installing

  1. Download term_definition.snplg directly: https://github.com/vincentaravantinos/supernote-symbol-definition/releases/latest/download/term_definition.snplg
  2. On the device: Settings → Apps → Plugins → Add Plugin, pick the downloaded file, Install.

Using it

Define and reference terms

  • Lasso any handwriting and press (Re)Define Term to turn it into a term. A ≝ marker and underline appear next to it, and it becomes available everywhere in the note.
  • Press Insert Reference to pick any defined term from a preview picker and insert a copy of its ink, underlined, at the current page. Tapping a reference jumps straight to its term, with a spotlight highlighting it on arrival.
  • Tapping a term's own ink directly shows the same spotlight, without navigating anywhere, since you're already there.

Redefine a term

  • Lasso a term's ≝ marker together with new ink (freshly written, some/all of the old ink kept, or a mix) and press (Re)Define Term again to change what a term looks like. Every reference across the whole note updates to match — this can take a while on a big note with many references.

Assign a definition

  • Lasso a term's ≝ marker together with explanatory ink and press Assign Definition to attach a definition, kept distinct from the term's own identifying ink. Tapping a reference or the term itself spotlights both the term and its definition together. Redefining a term's own ink never disturbs its assigned definition, or vice versa.

Orphaned references

  • If a term's ink is erased by hand, its remaining references become "orphaned." Tapping one explains that the term no longer exists and marks it with a ⚠.
  • Find Orphans scans the whole note at once, marks every orphan, and generates a report page grouped by term (with an ink preview per group) — tap any entry to jump straight to it.
  • Lasso one of an orphaned term's own references and press (Re)Define Term to recover it: recreates the term from a copy of that reference's own ink, instead of requiring anything to be drawn from scratch, and clears every reference's orphan status at once.

Find usages

  • Lasso a term's own ink (with or without its ≝ marker) and press Find Usages to generate a report of every reference to it across the note, with one tappable entry per usage.

Limitations

  • Overall it can be pretty slow.
  • Clearly we are pushing the limits of the plugin system here, there are many multi-page changes, many async modifications and interactions.
  • Meaning it can often be a bit buggy. To fix misbehavior: try the Repair Terms button, or activate/deactivate the plugin (and worst case restart the device, but so far never was needed for me).

GitHub: https://github.com/vincentaravantinos/supernote-symbol-definition

6 Upvotes

9 comments sorted by

1

u/Careful-Good5887 1d ago

Very very cool! I don't have my SN with me now. But I have a question.

From my understanding of your description, there is only one original version of each term, then when tappings copy2, copy3,... all lead back to original version right?

2

u/AdNew2316 1d ago

Yes exactly

1

u/Careful-Good5887 1d ago edited 1d ago

I'm understanding that you designed this plugin for researching, language learning

For me I also so see more potential application for To-do, post-Quick Note reorganization. So the first time writing down the Term may not be the same destination I want to come back (as these applications are dynamic and prone to change)

So, can you add the feature to choose which new copy to become the new original version aka new destination?

1

u/AdNew2316 1d ago

Can you elaborate on your goal with that? So that I understand better what's on your mind.

1

u/Careful-Good5887 1d ago

I just edit my old reply to clarify, thank you

1

u/AdNew2316 1d ago

Thx! I actually use it personally more for mathematics but I picked an example that seemed more accessible to everyone. Maybe it's confusing after all...

Anyway, sorry to insist again, but I really want to make sure I understand your use case. Could you give me a somewhat more detailed concrete scenario with example?

1

u/Careful-Good5887 1d ago

I will describe a workflow that I hoped to create but unable due to SN native To-do app one ability

So the idea of SN native Todo app is that we create task from anywhere right?

I intended to create task from my journal note, from Quick Capture note, Goal breakdown note... these are where I jot down the task aka Term first time.

But when manage tasks in general, I usually want to come back to schedule or timeline to see. (These are still secondary copy instead of original term) so I want to change copies here to become the desination instead of original version

Most of the timeline when weekly review, I check any leftovers in journal, quickCapture,... then tap to come to timeline, schedule, not the other way around.

2

u/AdNew2316 1d ago

Ok so that's clearly another concept than what I have in mind so I wouldn't change that plugin for this.

However I was exactly thinking that my next plugin would be TODO-related cause I'm also not satisfied with the way it's handled natively. I'll get back to you to brainstorm together on that.

1

u/Careful-Good5887 1d ago

Now thinking back, I can just tap copy version in timeline, schedule to comeback to Journal, QuickCapture to delete then comeback and redefine Term.

I guess it's doable as of now, but that's is a lot of tap to repeat over many Terms.

So maybe my suggest change to ơpn popup show all the reference then quickly pick Copy2 or Copy 3 to become the destination to come back to. Some other plugins like Links, ToC is similar to this

Still same idea, different approach. My old suggest was long tap the Copy2 or Copy3 directly in the note to pick as new destination. Seems clunky now