feat(xonsh): support rprompt (#3362)
This commit is contained in:
parent
c5a5fc2820
commit
2b405042b9
|
@ -121,7 +121,7 @@ not explicitly used in either `format` or `right_format`.
|
||||||
Note: The right prompt is a single line following the input location. To right align modules above
|
Note: The right prompt is a single line following the input location. To right align modules above
|
||||||
the input line in a multi-line prompt, see the [fill module](/config/#fill).
|
the input line in a multi-line prompt, see the [fill module](/config/#fill).
|
||||||
|
|
||||||
`right_format` is currently supported for the following shells: elvish, fish, zsh.
|
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh.
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,18 @@ def starship_prompt():
|
||||||
# The `| cat` is a workaround for https://github.com/xonsh/xonsh/issues/3786. See https://github.com/starship/starship/pull/2807#discussion_r667316323.
|
# The `| cat` is a workaround for https://github.com/xonsh/xonsh/issues/3786. See https://github.com/starship/starship/pull/2807#discussion_r667316323.
|
||||||
return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration) | cat)
|
return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration) | cat)
|
||||||
|
|
||||||
|
def starship_rprompt():
|
||||||
|
last_cmd = __xonsh__.history[-1] if __xonsh__.history else None
|
||||||
|
status = last_cmd.rtn if last_cmd else 0
|
||||||
|
# I believe this is equivalent to xonsh.jobs.get_next_job_number() for our purposes,
|
||||||
|
# but we can't use that function because of https://gitter.im/xonsh/xonsh?at=60e8832d82dd9050f5e0c96a
|
||||||
|
jobs = sum(1 for job in __xonsh__.all_jobs.values() if job['obj'] and job['obj'].poll() is None)
|
||||||
|
duration = round((last_cmd.ts[1] - last_cmd.ts[0]) * 1000) if last_cmd else 0
|
||||||
|
# The `| cat` is a workaround for https://github.com/xonsh/xonsh/issues/3786. See https://github.com/starship/starship/pull/2807#discussion_r667316323.
|
||||||
|
return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration) --right | cat)
|
||||||
|
|
||||||
|
|
||||||
$PROMPT = starship_prompt
|
$PROMPT = starship_prompt
|
||||||
|
$RIGHT_PROMPT = starship_rprompt
|
||||||
$STARSHIP_SHELL = "xonsh"
|
$STARSHIP_SHELL = "xonsh"
|
||||||
$STARSHIP_SESSION_KEY = uuid.uuid4().hex
|
$STARSHIP_SESSION_KEY = uuid.uuid4().hex
|
||||||
|
|
Loading…
Reference in New Issue