Is your suggestion for improvement related to a problem? Please describe.
Currently, chat messages are formatted in a TextArea. This allows text to be selected, but the formatting is ugly. Markdown is a de-facto standard for chat LLMs.
Describe the solution you'd like
Use Markdown in AI chat messages with the ability to select and copy text.
Additional context
There is a long-standing problem with JavaFX: you cannot select Text or Label. Only text in TextField or TextArea can be selected. However, text in WebView can be selected, and it is already used in JabRef in entry preview!
Thus, you have 2 options:
Implement Markdown using Text or Labels and add a button Copy in the sidebar of a chat message (place where "Delete" button).
Implement Markdown using WebView.
Option 1 is, I think, easier to implement.
But Option 2 is tricky: at first glance it would solve the problem, but the question is -- performance overhead? WebView is like a tiny browser. Thus, a better option is to format the whole chat UI (only messages, not prompt) in a WebView.
Though the best way is to find a way to make Text or Label be selectable and copyable.
Is your suggestion for improvement related to a problem? Please describe.
Currently, chat messages are formatted in a
TextArea
. This allows text to be selected, but the formatting is ugly. Markdown is a de-facto standard for chat LLMs.Describe the solution you'd like
Use Markdown in AI chat messages with the ability to select and copy text.
Additional context
There is a long-standing problem with JavaFX: you cannot select
Text
orLabel
. Only text inTextField
orTextArea
can be selected. However, text inWebView
can be selected, and it is already used in JabRef in entry preview!Thus, you have 2 options:
Text
orLabel
s and add a buttonCopy
in the sidebar of a chat message (place where "Delete" button).WebView
.Option 1 is, I think, easier to implement.
But Option 2 is tricky: at first glance it would solve the problem, but the question is -- performance overhead?
WebView
is like a tiny browser. Thus, a better option is to format the whole chat UI (only messages, not prompt) in aWebView
.Though the best way is to find a way to make
Text
orLabel
be selectable and copyable.