kakoune/rc/tools
Sidharth Kshatriya 2825ca5f73 When viewing :git diff or :git show within kakoune, this commit
adds the ability to press <ret> within a hunk and navigate to the original
source code. This can be useful because one often needs to go back and forth
between the diff and the full source code.

- You can press <ret> anywhere _within_ a hunk i.e. lines that start with
  ` `, `+`, `-`. You will be taken to the exact line in the source that corresponds
  to where you pressed <ret> in the hunk. It actually does not make sense
  to press <ret> on a `-` line because that does not exist anymore but
  in that case you are taken to a nearby line in the hope this is still useful.

- You can also press <ret> on a range line (lines that
  look like @@ ... @@). If you press <ret> on anywhere on a range line e.g.

  ```
  @@ -120,3 +123,4 @@ fn some_function {
  ```
  The code will try to navigate to the section heading "fn some_function {"
  Note that the section heading is _not_ necessarily located at the
  range line (in the above example the range line is 123).

- You can press <ret> on a +++ line also and you will be taken the first
   line of the file

Caveats:
- Navigation to the original source file will be accurate only if any edits to
  the original source file have been saved to disk, because otherwise
  they will not be detected by the `:git diff` or `:git show` commands
- This feature should work well for most typical uses e.g. `:git diff`, `:git diff HEAD^`
  `:git diff <some-sha1>`. In fact this feature should work in all scenarios when
  the *current files* on disk are being compared _with_ some arbitrary git revision/staging.
  It will be less useful in other scenarios when two arbitrary revisions are being
  compared to each other or when you are trying to compare staging to some revision.
  For example when you invoke `:git diff --staged` you are trying to compare staging
  with HEAD but are navigating to what is currently on disk (which may be different
  from staging).

Co-authored-by: Johannes Altmanninger <aclopte@gmail.com>
2021-11-22 23:33:09 +05:30
..
go gopls.kak: use nop for removing temp dir 2020-10-17 09:47:07 +02:00
python Fix jedi off-by-one and refactor jedi 2021-05-04 20:57:13 +02:00
rust simplify rust completion to match generic Kakoune completions 2019-05-17 20:00:40 +03:00
autorestore.asciidoc Update plugin docs to not duplicate docstring information. 2020-09-03 17:18:19 +10:00
autorestore.kak Reference content goes in docstrings, explanations go in prose docs. 2020-09-04 19:20:50 +10:00
autowrap.kak rc: Make docstrings more readable 2020-02-03 20:53:28 +01:00
clang.kak Replace write -atomic with write -method <method> 2020-10-27 20:20:18 +11:00
comment.kak Disable comment_line for ocaml/coq 2021-10-04 13:19:00 -04:00
ctags.kak Merge remote-tracking branch 'lenormf/patch-3' 2020-02-05 20:41:40 +11:00
doc.asciidoc Update plugin docs to not duplicate docstring information. 2020-09-03 17:18:19 +10:00
doc.kak rc doc: Don't spawn processes unecessarily 2021-09-16 11:47:44 +03:00
format.kak rc: Consistently use a dot as template separator 2020-11-30 14:24:06 +03:00
git.kak When viewing :git diff or :git show within kakoune, this commit 2021-11-22 23:33:09 +05:30
grep.kak Apply suggestions from code review 2020-09-06 10:56:37 +10:00
lint.asciidoc Reference content goes in docstrings, explanations go in prose docs. 2020-09-04 19:20:50 +10:00
lint.kak Fix #3957 2021-07-09 22:18:25 -03:00
make.kak rc/tools/make.kak: quote "${kak_opt_makecmd}" 2021-11-05 13:43:18 -03:00
man.kak rc man: Gracefully fail link search 2021-11-04 07:31:43 +03:00
spell.kak Add standard DiagnosticError and DiagnosticWarning faces. 2021-09-07 17:46:50 +10:00