Commit Graph

1516 Commits

Author SHA1 Message Date
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