Maxime Coste
f08966197e
Change # register to contain selection number
...
Using <c-r># in insert will allow easy numbering
2014-05-23 20:27:35 +01:00
Maxime Coste
8356e44ad5
Improve error reporting when parsing commands
...
*debug* will contain line and column informations along
with the responsible command name.
2014-05-07 20:39:59 +01:00
Maxime Coste
c06f986a02
Add unistd.h to main, needed for dup
2014-04-30 19:08:06 +01:00
Maxime Coste
479c067a40
Add support for running Kakoune with redirected stdin
...
Will read to a *stdin* fifo buffer
2014-04-29 21:37:11 +01:00
Maxime Coste
7190791927
Move some buffer related utility functions to buffer_utils.{cc,hh}
2014-04-28 19:48:23 +01:00
Maxime Coste
7cdb94d5c7
Use StringView in shell manager
2014-04-21 00:26:20 +01:00
Maxime Coste
203a7732f5
Add support for querying client environement variables
...
At connection, a remote client sends all its environement to the
server, which then provides access to client env through
kak_client_env_VAR_NAME variables in the shell.
2014-04-07 23:47:51 +01:00
Maxime Coste
e1a9d5f71e
Fix clang compilation
2014-04-02 22:33:52 +01:00
Maxime Coste
da9d099f3b
Remove Range struct, merge it back in Selection
2014-03-29 08:55:45 +00:00
Maxime Coste
93ecc3efd6
style tweak
2014-03-22 21:00:24 +00:00
Maxime Coste
459cb212e5
Correctly handle failing to connect to the given session in client mode
2014-03-21 13:42:37 +00:00
Maxime Coste
11c62e583c
Add -p <session> option to kak, which forward commands on stdin to session
...
This allows using directly the kak binary in place of socat for piping commands
to a foreing session.
2014-03-02 02:01:09 +00:00
Maxime Coste
486d1269e0
Consistently name -foo things 'switches'
2014-03-02 01:08:11 +00:00
Maxime Coste
9451782648
Add command switches information, and automatically display it
2014-03-02 01:08:11 +00:00
Maxime Coste
7f9f887b4a
All commands now take directly a parameter parser
...
The command parameters description are now stored in a ParameterDesc
structure.
2014-03-02 01:08:11 +00:00
Maxime Coste
c49e79c9e8
Add buffile env var for getting the buffer filename
2014-02-27 06:44:22 +00:00
Maxime Coste
2159fc9563
Rename selections first,last to more explicit anchor,cursor
2014-01-28 19:06:52 +00:00
Maxime Coste
e364137196
Fix compilation with clang 3.4
2014-01-27 20:28:38 +00:00
Maxime Coste
a6d14cecbe
Remove session socket on error signal
2014-01-27 19:53:17 +00:00
Maxime Coste
cccb07c7cd
Catch parameter errors on startup and display option informations
2014-01-23 19:36:07 +00:00
Maxime Coste
219f4c9c19
minor code cleanup
2014-01-12 21:25:21 +00:00
Maxime Coste
fa72d27f9a
Make kak more installable
...
* Kak relies on the kakrc file to be in ../share/kak/kakrc relative
to kak binary rather than in the same directory
* Added an install target to the Makefile
2013-12-23 21:36:05 +00:00
Maxime Coste
ea95632709
Move Editor::selections_content to Context
2013-12-15 20:37:07 +00:00
Maxime Coste
935bc3cec9
Add Context::selections method, and use it in priority to the Editor's one
2013-12-15 14:25:23 +00:00
Maxime Coste
6afef079b6
Remove Editor::main_selection(|index), directly use the SelectionList method
2013-12-14 14:38:17 +00:00
Maxime Coste
91cc8dd8bf
Add cursor_char_column env variable
2013-12-11 13:46:33 +00:00
Maxime Coste
45d5dbcc85
Add support for defining and referencing highlighters
...
* defhl <name> defines a shared highlighter
* addhl -def-group <name> adds highlighters to the defined highlighter
* addhl ref <name> add the defined highlighter to the window's ones
2013-12-03 22:07:23 +00:00
Maxime Coste
a443ff7ea6
indent fixes
2013-12-03 19:49:09 +00:00
Maxime Coste
62137f364d
tweak initial debug infos
2013-11-15 23:47:44 +00:00
Maxime Coste
f8cadc0c57
move Client::m_name to context, no more need for DraftUI
2013-11-14 20:51:25 +00:00
Maxime Coste
471aeaab9a
remove filters, use hooks instead
2013-11-04 22:02:44 +00:00
Maxime Coste
dc1fbcdaa2
minor style fix
2013-10-26 19:23:00 +01:00
Maxime Coste
2c09da50be
Add key mapping support
2013-10-25 00:30:46 +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
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
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
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
3150fe97cf
selections env var is : separated, and : in selections are escaped
2013-08-28 18:52:29 +01:00
Maxime Coste
af8e8d27d4
Minor code cleanups
2013-07-28 16:40:02 +02:00
Maxime Coste
c1b2f7ef6a
use C locale function instead of C++ ones
2013-07-02 19:48:04 +01:00
Maxime Coste
a3e032abd6
enable /proc/ method for runtime_directory with cygwin
2013-06-19 19:29:05 +01:00
Maxime Coste
4ef1bfa4db
Use coord instead of iterators for selections
2013-06-04 14:21:07 +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
26f0fd4cc6
Use more std::* for string handling
2013-05-13 18:43:38 +02:00
Maxime Coste
ba562367f0
catch errors when opening files given on command line
2013-04-29 13:50:13 +02:00
Maxime Coste
38bd8c243f
add KakBegin and KakEnd hooks
2013-04-19 13:45:44 +02:00
Maxime Coste
5b61672948
add window_{width,height} env var
2013-04-18 14:28:53 +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
5653af15ed
move normal mode implementation to normal.{cc,hh}
2013-04-12 14:28:13 +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
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
35d0d5b2ea
exceptions: use const char* what() instead of String description()
2013-04-11 13:57:35 +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
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
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
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
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
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
0395f3b9fc
fix compilation with clang++
2013-04-03 18:51:40 +02:00
Maxime Coste
07f3bbe523
add alt-* for not smart set search pattern to selection
2013-04-02 18:46:33 +02:00
Maxime Coste
585e64fd10
add swap case support with the ~ key
2013-03-29 19:35:48 +01:00
Maxime Coste
1f4072dc72
use a scoped edition in Repeated so that repeated actions have a single undo group
2013-03-29 19:35:48 +01:00
Maxime Coste
ee0e640384
kak_bufname env var use display_name
2013-03-26 19:28:44 +01:00
Maxime Coste
14933bdeaf
% register uses the buffer display name
2013-03-26 13:40:04 +01:00
Maxime Coste
07866e6ae9
show informations on uncaught std::exceptions
2013-03-22 14:29:22 +01:00
Maxime Coste
60599917cc
add a kak_selections env var, which contains all selections separated by a comma
2013-03-21 19:10:18 +01:00
Maxime Coste
5fe7315df9
add 'r' object alias for [] (range)
2013-03-18 22:31:05 +01:00
Maxime Coste
354ae7ad89
Editor: keep selections sorted and use an index for the main one
2013-03-18 19:09:07 +01:00
Maxime Coste
a981d41cde
Editor: replace selections().back() with main_selection()
2013-03-15 18:22:08 +01:00
Maxime Coste
0c4addb40c
replay_macro: parse keys only once
2013-03-15 14:16:15 +01:00
Maxime Coste
0b45a725e4
move remoting code to remote.cc
...
ClientAccepter is now Server's implementation detail and all socket logic
are isolated in remote.cc
2013-03-14 10:23:35 +01:00
Maxime Coste
de536b80cd
goto file uses the 'path' string-list option instead of hard coded paths
2013-03-13 18:52:55 +01:00
Maxime Coste
e428a9757f
Modify network protocol to allow commands through the socket
2013-03-12 18:53:18 +01:00
Maxime Coste
4db6e3e917
add kak_timestamp env var to access current buffer timestamp
2013-03-11 14:20:28 +01:00
Maxime Coste
09cf5acb23
Add support for boolean options
2013-03-05 19:03:42 +01:00
Maxime Coste
fac222a427
Strongly typed options support
...
* non builtins options require declaration using the decl command
* At the moment, only int and string options are supported, however
the goal of this change is to provide a consistent way to support
more complex options, namely lists and booleans
2013-03-05 18:49:26 +01:00
Maxime Coste
9ea11394bc
reorganize keymap
2013-02-27 21:21:11 +01:00
Maxime Coste
771241ad97
use 'Q' for replay macro
2013-02-27 21:13:06 +01:00
Maxime Coste
09901d455e
Add 'gf' (goto file) functionality
2013-02-27 19:58:38 +01:00
Maxime Coste
9230667c11
Add " and ' support to object selection
2013-02-27 19:08:13 +01:00
Maxime Coste
6f48407f55
Use current locale
2013-02-27 19:01:07 +01:00
Maxime Coste
2726d11108
handle SIGFPE, SIGQUIT and SIGTERM as well as SIGSEGV
2013-02-26 14:13:37 +01:00
Maxime Coste
6d4552e7d8
Add an expand_unprintable highlighter which replaces unprintable char with U+XXXX
2013-02-26 14:12:21 +01:00
Maxime Coste
8f3d2ae089
main: catch all exceptions
2013-02-22 18:45:59 +01:00
Maxime Coste
77dc9955d3
Paste: use count for repetition
2013-02-22 18:45:27 +01:00
Maxime Coste
5c74f98757
Use S for regex splitting, and alt-s for line splitting
2013-02-22 18:37:34 +01:00
Maxime Coste
cf01f0ed7a
Avoid recursive macro calls
2013-02-21 13:35:20 +01:00
Maxime Coste
682e4faff0
select and split operations use the search pattern register
2013-02-20 14:04:46 +01:00
Maxime Coste
a83731c8e1
search: fix empty search string, use previous pattern
2013-02-19 19:05:13 +01:00
Maxime Coste
18aac3d4e8
Add '*' binding, which (smart) copy current selection to search pattern
2013-02-19 19:04:09 +01:00
Maxime Coste
b43fdc7eb6
Add macro recording/replay support
2013-02-18 18:58:07 +01:00
Maxime Coste
0e081a76c1
make keymap definition more readable using a select helper function
2013-02-18 14:01:24 +01:00
Maxime Coste
045aa0c7ec
style fix
2013-01-30 00:27:22 +01:00
Maxime Coste
38a67e72bc
Do not pass a context to InputHandler methods
2013-01-29 13:49:01 +01:00
Maxime Coste
9dbc6adcda
add a SIGSEGV handler
2013-01-23 13:46:18 +01:00
Maxime Coste
f7038980a0
Add kak_cursor_{line,column} env var
2013-01-21 13:58:54 +01:00
Maxime Coste
9c2bbe218b
replace char: fix unicode handling
2013-01-17 19:49:48 +01:00
Maxime Coste
310ec1f791
move input watching responsibility into UserInterface implementations
2013-01-14 18:50:17 +01:00
Maxime Coste
d2f0e2de66
RemoteClient owns the FDWatcher of it's socket
2013-01-11 18:44:02 +01:00
Maxime Coste
79d28e68dc
Refactor EventManager
...
Watching a file descriptor is now done using a FDWatcher object
2013-01-10 19:10:42 +01:00
Maxime Coste
bba7152063
Add backward search support (bound to alt-/)
2013-01-08 18:46:45 +01:00
Maxime Coste
3f7bf82cde
Support for selecting to surrounding object begin/end with [ and ]
2013-01-07 18:53:27 +01:00
Maxime Coste
8d4678a82e
Autoname client on creation, and access client name from shell with $kak_client
2013-01-07 13:59:09 +01:00
Maxime Coste
f3640a2d03
alt-r rotates selections
2013-01-05 18:26:57 +01:00
Maxime Coste
4b649d386c
various code style fixes
2013-01-04 18:39:13 +01:00
Maxime Coste
0045456f87
alt-n replace last selection with next match
2013-01-03 14:00:59 +01:00
Maxime Coste
d5582b0df4
add incsearch option to choose if incremental search is enabled
2012-12-31 14:12:00 +01:00
Maxime Coste
4e69ec078d
minor cleanup
2012-12-31 13:57:21 +01:00
Maxime Coste
dc9635a247
Fix join on last line (it appended a trailing space)
2012-12-31 13:44:01 +01:00
Maxime Coste
fe363094cf
support count in search next, and only push jump in replace mode
2012-12-31 13:42:59 +01:00
Maxime Coste
d4f155cae7
new clients always takes last used buffer, support multiple file on command line
2012-12-28 13:51:14 +01:00
Maxime Coste
f3a7c76c4e
add a -n option prevent kakrc from being sourced
2012-12-19 18:57:10 +01:00
Maxime Coste
63d30a30d5
support -e switch for initial command to execute
2012-12-18 21:41:13 +01:00
Maxime Coste
26632726ad
Support initial command passing when a client is connecting
2012-12-18 21:20:36 +01:00
Maxime Coste
9ca69820ac
do_go: support append mode on go to top/bottom, ignore case
2012-12-18 19:12:24 +01:00
Maxime Coste
cf7e6bdd07
join: preserve multiple selections
2012-12-18 19:00:55 +01:00
Maxime Coste
c74b44f540
change replace char behaviour, now replace each selected chars
2012-12-13 18:50:27 +01:00
Maxime Coste
cfd7ee049a
move selection updating code out of selection, to DynamicSelectionList
...
this avoids a lot of unnecessary (add|remove)_change_listener as
creating temporary Selections do not call that anymore.
Use can choose between a SelectionList which or a DynamicSelectionList
depending on wethear the buffer will be modified or not during the
selections lifetime.
2012-12-13 18:50:27 +01:00
Maxime Coste
e36bc74f43
do_select: do not propagate errors on incremental search
2012-12-13 18:50:27 +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
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
b764a0a63e
Selection: refactoring, move CaptureList to Selection
2012-11-30 18:32:49 +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
cee0a2d128
Append on end of line now appends to current line
2012-11-26 19:23:50 +01:00