diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2006-11-12 19:20:02 -0500 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2006-11-13 00:10:39 -0500 |
commit | 358d8de8f3b9d09c9c4d7d43c03d33a4f60ba1da (patch) | |
tree | 3bff7324362d23b3a78a5e99918a29667fb6e333 /git-gui | |
parent | git-gui: Cleanup diff construction code to prepare for more options. (diff) | |
download | tgif-358d8de8f3b9d09c9c4d7d43c03d33a4f60ba1da.tar.xz |
git-gui: Allow the user to control the number of context lines in a diff.
When displaying a diff the Git default of 3 line of context may not be
enough for a user to see what has actually changed. Consequently we
set our own program default to 5 lines of context and then allow the
user to adjust this on a per-repository and global level through our
options dialog.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'git-gui')
-rwxr-xr-x | git-gui | 66 |
1 files changed, 55 insertions, 11 deletions
@@ -517,6 +517,9 @@ proc show_diff {path {w {}} {lno {}}} { set cmd [list | git diff-index] lappend cmd --no-color + if {$repo_config(gui.diffcontext) > 0} { + lappend cmd "-U$repo_config(gui.diffcontext)" + } lappend cmd -p switch $m { @@ -1765,12 +1768,18 @@ proc do_options {} { global repo_config global_config global repo_config_new global_config_new - load_config 1 array unset repo_config_new array unset global_config_new foreach name [array names repo_config] { set repo_config_new($name) $repo_config($name) } + load_config 1 + foreach name [array names repo_config] { + switch -- $name { + gui.diffcontext {continue} + } + set repo_config_new($name) $repo_config($name) + } foreach name [array names global_config] { set global_config_new($name) $global_config($name) } @@ -1811,18 +1820,36 @@ proc do_options {} { pack $w.global -side right -fill both -expand 1 -pady 5 -padx 5 foreach option { - {pullsummary {Show Pull Summary}} - {trustmtime {Trust File Modification Timestamps}} + {b pullsummary {Show Pull Summary}} + {b trustmtime {Trust File Modification Timestamps}} + {i diffcontext {Number of Diff Context Lines}} } { - set name [lindex $option 0] - set text [lindex $option 1] + set type [lindex $option 0] + set name [lindex $option 1] + set text [lindex $option 2] foreach f {repo global} { - checkbutton $w.$f.$name -text $text \ - -variable ${f}_config_new(gui.$name) \ - -onvalue true \ - -offvalue false \ - -font font_ui - pack $w.$f.$name -side top -anchor w + switch $type { + b { + checkbutton $w.$f.$name -text $text \ + -variable ${f}_config_new(gui.$name) \ + -onvalue true \ + -offvalue false \ + -font font_ui + pack $w.$f.$name -side top -anchor w + } + i { + frame $w.$f.$name + label $w.$f.$name.l -text "$text:" -font font_ui + pack $w.$f.$name.l -side left -anchor w -fill x + spinbox $w.$f.$name.v \ + -textvariable ${f}_config_new(gui.$name) \ + -from 1 -to 99 -increment 1 \ + -width 3 \ + -font font_ui + pack $w.$f.$name.v -side right -anchor e + pack $w.$f.$name -side top -anchor w -fill x + } + } } } @@ -1888,6 +1915,7 @@ proc do_save_config {w} { if {[catch {save_config} err]} { error_popup "Failed to completely save options:\n\n$err" } + reshow_diff destroy $w } @@ -1969,6 +1997,7 @@ proc apply_config {} { set default_config(gui.trustmtime) false set default_config(gui.pullsummary) true +set default_config(gui.diffcontext) 5 set default_config(gui.fontui) [font configure font_ui] set default_config(gui.fontdiff) [font configure font_diff] set font_descs { @@ -2318,6 +2347,21 @@ $ui_diff.ctxm add command -label "Decrease Font Size" \ $ui_diff.ctxm add command -label "Increase Font Size" \ -font font_ui \ -command {incr_font_size font_diff 1} +$ui_diff.ctxm add separator +$ui_diff.ctxm add command -label "Show Less Context" \ + -font font_ui \ + -command {if {$ui_fname_value ne {} + && $repo_config(gui.diffcontext) >= 2} { + incr repo_config(gui.diffcontext) -1 + reshow_diff + }} +$ui_diff.ctxm add command -label "Show More Context" \ + -font font_ui \ + -command {if {$ui_fname_value ne {}} { + incr repo_config(gui.diffcontext) + reshow_diff + }} +$ui_diff.ctxm add separator $ui_diff.ctxm add command -label {Options...} \ -font font_ui \ -command do_options |