Config: improve error reporting and do a few cleanups and simplifications
Add support for keybindings
The syntax is
bind <keymap> <key> <request>
Keybindings are resolved by first looking in the keymap of the active view,
then in the generic keymap, and finally in the built-in default keybindings.
Examples to put in ~/.tigrc:
bind main w scroll-line-up
bind main s scroll-line-down
bind diff a previous
bind diff d next
bind diff b move-first-line
bind generic g view-next
The syntax is
bind <keymap> <key> <request>
Keybindings are resolved by first looking in the keymap of the active view,
then in the generic keymap, and finally in the built-in default keybindings.
Examples to put in ~/.tigrc:
bind main w scroll-line-up
bind main s scroll-line-down
bind diff a previous
bind diff d next
bind diff b move-first-line
bind generic g view-next
Rename keymap to keybinding, get_request to get_keybinding
Add default configuration file
Add special string comparer for gracefully parsing ~/.tigrc identifiers
Establish "Open view" section
Rename load_help_page to open_help_view and move it up
Also use view->ops->read() instead of pager_read().
Also use view->ops->read() instead of pager_read().
Move keybinding stuff up after line stuff
Support set command in ~/.tigrc; allows a few options to be configured
Simplify the option value tokenization by doing it one place
Factor out set_option_color from set_option
Make declaration of die() specify the __NORETURN attribute
Avoids warnings with gcc 3.3.5.
Avoids warnings with gcc 3.3.5.
Improve error reporting for unknown options
It will now also show usage help.
It will now also show usage help.
Add feature request for showing nearest branch heads or tags for a commit
Requested by Junio.
Requested by Junio.
Makefile: make customization of installation locations easier
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Jonas F Madsen <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Jonas F Madsen <fonseca@diku.dk>
Make the view title show percentage shown like less
The cursor position is already summoned up as "line x of X".
The cursor position is already summoned up as "line x of X".
Implement the basic controlling of revision graph visualization
It is toggleable via 'g', on by default, and restricted to max being 19
chars wide. Note, it still only shows just the left tee.
It is toggleable via 'g', on by default, and restricted to max being 19
chars wide. Note, it still only shows just the left tee.
Add strip rule
Don't begin any update for the built-in help page
More color and attribute maps closer to the users
Simplify detection of tag commits via ^{}
Minor tidyup
Generalize the option parsing
Move tig(1) material to tig.1.txt
Correct error checking
Fixes: cc2d13642a837163fb0e35d87a51ff96b7bf3cb0
Fixes: cc2d13642a837163fb0e35d87a51ff96b7bf3cb0
Remove prev arg to view->ops->read()
Wrap all snprintf usage to simplify error handling
Add support for showing tags and other repo refs in the diff and log view
Refactor view->line reallocation
Make 'h' and '?' show built-in key binding quick reference
Rename documentation build rules using s/docs/doc/; more like git
Add COPYING file
Fix segfault where current_view would become >= sizeof(display)
Hard code current_view indexes for split screen setup.
Reported-by: Dennis (dst_) on #git
Hard code current_view indexes for split screen setup.
Reported-by: Dennis (dst_) on #git
Remove SITES title so it is more adaptive to where it is included
Split out manual material to separate file
List SITES in tig(1)
Move stuff to SITES and INSTALL files
Move stuff to BUGS and TODO files; only show BUGS in tig(1)
Move ~/.tigrc documentation into it's own man page, tigrc(5)
Use ~/.tigrc for user configuration rather than ~/.tig
Add TODO about keybinding cheat sheet
Requested by gitster on IRC.
Requested by gitster on IRC.
Emit more informative error messages when loading ~/.tig
Only touch the option strings if necessary
Improve color documentation
Add support for setting color options in the ~/.tig user configuration file
Now you can put stuff like this in ~/.tig:
# Diff colors
color diff-header yellow default
color diff-index blue default
color diff-chunk magenta default
# UI colors
color title-blur white blue
color title-focus white blue bold
Now you can put stuff like this in ~/.tig:
# Diff colors
color diff-header yellow default
color diff-index blue default
color diff-chunk magenta default
# UI colors
color title-blur white blue
color title-focus white blue bold
Make read_properties take several separator characters; chomp name & value
This concludes the fundation for using read_properties to read options from
a config file.
This concludes the fundation for using read_properties to read options from
a config file.
Oops, fix short help wrt tab size short option
Rename repo config loaders using s/config/repo_config/
load_config -> load_repo_config
read_config_option -> read_repo_config_option
load_config -> load_repo_config
read_config_option -> read_repo_config_option
Make read_properties() take FILE *pipe instead of command line
Document the loading time displayed in the title window after 3 seconds
Make the stop all loading request stop all loading
Notify that the prompt is unusable while loading
List it as a bug.
List it as a bug.
Tab size short option changes from -t to -b
Minor usability fix: when closing never switch to an already closed view
"View commands" section becomes "History commands".
License revisited: it's GPLv2 or later
Fix off by one error; makes tags visible again
Fixes: d0cea5f929be563d049bc5205fb8de08fd080c32
Fixes: d0cea5f929be563d049bc5205fb8de08fd080c32
When updating the title window, move the cursor to the end of line
This way the cursor (hopefully) won't feel so jumpy.
This way the cursor (hopefully) won't feel so jumpy.
Factor out cursor moving
Make window switching smother; fix blurring of previous view when switching
Don't refresh after a resize, since it causes the previous content to be
shortly displayed. We now simply resize and clear and waits for the first
read to start displaying the new content.
Don't refresh after a resize, since it causes the previous content to be
shortly displayed. We now simply resize and clear and waits for the first
read to start displaying the new content.
Never close backgrounded loads; only clear window when starting to update
Before windows was cleared each time open_view maximized for example the
main view when it was still loading.
Before windows was cleared each time open_view maximized for example the
main view when it was still loading.
Only pass on properies with non-zero length names
Refactor reading of properties from pipes
Load config before parsing command line options so they can override
Make UTF-8 handling optional but still default
Handling of output encoding still missing.
Handling of output encoding still missing.
Add support for loading repo config
Test it by storing i18n.commitencoding, soon to be uesd.
Test it by storing i18n.commitencoding, soon to be uesd.
Cleanup see also section
Move env handling up below option handling
Put license also in the program header
Rearrange pager_enter logic
Update README; set a less ugly font-family
Introduce struct line and use it for view->line
Somewhat experimental. This will call get_line_type() on every read line.
Somewhat experimental. This will call get_line_type() on every read line.
Improve title updating and remove flickering
- Show line info even if no lines has been loaded, so less has to be
redrawn.
- Don't make the view window one line bigger causing the title window
to be overwritten. This reinstates the bug in last line drawing.
- Show line info even if no lines has been loaded, so less has to be
redrawn.
- Don't make the view window one line bigger causing the title window
to be overwritten. This reinstates the bug in last line drawing.
Make update reporting less verbose
It got too annoying when browsing through the split main/diff screen.
Instead put the update timer in the title window if it grows beyond
2 seconds.
It got too annoying when browsing through the split main/diff screen.
Instead put the update timer in the title window if it grows beyond
2 seconds.
Fix spurious resizing of the display (take 2)
Add macro for getting number of displayed views
Only resize the display when actually required
Fix updating of the main view title when the screen isn't split
End the current update before begining a new one; fixes CPU hogging
Bind 'j'/'k' to moving up/down; add next/previous requests bound to Down/Up
This adds support for using these next/previous requests for changing the
current commit in the main view from the diff view, if the diff view has
the main view as it's parent.
Works for both split- and full-screen diff views by making redrawing
conditional when moving (and doing the lowlevel scrolling).
Replaces REQ_MOVE_{UP,DOWN}_ENTER.
This adds support for using these next/previous requests for changing the
current commit in the main view from the diff view, if the diff view has
the main view as it's parent.
Works for both split- and full-screen diff views by making redrawing
conditional when moving (and doing the lowlevel scrolling).
Replaces REQ_MOVE_{UP,DOWN}_ENTER.
Move struct commit to appear just above the main view backend
Add -O2 to CFLAGS to get more warnings
Cache all queries for refs based on ID
At least then they won't appear as a source of leaking and in the future
the main view can be reloaded without having to deal freeing them.
At least then they won't appear as a source of leaking and in the future
the main view can be reloaded without having to deal freeing them.
Move git directory assertion to main; don't require .git repo in pager mode
In pager mode, fix entering commit lines from log and pager view
Remove old window cycling code from before enter request appeared
Add simple window stack, tracking view relation ship via parent member
This makes it possible to easily switch back to the main (or log) view
by closing the diff view, regardless of whether it is split or full-screen.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This makes it possible to easily switch back to the main (or log) view
by closing the diff view, regardless of whether it is split or full-screen.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Remove objsize member from struct commit
It is unused.
It is unused.
Make Enter in the pager view always scroll
It will still split to diff view if a commit line is detected.
It will still split to diff view if a commit line is detected.
Record builds with dirty working tree by appending -dirty to the version
Remove trailing space; make cursed global static
Make -h and --help options ouput a help message
Bind '-' to PageUp; raises Mutt compatibility
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Streamline version displaying and show built date
Make Enter in the main view switch to the split diff view
This way, holding down Enter will open the commit diff and start scrolling
much like Mutt behaves.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This way, holding down Enter will open the commit diff and start scrolling
much like Mutt behaves.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add preliminary support for UTF-8 handling in the main view
It is very simple but fixes the issue with unaligned drawing of the line
between the author and log title columns.
It is very simple but fixes the issue with unaligned drawing of the line
between the author and log title columns.
Add close view request; bound to 'q' by default
If only one view is open it will quit. More compatible with Mutt behavior.
Based on patch by Aneesh Kumar <aneesh.kumar@gmail.com>
If only one view is open it will quit. More compatible with Mutt behavior.
Based on patch by Aneesh Kumar <aneesh.kumar@gmail.com>
Bind quit to 'Q'
Add -Werror to the cc debug flags
Pressing Enter in the diff view will now scroll it one line down
Make tig more compatible with Mutt behavior.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Make tig more compatible with Mutt behavior.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>