Maxim Baz
8f350ad5a9
Bring the italic formatting back
2020-01-20 09:46:11 +01:00
Maxim Baz
4dce836c5a
Fix version notes formatting
2020-01-16 13:23:13 +01:00
Maxime Coste
9ca479ed40
Kakoune v2020.10.16
2020-01-16 20:52:20 +11:00
Maxime Coste
b6f4985c10
Use markup for startup-info message
2020-01-04 12:12:38 +11:00
Jason Felice
b03b51d27a
Add 'history' and 'uncommitted_modifications' expansions
2020-01-01 19:47:29 -05:00
Maxime Coste
878a7fbb90
Fix window_range expansion
...
It relied on the buffer first char being visible, and could trigger
segfaults when that was not the case.
2019-12-16 14:09:20 +11:00
Maxime Coste
9ace7b584d
Kakoune v2019.12.10
2019-12-10 21:36:03 +11:00
Maxime Coste
ee2985739b
Merge remote-tracking branch 'lenormf/window-range'
2019-12-04 21:16:11 +11:00
Maxime Coste
cb1b03c0db
Add support for markup in info boxes
...
Fixes #2552
2019-11-22 21:50:51 +11:00
Maxime Coste
ba621dedd6
Ignore SIGTTOU
...
We can get this signal while suspending if a parent process (say
git-commit) has already put us in the background. We still need
to reset the termios state to exit raw input mode and make the shell
usable.
Fixes #3069
2019-11-18 21:00:59 +11:00
Maxime Coste
1de038a743
Move the forked server into a new session and process group
...
Fixes #3212
2019-11-17 22:44:49 +11:00
Jason Felice
0f58f01428
Fix display column computations
...
Closes #3201
2019-11-12 20:43:14 -05:00
Maxime Coste
e964b68ab8
Add support for selecting and exporting selections in display columns
...
Fixes #2724
2019-11-12 21:56:45 +11:00
Maxime Coste
7a8f57f97b
Add support for a -codepoint switch to the select command
2019-11-12 21:21:24 +11:00
Jason Felice
5fae16faef
Implement %val{selections_char_desc}
...
Fixes #3194
2019-11-12 20:54:32 +11:00
Maxime Coste
8e63aa1548
Check that stdout is a tty in ncurses ui
2019-11-09 08:19:45 +11:00
Frank LENORMAND
3816f1fa43
src: Make sure clients connect from a TTY
...
Fixes #3159
2019-11-05 20:24:08 +01:00
Frank LENORMAND
c744b59f7d
src: Add a window_range
default expansion
...
This commit adds a `window_range` default expansion that holds the
coordinates and size of the buffer-space on the window.
Fixes #675
2019-10-20 21:35:50 +02:00
Maxime Coste
e4fb70ebec
Replace ModeChange hooks by ModePush and ModePop
...
Remove deprecated InsertBegin, InsertEnd, NormalBegin, NormalEnd
hooks.
Closes #2545
2019-10-16 20:45:53 +11:00
Maxime Coste
081595fa2f
Support specifying the user configuration with KAKOUNE_CONFIG_DIR
...
Fixes #3072
Closes #3081
2019-10-10 20:26:27 +11:00
Maxime Coste
2f1be14b5f
Avoid negative initial coordinates
...
Fixes #3111
2019-10-03 21:18:51 +10:00
Maxime Coste
006083c6f8
Fix multi-client server suspend
2019-09-16 07:38:24 +10:00
Maxime Coste
e52b93b31a
Setup terminal raw mode without going through ncurses
2019-09-16 07:38:24 +10:00
Maxime Coste
f2f99580f8
Get rid of ncurses based input parsing in favor of custom code
2019-09-16 07:38:24 +10:00
Maxime Coste
fc3a1b6973
Make arrow keys normal mode mappings instead of commands
2019-09-15 19:40:38 +10:00
Jason Felice
8d76603df4
Fix kak -l when $XDG_RUNTIME_DIR is set
2019-08-20 16:13:21 -04:00
Maxime Coste
2359df0f17
Make scrolling speed configurable
...
The UI now can send a 'Scroll' key, whose value is the scrolling
amount encoded as a signed integer. This replaces the MouseWheelUp
and MouseWheelDown keys.
The NCursesUI now has a ncurses_wheel_scroll_amount ui_option that
controls that amount, it can be negative to swap scrolling direction.
Fixes #3045
2019-08-19 22:16:39 +10:00
Maxime Coste
2ff9fd8d92
Kakoune v2019.07.01
2019-07-01 22:07:29 +10:00
Maxime Coste
e613292568
Use register to store prompt history
2019-06-23 12:05:09 +10:00
Maxime Coste
7efdbb456d
Null terminate gdb auto-load script
...
Fixes #2929
2019-05-29 22:40:16 +10:00
Maxime Coste
06d4ee578e
Update changelog
2019-04-17 08:38:52 +02:00
Maxime Coste
ef1fd3acb9
Prevent conversion to client on suspend from disconnecting other clients
...
clear the client manager in the to be converted process without
sending exit messages as the forked server will still be there.
Fixes #2847
2019-04-12 13:23:38 +10:00
Maxime Coste
d0df1ffe71
update version notes and changelog
2019-04-07 09:51:27 +10:00
Maxime Coste
cf0458e734
Add cursor_display_column expansion
...
Fixes #2788
2019-03-23 11:32:32 +11:00
Maxime Coste
4dae2c875b
Introduce a writemethod option to either overwrite or replace files
...
This permit to choose if files should be written by overwriting their
content (the default), or by writing to a separate temporary file
and rename it to the current file.
As discussed in #2036
2019-02-12 21:01:19 +11:00
Maxime Coste
e8f26cbae7
Refactor write_buffer_to_file to use a flags param
...
That is clearer than two boolean parameters.
2019-02-12 20:18:34 +11:00
Maxime Coste
aa4885fd65
Add missing locale include to main.cc
2019-01-24 23:04:31 +11:00
Maxime Coste
346c78f5e0
Header and dependency cleanup
2019-01-24 21:22:20 +11:00
Maxime Coste
90dd084993
Only embed gdb script on ELF targets, and add missing gdb symlink
2019-01-23 20:59:32 +11:00
Maxime Coste
ebc9f7703b
Embed gdb pretty-printing script directly into Kakoune binary
...
This will get stripped correctly, and should make debugging easier.
2019-01-23 20:27:16 +11:00
Maxime Coste
cb7401439b
Kakoune v2019.01.20
2019-01-20 22:52:01 +11:00
Maxime Coste
ae69759a53
Defer deletion of unsetted option to return to main loop
...
Fixes #2572
2019-01-20 22:46:40 +11:00
Maxime Coste
7df7f5d38b
small code tweak
2019-01-19 10:34:12 +11:00
Maxime Coste
09e6518545
Remove DurationMs and slight code refactor
2018-12-28 06:27:35 +11:00
Frank LENORMAND
623c8a76f4
src: Run and display the time taken by unit tests to run in debug mode
...
Knowing how much time the editor took to run unit tests gives users
a notion of how fast it's performing on a given system.
2018-12-23 09:26:12 +03:00
Maxime Coste
d2f2c3d0c7
Generate a coredump on quit due to SIGSEGV
2018-12-13 21:29:33 +11:00
Maxime Coste
64f1c31401
Refactor parsing of keys and introduce a builtin key parser mode
...
By setting the ncurses_builtin_key_parser ui_option to true, we
can disable ncurses parsing of key strokes to get less portable
parsing but support for more complex modifiers.
2018-12-09 21:35:22 +11:00
Maxime Coste
b897a18aa6
Use a dummy function for SIGPIPE instead of SIG_IGN
...
SIG_IGN is inherited after 'execve' and requires us to reset
that signal handler, which does not work well with vfork on
OSX. Using an empty function does the trick and will be auto
reset to default on exec.
2018-12-06 20:33:13 +11:00
Maxime Coste
1553d91d27
Make '_' the default extra_word_chars, and remove built-in support
...
Fixes #2599
2018-11-27 18:16:21 +11:00
Maxime Coste
31d3cef093
Merge remote-tracking branch 'lenormf/rename-auto_complete'
2018-11-25 23:01:02 +11:00
Olivier Perret
b96ab67479
Expose selection(s) length with a value
2018-11-08 20:14:33 +11:00
Maxime Coste
3b40ab82f4
Kakoune v2018.10.27
2018-10-27 09:26:50 +11:00
Maxime Coste
dfc11d1c43
Refactor Hook management to have a well defined list of hooks
...
Hooks are now an enum class instead of passing strings around.
2018-10-23 08:15:53 +11:00
Maxime Coste
eba40028b9
Update startup messsage and changelog.asciidoc
2018-10-06 10:55:26 +10:00
Maxime Coste
5d0ea2936d
Ignore errors in write_stdout
...
Fixes #2418
2018-09-23 17:16:09 +10:00
Jason Felice
6c4593b18a
Document that -f
starts with whole file selected
2018-09-21 10:01:20 -04:00
Maxime Coste
d73ec20285
Kakoune v2018.09.04
2018-09-04 08:22:28 +10:00
Maxime Coste
68aba9e353
Use shell specific quoting for env vars
...
Add a test case to validate roundtrips between Kakoune and the
shell.
2018-08-29 07:53:59 +10:00
Matt Peterson
d0a8426272
Use $USER if getpwuid fails
2018-08-24 10:50:59 -04:00
Maxime Coste
f706b8c9be
Add a -version switch to Kakoune
...
Closes #1035
2018-08-09 11:24:11 +02:00
Maxime Coste
075d1048ab
Avoid invalid access to Optional
...
If the UI is not ok, the exit status of the client might not be
available. Return -1 in that case.
2018-07-30 10:32:38 +01:00
Maxime Coste
737807dde2
Replace a few loops with ranges
2018-07-26 21:23:06 +10:00
Maxime Coste
3c51da4488
Merge remote-tracking branch 'lenormf/fix-development-version'
2018-07-22 15:58:41 +10:00
Frank LENORMAND
a2f9c68a7c
src: Change the bullet point symbols in the version notes
2018-07-20 13:55:16 +03:00
Frank LENORMAND
60bd8df3c2
src: Don't print a number for the development version
2018-07-20 13:49:36 +03:00
Frank LENORMAND
0b8899d1d4
src: Rename auto_complete
to autocomplete
...
Removing the underscore seems to make the option name more
in line with the others (even though some do use a separator,
e.g. `disabled_hooks`).
2018-07-19 18:57:33 +03:00
Maxime Coste
7195100609
Re-introduce kill_session::exit_status, @lenormf was right
...
As discussed in #2186 , in the end we need the exit status for the
case where the local client exited first (the server forked to
background) then another client trigger the kill command.
2018-07-19 19:27:56 +10:00
Maxime Coste
40a91b1120
Add a -debug '...' switch to Kakoune startup that sets the debug option
...
This gives an easy way to profile startup by running with -debug profile.
2018-07-19 18:36:49 +10:00
Maxime Coste
bde726d034
Change autoshowcompl to auto_complete with insert|prompt possible values
2018-07-15 11:10:32 +10:00
Maxim Baz
3ca424d10f
Fix description of ui_options
2018-07-13 22:46:24 +02:00
Maxime Coste
eab98c88bd
Refactor handling of startup info to make it configurable
...
A new `status_info_version` option allows user to disable info
message regarding changes that happened at that version or
earlier.
2018-07-05 07:54:28 +10:00
Maxime Coste
ed123a2cc9
Reference the big breaking refactoring in the startup message
2018-07-05 07:54:28 +10:00
Maxime Coste
27163106c7
Make register expansions expand to the full register content
...
Now that we have a nice standard way to express lists of strings,
registers can be fully exposed. An new $kak_main_reg_... env var
was added to provide the previous behaviour which is relied on by
doc.kak.
2018-07-05 07:54:28 +10:00
Maxime Coste
76093f252c
Change env vars that are lists to use the general list syntax
2018-07-05 07:54:28 +10:00
Maxime Coste
ec16969609
Do not reparse %sh{...} strings
...
Automatic reparsing of %sh{...}, while convenient in many cases,
can be surprising as well, and can lead to security problems:
'echo %sh{ printf "foo\necho bar" }' runs 'echo foo', then 'echo bar'.
we make this danger explicit, and we fix the 'nop %sh{...}' pattern.
To reparse %sh{...} strings, they can be passed to evaluate-commands,
which has been fixed to work in every cases where %sh{...} reparsing
was used..
2018-07-05 07:54:28 +10:00
Maxime Coste
4ef5c80724
Fix Kakoune client busy looping on SIGHUP
...
Pure clients never quitted when they got SIGHUP after recent changes
to add is_ok to UserInterface. run_client now tracks the UI state as
well and quits if the UI gets killed.
2018-05-23 08:16:35 +10:00
Maxime Coste
14d12fac04
Rename -allow-override switch to -override
...
Closes #2057
2018-05-19 14:15:16 +10:00
Maxime Coste
b22c8ad8c7
Fix potential missed redraws
2018-05-17 22:50:11 +10:00
Maxime Coste
fcce76ba57
Handle all pending events before redrawing
...
If new events happen while handling events, take care of those
new events as well before redrawing.
2018-05-17 07:41:32 +10:00
Maxime Coste
75eb293f98
Rename Context::Flags::Transient to Context::Flags::Draft
...
Draft is well establish and all draft context are transient.
2018-05-14 08:23:00 +10:00
Maxime Coste
288cf6de73
Fix performance problem when generating many values for # register
...
Fixes #2008
2018-05-09 23:02:53 +10:00
Maxime Coste
74f90c1fc5
Refactor buffer undo tree
...
Store the undo tree as an array of undo nodes, instead of as a
pointer based tree.
2018-05-02 22:34:55 +10:00
Maxime Coste
bcecb2f877
Fix crash on quitting
2018-04-29 22:59:20 +10:00
Maxime Coste
178d2d3cd3
Rework the way UI can trigger a client quitting
...
Add a UserInterface::is_ok method and return false on
SIGHUP/stdin closing/socket dropping
This should be cleaner and more robust than the previous SIGHUP
handling code.
Fixes #1594
2018-04-29 22:31:57 +10:00
Maxime Coste
2d96fbed7c
Reserve data for # register
2018-04-25 21:19:04 +10:00
Maxime Coste
c2759ac526
Fix handling of local client quitting during its creation
...
If the local client was quitted during its creation (using -e quit
for example), we could have been accessing a null pointer afterwards.
Make the rest of the code aware that local_client might be null.
2018-04-19 07:56:37 +10:00
Maxime Coste
7f6a6ab1d3
Update startup message and include released version in it
...
Having released version information in that message will be useful
to allow user to know which breaking changes apply to them.
2018-04-14 13:04:45 +10:00
Maxime Coste
5fa19f4d7f
NCursesUI: Add support for shifted function keys
...
Shifted function keys are not well standardized around terminals,
Shift F(N) usually returns F(X) + N, with X=12 on xterm, X=10 on
rxvt-unicode... Default to X=12 and make it configuable through
the ncurses_shift_function_key ui_option.
This fixes what #1898 tried to.
2018-04-11 20:39:57 +10:00
Tim Allen
50e422659b
Add support for the shift modifier.
...
Because keyboard layouts vary, the shift-modifier `<s-…>` is only supported
for special keys (like `<up>` and `<home>`) and for ASCII lowercase where
we assume the shift-modifier just produces the matching uppercase character.
Even that's not universally true, since in Turkish `i` and `I` are not an
uppercase/lowercase pair, but Kakoune's default keyboard mappings already
assume en-US mappings for mnemonic purposes.
Mappings of the form `<s-x>` are normalized to `<X>` when `x` is an ASCII
character. `<backtab>` is removed, since we can now say `<s-tab>`.
2018-04-11 15:15:45 +10:00
Maxime Coste
d571c207e6
Make version available through $kak_version and debug info
2018-04-09 17:06:02 +10:00
Maxime Coste
57baad4afd
Make FaceRegistry scoped
...
set-face now takes a scope argument, and faces can be overridden on
a buffer or window basis.
colorscheme apply on global scope, which should be good enough for
now.
Fixes #1411
2018-04-07 16:27:50 +10:00
Maxime Coste
49c52b025f
Remove contains_that and use any_of to be closer to the c++ stdlib
2018-03-25 16:47:19 +11:00
Maxime Coste
beb2cef7f9
Document rotate selection breaking change in startup message
2018-03-25 11:39:26 +11:00
Maxime Coste
a732037b53
Support %
in path
option to mean current buffer directory
...
In the end, % is not that painful to work with as its only set seldomly,
and we usually dont need to use expansion at the same time. Moreover, it
just requires a single \ to be escaped.
Fixes #1562
2018-03-23 08:22:34 +11:00
Maxime Coste
db7b43acd5
Restore client name after converting to client
...
When Kakoune forked the sever to background, the newly converted
to client process (the original client/server process) was not
preserving its previous client name.
2018-03-23 07:36:18 +11:00
Maxime Coste
a480e566dc
ranges: Add transform overload taking directly a pointer to member
...
This overload will forward to the general transform implementation
using std::mem_fn to generate a callable.
2018-03-13 14:24:03 +11:00
Maxime Coste
4584ecac77
Move WORD text object to <a-w>
...
It improves consistency and it looked like there was support for that
change on github.
Fixes #1861
2018-03-10 00:25:19 +11:00
Delapouite
c4eb4438d2
Remove <scope> from user-modes commands
2018-03-02 09:28:27 +01:00
Maxime Coste
7a54c0edfe
Update status message with new breaking changes
2018-03-01 15:36:25 +11:00
Maxime Coste
171e787063
Update startup message to notify about h/l change
2018-02-24 23:16:39 +11:00