pub struct ReviewConfig {
pub command: Option<String>,
pub fullscreen: Option<bool>,
pub tool: Option<String>,
pub skip_when_no_changes: bool,
pub default_base: Option<String>,
}Expand description
[review] table — drives the R keybinding in the TUI worktree list
(issue #75). The user picks one of three forms:
command = "<shell line>"— the primary contract; any CLI on $PATH with any arguments. Placeholders{base} {head} {path} {diff}are substituted before the shell line is split withshell-words.tool = "<preset>"— sugar for a built-in(command, fullscreen)pair (seeReviewConfig::resolved).- neither — the
Rkey is inert and the status bar carries a hint.
When both are set, command wins (and the TUI surfaces a status-bar
hint at startup so the user notices their tool choice is shadowed).
Fields§
§command: Option<String>Shell line. Accepts {base} {head} {path} {diff} placeholders.
fullscreen: Option<bool>Whether gwm should suspend its own TUI before exec’ing the command.
Defaults to false so non-TUI tools (a linter, gh pr view --web)
don’t black-out the screen.
tool: Option<String>Preset name; one of lumen, claude, codex, aider, gh.
Resolved to a (command, fullscreen) pair by ReviewConfig::resolved.
skip_when_no_changes: boolSkip the shell-out when git rev-list --count {base}..{head} == 0.
Default true.
default_base: Option<String>Optional pin for the review base ref. Slots into the base-
resolution chain after branch.<n>.merge (upstream) and
branch.<n>.gwm-base, and before the static dev / main
fallback. Setting it overrides only the dev / main step —
upstream and gwm-base still win when present. See
crate::launcher::resolve_review_base for the canonical
order.
Implementations§
Source§impl ReviewConfig
impl ReviewConfig
Sourcepub fn resolved(&self) -> Option<ResolvedLauncher>
pub fn resolved(&self) -> Option<ResolvedLauncher>
Resolve the user’s choice to a concrete (command, fullscreen)
pair, or None when neither command nor a recognised tool was
set. The command field wins when both are present.
Sourcepub fn has_shadowed_tool(&self) -> bool
pub fn has_shadowed_tool(&self) -> bool
True when command and tool are both set — the TUI uses this to
surface a one-shot warning (“your tool = X is shadowed by
command = Y”) on first render.
Trait Implementations§
Source§impl Clone for ReviewConfig
impl Clone for ReviewConfig
Source§fn clone(&self) -> ReviewConfig
fn clone(&self) -> ReviewConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReviewConfig
impl Debug for ReviewConfig
Source§impl Default for ReviewConfig
impl Default for ReviewConfig
Source§impl<'de> Deserialize<'de> for ReviewConfig
impl<'de> Deserialize<'de> for ReviewConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ReviewConfig
impl RefUnwindSafe for ReviewConfig
impl Send for ReviewConfig
impl Sync for ReviewConfig
impl Unpin for ReviewConfig
impl UnsafeUnpin for ReviewConfig
impl UnwindSafe for ReviewConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more