tzn temat wygląda na łatwy - wystarczy dołożyć element o tych samych stylach co textarea, ustalić font, max-width i white-space
temp1 = textarea
temp2 = div
temp2.style.maxWidth = temp1.clientWidth;
temp2.style.font = document.defaultView.getComputedStyle(temp1).font;
temp2.style.whiteSpace = 'pre';
temp2.style.opacity = 0;
temp2.style.position = 'absolute';
temp2.innerHTML = temp1.value.subtring(0, temp1.selectionEnd);
w momencie wyświetlania popupu wystarczy dać display na chwilę na block żeby wymiary się policzyły i w temp2.clientHeight
mamy pozycję kursora w pionie. Gorzej by było z obliczeniem w poziomie, ale chyba nie potrzeba.
Pytanie czy w ogóle ta zmiana teraz ma sens bo @TomRiddle pracuje nad zmianą całego edytora