mirror of https://github.com/Hilbis/Hilbish
fix: multiline cursor redraw
parent
b4a5746093
commit
1339dc4a2f
|
@ -45,6 +45,7 @@ func (rl *Instance) echo() {
|
||||||
print(seqClearScreenBelow)
|
print(seqClearScreenBelow)
|
||||||
|
|
||||||
// Print the prompt
|
// Print the prompt
|
||||||
|
rl.promptInPlace("")
|
||||||
print(string(rl.realPrompt))
|
print(string(rl.realPrompt))
|
||||||
|
|
||||||
// Assemble the line, taking virtual completions into account
|
// Assemble the line, taking virtual completions into account
|
||||||
|
|
|
@ -73,8 +73,7 @@ func (rl *Instance) RefreshPromptLog(log string) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// RefreshPromptInPlace - Refreshes the prompt in the very same place he is.
|
func (rl *Instance) promptInPlace(prompt string) {
|
||||||
func (rl *Instance) RefreshPromptInPlace(prompt string) (err error) {
|
|
||||||
// We adjust cursor movement, depending on which mode we're currently in.
|
// We adjust cursor movement, depending on which mode we're currently in.
|
||||||
// Prompt data intependent
|
// Prompt data intependent
|
||||||
if !rl.modeTabCompletion {
|
if !rl.modeTabCompletion {
|
||||||
|
@ -91,15 +90,11 @@ func (rl *Instance) RefreshPromptInPlace(prompt string) (err error) {
|
||||||
rl.SetPrompt(prompt)
|
rl.SetPrompt(prompt)
|
||||||
}
|
}
|
||||||
|
|
||||||
if rl.Multiline {
|
|
||||||
rl.tcUsedY += 1
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the input line and everything below
|
// Clear the input line and everything below
|
||||||
print(seqClearLine)
|
print(seqClearLine)
|
||||||
moveCursorUp(rl.infoY + rl.tcUsedY)
|
moveCursorUp(rl.infoY + rl.tcUsedY)
|
||||||
moveCursorBackwards(GetTermWidth())
|
moveCursorBackwards(GetTermWidth())
|
||||||
print("\r\n" + seqClearScreenBelow)
|
print("\r" + seqClearScreenBelow)
|
||||||
|
|
||||||
// Add a new line if needed
|
// Add a new line if needed
|
||||||
if rl.Multiline {
|
if rl.Multiline {
|
||||||
|
@ -108,8 +103,11 @@ func (rl *Instance) RefreshPromptInPlace(prompt string) (err error) {
|
||||||
} else {
|
} else {
|
||||||
fmt.Print(rl.mainPrompt)
|
fmt.Print(rl.mainPrompt)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Refresh the line
|
// RefreshPromptInPlace - Refreshes the prompt in the very same place he is.
|
||||||
|
func (rl *Instance) RefreshPromptInPlace(prompt string) (err error) {
|
||||||
|
rl.promptInPlace(prompt)
|
||||||
rl.updateHelpers()
|
rl.updateHelpers()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue