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
Maxime Coste
6ff6058ceb
create_buffer_from file return nullptr on file not found instead of throwing
2012-10-16 14:59:39 +02:00
Maxime Coste
4be6882bd5
Menu: support searching through choices with /
...
when hitting / while in a menu, a regex filter can be entered so that only
entries matching it are selectable, <esc> disable filtering while a second
<esc> close the menu as usual.
2012-10-15 12:49:46 +02:00
Maxime Coste
148466c659
Extract basic line editing functionality from PromptMode to LineEditor
2012-10-14 16:24:35 +02:00
Maxime Coste
dfafcdb6e6
utf8::codepoint: configurable invalid byte policy
2012-10-13 19:05:14 +02:00
Maxime Coste
4f1ab5b749
fix Window::scroll_to_keep_cursor_visible_ifn
2012-10-11 14:23:20 +02:00
Maxime Coste
4210a17753
Client: never call substr(CharCount, String::npos);
2012-10-11 14:22:08 +02:00
Maxime Coste
c92077762c
Makefile: add -Wall to CXXFLAGS
2012-10-11 01:17:29 +02:00
Maxime Coste
0ce6bd9bf5
use ByteCount instead of CharCount when we are really counting bytes
...
(that is most of the time when we are not concerned with displaying)
2012-10-11 00:41:48 +02:00
Maxime Coste
571861bc7b
Return something in utf8::distance, thanks again gcc for letting this work
2012-10-11 00:39:17 +02:00
Maxime Coste
561cc72d6c
Add a ByteCount unit
2012-10-11 00:13:31 +02:00
Maxime Coste
2cdebe01d3
fix make tags
2012-10-10 22:44:06 +02:00
Maxime Coste
8de754e2e9
when executing keys, propagate potentially changed editor to calling context
2012-10-10 19:15:43 +02:00
Maxime Coste
dae8f65308
exec concat all its arguments instead of accepting only one
2012-10-10 19:15:09 +02:00
Maxime Coste
ffba94fcde
Actually return something in utf8::codepoint, thanks gcc for using rax
2012-10-10 19:14:18 +02:00
Maxime Coste
a04d1e3a1f
Editor merge selections when they overlap
2012-10-10 19:11:24 +02:00
Maxime Coste
5bb37ad755
Support Append mode for Editor::select and use it for 'N' key
2012-10-10 13:59:55 +02:00
Maxime Coste
4c8b4890e6
Context: explicit constructors and more comments
2012-10-10 13:59:55 +02:00
Maxime Coste
74cdeb5952
Paste use a linewise mode when pasted string ends with a \n
2012-10-10 13:59:55 +02:00
Maxime Coste
b48d639976
Editor::insert handle all InsertModes
2012-10-10 13:59:55 +02:00
Maxime Coste
d574ae864d
Editor::insert takes an InsertMode param, remove Editor::{append,replace}
2012-10-09 19:25:20 +02:00
Maxime Coste
7a8366da2b
add a unicode.hh header for Codepoint related functions, s/utf8::Codepoint/Codepoint/
2012-10-09 19:15:05 +02:00
Maxime Coste
e1d4215159
InsertMode insert the whole utf8 representation of a codepoint
2012-10-09 14:31:00 +02:00
Maxime Coste
c0db3b81be
NCursesUI::get_key returns the codepoint
2012-10-09 14:30:35 +02:00
Maxime Coste
ba50d853b3
Editor: fix move_selection(LineCount) for utf8
2012-10-09 14:29:59 +02:00
Maxime Coste
1af7465107
utf8: add dump(OutputIterator& it, Codepoint cp)
2012-10-09 14:29:37 +02:00
Maxime Coste
c7272e427d
get rid of Character
2012-10-08 19:33:53 +02:00
Maxime Coste
194bf6ac98
Buffer: add some utf8 sanity checks
2012-10-08 19:25:17 +02:00
Maxime Coste
bff015d5b9
WordCompleter: avoid word currently being edited
2012-10-08 19:14:48 +02:00
Maxime Coste
0a686573ab
utf8 awareness in selectors
2012-10-08 19:12:09 +02:00
Maxime Coste
ed592a3005
DisplayAtom: add utf8 sanity check
2012-10-08 14:28:54 +02:00
Maxime Coste
5602bc10e8
DisplayAtom: only let DisplayLine touch m_begin and m_end
2012-10-08 14:28:38 +02:00
Maxime Coste
7e046e3f0b
utf8 awareness in editor, highlighters and ncurses
2012-10-08 14:27:43 +02:00
Maxime Coste
5a267ab627
selections should always point to an utf8 character sequence start byte
2012-10-08 14:26:57 +02:00
Maxime Coste
f2e98f700e
add utf8_iterator for adapting byte iterators to iterate on unicode characters
2012-10-08 14:25:58 +02:00
Maxime Coste
2db1d02329
add utf8 helpers in utf8.hh
2012-10-08 14:25:05 +02:00
Maxime Coste
946b4650b6
fix postfix StronglyTypedInteger::operator{++,--}
2012-10-02 14:19:45 +02:00
Maxime Coste
514aeead63
do not use our broken safe bool, c++11 explicit bool conversion is better
2012-10-02 14:18:34 +02:00
Maxime Coste
9ae8f5e47b
Editor::move_selection now either takes a LineCount or a CharCount
2012-10-02 14:10:00 +02:00
Maxime Coste
669d2e456f
add postfix operator++ to BufferIterator
2012-10-02 14:09:06 +02:00
Maxime Coste
9ec10daf69
move clamp to utils.hh
2012-10-02 14:08:09 +02:00
Maxime Coste
84acf2594a
grep,make: tweak mktemp call to work on OSX
2012-10-02 10:37:08 +02:00
Maxime Coste
081f579ba1
OSX compilation fixes
2012-10-02 10:36:28 +02:00
Maxime Coste
4b0ccb0437
String and BufferIterator value_type goes back to plain char
2012-10-01 20:20:08 +02:00
Maxime Coste
f2f3421637
cpp.kak: fix string highlighter
2012-10-01 14:24:32 +02:00
Maxime Coste
bd0805cf3e
autoenable word completion while inserting
2012-10-01 14:23:04 +02:00
Maxime Coste
29b72b3e24
Add a word completing functionality to insert mode (wip)
2012-09-30 16:24:06 +02:00
Maxime Coste
430765e132
extract is_alpha to string.hh
2012-09-30 16:23:18 +02:00
Maxime Coste
801e3eaae2
Add a Window::display_position(const BufferIterator&) method
2012-09-30 16:22:03 +02:00
Maxime Coste
6cd5d80757
Add a length method to AtomContent
2012-09-30 16:21:20 +02:00
Maxime Coste
5b6cb500fc
Menus can be placed anywhere on the screen, and takes a style parameter
...
This paves the way for insert mode completion menu using the current
prompt menu system.
2012-09-30 15:18:37 +02:00
Maxime Coste
f230feec7f
Change buffer order based on the last one used
2012-09-28 14:14:49 +02:00
Maxime Coste
79d8d082bd
Store capture groups with selections in editor, and access them through dynamic registers
2012-09-26 20:43:42 +02:00
Maxime Coste
a8d2482eb6
Editor now stores selections as SelectionAndCapturesList
2012-09-26 20:33:47 +02:00
Maxime Coste
a2fd1528e6
Move last insertion from Client to Context
2012-09-26 20:07:06 +02:00
Maxime Coste
77eb86bcdb
Forbid context copy
2012-09-26 14:27:23 +02:00
Maxime Coste
efc069b531
Extract IncrementalInserter::Mode as InsertMode
...
move ClientMode classes in a namespace due to InsertMode name collisions
2012-09-26 14:22:24 +02:00
Maxime Coste
f76323f56e
Move UserInterface out of Client into Context
2012-09-26 14:13:04 +02:00
Maxime Coste
c36ee924eb
cleanup BatchUI
2012-09-25 14:23:50 +02:00
Maxime Coste
730f39aaa0
remove selection stack from editor
2012-09-24 20:47:06 +02:00
Maxime Coste
747c14c19f
Hide more Client Mode code in the cpp
2012-09-24 19:39:40 +02:00
Maxime Coste
a312ce6dc2
extract Client virtual methods to a UserInterface class
2012-09-24 19:24:27 +02:00
Maxime Coste
0380c999c3
move Client::Mode class definition in client.cc
2012-09-24 14:03:04 +02:00
Maxime Coste
b3c4912404
Use context.editor() instead of context.window() when a window is not needed
2012-09-24 13:56:39 +02:00
Maxime Coste
e86e3bda4d
select_all_matches: reject match that start at the end of originating selection
2012-09-19 14:04:09 +02:00
Maxime Coste
81eae79154
ncurses: fix displaying of lines longer than screen
2012-09-17 21:38:51 +02:00
Maxime Coste
b245b39a85
RegexColorizer: store ColorPairs by pointer so that alias changes are taken into account
2012-09-17 21:02:08 +02:00
Maxime Coste
a92a6dc7f3
ColorRegistry: permit overriding an alias
2012-09-17 21:01:11 +02:00
Maxime Coste
4d369d6290
kakrc: use color aliases for cpp and kakrc highlighting
2012-09-17 19:02:08 +02:00
Maxime Coste
5cf947f845
Add a ColorRegistry class responsible of color parsing and supporting aliases
...
colalias command permits to define names for color pairs
2012-09-17 19:01:13 +02:00
Maxime Coste
45bffd8b8a
fix parse_keys for <esc>
2012-09-17 13:46:34 +02:00
Maxime Coste
00e357ed56
PromptMode: fix completion of non-last parameters
2012-09-17 13:37:08 +02:00
Maxime Coste
ebae75e96e
fifo: buffer size is 4k instead of 512
2012-09-14 14:29:54 +02:00
Maxime Coste
f6d2533cae
rework fifo handling, use real fifos in {make,grep}.kak, update README
2012-09-12 19:54:46 +02:00
Maxime Coste
a467d73115
use parse_filename when opening files or completing filenames so that ~ and env vars are handled
2012-09-12 19:42:12 +02:00
Maxime Coste
6f6f10c83d
simplify tab completion code in Client::InsertMode
2012-09-12 19:09:27 +02:00
Maxime Coste
ec57990060
whine when a search selected nothing so that the user knows
2012-09-12 19:09:10 +02:00
Maxime Coste
cfbe32f6a2
support Tab/BackTab keys in MenuMode as well
2012-09-12 14:25:14 +02:00
Maxime Coste
7266052d46
grep command uses file completion
2012-09-12 14:22:01 +02:00
Maxime Coste
7c039585a4
add -file-completion option to def command and document in README
2012-09-12 14:21:42 +02:00
Maxime Coste
62e50c38fa
commands.cc: cleanup
2012-09-11 19:09:55 +02:00
Maxime Coste
9dfccddca8
Correctly handle arrow keys in insert mode
2012-09-11 19:09:14 +02:00
Maxime Coste
e39086cd5f
Buffer: reset undo data after executing hooks in constructor
2012-09-11 19:03:37 +02:00
Maxime Coste
a0b75817a5
do not keep undo data in the debug buffer
2012-09-11 19:03:13 +02:00
Maxime Coste
eac68f09a4
NCursesClient::show_menu: stop displaying counts in front of items
2012-09-11 14:30:32 +02:00
Maxime Coste
859e907396
fix NCursesClient::menu_select for one past last item
2012-09-11 14:28:54 +02:00
Maxime Coste
ee4c6b04a6
Support Shift-Tab in prompt mode to go back in completions
2012-09-11 14:27:21 +02:00
Maxime Coste
b5a2901f8d
add 'r' for replacing selection with next typed char
2012-09-11 14:01:41 +02:00
Maxime Coste
f8a6045307
Load config file in ${XDG_CONFIG_HOME}/kak/kakrc and ${XDG_CONFIG_HOME}/kak/autload/*
...
Do not autoload files in $kak_runtime/rc, let the user choose
restore the runtime command implemented in shell this time.
2012-09-10 20:45:34 +02:00
Maxime Coste
82a2bb37e7
Remove runtime command, use shell expansion to source files in rc dir.
...
With the help of a new kak_runtime env var.
2012-09-10 20:10:18 +02:00
Maxime Coste
f9e31856cf
Buffer: Allow inserting at the end when the inserted text ends with an end of line
...
Adapted other code in consequence and added unit tests so that this behavior
is maintained.
2012-09-10 19:26:17 +02:00
Maxime Coste
a37b14785f
use -shell-params in rc files
2012-09-09 17:14:08 +02:00
Maxime Coste
ae76b7dddc
Add support for shell script parameters
...
Now %sh{ ... } can access positional parameters through
standard shell construct, allowing simple handling of variable
parameters.
def command accepts -shell-params flag to use this facility.
2012-09-09 17:10:53 +02:00
Maxime Coste
46565723b1
Add support for page up and page down
2012-09-07 21:09:23 +02:00
Maxime Coste
499bb77491
Cleanup Key handling, use symbolic names for function keys
2012-09-07 20:22:19 +02:00
Maxime Coste
287628ec19
Editor::{select,move_cursor} takes a enum SelectMode parameter instead of a boolean
2012-09-07 14:29:29 +02:00
Maxime Coste
1e18dcba0f
fix Client::repeat_last_insert when no last insert
2012-09-07 14:28:27 +02:00
Maxime Coste
4e356a6312
kakrc.kak: fix comments highlighting
2012-09-06 14:30:09 +02:00
Maxime Coste
96beaf50dd
ShellManager: output stderr in the debug buffer
2012-09-06 14:28:07 +02:00
Maxime Coste
ddd5236b08
cpp.kak: smarter alt command
2012-09-06 13:38:51 +02:00
Maxime Coste
41b0751a5d
tweak make output highlighting
2012-09-06 13:35:36 +02:00
Maxime Coste
16e1c2daf9
simplify menu api
2012-09-05 19:02:06 +02:00
Maxime Coste
11d86ca3f3
fix Selection::merge_with
2012-09-05 14:27:48 +02:00
Maxime Coste
bf42d77469
Handle inserting in Client::InsertMode
2012-09-05 14:27:14 +02:00
Maxime Coste
d4446d1525
Client: fix history search
2012-09-05 00:52:09 +02:00
Maxime Coste
5c4df507c4
ncurses: colorize the menu
2012-09-05 00:49:59 +02:00
Maxime Coste
3f64c36654
fix NCursesClient::show_menu with big menu entries
2012-09-05 00:37:09 +02:00
Maxime Coste
bdaa083c88
Factor select to next char commands using Client::on_next_key
2012-09-05 00:30:59 +02:00
Maxime Coste
737ee8af24
use on_next_key in do_go and do_select_object
2012-09-05 00:21:42 +02:00
Maxime Coste
b23425764e
Add client::on_next_key method to run some code when the next key arrives
2012-09-05 00:21:19 +02:00
Maxime Coste
aac30a27e7
use more constexpr
2012-09-04 23:54:10 +02:00
Maxime Coste
63f467081a
Prompt: use entered text as prefix for history search
2012-09-04 13:48:04 +02:00
Maxime Coste
11d5ae2743
add override markers
2012-09-04 00:17:41 +02:00
Maxime Coste
0e6ced9176
cleanup cpp.kak
2012-09-04 00:08:01 +02:00
Maxime Coste
2e339e92bb
Allow arrow keys in prompt mode
2012-09-04 00:07:13 +02:00
Maxime Coste
d530a2d864
Support # comments in commands
2012-09-04 00:04:49 +02:00
Maxime Coste
57b89099ec
Client::MenuMode wrap through options with j/k Ctrl-n/Ctrl-p and tab
2012-09-04 00:02:50 +02:00
Maxime Coste
c4dd6b4038
Client::MenuMode map tab as SelectNext
2012-09-03 23:55:11 +02:00
Maxime Coste
69bebdb44e
fix open line above for first line and add a unit test
2012-09-03 23:46:04 +02:00
Maxime Coste
c61f9cbe6b
Add MenuCommand::SelectNone and use it when tab completions goes back to original string
2012-09-03 19:34:10 +02:00
Maxime Coste
c2a4f68899
NCurses: Fix menu display
2012-09-03 19:20:41 +02:00
Maxime Coste
b08d8719e6
move input handling, including menu and prompt, to the Client class
2012-09-03 14:22:02 +02:00
Maxime Coste
d5f5f0989d
fix control key parsing
2012-09-03 19:21:11 +02:00
Maxime Coste
96a50e9b7d
NCurses: use menu for tab completion
2012-08-31 14:14:16 +02:00
Maxime Coste
51e80558d9
Change client menu api to give more control to the caller
2012-08-30 21:53:22 +02:00
Maxime Coste
1ca502d23d
More useable menu implementation on ncurses
2012-08-30 21:14:28 +02:00
Maxime Coste
78d4675c24
git.kak: tweak highlighting
2012-08-30 18:56:05 +02:00
Maxime Coste
f1d8d0add8
escape whitespaces in filename or buffername completions
2012-08-29 21:52:17 +02:00
Maxime Coste
2825bc3d7b
Fix escaped whitespace handling in command manager
2012-08-29 21:50:48 +02:00
Maxime Coste
bbce6b22a3
remove regex.hh, define Regex directly in string.hh
2012-08-29 21:49:36 +02:00
Maxime Coste
8febec0bcf
add_hook: do not construct a regex again and again
2012-08-29 14:15:13 +02:00