summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-07-12Fix another display corruption issue in the terminal output codeMaxime Coste
2021-07-12Fix another terminal update issue in the latest code changeMaxime Coste
Fixes #3426
2021-07-12Fix bug in terminal output line delete logicMaxime Coste
2021-07-12Fix tab character that got introduced by mistakeMaxime Coste
2021-07-12Reduce the number of added/removed lines when redrawing screenMaxime Coste
This should reduce flickering.
2021-07-12Fix compute_pos behaviour not to overflow by one lineMaxime Coste
Thanks to eraserhd for debugging this and proposing an initial fix. Fixes #3414 Close #3418
2021-07-12Use insert/remove lines escapes to reduce terminal trafficMaxime Coste
Diff against known state and insert/erase relevant lines. Erase everything first to avoid insertion invalidating lines that get out of the terminal at bottom.
2021-07-12Only redraw updated linesMaxime Coste
2021-07-12Blit all window together before outputing them to the ttyMaxime Coste
This should reduce flicker, by avoiding transient states where info/menu windows are not displayed, and paves the way for proper diffing of the screen.
2021-07-12Fix crash on resize in TerminalUIMaxime Coste
2021-07-12Rename NCursesUI to TerminalUIMaxime Coste
2021-07-12Remove references to ncurses in MakefileMaxime Coste
2021-07-12Replace ncurses with a naive custom terminal backendMaxime Coste
2021-07-12Quit server on SIGINT when it was not signaled by Kakoune itselfMaxime Coste
Fixes #3974
2021-07-09Inline String::Data no-copy constructorMaxime Coste
2021-07-09Remove command parsing Reader and just track a ParserStateMaxime Coste
The Reader abstraction was leading to suboptimal code by encouraging decoding utf8 separately from advancing to next codepoint.
2021-07-09Avoid temporary vector in expand_tokenMaxime Coste
Instead of return a vector, take the target vector as a parameter and push tokens to it.
2021-07-09Avoid copying token content strings in expand_tokenMaxime Coste
We can move that data instead of copying
2021-07-07Document command-fifo in changelogMaxime Coste
2021-07-07Catch errors while executing shell commandsMaxime Coste
Log error to debug buffer and Change the 'waiting for shell' face to 'Error'. Update the 'waiting for shell' message when the shell has exited but Kakoune is still waiting on stdin/stdout/stderr to be closed.
2021-07-07Add support for $kak_command_fifo and $kak_response_fifoMaxime Coste
Those fifos are accessible during %sh{...} blocks, the command fifo executes commands written to it once the write end side is closed (multiple open/write/close sequences are supported), the response fifo is a simple helper fifo available to write response back to the shell process An example use of this feature is to request some list options content from without being limited by the environment size: ``` %sh{ echo "echo -to-file $kak_response_fifo -quoting shell -- %opt{some_list}" > $kak_command_fifo eval "set -- $(cat $kak_response_fifo)" } ```
2021-07-07Decouple generate_env from actual ShellManager env var collectionMaxime Coste
2021-07-07Merge remote-tracking branch 'Screwtapello/save-restore-window-title'Maxime Coste
2021-06-27Restore terminal during suspend before changing alternate screenDmitry Matveyev
2021-06-27Handle Ctrl+Z key later in the terminal input stackMaxime Coste
The previous handling code was at a pretty random location and broke terminals that could send <c-z> encoded in a non pure ascii way. See #4238
2021-06-26Merge remote-tracking branch 'SolitudeSF/mode'Maxime Coste
2021-06-24Better styleSidharth Kshatriya
2021-06-24Also deal with variables named kak_quoted_* by using a more generic approachSidharth Kshatriya
2021-06-24Fix: Kakoune passed environment variables in shell invocations are repeatedSidharth Kshatriya
If a %sh{} script refers to any variables multiple times they are all multiply included in the environment. Example: if a %sh{} invocation refers to ${kak_buffile} 5 times, the environment will have "kak_buffile=..." repeated 5 times and so on. This repetition happens for each multiply used variable that is passed into the environment. The variable should, of course, be only passed into the environment once. This commit should fix this issue.
2021-06-24Only compute command coordinates when necessaryMaxime Coste
Tracking the line/column of each token takes a surprising big part of the command parsing logic runtime and is only necessary when we hit an error.
2021-06-24Fix invalid command profiling logicMaxime Coste
2021-06-18Restore terminal before switching from alternate screenSolitudeSF
2021-06-15src: Restore the window title when quitting or suspending Kakoune.Tim Allen
Fixes #4228.
2021-06-13Fix typosTaupiqueur
2021-05-28Fix focus_in/focus_out keys not having user friendly namesMaxime Coste
2021-05-28Fix File Buffer flag not being correctly appliedMaxime Coste
2021-05-28Canonicalize <s-ascii> into uppercase in csi key parsing codeMaxime Coste
Fixes #4159
2021-05-28Support opening files bigger than 2 GiBMaxime Coste
The real technical limit is with lines bigger than 2 GiB and buffers with more than 2 Gi lines, refactor buffer loading to make it possible to load those files. Fix an overflow with the hash_data function at the same time
2021-05-18Fix completion past explicitely closed tokensMaxime Coste
This fixes an issue where completion would still be provided after the closing character of a token, which could then get frustrating combined with auto-insertion of completions. For example, inserting `%{<newline>}` for a command-completed token (such as the commands for a hook) would still trigger completion right after the `}` and that completion would get auto-inserted **replacing** that closing `}`.
2021-05-02Request xterm 'modifyOtherKeys' mode to opt-in CSI u key reportingMaxime Coste
Various terminal emulators now support this `CSI > 4 ; 1 m` sequence to enable CSI u style reporting, opt into it on startup. Closes #4103
2021-05-01Rework session directory logicMaxime Coste
Do not use a shared kakoune/ directory for all users to avoid the complexity of having to set the sticky bit on that dir, resolve the session directoy only once by using a static variable and an immediately evaluated lambda. This fixes an annoyance whenver using `su` and having Kakoune refuse to start due to XDG_RUNTIME_DIR still being set.
2021-05-01Merge remote-tracking branch 'markus-oberhumer/ux-improve-prompt'Maxime Coste
2021-04-30Improve prompt handlingMarkus F.X.J. Oberhumer
As a long time vi user I find it highly irritating that you cannot backspace out of the command prompt.
2021-04-30src: Fix mouse modifier support in the ncurses UI.Tim Allen
For historical reasons, mouse events represent keyboard modifiers as a bitfield, but keyboard events represent modifiers as a bitfield-plus-one. For example, a mouse event with an Alt modifier will use the value 4, but a keyboard event will use the value 5. Previously, I refactored the parse_mask() helper to do the subtraction itself, instead of requiring the caller to do it. This made keyboard-event decoding much cleaner, but I didn't realise it broke mouse-event decoding. Now the subtraction is done only for keyboard events. Fixes #4176.
2021-04-28Merge remote-tracking branch 'markus-oberhumer/ux-debug-buffer'Maxime Coste
2021-04-28Merge remote-tracking branch 'nojhan/feat_padding-options'Maxime Coste
2021-04-27fix ncurses' padding optionnojhan
- Use less iterations when drawing padding fill with multiple characters. - Use column_length to handle null-width character as no character.
2021-04-27Improve UX: better error message about debug buffer on startup errorsMarkus F.X.J. Oberhumer
Minuscule things like these can make a huge difference if you are a first time user of a new text editor.
2021-04-19elif over "else if"Ben Judd
2021-04-19Merge remote-tracking branch 'Icantjuddle/fix_deprexated_mallinfo_call'Maxime Coste