Show square brackets in the neoirc-cli message window as written (closes #233)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
The message window has colour tags on, so tview read square-bracket text in nicks, channel names, reasons, topics and message text as tags. It dropped that text or changed the colour of the rest of the line. A new escape in internal/cli/ui.go writes each "[" as "[[:]", and app.go applies it to every part of a line that comes from the user or the server. tview.Escape is not used: it misses bracket pairs holding symbols such as "|", and tags with a URL. Lines for other server commands now show the command, such as "[MODE]", which tview had read as a tag. Model: opus-5-5
This commit is contained in:
@@ -235,6 +235,16 @@ func (ui *UI) initMessages() {
|
||||
ui.messages.SetBorder(false)
|
||||
}
|
||||
|
||||
// escape returns text so that the message window shows it exactly
|
||||
// as written. It writes each "[" as "[[:]": a "[" followed by
|
||||
// another "[" never starts a tag, and the tag "[:]" changes
|
||||
// nothing. tview.Escape is not enough: it does not escape a bracket
|
||||
// pair holding a symbol such as "|" or "^", and nothing it adds
|
||||
// stops a tag with a URL, such as "[:::y|z]".
|
||||
func escape(text string) string {
|
||||
return strings.ReplaceAll(text, "[", "[[:]")
|
||||
}
|
||||
|
||||
func (ui *UI) initStatusBar() {
|
||||
// Colour tags stay off. With them on, tview reads text in
|
||||
// square brackets, such as "[connected]" or part of a nick,
|
||||
|
||||
Reference in New Issue
Block a user