tpope / vim-rhubarb

rhubarb.vim: GitHub extension for fugitive.vim
MIT License
969 stars 38 forks source link

Support line ranges in :Gbrowse for commits #36

Open odnoletkov opened 5 years ago

odnoletkov commented 5 years ago

It would be great to have :{range}Gbrowse working for commit objects. Especially useful for doing code reviews.

Sample URL:

https://github.com/tpope/vim-rhubarb/commit/b6cbbb0ad3e22870a3cd8d79a22722c63d98d18b#diff-fa7310c9e56a98e1e812ae6c04353771R43

Anchor format is:

#diff-<md5 of path>[L|R]<line number>

with L line number is relative to the origin, with R to the result

Couldn't find a way to select a range in this view, for selected range can either route to the first line or to the cursor position.

As far as I understand for commit fugitive currently doesn't provide path and line numbers, changing that should be most of the work.

tpope commented 5 years ago

The basic logic for figuring out the diff line can be found in s:StageInfo(). I'd recommend duplicating it as a starting point. (Don't try to DRY it up.)

If a range is given, I'd say just use the first line of it, regardless of where the cursor is.

lucasdf commented 5 years ago

hey @odnoletkov , it seems you implemented something like this in your fork. Are you planning to integrate it into the plugin?

odnoletkov commented 5 years ago

See #37

tpope commented 5 years ago

Note the linked Fugitive PR is a prerequisite and the current bottleneck.