Maxime Coste
48c9d89585
tweak git commit message highlighting
2012-12-13 18:49:29 +01:00
Maxime Coste
969a1213c4
Makefile: add a userconfig target
...
make userconfig takes care of creating $XDG_CONFIG_HOME/kak/autoload
and populate it with links to files in the rc directory
2012-12-13 18:49:29 +01:00
Maxime Coste
92c4a9abce
Prompt: when completion has only one candidate, next tab starts a new completion
2012-12-13 18:49:29 +01:00
Maxime Coste
bc1a90d4f5
file completion: disable ignored files when entered prefix matches.
2012-12-13 18:49:29 +01:00
Maxime Coste
b63c658da5
remote.cc: move write function as member of Message
2012-12-13 18:49:29 +01:00
Maxime Coste
db3a953961
code cleanup in remote.cc
2012-12-13 18:49:29 +01:00
Maxime Coste
9230ccc087
the shell used for command execution can be changed using the 'shell' option
2012-12-13 18:49:29 +01:00
Maxime Coste
33f87db553
minor code cleanup in do_select_object
2012-12-13 13:25:39 +01:00
Maxime Coste
8223679247
select/split: check expression is not empty
2012-12-13 13:25:21 +01:00
Maxime Coste
7cc66ee64d
push current selection on search
2012-12-13 13:24:38 +01:00
Maxime Coste
d0c800a7d7
Support nested {Filters,Highlighter}Group
2012-12-09 18:58:58 +01:00
Maxime Coste
7d6a48f43a
ncurses.cc: handle ascii del as backspace
2012-12-09 14:31:19 +01:00
Maxime Coste
afc8ad77e8
InputHandler: tweak prefix completion behaviour
2012-12-07 19:20:26 +01:00
Maxime Coste
158f5a5c84
extract ParametersParser to it's own file
2012-12-07 19:20:26 +01:00
Maxime Coste
d25bafa95d
grep.kak: configurable grep command, search selection when no params
2012-12-07 19:20:26 +01:00
Maxime Coste
c000ca2220
source user kakrc after autoloads, so that user can override options
2012-12-07 19:19:45 +01:00
Maxime Coste
ff1f9f662d
cleanup {make,grep}.kak
2012-12-07 19:19:45 +01:00
Maxime Coste
b81ea0bc92
PromptHandler now call callback when edited and aborted.
...
Used for a new feature: incremental search
2012-12-06 13:33:26 +01:00
Maxime Coste
3438ba7ec3
*scratch* buffer use undo
2012-12-05 19:22:07 +01:00
Maxime Coste
479bb9df2c
fail nicely when trying to open a directory
2012-12-05 13:59:08 +01:00
Maxime Coste
ce6e864772
'exec' and (resurected) 'eval' commands can take a '-client' parameter
2012-12-03 18:57:57 +01:00
Maxime Coste
cf39835805
add 'name' command to set current client name
2012-12-03 18:57:23 +01:00
Maxime Coste
4a3f9d6187
ClientManager: support naming clients and accessing client's context by name
2012-12-03 18:56:53 +01:00
Maxime Coste
e8df81a39d
RemoteClient: call get_key soon so that it may process a resize before size change checks are done
2012-12-03 18:51:28 +01:00
Maxime Coste
8724a12dc1
NCurses: do not resize directly in signal handler, malloc may not be working there
2012-12-03 18:50:44 +01:00
Maxime Coste
9e3c1c74c5
EventManager: fix forced event processing
...
previous implementation could drop some forced events.
2012-12-03 18:49:09 +01:00
Maxime Coste
b23af02ec4
fix quit modified file behaviour
2012-12-03 13:33:05 +01:00
Maxime Coste
b764a0a63e
Selection: refactoring, move CaptureList to Selection
2012-11-30 18:32:49 +01:00
Maxime Coste
956ac60d4a
add an ignored_files regex option whose matches are not used for completion
2012-11-29 20:09:37 +01:00
Maxime Coste
33482b0979
Add configurable prompt completion behaviour
...
If option 'complete_prefix' is non 0, then completion first
use completion candidates common prefix, then circle through
candidates.
2012-11-29 19:56:34 +01:00
Maxime Coste
7dc634444d
Fix InputMode::Prompt blocking behaviour when inserting register
2012-11-29 19:03:17 +01:00
Maxime Coste
a6f0d53dbf
Remote unused Context::change_ui
2012-11-29 19:03:17 +01:00
Maxime Coste
acbe45e294
local client forks in destructor so that the kak server detaches from terminal
2012-11-29 19:03:17 +01:00
Maxime Coste
16b8f19db3
use more portable fcntl method for FD_CLOEXEC bit, enable it on forgotten sockets
2012-11-29 18:55:08 +01:00
Maxime Coste
0955ef5eb0
add an empty buffer unit test
2012-11-28 20:10:49 +01:00
Maxime Coste
3a4859ecba
ncurses: avoid refering to dead NCursesUI in signal handler
2012-11-27 18:54:27 +01:00
Maxime Coste
4c1b48e314
InputHandler: InputModes no longer die directly on mode change, they survive until end of on_key
2012-11-27 18:52:43 +01:00
Maxime Coste
dc268758dd
fix cpp indent filter
2012-11-27 14:03:21 +01:00
Maxime Coste
6ca530b5cc
EventManager: refactor (again)
2012-11-27 13:57:03 +01:00
Maxime Coste
f1b15ef86b
fix buffer creation on empty file
2012-11-27 13:39:35 +01:00
Maxime Coste
557128b641
IncrementalInsert::move_cursors: use overloaded for LineCount/CharCount editor implementation
2012-11-26 19:38:07 +01:00
Maxime Coste
cad4d3c01e
fix InsertMode::OpenLineBelow behaviour in prepare_insert
2012-11-26 19:24:38 +01:00
Maxime Coste
cee0a2d128
Append on end of line now appends to current line
2012-11-26 19:23:50 +01:00
Maxime Coste
e77ca7a4be
minor code simplification
2012-11-26 18:50:34 +01:00
Maxime Coste
91d2cc38e5
EventManager: avoid erasing an event handler while it may be in use
2012-11-26 14:08:27 +01:00
Maxime Coste
52ee8b46ae
fix crlf file reading
2012-11-26 13:36:43 +01:00
Maxime Coste
84db1e2b8c
Editor: fix replacement beheviour just before end of line
2012-11-23 19:13:47 +01:00
Maxime Coste
dca05ecc73
small code tweak
2012-11-23 18:48:04 +01:00
Maxime Coste
9c99c238e8
rewrite file opening code using mmap, opening big files is much much faster
2012-11-23 18:43:10 +01:00
Maxime Coste
c32a7b9b74
Buffer takes a vector of lines as initial content
2012-11-23 18:42:07 +01:00
Maxime Coste
53be5c87d2
String: add non const front() and back() methods
2012-11-23 18:41:33 +01:00
Maxime Coste
6a7193cf63
filter: minor code cleanup
2012-11-23 18:35:05 +01:00
Maxime Coste
ecd556db59
NCurses: use Default bg color for status line
2012-11-23 13:46:39 +01:00
Maxime Coste
2523c4955b
buffer: increment timestamp on notify saved
2012-11-23 13:41:07 +01:00
Maxime Coste
d2f811a8d5
Refactor filter and highlighter registry into a common template
2012-11-23 13:40:20 +01:00
Maxime Coste
11e885e5a5
Cleanups and minor refactoring on Buffer
2012-11-22 18:54:37 +01:00
Maxime Coste
73c446e379
code style cleanup in CommandManager
2012-11-22 14:28:14 +01:00
Maxime Coste
7bcd0353cb
ClientManager: store client with a unique_ptr
2012-11-22 14:17:46 +01:00
Maxime Coste
08ad8e8a40
move Window ownership to the ClientManager instead of the Buffer
2012-11-22 14:08:55 +01:00
Maxime Coste
3b5530ac09
rename (hook|option)_manager to (hook|option)s.
...
And Global(Hook|Option)Manager to Global(Hook|Option)s
2012-11-22 13:50:29 +01:00
Maxime Coste
e981fb7957
cpp.kak: use regex filter to handle indentation
2012-11-21 19:07:41 +01:00
Maxime Coste
ff4e907fa9
fix trailing '"' in make.kak
2012-11-21 19:01:41 +01:00
Maxime Coste
d331856fb3
refactor/cleanup NCursesUI::menu_show
2012-11-21 19:01:13 +01:00
Maxime Coste
9d04c773c1
CommandManager: diagnose unterminated strings
2012-11-21 13:56:52 +01:00
Maxime Coste
6bbbd2543a
move wrong_argument_count to commands.cc, where it is used
2012-11-21 13:44:43 +01:00
Maxime Coste
d1fade5c9e
Buffer: replace reset_undo_data with a NoUndo flag
2012-11-21 13:43:10 +01:00
Maxime Coste
ac6171686d
minor fixes to buffer constructor
2012-11-21 13:37:36 +01:00
Maxime Coste
985464bee5
Fix FIFO double deregistering issue when closing the buffer after EOF
...
When a fifo was closed, the fifo event handler would close the fd and
unregister it from the event handler, however the hook on BufClose
did that as well without checking if the fd was still refering to the
fifo.
Now we use a Buffer flag Fifo to tag the buffer as still linked to
a fifo so that the BufClose hook do not close and unregister a second
time
2012-11-20 19:48:27 +01:00
Maxime Coste
8bbfbc8c72
Buffer: replace Buffer::Type with Buffer::Flags
2012-11-20 19:47:56 +01:00
Maxime Coste
0b14f387d4
fix error handling in ncurses resize code
2012-11-20 18:55:44 +01:00
Maxime Coste
95cc08a19e
More type safety on SelectFlags
2012-11-20 18:55:17 +01:00
Maxime Coste
533079c389
Let client manager handle deleting client
2012-11-20 18:54:35 +01:00
Maxime Coste
713fa9d406
more exception safety with file descriptors
2012-11-20 18:52:36 +01:00
Maxime Coste
7c69d170df
tweak kakrc highlighting
2012-11-20 14:14:54 +01:00
Maxime Coste
4dc333c8b3
minor cleanups
2012-11-20 14:14:32 +01:00
Maxime Coste
0ca66e3bf9
Add indent/deindent binding (> and <)
2012-11-19 19:22:11 +01:00
Maxime Coste
1602fcf012
Remote: read now retry when it did not get all the expected data
2012-11-19 19:07:32 +01:00
Maxime Coste
fe98ba7494
add some debug output to RemoteUI
2012-11-19 19:06:32 +01:00
Maxime Coste
3e53ebb5d6
alt-space without numeric parameter now flips selections, inverting first and last char
2012-11-19 19:03:56 +01:00
Maxime Coste
07e5655ac1
write_debug automatically appends an eol to the message
2012-11-19 19:03:01 +01:00
Maxime Coste
c636a291bd
Add a regex filter
...
regex filter takes three arguments: <line_match> <insert_match> <replacement>
<line_match> is checked from begining of line to point of insertion
<insert_match> is checked on the inserted text (usually only one char)
<replacement> is used to replace the inserted text, it can use $1..9
for captures in line_match, and $c to specify the cursor position.
for example, ':addfilter regex .* \( ($c)' makes inserting an opening
parens insert the closing one as well, keeping the insertion cursor
in the right spot.
2012-11-19 14:19:41 +01:00
Maxime Coste
22c545884f
Selection: allow write access to first and last
2012-11-19 14:19:31 +01:00
Maxime Coste
45bd3dbe5a
Pass the selection instead of only point of insertion to filters
2012-11-19 13:40:23 +01:00
Maxime Coste
fd50046f3a
ctags.kak: center selection in window when jumping on a tag
2012-11-19 13:38:03 +01:00
Maxime Coste
6ffa74a24d
Context: set dimensions of window on change_editor
2012-11-19 13:37:38 +01:00
Maxime Coste
9c368c85d6
use SelectionsAndCaptures to store jumps
2012-11-12 20:41:03 +01:00
Maxime Coste
14f980e4e0
move overlaps function to selection.hh
2012-11-12 20:27:56 +01:00
Maxime Coste
77272db0fd
make Buffer::{add,remove}_change_listener const and the listener list mutable
2012-11-12 20:11:27 +01:00
Maxime Coste
489621cf58
update c++ highlighter
2012-11-12 20:07:47 +01:00
Maxime Coste
6ebe41b1a5
BufferIterator holds a safe_ptr to their buffer instead of a raw pointer
2012-11-12 20:07:33 +01:00
Maxime Coste
037210c70c
SafeCountable::m_count is mutable so that we can have safe_ptr<const T>
2012-11-12 20:07:05 +01:00
Maxime Coste
801f4e740c
Add jump list support to context
...
jump forward is bound to ctrl-i
jump backward is bound to ctrl-o
switch buffers or jumping somewhere in the buffer push the current
position to the jump list.
when a buffer is deleted, all entries referencing it in jump lists
are erased.
2012-11-12 19:59:25 +01:00
Maxime Coste
41b5336296
make ctags.kak tag implementation more robust
2012-11-12 19:42:26 +01:00
Maxime Coste
3f403474ac
update asciidoc highlighting
2012-11-12 19:41:39 +01:00
Maxime Coste
39932f7ea2
Fix IncrementalInserter::insert(memoryview<String>) so that inserting registers works as intended
2012-11-12 13:40:07 +01:00
Maxime Coste
2781056ce6
Add a rc/ctags.kak for a :tag implementation using exuberant ctags
2012-11-09 19:10:08 +01:00
Maxime Coste
0887e1364e
InputHandler: Handle C-c as Escape
2012-11-08 14:05:00 +01:00
Maxime Coste
68cc07022c
NCurses: catch SIGINT and send a C-c instead
2012-11-08 14:04:41 +01:00
Maxime Coste
0e5f548f76
minor tweaks in displayed texts
2012-11-08 13:38:02 +01:00
Maxime Coste
3a34fae9a7
Editor: avoid end of lines when moving selection
2012-11-08 13:37:29 +01:00
Maxime Coste
bdd0758ee2
Saner :edit and :buffer behaviour when buffer is the current one
2012-11-07 14:04:47 +01:00
Maxime Coste
0f7948848e
Fix buffer deletion from a client when another is editing it
2012-11-07 14:02:23 +01:00
Maxime Coste
d6923af3c4
server socket filename available through $kak_socket env var
2012-11-06 14:25:25 +01:00
Maxime Coste
3471d795c9
ClientManager: tweak on input event lambda
2012-11-06 13:37:18 +01:00
Maxime Coste
d347223e42
EventManager: store event handlers in an unordered_map instead of a vector
...
If an event handler add or removes an event from the manager, it may then
be moved in the vector, and if after that it access any of it's members
(through this), it results in an invalid memory access.
2012-11-06 13:34:58 +01:00
Maxime Coste
3daac4883e
Move client drawing responsiblity to the ClientManager
2012-11-05 19:58:04 +01:00
Maxime Coste
a41bb34b21
Window: maintain the timestamp of last display buffer update
2012-11-05 19:54:09 +01:00
Maxime Coste
fedabb4176
Rework Window creation, avoid using the same window in multiple clients
2012-11-05 19:15:42 +01:00
Maxime Coste
42315c4b5c
Editor: store a safe_ptr to buffer instead of reference
2012-11-04 23:39:25 +01:00
Maxime Coste
ea17525b2a
Window: sanitize position in set_position
2012-10-31 14:28:47 +01:00
Maxime Coste
c947819154
Fix buffer iterator_at_line_{begin,end}(LineCount)
2012-10-31 14:28:03 +01:00
Maxime Coste
74731b0d0f
refactor Client creation
2012-10-31 14:23:44 +01:00
Maxime Coste
6eef68124f
use custom Client::operator=(Client&&) to drop safe counts first
2012-10-30 18:13:57 +01:00
Maxime Coste
1ea4b3998a
Add a ClientManager for managing client lifetimes
2012-10-30 14:00:44 +01:00
Maxime Coste
bc7dfec44c
tweak cpp highlighting
2012-10-29 19:17:48 +01:00
Maxime Coste
945f54daea
fix crashes when cycling through menu with an active filter
2012-10-29 19:17:37 +01:00
Maxime Coste
254d43856d
NCurses: refactor status line handling, and disambiguate status line from mode line
2012-10-29 19:01:57 +01:00
Maxime Coste
6f2c69a0eb
fix adapt_for_linewise for Replace mode
2012-10-29 19:00:28 +01:00
Maxime Coste
cc876f7107
validate key in InputHandler before sending to mode, and minor refactor
2012-10-29 18:59:41 +01:00
Maxime Coste
6b664052b8
Use a Server object instead of just calling setup_server
2012-10-29 13:44:53 +01:00
Maxime Coste
ba244a70a3
NCurses: fix long lines handling
2012-10-28 11:00:23 +01:00
Maxime Coste
d9729cc29e
Handle all available input before redrawing
2012-10-28 09:26:54 +01:00
Maxime Coste
13a081ed4a
Remote: fix resize handling
2012-10-27 15:49:10 +02:00
Maxime Coste
b24a80a3ec
NCurses::draw: maintain current column without using ncurses
2012-10-27 15:48:08 +02:00
Maxime Coste
031ed91ea6
EventManager: handle forced events even when poll return -1
2012-10-27 15:15:34 +02:00
Maxime Coste
b199cfd644
NCursesUI: force input handling reexecution when resizing
2012-10-27 15:02:17 +02:00
Maxime Coste
70cdb7a811
EventManager: add force_signal method to force event execution
2012-10-27 15:01:13 +02:00
Maxime Coste
24b43f91c8
NCurses: rework terminal resize handling
2012-10-27 14:18:52 +02:00
Maxime Coste
ee882d9d02
utf8: use CharCount instead of size_t
2012-10-27 13:26:40 +02:00
Maxime Coste
61c8ef6ce4
remote: send resize message when needed
2012-10-26 16:14:51 +02:00
Maxime Coste
73aa11ac16
remote: check read/write results, detect disconnections
2012-10-26 13:45:32 +02:00
Maxime Coste
1c3f6c314f
send actual dimensions of remote client at connection
2012-10-25 12:51:01 +02:00
Maxime Coste
0735c69a92
add initial (and buggy) unix socket based client/server code
2012-10-24 21:44:19 +02:00
Maxime Coste
b9eb939e05
Add some remote client support protocol code
2012-10-23 22:55:44 +02:00
Maxime Coste
b163711963
DisplayBuffer: store lines in a vector, not a list
2012-10-23 22:55:04 +02:00
Maxime Coste
227c66cf61
use Colors and Attributes are char
2012-10-23 22:53:56 +02:00
Maxime Coste
98b6618658
merge contiguous DisplayAtoms after highlighting DisplayBuffer
2012-10-22 13:20:02 +02:00
Maxime Coste
eed8a2a57c
add basic utf8 unit test
2012-10-22 01:05:56 +02:00
Maxime Coste
49237a771b
some minor cleanups/refactorings in main
2012-10-21 13:09:01 +02:00
Maxime Coste
a0cca31dc1
make UserInterface unaware of Window, only of DisplayBuffer
2012-10-20 20:15:20 +02:00
Maxime Coste
48fe18ff0a
memoryview: include cstddef for size_t
2012-10-20 16:40:12 +02:00
Maxime Coste
28c8acf80a
assert: throw if launching xmessage fails
2012-10-19 03:53:10 +02:00
Maxime Coste
abf514f305
avoid utf8 errors with invalid keys, like ncurse KEY_RESIZE
2012-10-18 19:56:57 +02:00
Maxime Coste
132c31042e
main: prepare for multi client support
2012-10-17 17:49:34 +02:00
Maxime Coste
df400f90ab
utf8: replace InvalidBytePolicy::Throw with InvalidBytePolicy::Assert
2012-10-17 17:01:51 +02:00
Maxime Coste
c1387dc592
assert: simplify header
2012-10-17 17:01:08 +02:00
Maxime Coste
4aa3a36102
rename Client to InputHandler
2012-10-17 13:14:03 +02:00
Maxime Coste
1ab486b0d8
verious refactoring
2012-10-16 18:42:51 +02:00
Maxime Coste
f8abbfbb44
assert: use xmessage to block on assert failed
2012-10-16 16:16:32 +02:00
Maxime Coste
214baf4cdd
add a _str user defined literal to create String
2012-10-16 15:11:22 +02:00