Commit Graph

9544 Commits

Author SHA1 Message Date
Johannes Altmanninger
987e367955 Work around incomplete std::to_chars() support in libstdc++ 10
Ubuntu 20.04 ships GCC's libstdc++ 10 from 2020 which implements
std::to_chars() for integers but not for floats. Use the float overload
only if the library advertises support via the feature testing macro.

This can be removed once we require GCC 11 (see
https://www.gnu.org/software/gcc/gcc-11/changes.html).

Closes #4607
2022-05-08 14:00:27 +02:00
Maxime Coste
56c3ab4ff8 Fix parsing of INT_MIN %arg
Fixes #4601
2022-05-05 20:05:24 +10:00
Maxime Coste
d2f9bc8d80 Use std::to_chars to int to str conversion 2022-05-05 08:42:04 +10:00
Maxime Coste
5c6238ef11 Remove invalid assert in ScopedForceNormal destructor
commit 90db664635 introduced logic
to handle the case where the mode had been removed, but did not
get rid of the assert.
2022-05-01 20:59:29 +10:00
Maxime Coste
a1940a3745 Merge branch 'patch-5' of http://github.com/throwawayaccount12345-1/kakoune 2022-05-01 20:54:43 +10:00
Maxime Coste
3e83c17ec8 Merge remote-tracking branch 'krobelus/fix-autorestore-regression' 2022-05-01 20:53:54 +10:00
Johannes Altmanninger
8a7109f9c5 Fix compilation due to failing template deduction for aggregates
gcc 11.2.0 compiles us just fine but clang 13.0.1 fails with this error

	clang++ -DKAK_DEBUG -O0 -pedantic -std=c++2a -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -Wno-ambiguous-reversed-operator -MD -MP -MF .ranges.debug.d -c -o .ranges.debug.o ranges.cc
	ranges.cc:30:17: error: no viable constructor or deduction guide for deduction of template arguments of 'Array'
	    check_equal(Array{{""_sv, "abc"_sv, ""_sv, "def"_sv, ""_sv}} | flatten(), "abcdef"_sv);
	                ^
	./constexpr_utils.hh:14:8: note: candidate template ignored: couldn't infer template argument 'T'
	struct Array
	       ^
	./constexpr_utils.hh:14:8: note: candidate function template not viable: requires 0 arguments, but 1 was provided
	1 error generated.

The same error can be reproduced with this C++ input

	template<typename T, int N>
	struct Array
	{
	    T m_data[N];
	};
	void test() {
	    (void)Array{{1, 2}};
	}

Since "Array" has no constructor, the compiler uses aggregate
initialization. Only recent g++ seems to be smart enough to deduce
template arguments in this case. Help other compilers by adding a
deduction guide. The deduction guide needs to count the array elements
to infer the array size, hence we need to remove braces. Happily,
this is allowed and it's also what std::array does.

Closes #4597
2022-04-28 19:34:36 +02:00
Johannes Altmanninger
52a7c58670 rc autorestore: fix regression due to ! breaking change
Commit 85b78dda (src: Select the data inserted by `!` and `<a-!>`,
merged on 2021-03-06) broke autorestore by making it delete the
restored content.  I've been using it for 6 months but never noticed
since I didn't use autorestore

Reproducer:

	HOME=$PWD kak -s foo README.asciidoc -e 'exec iUNSAVED-CONTENT'
	# In another terminal:
	ps aux | awk '/kak -s foo/ {print $2; exit}' | xargs kill -HUP
	HOME=$PWD kak -s foo README.asciidoc

Delete the trailing newline instead of the restored content.

While at it, remove some <space> commands from execute-keys, to make
it work on the breaking-cleanups branch which swaps <space> and ",".

Closes #4335
2022-04-28 19:32:24 +02:00
Maxime Coste
ceaac1c400 Merge remote-tracking branch 'danr/patch-4' 2022-04-25 19:31:48 +10:00
Maxime Coste
bb742eda0f Merge remote-tracking branch 'in0ni/master' 2022-04-25 19:31:16 +10:00
Maxime Coste
f953ce1746 Merge remote-tracking branch 'AndrewVos/patch-1' 2022-04-25 19:29:42 +10:00
Maxime Coste
81b520847c Introduce a flatten range adapter and use it in execute_keys_cmd
This avoids allocating a KeyList vector in which to flatten all
the different arguments and simplifies the client logic.
2022-04-25 19:27:16 +10:00
Dan Rosén
3b0f69a6d6
Fix documentation for %val{window_range}
Makes line and column be the right way around in the docs.
2022-04-22 21:26:15 +02:00
throwawayaccount12345-1
3ab88f4b7c
rc file-detection hook group
Add a group to the `file-detection` hooks.

There's no way to remove hooks without a group. With this patch, you'll be able to remove those
`file-detection` hooks manually. There's no need for two separate groups since if you wanted to
remove only one, you could run `remove-hooks` and then only add one again.


Related: #3670
2022-04-20 23:11:10 -03:00
Andrés González
384d89ba7a Merge branch 'master' of github.com:in0ni/kakoune 2022-04-19 18:36:32 -04:00
Andrés González
abc3654765 include : and :: as being highlighted for pseudo classes 2022-04-19 18:31:33 -04:00
Andrew Vos
0f966e656b
Disable external diff tools when diffing buffer
There is a bug that causes `:git show-diff` to fail when using an external diff, for example difftastic.

This change ensures that we don't use an external diff tool when diffing the current buffer.
2022-04-12 16:26:38 +01:00
Andrés González
4215e8a6eb use '0:FACE' for selectors as the entire string should be highlighted 2022-04-12 08:38:18 -04:00
Andrés González
b81d38da5e remove '+a' in pseudo classes face 2022-04-12 08:31:06 -04:00
Andrés González
8888b8d561 only highlight html tags (1:keyword), fix typo in pseudo 2022-04-12 08:27:47 -04:00
Andrés González
480be5207c allow html tags to be followed by comma, create cssLogicalOperator face 2022-04-12 08:22:56 -04:00
Maxime Coste
90db664635 Fix crash when deleting a buffer from a user mapping
Deleting a buffer resets normal mode on all clients that were
displaing that buffer, but ScopedForceNormalMode that are used
from user mode  do not take this possiblity into account on
destruction, which leads to deleting the last normal mode from
the context, ending up with an empty mode stack.

Fixes #3909
2022-04-12 12:49:19 +10:00
Maxime Coste
b2c6bc4690 Merge branch 'doc-buffers' of http://github.com/Pound-Hash/kakoune 2022-04-11 19:55:34 +10:00
Maxime Coste
3c0ca3e6ae Merge remote-tracking branch 'inahga/inahga-update-go-highlighting' 2022-04-11 19:54:48 +10:00
Maxime Coste
adbb7b8118 Merge remote-tracking branch 'krobelus/sway-focused_tab_title' 2022-04-11 19:53:20 +10:00
Maxime Coste
9d66c97fba Merge remote-tracking branch 'krobelus/fix-doc-links' 2022-04-11 19:53:05 +10:00
Maxime Coste
7d1989d48b Merge remote-tracking branch 'krobelus/black-on-white-colorscheme' 2022-04-11 19:52:41 +10:00
Maxime Coste
5b7f112fdc Merge remote-tracking branch 'krobelus/format-show-error-in-client' 2022-04-11 19:52:15 +10:00
Maxime Coste
0ddad3c030 Merge remote-tracking branch 'Screwtapello/cleanup-session-name-validation' 2022-04-11 19:50:54 +10:00
Maxime Coste
e40ff99eae Code style cleanups around object selection code 2022-04-11 19:49:36 +10:00
Pound_Hash
dbc88281c7 Fixed grammar; rendered the construction parallel. 2022-04-10 21:49:54 -07:00
Johannes Altmanninger
f0122f10df Add black-on-white colorscheme
Kakoune doesn't have an equivalent of Vim's ":syntax off". This
colorscheme is as close as it gets: it uses various shades of grey
for cursors, selections and completion/info boxes, and black/white for
everything else.  The high-contrast makes it ideal for bright settings.

I also have the dual white-on-black colorscheme but it's not tested
much, so I left it on my "colorschemes" branch.
2022-04-09 15:38:04 +02:00
Johannes Altmanninger
a0477b1016 rc format: restore in-client error when formatcmd fails
Commit 5b1f9255 (rc: Use the standard `fail` command to report errors,
2019-11-14) replaced uses of "echo -markup {Error}" with "fail".
This made format-buffer do

	echo "eval -client $kak_client %{ fail }" | kak -p $kak_session

Unfortunately "fail" fails in the client spawned by "kak -p" and not
in $kak_client where the user would see the message. Correct this.

While at it, clarify the error message, so users immediately know
that the number is the exit code.

Fixes #3254
2022-04-09 15:36:02 +02:00
Johannes Altmanninger
019a73f4b9 rc i3: highlight sway's focused_tab_title option
Not sure if this should support sway-specific extensions but it doesn't hurt.
2022-04-09 15:29:54 +02:00
Johannes Altmanninger
7c43a4b51b doc: fix dead links to doc pages 2022-04-09 15:29:54 +02:00
Tim Allen
9cf8a3ccd6 Check for buffer overflow when constructing the socket path. 2022-04-07 21:36:15 +10:00
Tim Allen
9e6b678cf7 Do all session name validation in session_path(). 2022-04-07 21:23:10 +10:00
Ameer Ghani
f29ff7e3c6
rc/filetype/go: uintptr type missing syntax highlighting 2022-04-04 23:14:31 -04:00
Ameer Ghani
293a02bfa0
rc/filetype/go: add new go 1.18 predeclared identifiers
Go 1.18 introduces the `any` and `comparable` predeclared identifiers. Modify
the list of identifiers here, so syntax highlighting will catch these new
identifiers. See https://go.dev/ref/spec#Predeclared_identifiers.
2022-04-04 23:10:23 -04:00
Ameer Ghani
2fc07d92c2
Ameer Ghani Copyright Waiver
I dedicate any and all copyright interest in this software to the
public domain.  I make this dedication for the benefit of the public at
large and to the detriment of my heirs and successors.  I intend this
dedication to be an overt act of relinquishment in perpetuity of all
present and future rights to this software under copyright law.
2022-04-04 23:08:59 -04:00
in0ni
fbf1d98e58
Merge branch 'mawww:master' into master 2022-04-03 11:59:17 -04:00
Andrés González
f008d6dec2 Merge branch 'master' of github.com:in0ni/kakoune 2022-04-03 11:58:25 -04:00
Andrés González
5fdff9a8ff explicitely name highlighters, remove comments that described them 2022-04-03 11:55:45 -04:00
Andrés González
1b9929bb73 remove comments for code used to generate lists of elements/units, explicitely name highlighters 2022-04-03 11:55:31 -04:00
Maxime Coste
eae8ea8a54 Merge remote-tracking branch 'krobelus/ini-hash-comments' 2022-03-21 21:04:55 +11:00
Maxime Coste
3667f8bb21 Merge branch 'master' of http://github.com/eko234/kakoune 2022-03-21 20:55:12 +11:00
Maxime Coste
bde59926be Merge remote-tracking branch 'tomKPZ/fix-buffer-overflow' 2022-03-21 20:52:07 +11:00
Maxime Coste
243a2abf45 Merge remote-tracking branch 'hugomg/hugomg-ubuntu-g++-10' 2022-03-21 20:50:09 +11:00
Maxime Coste
5e7afdcd04 Merge remote-tracking branch 'CharlesGueunet/FixCMakeComment' 2022-03-21 20:49:42 +11:00
Hugo Musso Gualandi
73f0de4085 Improved installation instructions for Ubuntu
Added information on how to install from the repositories. Improved the instructions for how to build from source, for those that don't want an ancient version of Kakoune. On Ubuntu 20.04 and earlier, GCC 10 is not the default so we have to explicitly tell `make` to use GCC 10.

See also: https://github.com/mawww/kakoune/issues/4571
2022-03-20 16:22:27 +01:00