[Suggestion] Consider using a "responsive" display property for the separator in markdown-view-mode
casouri opened this issue · 5 comments
Since eglot uses markdown-view-mode for rendering the documentation, the separator is often too long when the documentation put into a small child frame for display:
Expected Behavior
It would be nicer if the separator is "responsive": it changes width according to the viewing window's width:
Idea
We can render the separator with the display
property set to (space :width text)
, which displays a space as long as the text portion of the window, plus a face
property set to (: strike-through t)
, which renders a horizontal line across the whole white space.
For the code I used for the screenshot in the Expected behavior section, see casouri/eldoc-box#60
Thanks!
Thank you for reporting issue. I think this is a bug in CJK language configuration. Please see #755.
And thanks for suggestion however your idea is not work if terminal or fonts don't support strike-throught characters.
The documentation text is rendered by eglot prior to be displayed by eldoc-box in a smaller window, so if the separator doesn't adjust to window width automatically, it'll always stick out.
Maybe you can implement the rendering differently based on terminal vs GUI? Strike-though don't need font support. That's your call, and feel free to close this :-)
Wouldn't it make sense to adapt make-separator-line
of Emacs 29? That creates a horizontal line from edge to edge, and works even if the window-width changes later.
And thanks for suggestion however your idea is not work if terminal or fonts don't support strike-throught characters.
Hey, then don't use strike-through when it's not support. Just add something that is supported and be sure to put (:extend t)
in the face. It's the only place in markdown.el
where window-body-width
is used, and it's a shame. As soon as you resize the window or take the text for some other presentation, it breaks.
Using display
with make-string
for this is not the correct way to do separator lines in Emacs. Just looks at all the places where :extend t
is used.