File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -786,25 +786,30 @@ function edit_insert(s::PromptState, c::StringLike)
786786 after = options (s). auto_refresh_time_delay
787787 termbuf = terminal (s)
788788 w = width (termbuf)
789- delayup = ! eof (buf) || old_wait
790789 offset = s. ias. curs_row == 1 || s. indent < 0 ?
791790 sizeof (prompt_string (s. p. prompt):: String ) : s. indent
792791 offset += position (buf) - beginofline (buf) # size of current line
793- spinner = true
794- if offset + textwidth (str) <= w
792+ spinner = ' \0 '
793+ delayup = ! eof (buf) || old_wait
794+ if offset + textwidth (str) <= w && ! (after == 0 && delayup)
795795 # Avoid full update when appending characters to the end
796796 # and an update of curs_row isn't necessary (conservatively estimated)
797797 write (termbuf, str)
798- spinner = false
798+ spinner = ' ' # temporarily clear under the cursor
799799 elseif after == 0
800800 refresh_line (s)
801801 delayup = false
802- else
802+ else # render a spinner for each key press
803+ if old_wait || length (str) != 1
804+ spinner = spin_seq[mod1 (position (buf) - w, length (spin_seq))]
805+ else
806+ spinner = str[end ]
807+ end
803808 delayup = true
804809 end
805810 if delayup
806- if spinner
807- write (termbuf, spin_seq[ mod1 ( position (buf) - w, length (spin_seq))] )
811+ if spinner != ' \0 '
812+ write (termbuf, spinner )
808813 cmove_left (termbuf)
809814 end
810815 s. refresh_wait = Timer (after) do t
You can’t perform that action at this time.
0 commit comments