Commit Graph

2708 Commits

Author SHA1 Message Date
Johannes Altmanninger
14b60ab912 rc grep: include stderr in grep buffer
Running an invalid command like "grep -abc" shows no output at all.
Let's give better feedback by showing the error message from grep.
We used to do this until an unrelated change, bd5955c73 (grep: remove
eventual \r, 2013-02-13).
2023-11-12 11:59:11 +01:00
Maxime Coste
6babba9bfa Merge remote-tracking branch 'stacyharper/git-log-ret' 2023-11-05 13:49:58 +11:00
Maxime Coste
7a130c89ce Merge remote-tracking branch 'jdugan6240/odin-support' 2023-11-05 13:48:57 +11:00
Maxime Coste
1da8952e1f Merge remote-tracking branch 'lobre/git-edit' 2023-11-05 11:12:43 +11:00
Maxime Coste
c0788f370b Merge remote-tracking branch 'krobelus/patch-selected-lines' 2023-11-05 11:09:41 +11:00
Loric Brevet
83b7bbdc55
rc/tools/git: edit a git indexed file with git edit 2023-11-04 13:43:10 +01:00
Johannes Altmanninger
286dab11d4 rc tools git: "git apply" to apply selections in diffs
This adds a somewhat discoverable frontend for common uses of the
patch command.

Here are some frequently used commands

	# apply selected changes
	git apply 
	# revert selected changes
	git apply -R
	# stage selected changes
	git apply --cached
	# unstage selected changes
	git apply --cached -R
	# apply selected changes and stage them
	git apply --index

For everyday use that's a lot of typing so I recommend adding mappings.
2023-11-04 12:14:48 +01:00
Johannes Altmanninger
8c0424b521 rc tools patch: "patch" command to apply selections in diffs to file
One of the features I miss most from Magit/Fugitive/Tig is to
apply/revert/stage/unstage individual hunks or even exactly the
selected line(s).  This provides a much more convenient way of
splitting changes than "git add/restore -p".

Implement a "patch" command that applies the selected lines within
a diff by piping them to the "patch" program.
It can also feed other programs like "git apply" (see the next commit).

Original discussion: https://discuss.kakoune.com/t/atomic-commits-in-kakoune/1446

Interestingly, :patch is defined outside the "patch" module. This is
to make it readily available for interactive use.
Putting it into the module does not save any work.
I tentatively added a patch module anyway so we can explicitly declare
this dependency.. although there is the argument that this is not
really needed?
2023-11-04 12:14:48 +01:00
Dimitri Sabadie
27f19fdd91
Rename diff_* into git_diff_*. 2023-11-03 22:04:22 +01:00
Dimitri Sabadie
8e10822a87
Support setting diff characters in git diffs.
This commit adds `diff_add_char`, `diff_mod_char`, `diff_del_char` and `diff_top_char` as `str` options, with typical
defaults.

This commit also replaces the hard coded +, _, ≃, etc. hardcoded characters in `git update-diff` to use the options from
above.
2023-11-03 22:04:22 +01:00
Maxime Coste
154a393c7b Merge remote-tracking branch 'arrufat/zig-syntax' 2023-11-02 18:29:35 +11:00
Maxime Coste
41e57f62dc Merge branch 'juliacolors' of http://github.com/chriselrod/kakoune 2023-11-02 18:28:53 +11:00
Maxime Coste
e882c23501 Merge remote-tracking branch 'greenfork/improve-janet-syntax' 2023-11-02 18:21:59 +11:00
Maxime Coste
81d94ac06c Merge remote-tracking branch 'ii8/master' 2023-11-02 18:21:15 +11:00
Adrià Arrufat
0015a29c19 rc/filetype/zig: remove align builtin and add f80 type
In commit ca36d0d228
the align function was added as a builtin accidentally.

Also, f80 type was added in Zig 0.10.0: https://ziglang.org/download/0.10.0/release-notes.html#f80
2023-11-02 12:13:41 +09:00
Bob Qi
8424fbe0f0 rc/make.kak reuse make_error_pattern 2023-11-02 09:11:18 +08:00
chriselrod
7bc1504725
@macro! 2023-11-01 17:23:03 -04:00
chriselrod
bf4f780cfa
Many more Julia operators 2023-10-31 23:13:33 -04:00
chriselrod
e48d81d20b
Add more highlighters for Julia 2023-10-31 22:49:19 -04:00
Dmitry Matveyev
4332b0dc71 janet: syntax improvements and trailing whitespace cleaning 2023-10-31 11:15:38 +04:00
murray
b20747d44e Gren highlighting
Gren is an elm fork and it's syntax is currently still
similar enough to use the same highlighter.
2023-10-29 20:51:42 +00:00
Bob Qi
760f63b827 rc/make.kak set option type to be regex 2023-10-29 09:05:33 +08:00
Bob Qi
cb540def46 rc/make.kak avoid another using pattern directly 2023-10-27 10:16:57 +08:00
Bob Qi
8e5ca3f214 rc/make.kak introduce a new option to be back compatible 2023-10-27 09:57:10 +08:00
Bob Qi
2d849cc147 rc/make.kak set search register to avoid injection 2023-10-27 08:25:38 +08:00
Bob Qi
d0571ce238 rc/make.kak support override the whole error line pattern 2023-10-26 10:13:07 +08:00
Maxime Coste
b020922e6f Fix some corner cases in c-family indentation 2023-10-25 12:51:16 +11:00
Maxime Coste
d50048d0b4 Highlight a few extra mail headers 2023-10-24 10:47:20 +11:00
Maxime Coste
5c793a6a1e Merge remote-tracking branch 'Screwtapello/hint-git-next-hunk' 2023-10-04 21:04:27 +11:00
Tim Allen
9286a7ee49 Make "git next-hunk" hint about how it works. 2023-10-04 10:53:20 +11:00
Tim Allen
87787defd8 The command is called "git prev-hunk", not "git previous-hunk". 2023-10-04 10:52:15 +11:00
Caleb Heuer
5ec40c63b2 Add highlighting of Lua variables, labels, and self keyword 2023-09-30 11:57:30 -06:00
James Dugan
24ab9d4343 Added odinlang support 2023-09-24 17:03:07 -06:00
Maxime Coste
12f42a2faf Merge remote-tracking branch 'stacyharper/git-grep-complete' 2023-09-23 21:26:40 +10:00
Bob Qi
235552c5fa rc/tools/git add --column to git grep 2023-09-18 16:18:32 +08:00
Willow Barraco
527a897584
rc/tools/git: enable <ret> to diff-jump
As we require diff here, it make using git log -p very convenient to go
to the source files.
2023-09-12 13:46:48 +02:00
Willow Barraco
cfd7d8e361
rc/tools/git: add basic completion for git-grep 2023-09-12 11:32:26 +02:00
Willow Barraco
01fd6552af
tools/git: add git grep using existing grep tool 2023-09-10 11:31:07 +02:00
Maxime Coste
f21145c249 Merge remote-tracking branch 'QiBaobin/filetype-grovvy' 2023-09-08 05:28:56 +10:00
Maxime Coste
76306f7c05 Merge remote-tracking branch 'raiguard/rc/go-highlighting' 2023-09-08 05:28:08 +10:00
Bob Qi
8f6ef9512f add groovy filetype 2023-09-07 09:52:00 +08:00
Caleb Heuer
142925fc90 This is numerics, not identifiers 2023-09-06 12:24:06 -06:00
Caleb Heuer
c338efe078 Support generics in function highlighting 2023-09-06 12:03:49 -06:00
Caleb Heuer
6148a16a0e Add spread operator 2023-09-06 12:03:49 -06:00
Caleb Heuer
88bb854f36 Improve Go highlighting 2023-09-06 12:03:49 -06:00
Bob Qi
c6270512fd fix a sed error on mac
sed: 1: "/^&/ { s/^[^:]*: //; s/ ...": extra characters at the end of p command
2023-09-05 14:48:26 +08:00
Michał Kruszewski
521549fb69 troff: Highlight .PSPIC and .PDFPIC macros 2023-07-30 09:47:10 +02:00
Maxime Coste
dad128e4a6 Merge remote-tracking branch 'QiBaobin/rc/windowing/wezterm' 2023-07-29 15:34:15 +10:00
Maxime Coste
90acec991f Merge remote-tracking branch 'omasanori/ocaml-lex-and-yacc' 2023-07-29 15:33:48 +10:00
Maxime Coste
991b233468 Merge remote-tracking branch 'arrufat/zig-builtin-functions' 2023-07-29 15:33:15 +10:00
Bob Qi
117f12dbd6 pass cwd for wezterm terminal 2023-07-27 13:28:37 +08:00
Masanori Ogino
8fb0a99f05 Detect .mll and .mly files as OCaml sources 2023-07-26 17:15:06 +09:00
Adrià Arrufat
fdb33e7302 zig: add c_char type 2023-07-26 12:37:35 +09:00
Adrià Arrufat
ca36d0d228 zig: update builtin functions for v0.11.0 2023-07-26 12:26:49 +09:00
Adrià Arrufat
eabc7cd2a8 Set filetype to Zig for zon files. 2023-07-25 15:30:52 +09:00
Adrià Arrufat
3cca4c5098 Auto-remove empty comments in Zig like in the C-family.
This makes Kakoune behave more consistently when using it for Zig.
Empty comments are already auto-removed from the C-family and Python.
In this PR, string literals that start with \\ are not removed in purpose.
2023-07-04 16:40:24 +09:00
Maxime Coste
4f60a828cd Merge remote-tracking branch 'ericv8v9s/master' 2023-07-03 20:06:01 +10:00
Maxime Coste
74b0bf6c9e Merge remote-tracking branch 'GrantMoyer/patch-1' 2023-07-03 20:04:00 +10:00
Eric
a9b52b315c Fixed lisp highlighter marking everything as variable 2023-07-01 15:27:13 +08:00
Grant Moyer
7115858093
Quote doc file path in doc-render command
Without quoting the file path,
the `doc` command fails to display any docs with spaces or backslashs (on Cygwin) in their paths.
2023-06-23 12:38:19 -04:00
Evan Lloyd New-Schmidt
c1e6fe4ca1 Add standard SQL comments 2023-06-21 16:48:24 -07:00
Maxime Coste
18d4c40f08 Fix c-family closing brace indent behaviour on some corner cases 2023-06-15 17:42:19 +10:00
Maxime Coste
4106791adc Fix windowing detection echoing last module error if none matched
Display a more general message in the debug buffer.
2023-06-13 17:08:42 +10:00
Bob Qi
365fe58826 fix arg quoting 2023-06-09 17:57:48 +08:00
Bob Qi
b64dce3e95 rc/windowing/wezterm.kak 2023-06-09 15:43:07 +08:00
Maxime Coste
6bee11c7dd Merge remote-tracking branch 'QiBaobin/kakrc-hl' 2023-06-05 20:13:07 +10:00
Maxime Coste
0338294223 Merge remote-tracking branch 'greenfork/hare-comment-insert' 2023-06-05 20:11:23 +10:00
Dmitry Matveyev
caf6f6ff7e hare.kak: change back the command
Previously was changed in

https://github.com/mawww/kakoune/pull/4785

Probably some race condition that right now works with a big letter P?
2023-06-04 09:49:52 +06:00
Johannes Altmanninger
b7e9d9bae3 rc detection modeline: optimize modeline pre-filtering
modeline-parse leads by matching an expensive regex against the entire buffer,
which can take a long time on huge files.

Perl takes too long on this regex and it seems not even ripgrep
optimizes the \z component

	$ ruby -e '10000.times { puts "a" * 10000 }' > big
	$ time rg --multiline --only-matching '\A(.+\n){1,5}|(.+\n){1,5}\z' big | wc -l
	10
	__________________________
	Executed in  419.81 millis
	   usr time  399.84 millis
	   sys time   20.78 millis

where

	$ time kak big -e q
	__________________________
	Executed in  179.19 millis
	   usr time  133.61 millis
	   sys time   53.50 millis

Let's lose the regex.

Fixes #4911
2023-06-02 22:38:32 +02:00
Bob Qi
acaca4955e add Highlight for complete-command shell-script 2023-06-02 15:31:41 +08:00
Maxime Coste
7f950bc4a9 git.kak: Use gawk's strftime instead of shelling out to date
`date -d` is not posix, strftime neither, but at least we only rely
on one non-posix tool and avoid forking.

Should help a bit for #4847
2023-05-30 13:01:56 +10:00
Maxime Coste
375a3c87df Merge remote-tracking branch 'jtrv/grep-kak-literal-string-matching' 2023-05-15 21:22:56 +10:00
Maxime Coste
a69be6288c Merge remote-tracking branch 'poweredbypie/master' 2023-05-10 20:08:12 +10:00
Maxime Coste
4a8b24bb8c Merge remote-tracking branch 'razcore-rad/godot4-gdscript' 2023-05-10 20:01:49 +10:00
Maxime Coste
bdc459e666 Merge remote-tracking branch 'arrufat/improve-python-insert-on-new-line' 2023-05-10 20:01:08 +10:00
Maxime Coste
83753b7f94 Merge remote-tracking branch 'm-kru/troff_pic' 2023-05-10 20:00:36 +10:00
Maxime Coste
e74424d889 Merge remote-tracking branch 'Frojdholm/rc-windowing-kitty-window-id' 2023-05-10 19:54:12 +10:00
Johannes Altmanninger
94e3ea9687 rc windowing wayland/x11: do not pollute terminal environment
The x11-terminal command spawns a potentially long-lived terminal
process. The terminal can is completely independent of the Kakoune
session that created it.
Due to how it's implemented, the spawned terminals will have
environment variables "kak_opt_termcmd" and  "kak_quoted_reg_a"
set.  This can be surprising, especially since, by convention, the
environment contains no lowercase variables. Let's stop exporting them.
2023-05-09 11:32:37 +02:00
Hampus Fröjdholm
7c54de2334 Match against kitty window id directly when using kitty @ launch
When launch matches using `id` kitty tries to match against tab id
before matching windows. When there are multiple tabs it's likely to
match a tab before matching a window.

Use `window_id` directly to avoid any possiblity of matching tabs.

This is only needed for `kitty @ launch` for other commands there is
no specific `window_id` field.
2023-05-07 17:06:09 +02:00
Johannes Altmanninger
be7a0695a8 rc: move remaining comment insertion hooks to *-insert group
This continues the work started by 0a9c90fec (rc: use a separate
*-insert hook to auto-insert comments, 2021-04-17).

The one that's left is Rust but that one is trickier.
2023-05-03 19:36:50 +02:00
JacobTravers
cac2167540 case directly to $kak_opt_grepcmd 2023-04-06 10:20:52 -07:00
Michał Kruszewski
0a2541f73a troff filetype: Add support for pic syntax highlighting 2023-04-06 09:30:53 +02:00
JacobTravers
d8b9b13d07 apply literal flag according to grep tool 2023-04-05 15:34:37 -07:00
Adrià Arrufat
cea35cf5f4 Delete commenting prefix on empty lines in Python 2023-04-02 21:09:57 +09:00
JacobTravers
4d9b853561 Use grep -F when no argument is passed (literal string match)
Why?
Most users who pass the current selection to grep likely do not intend to pass
the selection as a regex input string.

This makes the grepcmd use an additional -F flag to perform literal-string
matching for the current selection. The -F flag seems to be the standard flag
for literal-string matching in every grep implementation I've found.
2023-03-31 14:11:14 -07:00
Răzvan C. Rădulescu
1e597eb010 fix improper set/get = highlight for Godot v4.x GDScript 2023-03-25 07:14:34 +02:00
Răzvan C. Rădulescu
6ff293ad3a Add missing in to Godot v4.x GDScript keywrods 2023-03-24 09:16:53 +02:00
Răzvan C. Rădulescu
1882d76392 Add unique names (%NodeName) highlight for Godot v4.x GDScript 2023-03-22 06:24:23 +02:00
Răzvan C. Rădulescu
0e298ca62e Clean up Godot 4.x GDScript highlights & fix const highlight overtaking numbers 2023-03-20 12:52:23 +02:00
Răzvan C. Rădulescu
d6326f609c Highlight all uppercase words for constants & enums Godot v4.x GDScript 2023-03-20 07:31:08 +02:00
Răzvan C. Rădulescu
80f0cda8b5 Update GDScript highlighting for Godot v4.0 2023-03-19 18:55:27 +02:00
PoweredByPie
db348bc6b3 rc/filetype/svelte.kak: Set buffer rather than window filetype 2023-03-14 23:02:53 -07:00
Maxime Coste
86dc4130e1 Merge branch 'fix/hare-comment-insert' of http://github.com/stacyharper/kakoune 2023-03-13 21:38:01 +11:00
Maxime Coste
58ead47fb4 Merge remote-tracking branch 'krobelus/tmux' 2023-03-13 21:33:31 +11:00
Bob Qi
4f0334c476 add zellij-action command 2023-02-26 07:29:39 +08:00
Bob Qi
02bc786fb7 remove the option and provide session name explictly 2023-02-24 12:21:16 +08:00
Bob Qi
f33126c2a9 give up to wrap command into a shell to avoid conflict with connect.kak 2023-02-22 15:57:22 +08:00
Bob
4ff5de6273 Create zellij.kak 2023-02-22 13:17:04 +08:00
Maxime Coste
6b7ed51be1 Merge branch 'hare-packed' of http://github.com/stacyharper/kakoune 2023-01-27 11:26:17 +11:00
Maxime Coste
9763ce4fe9 Merge remote-tracking branch 'razetime/master' 2023-01-27 10:58:32 +11:00