From d11c39b620579d67af0204fbe9ca3812dcbc70ff Mon Sep 17 00:00:00 2001 From: Jan De Dobbeleer Date: Tue, 15 Mar 2022 20:16:04 +0100 Subject: [PATCH] feat(pwsh): debug prompt --- src/cli/prompt_print.go | 5 ++++- src/engine/config.go | 1 + src/engine/engine.go | 5 +++++ src/engine/init/omp.ps1 | 5 +++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/cli/prompt_print.go b/src/cli/prompt_print.go index 4d2db2cf..b649afeb 100644 --- a/src/cli/prompt_print.go +++ b/src/cli/prompt_print.go @@ -29,10 +29,11 @@ var ( // printCmd represents the prompt command var printCmd = &cobra.Command{ - Use: "print [primary|secondary|transient|right|tooltip|valid|error]", + Use: "print [debug|primary|secondary|transient|right|tooltip|valid|error]", Short: "Print the prompt/context", Long: "Print one of the prompts based on the location/use-case.", ValidArgs: []string{ + "debug", "primary", "secondary", "transient", @@ -86,6 +87,8 @@ var printCmd = &cobra.Command{ Plain: plain, } switch args[0] { + case "debug": + fmt.Print(eng.PrintExtraPrompt(engine.Debug)) case "primary": fmt.Print(eng.PrintPrimary()) case "secondary": diff --git a/src/engine/config.go b/src/engine/config.go index 62bb25d4..b63da3c9 100644 --- a/src/engine/config.go +++ b/src/engine/config.go @@ -40,6 +40,7 @@ type Config struct { ValidLine *ExtraPrompt `json:"valid_line,omitempty"` ErrorLine *ExtraPrompt `json:"error_line,omitempty"` SecondaryPrompt *ExtraPrompt `json:"secondary_prompt,omitempty"` + DebugPrompt *ExtraPrompt `json:"debug_prompt,omitempty"` Palette color.Palette `json:"palette,omitempty"` format string diff --git a/src/engine/engine.go b/src/engine/engine.go index f09affa1..9bd3ab19 100644 --- a/src/engine/engine.go +++ b/src/engine/engine.go @@ -275,11 +275,14 @@ const ( Valid Error Secondary + Debug ) func (e *Engine) PrintExtraPrompt(promptType ExtraPromptType) string { var prompt *ExtraPrompt switch promptType { + case Debug: + prompt = e.Config.DebugPrompt case Transient: prompt = e.Config.TransientPrompt case Valid: @@ -297,6 +300,8 @@ func (e *Engine) PrintExtraPrompt(promptType ExtraPromptType) string { return template } switch promptType { // nolint: exhaustive + case Debug: + return "[DBG]: " case Transient: return "{{ .Shell }}> " case Secondary: diff --git a/src/engine/init/omp.ps1 b/src/engine/init/omp.ps1 index bbc7594d..116596b1 100644 --- a/src/engine/init/omp.ps1 +++ b/src/engine/init/omp.ps1 @@ -67,6 +67,11 @@ function global:Initialize-ModuleSupport { $env:POSH_TRANSIENT = $false return } + if (Test-Path variable:/PSDebugContext) { + $standardOut = @(&$omp prompt print debug --pwd="$cleanPWD" --pswd="$cleanPSWD" --config="$config" 2>&1) + $standardOut -join "`n" + return + } $errorCode = 0 Initialize-ModuleSupport Set-PoshContext