Commit Graph

704 Commits

Author SHA1 Message Date
Maxime Coste
9db4aa9691 Buffer: add a type property 2011-10-07 14:15:55 +00:00
Maxime Coste
12535e1099 Window: get rid of select_mode 2011-10-07 14:03:25 +00:00
Maxime Coste
ca99a51bca clear selections after a change 2011-10-06 21:13:33 +00:00
Maxime Coste
1e224dc586 whitespace fix 2011-10-06 21:13:16 +00:00
Maxime Coste
571e4772b4 IncrementalInserter: support OpenLineBelow and OpenLineAbove mode 2011-10-06 21:12:55 +00:00
Maxime Coste
f9be716776 quit: do not quit if modified buffer exists, add q! command 2011-10-05 18:43:47 +00:00
Maxime Coste
cf162ae617 draw_window: add a space for eol, so that selected eol are visible 2011-10-05 14:28:20 +00:00
Maxime Coste
ff730380ed Window: empty_selections -> clear_selections
clear_selections also reset select_mode to Normal,
most editing operations now do a clear_selections.
2011-10-05 14:24:52 +00:00
Maxime Coste
4ce349fa02 Buffer: modification tracking 2011-10-05 14:21:24 +00:00
Maxime Coste
c8cf7bbaa9 Window: add a basic status line 2011-10-04 18:49:41 +00:00
Maxime Coste
4f771b084a escape-key force return to normal mode 2011-10-03 18:41:05 +00:00
Maxime Coste
d99bcd7f2e bind T and F as select_to_reverse non-inclusive and inclusive 2011-10-03 14:29:44 +00:00
Maxime Coste
36c3bb6ae3 ncurses: quick'n'dirty color support 2011-09-30 19:15:14 +00:00
Maxime Coste
e619a81375 IncrementalInserter: Append, Insert or Change mode specified at construction 2011-09-28 19:14:39 +00:00
Maxime Coste
43fb64a913 Window: selection behaviour now depends on a window state
more vi-like behaviour, hit the v key to toggle append selection mode,
this means much more keys become available for mapping, as caps are now
longer reserved to append mode.
2011-09-28 14:23:43 +00:00
Maxime Coste
309b722df9 Window: cursors are now implicit, taken from current selections
Window hence guarantees that there is always at least one selection.
2011-09-27 18:45:22 +00:00
Maxime Coste
610acb3c0e Selectors: add a count argument to select_to 2011-09-27 14:27:48 +00:00
Maxime Coste
01018a5eac Handle paste before and paster after with p and P 2011-09-27 14:15:20 +00:00
Maxime Coste
924a85d14f erase, change: yank current selection before erasing 2011-09-26 08:59:32 +00:00
Maxime Coste
6ff06ca985 DisplayBuffer: cleanup 2011-09-25 23:51:12 +00:00
Maxime Coste
dc54e7f09c % key selects whole buffer 2011-09-24 13:45:25 +00:00
Maxime Coste
0cad8ed34b gh and gl to move to first/last character of line 2011-09-24 13:08:04 +00:00
Maxime Coste
53c9021857 Search: save last search to '/' register and bind n to repeat last search 2011-09-24 12:48:58 +00:00
Maxime Coste
9b865cea39 Basic support for yanking and pasting 2011-09-23 14:31:57 +00:00
Maxime Coste
8f70192875 CommandManager: now a singleton 2011-09-23 14:29:42 +00:00
Maxime Coste
c2cbd69c1a main: using namespace std::placeholders 2011-09-23 14:27:34 +00:00
Maxime Coste
26537d7028 Utils: Singleton template and migration of the BufferManager
Singletons are not autocreating, the application needs to create
exactly one instance (I want to avoid implicit initialization order
hell)
2011-09-23 14:26:53 +00:00
Maxime Coste
52ad372adb Selectors: support inclusive mode in select_to (bound to f key) 2011-09-23 14:06:10 +00:00
Maxime Coste
5ca901644f Completion: add complete_buffername completer 2011-09-22 18:55:45 +00:00
Maxime Coste
c3faeb6c05 Selectors: add select_to which selects until a given character on current line 2011-09-22 14:35:28 +00:00
Maxime Coste
03c199420e basic g (go) command, gg/gt goes to first line, gb goes to last 2011-09-22 14:02:07 +00:00
Maxime Coste
2efa120612 o key to open a line after the current one 2011-09-22 09:24:16 +00:00
Maxime Coste
cff69b2556 Selectors: add a basic select_matching selector for <([{]])> pairs 2011-09-21 19:09:49 +00:00
Maxime Coste
3af66276f0 Move selectors function to their own file 2011-09-21 14:37:09 +00:00
Maxime Coste
13d14d4ff5 Insert: refactoring using IncrementalInserter 2011-09-19 22:00:29 +00:00
Maxime Coste
0513b4de29 Shift-{H,J,K,L} keys move cursor while selecting. 2011-09-17 14:28:23 +00:00
Maxime Coste
49fce28dec select_to_next_word{,_end}: words are [a-zA-Z0-9] 2011-09-16 09:20:36 +00:00
Maxime Coste
3afbbefd9b Configure filename completer for edit and write commands 2011-09-16 09:20:01 +00:00
Maxime Coste
635e76eb4c prompt: rework tu support arrows and completion cycling 2011-09-14 19:15:09 +00:00
Maxime Coste
eecc5a184e CommandManager: basic command name completion support 2011-09-13 21:16:48 +00:00
Maxime Coste
030c5caf0a assert: custom implementation 2011-09-09 19:24:18 +00:00
Maxime Coste
3caf962110 exception: refactoring 2011-09-09 18:40:59 +00:00
Maxime Coste
84682b7590 Add a buffer command to switch between existing buffers 2011-09-08 14:32:36 +00:00
Maxime Coste
76b7c60afb Buffer is now responsible for window creation 2011-09-08 14:30:36 +00:00
Maxime Coste
d3499ecd9c Window lifetime is now handled by it's buffer.
A window cannot outlive it's buffer, so it makes sense to keep only a
reference on it hand have the buffer manage the window lifetime.
2011-09-08 00:13:19 +00:00
Maxime Coste
03f1520b43 Refactor commands handling and parsing in a CommandManager class 2011-09-07 18:16:56 +00:00
Maxime Coste
8baf43ece1 binding of undo to 'u' and redo to 'U' 2011-09-06 18:53:12 +00:00
Maxime Coste
6668151c78 LineAndColumn: segregate into WindowCoord and BufferCoord
Having the same type to specify coordinates in window space or buffer
space is error prone, now the compiler will tell if we use one for
another.
2011-09-05 19:06:31 +00:00
Maxime Coste
d5012c9379 window: support scrolling 2011-09-05 18:55:31 +00:00
Maxime Coste
2224118de2 insert: print '-- INSERT --' in status line 2011-09-02 18:45:57 +00:00
Maxime Coste
19123186d7 better exception handling in edit and write_buffer 2011-09-02 18:02:29 +00:00
Maxime Coste
955744e5d0 prompt: correctly handle backspace when empty 2011-09-02 17:07:35 +00:00
Maxime Coste
053b2e233e main: catch all exceptions, close ncurses and rethrow 2011-09-02 17:05:44 +00:00
Maxime Coste
535285d9e6 Initial commit 2011-09-02 16:51:20 +00:00