Universal ctags points the cursor to
line numbers rather than the actual definition (as language servers do). Vim
uses ex (:h Ex-mode
) commands as destinations.
We want to generate call cursor(line,col)
for each identifier.
fn processStr(l) :=
let
val s := l->1
val line := split s /[ (:]+/
val col := #line.1 + 1
val outLine := sprintf '%s\t%s\tcall cursor(%i,%i)' (line.2 . fp . l->2 . col)
in outLine end;
processStr¨{%/fn +[[:lower:]][[:latin:]]*.*:=/}{(`0 . ix)}
This is simple-minded but suited to Jacinda.