Maxime Coste
76deb60771
Add YesNoAsk type for options
2013-10-21 18:57:48 +01:00
Maxime Coste
60dbec4949
Add Buffer::reload for reloading buffers without loosing options and hooks
2013-10-21 18:57:19 +01:00
Maxime Coste
9e9b503f5d
Code style cleanups in ncurses.{cc,hh}
2013-10-17 18:48:12 +01:00
Maxime Coste
44281c8fed
More robust Buffer filesystem timestamp handling
2013-10-17 18:47:09 +01:00
Maxime Coste
c3bafea2cd
Improve NCurses UI menu scroll bar, use a variable height
2013-10-17 00:32:13 +01:00
Maxime Coste
03c74b7a88
Detect file external modification and ask the user whether to reload or not
...
* Buffer now store a m_fs_timestamp field.
* Client in Normal mode checks current buffer file every 500 ms, or
each time it goes back to Normal mode.
2013-10-15 18:51:31 +01:00
Maxime Coste
fe0a4f0d11
Reset normal mode when changing the current editor
2013-10-15 18:50:43 +01:00
Maxime Coste
608196f526
Fix indent code, support indentwidth=0 for using tabs
2013-10-14 13:47:43 +01:00
Maxime Coste
bc3cfb9016
Fix ctags.kak function info support
2013-10-11 18:45:23 +01:00
Maxime Coste
17951bf077
Fix Editor::remove_selection when the main selection is the first one and is the removed one
2013-10-11 18:44:43 +01:00
Maxime Coste
ee0e6dcef9
Display session name in the status line
2013-10-11 18:43:39 +01:00
Maxime Coste
d1159be19c
Use { and } for extending selection to object start/end
2013-10-11 09:58:35 +01:00
Maxime Coste
632e7e217e
Save last pipe command to the '|' register, and use it for empty cmd
2013-10-11 00:31:03 +01:00
Maxime Coste
3c959cee99
Pass title to UserInterface::info_show
...
Move unicode box generation and assistant code as
a NcursesUI implementation detail.
2013-10-11 00:17:22 +01:00
Maxime Coste
93f6a2ee43
Display target register name in status line when recording a macro
2013-10-11 00:17:22 +01:00
Maxime Coste
59ae6411f5
Only allow recording macro to register a-z
2013-10-11 00:17:21 +01:00
Maxime Coste
c478a97a2f
Let InputModes describe themselves for status line display
2013-10-11 00:17:21 +01:00
Maxime Coste
74fe8b5e8d
Remove Context::numeric_param, pass it directly to normal mode functions
2013-10-10 21:22:20 +01:00
Maxime Coste
00c8d1a4fa
Fix tabs that appeared in the codebase
2013-10-08 19:28:57 +01:00
Maxime Coste
ab925686ab
Improve object selection support
...
* A count is supported for nestable objects so that we
can specify the surrounding level.
* more symetric behavior for select to end/ to begin
2013-10-08 19:28:18 +01:00
Maxime Coste
fccb954611
Use WordType enum instead of a bool punctuation_is_word for word selector
2013-10-07 18:44:22 +01:00
Maxime Coste
6e5ff644f2
add <a-R> for rotating selections content
2013-10-02 19:10:43 +01:00
Maxime Coste
6331fb5a61
Add <c-s> for saving current selection in the jump list
2013-10-02 18:49:06 +01:00
Maxime Coste
307fc228d2
Add <c-u> in insert mode for forcing commiting the current undo group
2013-10-02 18:45:39 +01:00
Maxime Coste
bc051c53af
Cleanup dynamic registers init, and add # register for selection count
2013-10-01 19:52:19 +02:00
Maxime Coste
fb80ef092e
clean up env var registration
2013-10-01 19:47:37 +02:00
Maxime Coste
c312b06e39
Do not push jump on search next
2013-09-27 19:26:52 +01:00
Maxime Coste
560e3397e8
minor cleanup
2013-09-27 19:24:18 +01:00
Maxime Coste
61cc53b325
Support highlighters that add new lines in scroll_to_keep_cursor_visible
2013-09-27 19:16:49 +01:00
Maxime Coste
3021c7f60a
Remove $kak_socket replaced with $kak_session
...
use /tmp/kak-$kak_session to get the socket path
2013-09-25 19:04:52 +01:00
Maxime Coste
b080f456a7
Do not take directories into account when completing buffer name
...
(except if a / is found in the completion prefix)
2013-09-25 18:59:03 +01:00
Maxime Coste
60f4e1104f
complete_filename fallback on subsequence completion if prefix does not work
2013-09-24 10:16:47 +02:00
Maxime Coste
9018bc47df
use subsequence instead of regex matching for buffer completion
2013-09-24 10:13:39 +02:00
Maxime Coste
bab10f5b93
add subsequence_match(str, subseq) utility function
2013-09-23 21:17:16 +02:00
Maxime Coste
5ae43acf94
Add prefix_match function and use it instead of adhoc code
2013-09-23 21:16:25 +02:00
Maxime Coste
5a02d38081
small optimization in event manager
2013-09-23 20:32:45 +02:00
Maxime Coste
124be2ac2e
extract client main to a run_client function
2013-09-23 20:28:15 +02:00
Maxime Coste
ce4ed44496
Add missing newlines to printed messages
2013-09-21 17:10:37 +02:00
Maxime Coste
b1d62a307d
Add a -d command line option for running Kakoune as a headless server
2013-09-19 20:09:53 +01:00
Maxime Coste
415be1d2c7
Add a -s command line option for specifying session name
2013-09-19 19:54:14 +01:00
Maxime Coste
0b63074f90
extract main kakoune code to a kakoune function
2013-09-19 19:53:04 +01:00
Maxime Coste
03588f1b78
Support multiple selections per ligne when aligning
2013-09-18 18:54:04 +01:00
Maxime Coste
e70d75d6a6
Only redraw clients after handling all available events
2013-09-17 18:51:14 +01:00
Maxime Coste
7fef7ec063
Add a InputMode::on_replaced virtual method.
...
Destructors are not a good place to run mode exit hooks, as they
wont be called until the next mode trash clearing, so we now call
this virtual method on the previous mode just before it gets replaced.
2013-09-16 19:38:28 +01:00
Maxime Coste
168b4b775b
Do not clear Client::m_mode_trash in handle_key, but in handle_available_input
...
handle_key can be called from exec_keys while running a hook, and a previous
key in exec_keys could have changed the mode. This would make the mode that
runned the hook deleted when the controls returns to it.
handle_available_input should always be called at top level, so can safely
clear the mode trash.
2013-09-16 19:25:18 +01:00
Maxime Coste
06e06d6ea6
remove print_status from UserInterface, pass status line to draw
...
Client store the current status line. This way calls to print status
do not force the user interface to display directly.
2013-09-16 19:15:13 +01:00
Maxime Coste
49903523a7
Resurect Client::handle_available_input()
2013-09-16 18:48:41 +01:00
Maxime Coste
27a1e70b01
Rework client name change
2013-09-13 00:01:47 +02:00
Maxime Coste
000af8e206
Fix clang.kak, now that eval -draft does not use the client user interface
2013-09-12 23:52:43 +02:00
Maxime Coste
fd021de7d7
use directly context.client() for getting the kak_client env var value
2013-09-12 23:49:08 +02:00
Maxime Coste
823812fd1a
rename InputHandler to Client
2013-09-12 23:47:23 +02:00
Maxime Coste
ac7e437730
Move Client responsibilities to InputHandler
...
InputHandler owns it's UserInterface, and is directly stored by the ClientManager.
2013-09-12 23:39:34 +02:00
Maxime Coste
916a0cb52e
Allow :exec mode changes to remains when keys are finished
...
Pass keys one by one to the input handler so that BatchUI is not needed
We can now use :exec to pre-fill the command line without validating
the command.
2013-09-11 18:58:23 +01:00
Maxime Coste
96fc340a5c
add alt-& which aligns inserting spaces before selection start
2013-09-02 13:30:46 +01:00
Maxime Coste
70cd671ef6
support absolute filenames in insert mode filename completion
2013-08-29 13:50:55 +01:00
Maxime Coste
2125d95076
Use the Information color alias for auto info boxes
2013-08-29 13:50:24 +01:00
Maxime Coste
1d790541f5
handle client disconnection without crashing
2013-08-28 19:20:12 +01:00
Maxime Coste
ef01cf71ff
tolerate empty strings (interpreted as 0) as line and column parameters in edit
2013-08-28 19:05:01 +01:00
Maxime Coste
3150fe97cf
selections env var is : separated, and : in selections are escaped
2013-08-28 18:52:29 +01:00
Maxime Coste
535a454349
Line completion: sort and uniquify lines
2013-08-06 11:35:38 +02:00
Maxime Coste
9148b1ae92
Add line completion
2013-08-05 10:23:13 +02:00
Maxime Coste
c05f9f31dd
add support for explicit insert mode completion using C-x prefix
2013-08-04 19:34:08 +02:00
Maxime Coste
0f4cecfa3e
BufferCompleter refactoring, add support for explicit filename completion with c-f
2013-08-04 18:59:31 +02:00
Maxime Coste
3fe0b8e719
Move insert mode completion functions into BufferCompleter
2013-08-04 17:42:09 +02:00
Maxime Coste
6b66a3dfe5
Add support for filename insert mode completion
2013-08-02 17:58:37 +01:00
Maxime Coste
af17010524
contains: do not check if container is empty
2013-08-01 18:35:13 +01:00
Maxime Coste
a2577b4180
buffer: move Buffer::Flags operator as friends defined inside Buffer
2013-08-01 00:28:01 +02:00
Maxime Coste
c6f08f6c34
fix c++11 union use in remote.cc
2013-07-31 00:32:51 +02:00
Maxime Coste
3c8df764be
fix insert mode erase utf-8 handling, add unit test
2013-07-30 19:18:01 +01:00
Maxime Coste
c84b861d2f
remove useless SelectionList copy in keep
2013-07-29 13:51:07 +01:00
Maxime Coste
4f452474c8
non-regex based implementation of split_lines
2013-07-29 13:50:31 +01:00
Maxime Coste
af8e8d27d4
Minor code cleanups
2013-07-28 16:40:02 +02:00
Maxime Coste
5dfd4a9869
more auto info for normal commands waiting for a key press
2013-07-27 15:58:06 +02:00
Maxime Coste
0267540985
Do not select the first line indent in inner indent select
2013-07-27 15:37:28 +02:00
Maxime Coste
740a6562d9
enable autoinfo by default
2013-07-26 18:52:25 +01:00
Maxime Coste
c3359f7edc
fix some auto info boxes text
2013-07-26 18:52:05 +01:00
Maxime Coste
8281d8c626
git-tools: use : as list separator, escape it correctly
2013-07-26 02:01:01 +02:00
Maxime Coste
233cb530fc
read<T>(int socket): type aliasing compliance
2013-07-26 01:50:36 +02:00
Maxime Coste
a4138201b0
Key: always pass by value
2013-07-26 01:50:36 +02:00
Maxime Coste
eedd37c09a
memoryview: always pass by value
2013-07-26 01:50:36 +02:00
Maxime Coste
3862b5cbb8
LineAndColumns: always pass by value
2013-07-26 01:50:09 +02:00
Maxime Coste
5d681f9efe
StronglyTypedNumber: take parameters by value
2013-07-26 01:49:57 +02:00
Maxime Coste
d5453152b3
Color,ColorPair: always pass by copy
2013-07-26 00:54:58 +02:00
Maxime Coste
8f73d3c173
fix last eol matching in regex highlighters
2013-07-25 00:18:50 +02:00
Maxime Coste
3da97c4269
decl command support bool type options
2013-07-24 22:56:21 +02:00
Maxime Coste
38c7197770
go back to : as set/list separator in options
2013-07-24 22:41:41 +02:00
Maxime Coste
d29fb6f2c4
list,set and tuple options support escaping the separator
2013-07-24 22:41:13 +02:00
Maxime Coste
b5db256384
string escaping support functions
...
the split function now takes an additional escape parameter and
does not split on separators that have the escaper before it.
An utility escape function that adds escape before separators
is also added.
2013-07-24 22:37:17 +02:00
Maxime Coste
d6425f1d50
merge AtomContent into DisplayAtom
2013-07-24 13:55:57 +01:00
Maxime Coste
f6308409a1
pipe: auto insert and end of line if needed
2013-07-24 13:38:26 +01:00
Maxime Coste
62fdacb757
Add scroll left/right support
2013-07-24 01:38:30 +02:00
Maxime Coste
8633a37dad
Try to keep the selection start visible if possible
2013-07-24 01:34:00 +02:00
Maxime Coste
c7e52a650d
DisplayLine no longer map to a single buffer line, but to a buffer range
2013-07-24 01:33:12 +02:00
Maxime Coste
486ebed098
try to preserve display column rather than buffer column when moving line
2013-07-23 20:46:15 +02:00
Maxime Coste
5a6922a045
expand_unprintable: use iscntrl rather than isprint which does not work as expected
2013-07-23 20:42:35 +02:00
Maxime Coste
c58bab0f66
Add indent object type (bound to i)
2013-07-23 19:12:53 +01:00
Maxime Coste
8ab7496058
use C isalnum instead of C++ std::isalnum
2013-07-15 13:49:50 +01:00
Maxime Coste
ee2d18df04
fix selection to search pattern word begin detection
2013-07-15 13:49:04 +01:00
Maxime Coste
90b92aed3c
add support for tolower (), toupper (~), and swap case become alt-
2013-07-12 13:55:48 +01:00
Maxime Coste
81b5c477f6
Compile with gnu++11 so that cygwin is happy, and remove unneeded -lmenu
2013-07-12 13:17:12 +01:00
Maxime Coste
fcb3594e4a
NCursesUI::draw_menu: be tolerant when the menu_win was not created
2013-07-12 13:15:56 +01:00
Maxime Coste
1388c0d540
Editor: clamp coordinates in select(BufferCoord)
2013-07-12 13:15:31 +01:00
Maxime Coste
0ba1ab04f0
cpp.kak: wrap trailing whitespace cleanup hook in a try catch
2013-07-12 13:13:54 +01:00
Maxime Coste
37807ba19b
Add support for arrow keys in normal mode
...
use a Direction enum instead of a bool forward parameter
2013-07-02 19:48:05 +01:00
Maxime Coste
6484fead0c
replace with char only replaces when entered character is printable
2013-07-02 19:48:04 +01:00
Maxime Coste
c1b2f7ef6a
use C locale function instead of C++ ones
2013-07-02 19:48:04 +01:00
Maxime Coste
2dcdc0cf4b
more horizontal scrolling fixes
2013-06-29 16:50:51 +02:00
Maxime Coste
e510bf8b96
Fix horizontal scrolling support with replaced buffer ranges
...
tab character were not properly handled when scrolling horizontally
2013-06-28 00:03:11 +02:00
Maxime Coste
5b4ef23b9d
more tolerant Buffer::string
2013-06-27 23:49:34 +02:00
Maxime Coste
b1f31d2e12
change string parsing behaviour in command manager
...
* single and doubly quoted strings correctly remove the \ when their
delimiter is quoted ('\'' is interpreted as ', not \')
* %{} strings do not support quoting when using matching pairs, so
%{\} is interpreted as \, however when using same ending character
as delimiter quoting still works: %~\~~ is interpreted as ~.
2013-06-27 19:07:26 +01:00
Maxime Coste
56bb0f9f2c
clang.kak: use socat in unidirectional mode
2013-06-21 18:51:18 +01:00
Maxime Coste
60dfeb2821
fix highlighting bug with inserting at eol on lines with tabs
2013-06-21 18:50:45 +01:00
Maxime Coste
c6bf0b4cc3
add missing errno include to file.cc
2013-06-19 19:29:05 +01:00
Maxime Coste
a3e032abd6
enable /proc/ method for runtime_directory with cygwin
2013-06-19 19:29:05 +01:00
Maxime Coste
6d125e6c36
do not use std::{to_string,stoi} as they cause problems with cygwin
2013-06-19 19:29:05 +01:00
Maxime Coste
a642026e7c
more portable use of ncurses
2013-06-19 19:29:04 +01:00
Maxime Coste
3e9439ac9f
restore compilation with gcc 4.7
2013-06-18 21:44:00 +02:00
Maxime Coste
ea9414fa21
Fix input completion on multiple selection
2013-06-12 00:43:11 +02:00
Maxime Coste
bd8daac3a1
Fix UndoGroupOptimizer
2013-06-12 00:14:05 +02:00
Maxime Coste
7306f6b33b
Buffer: always use {line_count(), 0} as end in Modifications
2013-06-06 20:02:20 +02:00
Maxime Coste
59b996be75
add an UndoGroupOptimizer test
2013-06-06 19:54:13 +02:00
Maxime Coste
2a74b0e9e2
Buffer: insert and erase go back to taking iterators, and return iterators
2013-06-06 19:44:08 +02:00
Maxime Coste
cf454ef904
UndoGroupOptimizer: fix count_byte_to
2013-06-06 19:44:08 +02:00
Maxime Coste
357799c966
replace remaining plain assert with kak_assert
2013-06-06 19:44:08 +02:00
Maxime Coste
3d8eecbbb6
minor cleanups Editor
2013-06-06 19:44:08 +02:00
Maxime Coste
bd504058d9
remove unused Buffer::char_at
2013-06-06 19:44:07 +02:00
Maxime Coste
12d3b64a1b
avoid_eol: use direct line access
2013-06-06 19:44:07 +02:00
Maxime Coste
58ff97d51d
use_selection_as_search_pattern: use iterators instead of coords
2013-06-06 19:44:07 +02:00
Maxime Coste
43ff1909fb
add utf8::make_iterator helper function
2013-06-06 19:44:07 +02:00
Maxime Coste
245e68e26e
utf8_iterators: rename underlying_iterator to base
2013-06-06 19:44:07 +02:00
Maxime Coste
70bf71e51f
remove Buffer:char_{distance,advance} use line access instead
2013-06-06 19:44:07 +02:00
Maxime Coste
580749a91d
Buffer: remove line_length and replace line_content with operator[]
2013-06-06 19:44:07 +02:00
Maxime Coste
6b667bc803
remove BufferIterator conversion to/from BufferCoord
2013-06-06 19:44:07 +02:00
Maxime Coste
777158e86d
remove BufferIterator::is_valid()
2013-06-04 18:56:28 +02:00
Maxime Coste
a23aa10797
remove BufferIterator::buffer()
2013-06-04 18:55:06 +02:00
Maxime Coste
9fb4d42408
remove BufferIterator::is_{begin,end}
2013-06-04 18:53:56 +02:00
Maxime Coste
51acd456cc
remove BufferIterator::{line,column}()
2013-06-04 18:53:28 +02:00
Maxime Coste
ee22596d61
tweak Buffer::{,char_}prev
2013-06-04 18:53:28 +02:00
Maxime Coste
cf1f26ac91
fix Editor::move_selections(LineCount...) on buffer bounds
2013-06-04 18:53:13 +02:00
Maxime Coste
cc70e3ed70
selectors.cc: avoid dereferencing buffer end
2013-06-04 14:21:07 +02:00
Maxime Coste
5c2e3b25fa
Window: use AtomContent::length in scroll_to_keep_cursor_visible_ifn
2013-06-04 14:21:07 +02:00
Maxime Coste
76f55f5256
remove useless iterator_at calls
2013-06-04 14:21:07 +02:00
Maxime Coste
c4f9253634
Remove Buffer::iterator_at_line_{begin,end}, use iterator_at(line{,+1})
2013-06-04 14:21:07 +02:00
Maxime Coste
503f0cce25
IncrementalInserter: use coords instead of iterators
2013-06-04 14:21:07 +02:00
Maxime Coste
fb41e1fdf9
tweak Buffer::do_insert
2013-06-04 14:21:07 +02:00
Maxime Coste
4ef1bfa4db
Use coord instead of iterators for selections
2013-06-04 14:21:07 +02:00
Maxime Coste
02b33c7d8f
Buffer: add methods for char access instead of byte access
2013-06-03 18:56:48 +02:00
Maxime Coste
b198f6a5fb
Fix select_whole_paragraph so that buffer end is not selected
2013-06-03 14:27:51 +02:00
Maxime Coste
24ffd6abae
DynamicSelectionList check that buffer end is not selected
2013-06-03 14:26:05 +02:00
Maxime Coste
b51799a2b2
Explicitly pass buffer to selectors
2013-06-01 14:22:57 +02:00
Maxime Coste
3453ebbd52
BufferChangeListener: pass buffer to on_{inser,erase}
2013-06-01 00:48:46 +02:00
Maxime Coste
8ddeb141c8
Fix insert completion at beginning of buffer
2013-05-30 18:52:03 +02:00
Maxime Coste
2d96f853f8
Add utf8::codepoint_size function
2013-05-30 18:49:50 +02:00
Maxime Coste
28e127a48a
remove avoid_eol parameter from Buffer::{iterator_at,clamp}
2013-05-30 14:23:25 +02:00
Maxime Coste
07c8379313
BufferIterator are Random Access iterators
2013-05-30 14:05:05 +02:00
Maxime Coste
d2df6a9f15
remove BufferIterator::clamp
2013-05-30 14:00:41 +02:00
Maxime Coste
5e64f6d1ec
remove Selection::buffer
2013-05-30 13:59:38 +02:00
Maxime Coste
5b0087b545
InputHandler: pass buffer and BufferCoord to completers
2013-05-30 13:59:38 +02:00
Maxime Coste
ae947b456d
remove BufferIterator::offset
2013-05-30 13:59:38 +02:00
Maxime Coste
dbb1c57ec9
minor code cleanups in filters.cc
2013-05-30 13:59:38 +02:00
Maxime Coste
557acc5068
reorganize check_invariant in SelectionList
2013-05-30 13:59:38 +02:00
Maxime Coste
7f8d5c1fd0
Remove Range::content
2013-05-30 13:59:38 +02:00
Maxime Coste
93dd1ff3c7
Remove begin/end from Ranges, replace with min/max
...
Ranges should not be utf8 aware (needed for end), and a lot of
uses for end() were in fact looking for max.
2013-05-30 13:59:38 +02:00
Maxime Coste
a07fde181a
Add Buffer::{next,prev,at}(BufferCoord) methods and use them in iterators
2013-05-30 13:59:38 +02:00
Maxime Coste
9a80a58ff4
buffer end should not be in a selection
2013-05-30 13:59:38 +02:00
Maxime Coste
462da52218
InputHandler: less iterators, more coords
2013-05-30 13:59:38 +02:00
Maxime Coste
52b77c1915
window, editor: take coords rather than iterators parameters
2013-05-30 13:59:38 +02:00
Maxime Coste
4f1ba860f8
minor tweak buffer iterator
2013-05-30 13:59:38 +02:00
Maxime Coste
7f17644a6b
Buffer insert and erase takes coord rather than iterators
2013-05-30 13:59:38 +02:00
Maxime Coste
2902cc3275
BufferIterator convert implicitly to const BufferCoord&
2013-05-30 13:59:38 +02:00
Maxime Coste
d5b190369a
DisplayBuffer: use coords rather than iterators
2013-05-30 13:59:38 +02:00
Maxime Coste
97df6f2222
AtomContent uses coord rather than iterators
2013-05-29 18:58:20 +02:00
Maxime Coste
81ce4e4720
pass window param to highlighters
2013-05-29 18:58:20 +02:00
Maxime Coste
6c290eff9a
Buffer::do_{erase,insert} takes coord parameters rather than iterators
...
BufferChangeListeners do as well use coord rather than iterators
2013-05-29 18:58:20 +02:00
Maxime Coste
f23f48172f
Buffer: add some method to work directly with coord instead of iterators
2013-05-29 18:58:20 +02:00
Maxime Coste
6cb8d69d29
Context: return DynamicSelectionLists in jump_{forward,backward}
2013-05-29 18:56:14 +02:00
Maxime Coste
9630990b74
Remove Selection::avoid_eol, move as static func in editor.cc
...
Conflicts:
src/editor.cc
2013-05-29 18:53:57 +02:00
Maxime Coste
9991292bd3
tweak number line highlighter style
2013-05-24 18:39:28 +02:00
Maxime Coste
ad178e383b
insert mode completion for all selection that matches the main one prefix
2013-05-21 19:21:55 +02:00
Maxime Coste
eab1213555
throw an error when gf does not find any file to open
2013-05-21 14:01:04 +02:00
Maxime Coste
258637222f
Word completion can optionally look for candidates in all buffers
...
completers option accept word=buffer or word=all values
2013-05-20 14:10:53 +02:00
Maxime Coste
f3ad51444d
move line_with_cursor as LineEditor::build_display_line
2013-05-17 14:29:15 +02:00
Maxime Coste
48f98eae97
Allow macros to call other macros, only recursive macro calls are forbidden
2013-05-17 14:22:48 +02:00
Maxime Coste
c3d53d588d
revive str_to_int so that the good exception type is thrown on error
2013-05-17 14:09:42 +02:00
Maxime Coste
37a2363301
cpp.kak: fix alt now that alt_dirs is a proper list
2013-05-17 14:08:02 +02:00
Maxime Coste
585c8ba3cf
Show an info box with available option when waiting for a key
...
Controled with the autoinfo option (disabled by default)
2013-05-16 22:33:48 +02:00
Maxime Coste
c91cea9dc3
fix ncurses info box placement
2013-05-16 22:33:28 +02:00
Maxime Coste
23f43376df
fix NCurses info box, avoid trailing space on each lines
2013-05-16 21:46:15 +02:00
Maxime Coste
b2dffbabb6
more robust NCursesUI::menu_show
2013-05-16 21:44:58 +02:00
Maxime Coste
310e0f5bd3
cpp.kak: fix alt_dirs option default value
2013-05-16 19:23:54 +02:00
Maxime Coste
400e46719d
Add scrolloff option support
2013-05-16 19:22:44 +02:00
Maxime Coste
389438164d
add '&' for aligning selections
2013-05-15 18:47:50 +02:00
Maxime Coste
64b20729a5
Full object selection support for paragraphs and sentences
2013-05-15 14:24:09 +02:00
Maxime Coste
ef7d90cbfa
colalias can reference another alias
2013-05-15 14:01:23 +02:00
Maxime Coste
1fb971e389
Editor::select(Selection, SelectMode::Extend) now only keeps the extended main selection
2013-05-14 13:58:41 +02:00
Maxime Coste
9cbf790d13
tweak Range::merge_with behaviour
2013-05-14 13:58:35 +02:00
Maxime Coste
2b12b72d6e
fix overlaps(Range, Range)
2013-05-14 13:58:19 +02:00
Maxime Coste
42be2b23ca
fix regex prompt whith empty regex
2013-05-13 18:43:38 +02:00
Maxime Coste
26f0fd4cc6
Use more std::* for string handling
2013-05-13 18:43:38 +02:00
Maxime Coste
56ab33c9d6
support specifying colors with RGB components
2013-05-13 14:25:05 +02:00
Maxime Coste
3a49e05832
Option can be declared with a checker function.
...
The checker function may throw if to be set option value is invalid.
Implemented with the completers option.
2013-05-06 13:52:41 +02:00
Maxime Coste
c1615b5c15
add unordered_set option support, use it for completers
2013-05-06 13:52:20 +02:00
Maxime Coste
2342e7686f
add specialized contains function for unordered_set
2013-05-06 13:51:23 +02:00
Maxime Coste
42d7fcacd8
add a completers option for specifying which completer to use for BufferCompleter
2013-05-03 18:44:27 +02:00
Maxime Coste
39f9ca33c8
BufferCompleter: avoid modifying the buffer when not needed
2013-05-03 18:44:27 +02:00
Maxime Coste
33740d06ee
Editor: tweak behaviour on undo/redo when selecting modified ranges
2013-05-03 18:44:26 +02:00
Maxime Coste
564cfb084e
Editor: undo and redo select all ranges modified instead of the last one
2013-05-03 18:44:26 +02:00
Maxime Coste
4c4b6a404d
add SelectionList::check_invariant
2013-05-03 18:44:26 +02:00
Maxime Coste
9b3e0c8055
Move selection update code to SelectionList
2013-05-02 19:04:59 +02:00
Maxime Coste
4ab5c7a203
DisplayBuffer: optimize Text and ReplacedBufferRange as well
2013-05-02 18:57:15 +02:00
Maxime Coste
d238707e6d
Fix UndoGroupOptimizer
2013-04-30 19:01:20 +02:00
Maxime Coste
b69c9ea753
add paragraph (p) object
2013-04-30 14:29:18 +02:00
Maxime Coste
4bb3863f95
add sentence (s) object
2013-04-30 14:21:48 +02:00
Maxime Coste
bef48b7df0
Fix UndoGroupOptimizer
2013-04-29 14:25:38 +02:00
Maxime Coste
11bc24f992
FlagLines: use a shared updaters for options
...
previously, having two windows showing the same buffer with
the same line flags would have updated the options twice, resulting
in wrong lines in option. Now line flags options are updated only
once by a shared object along all FlagLines highlighter using the
same option.
2013-04-29 14:20:42 +02:00
Maxime Coste
ba562367f0
catch errors when opening files given on command line
2013-04-29 13:50:13 +02:00
Maxime Coste
4a0aa96160
fix bug in compact_path
2013-04-29 13:49:47 +02:00
Maxime Coste
d49f35817e
fix handling of ~ in filenames so that :edit ~ does not open a file named '~'
2013-04-26 20:18:16 +02:00
Maxime Coste
70d65dac79
git-tools.kak: support add and diff command
2013-04-26 18:48:31 +02:00
Maxime Coste
8bfe2d62e5
echo: rename -col option to -color
2013-04-26 18:48:31 +02:00
Maxime Coste
7ce3212fb2
When committing an undo group, run an optimization pass on it
...
With incremntal insertion, undo groups tends to be a lot of single
character insertion/deletions at the same point, but the end
result is most of the time a single string insertion. Buffer
now tries to optimize the undo group.
2013-04-26 18:48:31 +02:00
Maxime Coste
b16c967f9c
Buffer::Modification::Position is a BufferCoord instead of a BufferIterator
2013-04-26 18:46:42 +02:00
Maxime Coste
f8c3b6c9ef
Buffer: rename character_count method to byte_count
2013-04-24 13:56:36 +02:00
Maxime Coste
7c4e79ef98
BufferCompleter: change behaviour to handle non prefix completions
...
Try to have a nice behaviour when the completions do not share
a prefix with the [completion begin, cursor pos] string.
For example an address book completion may provide candidates
for frrrwww that are 'Maxime Coste <frrrwww@gmail.com>', not
having frrrwww as a prefix.
2013-04-23 19:08:50 +02:00
Maxime Coste
ef07b98215
utils: add is_in_range function
2013-04-23 19:08:44 +02:00
Maxime Coste
6913510e67
use alt-J for joining and selecting the spaces replacing line breaks
2013-04-23 18:54:31 +02:00
Maxime Coste
72ef210e1b
Buffer: add is_valid(BufferCoord) method
2013-04-23 18:46:18 +02:00
Maxime Coste
dd3a7f739d
FlagLines: do not create a new local option in window if the option comes from the buffer
2013-04-23 14:03:54 +02:00
Maxime Coste
c844f6f5cf
git-tools.kak: use a single git command with subcommands
2013-04-23 14:03:23 +02:00
Maxime Coste
6df60f5d2f
use a DynamicSelectionList when searching as the buffer may be modified during the prompt
2013-04-22 18:49:52 +02:00
Maxime Coste
86f6282cbe
selecting a surrounding object goes up one level if what we find is already selected
2013-04-22 14:18:49 +02:00
Maxime Coste
681f30dd28
support renaming buffers
...
Changing buffer name allows to save a *make* or *grep* buffer when
launching another one for exemple.
2013-04-22 13:49:07 +02:00
Maxime Coste
362e346728
rename go function to goto_commands
2013-04-19 13:49:47 +02:00
Maxime Coste
38bd8c243f
add KakBegin and KakEnd hooks
2013-04-19 13:45:44 +02:00
Maxime Coste
ca69981cc6
Ncurses: display status line in terminal title as well
2013-04-18 20:22:19 +02:00
Maxime Coste
7af98eae43
add man.kak which provides a man command for displaying man pages in kakoune
2013-04-18 19:07:31 +02:00
Maxime Coste
5b61672948
add window_{width,height} env var
2013-04-18 14:28:53 +02:00
Maxime Coste
9a361e2657
Tweak status line
2013-04-18 14:28:35 +02:00
Maxime Coste
f4e7da8826
change swapped_case implementation
2013-04-17 19:31:31 +02:00
Maxime Coste
b229584e95
ShellManager: env_var_regex is an implementation detail
2013-04-17 19:26:44 +02:00
Maxime Coste
0a8f51bddd
ctags.kak: fix zc changed to vc
2013-04-17 19:15:34 +02:00
Maxime Coste
8d83a5ff9e
toolsclient option support is back, add docsclient for git-diff
2013-04-17 19:15:15 +02:00
Maxime Coste
021756dfd4
redeclaring an option with the same type is not an error
2013-04-17 19:10:51 +02:00
Maxime Coste
21f487417b
context_wrap options are allowed only at start
2013-04-17 19:10:06 +02:00
Maxime Coste
d3961768ec
add alt-X for trimming non full lines
2013-04-16 14:30:11 +02:00
Maxime Coste
979cfc1ff2
normal.cc: remove useless do_ prefix on function names
2013-04-16 14:08:15 +02:00
Maxime Coste
5b50b32e68
move view commands to v prefix instead of z
2013-04-16 13:54:04 +02:00
Maxime Coste
485a50bb4b
handle client_removed exception out of ClientManager as well
2013-04-15 18:55:41 +02:00
Maxime Coste
da4be95c90
Handle SIGHUP gracefully
2013-04-15 18:50:45 +02:00
Maxime Coste
cc91a71a96
move Client as a public class instead of a ClientManager implementation detail
2013-04-15 14:28:21 +02:00
Maxime Coste
385241d2c0
remove String::replace, use boost::regex_replace directly
2013-04-12 19:16:55 +02:00
Maxime Coste
b6d21514e4
BufOpen hook is only called for file buffers
2013-04-12 19:11:28 +02:00
Maxime Coste
5653af15ed
move normal mode implementation to normal.{cc,hh}
2013-04-12 14:28:13 +02:00
Maxime Coste
dbffcb226b
echo command can take a -col parameter to specify the colors to use
2013-04-12 14:22:01 +02:00
Maxime Coste
46deca4f3f
Add zj and zk command for scrolling the window
2013-04-12 01:31:21 +02:00
Maxime Coste
e4d87ee1f1
hide ncurses.h include in ncurses.cc
2013-04-12 01:28:22 +02:00
Maxime Coste
e68f3cfe35
git-tools.kak: initial git-show command
2013-04-11 23:09:42 +02:00
Maxime Coste
1b5760f1a1
delete buffer if needed when creating a scratch buffer
2013-04-11 23:09:17 +02:00
Maxime Coste
dcc054a785
git-tools: fix git-diff-show
2013-04-11 22:41:43 +02:00
Maxime Coste
3f5dc9e1cb
ctags.kak: <a-c> is now zc
2013-04-11 21:17:17 +02:00
Maxime Coste
99bb24dd09
add z prefixed 'window commands'
...
* zz or zc for centering selection on window (replaces alt-c)
* zt and zb for placing the main selection on top/bottom
2013-04-11 21:01:27 +02:00
Maxime Coste
fb87c7ac9f
add Window::display_selection_at(LineCount)
2013-04-11 21:01:00 +02:00
Maxime Coste
301921cd45
remove hooks when needed in rc files
2013-04-11 14:30:02 +02:00
Maxime Coste
107e95622d
Hooks can have an (shareable) identifier, and thus be removed
2013-04-11 14:29:10 +02:00
Maxime Coste
172f46f679
idvaluemap: add a remove_all method
2013-04-11 14:27:32 +02:00
Maxime Coste
4cf7c4175a
HookManager: write to debug when a hook fails
2013-04-11 13:58:09 +02:00
Maxime Coste
35d0d5b2ea
exceptions: use const char* what() instead of String description()
2013-04-11 13:57:35 +02:00
Maxime Coste
c699172110
highlight strings after macros
2013-04-11 13:47:15 +02:00
Maxime Coste
8b829d1cdf
display character column instead of byte column in status line
2013-04-11 13:45:28 +02:00
Maxime Coste
1398641d22
Add gt, gb and gc to goto the first/last/middle displayed line
2013-04-10 19:02:28 +02:00
Maxime Coste
9999e5698d
Use the buffer manager to delete buffer, throw when a client is inserting
2013-04-10 18:54:01 +02:00
Maxime Coste
441f9a69ef
InputHandler: auto leave insert mode when editor changed
2013-04-10 14:30:32 +02:00
Maxime Coste
bdd617006b
add a 'debug' command, which write to the debug buffer
2013-04-10 13:45:17 +02:00
Maxime Coste
270e950cf1
sort includes directives
2013-04-09 20:05:40 +02:00
Maxime Coste
5adee4a6a7
rename assert to kak_assert to avoid collisions
2013-04-09 20:04:11 +02:00
Maxime Coste
34b8604f90
move context implementation to context.cc
2013-04-09 19:39:03 +02:00
Maxime Coste
240e0321e8
ge goto end, last character of buffer
2013-04-09 19:32:44 +02:00
Maxime Coste
7f535988f0
gg is back to goto top
2013-04-09 19:32:26 +02:00
Maxime Coste
829876a6fa
Context: push_jump does not allow the same jump to be present multiple times
2013-04-09 14:29:28 +02:00
Maxime Coste
5b1839ab75
BufferIterator: allow operator{==,!=} for different buffers
2013-04-09 14:28:03 +02:00
Maxime Coste
61293e8d60
use gk and gj for goto first/last line instead of gt and gb
2013-04-09 14:23:26 +02:00
Maxime Coste
43b5bd5260
add ga binding to go to last buffer
2013-04-09 14:22:21 +02:00
Maxime Coste
7b94925898
force redraw window if needed in context_wrap
2013-04-09 14:21:48 +02:00
Maxime Coste
624c112d08
tweak prompt text
2013-04-06 15:43:33 +02:00
Maxime Coste
be9bfa479f
use more explicit prompts for search and pipe, use color to validate
2013-04-06 13:02:16 +02:00
Maxime Coste
1ab8120147
refactor regex based selectors, move regex construction out of them
2013-04-05 19:28:08 +02:00
Maxime Coste
c53319ce5e
refactor regex prompting commands
2013-04-05 18:29:05 +02:00
Maxime Coste
9bb9eda302
Dynamically change prompt color for regex prompt depending on regex validity
2013-04-04 19:09:34 +02:00
Maxime Coste
6e2fa38c15
InputHandler::prompt takes a color pair to use
2013-04-04 19:09:19 +02:00
Maxime Coste
f540566b1b
UserInterface: status line messages are now DisplayLines
...
This add color support for the status line
2013-04-04 18:50:00 +02:00
Maxime Coste
6ffdfd7735
Add get_color helper function
2013-04-04 18:47:34 +02:00
Maxime Coste
1822b81d58
pass a color pair when displaying an information window
2013-04-04 14:04:38 +02:00
Maxime Coste
b58f614f40
Pass a fg and bg color when displaying a menu
2013-04-04 14:04:38 +02:00
Maxime Coste
1fd99e7e88
do not check buffer invariant in do_{erase,insert} as this cause O(n²) behaviour
2013-04-04 14:04:37 +02:00
Maxime Coste
4fbe2dc6bc
compile with -pedantic option and fix warnings
2013-04-04 14:04:37 +02:00
Maxime Coste
4aa5a9a3f6
display a message in the status line when yanking
2013-04-03 19:18:17 +02:00
Maxime Coste
c6262fc5e1
use Y for concatenated yank
2013-04-03 19:14:38 +02:00
Maxime Coste
d56f6444b5
Add alt-[kK] for keeping only selections matching/not matching a given regex
2013-04-03 19:07:43 +02:00
Maxime Coste
5bb8e656c5
Editor: fix utf8 handling in prepare_insert
2013-04-03 18:52:49 +02:00
Maxime Coste
72395840f9
Makefile: hide object files
2013-04-03 18:52:16 +02:00