Maxime Coste
263ef0b149
Get rid of SharedString
2016-02-05 09:38:33 +00:00
Maxime Coste
94cbd5a837
More string usage cleanup
2016-02-05 09:13:07 +00:00
Maxime Coste
ff6eacffa3
dont intern SharedStrings but StringDataPtr
2016-02-05 00:20:45 +00:00
Maxime Coste
a8eddd03f0
String usage cleanups
2016-02-04 23:54:22 +00:00
Frank LENORMAND
8d0988d541
Prevent unconditional generation of the man pages, fix the executable name for a2x
on Mac OS X
2016-02-04 15:10:04 +02:00
Frank LENORMAND
eb62327a4c
Rename the man page to kak
2016-02-04 12:58:59 +02:00
Frank LENORMAND
9d6d2b767f
Properly install the man page when using a custom prefix
2016-02-04 11:58:18 +02:00
Frank LENORMAND
80f7a350e4
Fix the installation of documentation pages
2016-02-04 11:46:12 +02:00
Maxime Coste
eb99c0f39e
Merge remote-tracking branch 'occivink/master'
2016-02-04 09:30:25 +00:00
O. Perret
92ddbac1e8
Adapt 'make install' to rc/ reorganization
2016-02-03 23:31:35 +01:00
Maxime Coste
b59714bf2a
Merge remote-tracking branch 'lenormf/manpage'
2016-02-03 22:16:40 +00:00
Frank LENORMAND
985b7a188a
Generate the documentation pages in the troff format
...
This commit introduces the `doc` target in the Makefile, which
generates man pages from the `asciidoc`-formatted documentation in the
`doc/manpages` directory.
Before being installed into the `$(sharedir)/doc` directory, the
generated raw man pages have to be striped of a few sections without
which `a2x` won't convert the `asciidoc` data: the shady block of shell
script in the `doc` target does just that, along with compressing the
resulting man page.
New dependency hereby introduced: `asciidoc`.
2016-02-03 21:09:41 +02:00
Frank LENORMAND
b6e930a57d
Migrate the raw troff kakoune
man page to the asciidoc format
2016-02-03 14:51:32 +02:00
Maxime Coste
dc3c7d593c
Do not use a hash to determine if a window must be redrawn
...
Collision happens
Fixes #569
2016-02-03 09:51:56 +00:00
Frank LENORMAND
043f742ec3
Add a basic man page
2016-02-02 21:13:25 +02:00
Maxime Coste
f2dac6ca15
Small cleanup
2016-01-28 20:29:10 +00:00
Maxime Coste
f3ec218a1c
Support user given text objects
2016-01-28 19:30:34 +00:00
Maxime Coste
b7530b021a
StringView based surround selection
2016-01-27 19:36:31 +00:00
Maxime Coste
f8106690b1
Make BufferIterator::operator* return a const ref to be more compatible
2016-01-27 08:27:23 +00:00
Maxime Coste
04119d6207
Make find_surrounding more reusable and add unit tests
2016-01-26 07:23:18 +00:00
Maxime Coste
99b4dc9929
Support connecting to other users sessions by using <user>/<session>
2016-01-20 22:58:39 +00:00
Frank LENORMAND
ffde7e4787
Fix the name of ranges highlighters upon initialization
2016-01-16 21:12:01 +02:00
Maxime Coste
032219b119
Rename set_signal_wrapper to set_signal_handler and tweak SignalHandler def
2016-01-10 20:46:15 +00:00
Maxime Coste
2f8612f8e7
Merge remote-tracking branch 'danlrobertson/safe_signal'
2016-01-10 03:00:25 +00:00
Maxime Coste
f358579e42
Merge remote-tracking branch 'occivink/master'
2015-12-29 23:06:35 +00:00
Maxime Coste
e938040e35
Cleanup InsertCompleter get rid of unneeded candidate vector copy
2015-12-28 00:18:38 +00:00
Maxime Coste
5217089902
Fix uses of non-keyword logical operators (replace &&, || and ! with and, or and not)
2015-12-27 23:28:34 +00:00
Maxime Coste
11652ce230
Remove the exec_keys function
2015-12-27 23:15:09 +00:00
Maxime Coste
43f1fcf616
Slight refactor
2015-12-27 23:09:32 +00:00
Maxime Coste
a5dcca6f78
Formatting fix
2015-12-27 23:07:06 +00:00
O. Perret
6a8507ce40
Keep match whose end is closest to the selection in reverse regex
...
search.
2015-12-27 16:53:52 +01:00
Maxime Coste
c39a4d5879
Add a static_words str-list option always considered for word completion
...
Fixes #313
2015-12-27 08:53:31 +00:00
Maxime Coste
978e8d18b9
Center the initial target line
2015-12-25 07:17:54 +00:00
Maxime Coste
c16b9a2ec4
Set window dimensions when setting it in a context
2015-12-25 07:17:36 +00:00
Maxime Coste
a051250204
Do not try to access the local client if it was not succesfully created
2015-12-24 04:09:30 +00:00
Maxime Coste
4d230e4051
Support passing +<line number> parameter to specify the first buffer target line on open
...
Fixes #336
2015-12-23 22:56:33 +00:00
Maxime Coste
1d748a4017
Pass flags to the regex engine to correct anchors
...
Current behaviour was matching ^ $ for the current search start/end
(and \b was always matching begin/end as well).
Fixes #536
2015-12-23 22:20:25 +00:00
Daniel Robertson
f5f7bc80e8
Add a signal function using sigaction
...
Use a wrapper for sigaction in place of signal to ensure that the
SA_RESTART flag is set for all signals used.
Signed-off-by: Daniel Robertson <danlrobertson89@gmail.com>
2015-12-23 14:03:31 -05:00
Maxime Coste
669fccc5e9
Remove drop jump (c-d)
2015-12-23 02:47:32 +00:00
Maxime Coste
1288a1d385
Support collapsing jumps in eval and exec
...
Fixes #535
2015-12-23 02:46:13 +00:00
Maxime Coste
aa92ca96c8
Use an index for jump list current rather than an iterator
2015-12-23 02:31:03 +00:00
Maxime Coste
411e5a9486
Extract jump list handling in a JumpList struct
2015-12-23 01:56:54 +00:00
Maxime Coste
9e664318af
Tweak Context::push_jump implementation, simplify code
2015-12-22 22:18:25 +00:00
Maxime Coste
24411569fc
Slight refactor in selection update code
2015-12-17 04:56:44 +00:00
Maxime Coste
8dcffd8f5a
Initial, WIP spelling implementation
...
Add a ranges highlighter that takes a timestamped list of ranges and
associated face. Add a spell.kak file that uses aspell pipe interface
to fill a range-faces option.
2015-12-17 04:07:49 +00:00
Maxime Coste
ac5bc7e95d
Add missing erasing of invalid line flags
2015-12-15 02:22:29 +00:00
Maxime Coste
d2b0dba39d
Support quitting while executing RuntimeError hooks
...
Fixes #529
2015-12-14 19:06:30 +00:00
Maxime Coste
515231e824
Fix input mode keep alive handling, use a refcount for input modes
...
Fixes #528
2015-12-12 23:51:51 +00:00
Maxime Coste
80b1d88bb0
Fix Buffer::changes_since if we get passed an invalid timestamp
2015-12-12 23:50:01 +00:00
Maxime Coste
b6105fa106
Use markup for line-flags instead of a single face
2015-12-12 23:16:07 +00:00
Maxime Coste
8d7e16a8e6
Merge remote-tracking branch 'doppioandante/safer-autoload'
2015-12-12 17:03:38 +00:00
Maxime Coste
37210218fd
Merge remote-tracking branch 'lenormf/fix-face-format-check'
2015-12-12 16:53:18 +00:00
Maxime Coste
4cb74623bb
Store the buffer timestamp in line flags options respect it for highlighting
...
Option content is auto updated to match current buffer, so that line flags
are updated according to buffer modifications.
2015-12-12 11:45:45 +00:00
Maxime Coste
70250fc1e3
Pass directly the StringView to option_add and let it do the option parsing
2015-12-12 11:26:34 +00:00
Frank LENORMAND
bd56ed5fad
Avoid instanciation of a String
object everytime the parse_color
...
function is called.
2015-12-12 12:00:52 +03:00
Maxime Coste
5b9d30c088
Optimize the dynregex case where the expression refers directly to a regex option
2015-12-12 06:50:58 +00:00
Enrico Lumetti
f9d1ef830f
Remove deprecated userconfig rule
2015-12-12 01:00:32 +01:00
Frank LENORMAND
49a5bbf3ca
Ensure that at least one character follows a ',' or a '+' sign in a face
...
description (respectively a background color and attributes).
2015-12-11 22:58:28 +03:00
Frank LENORMAND
df31b88187
Fix "unused result" warnings for several system calls.
2015-12-10 11:00:10 +03:00
Maxime Coste
bde0975d9b
Filter mode require an event manager
...
Fixes #519
2015-12-08 00:12:56 +00:00
Maxime Coste
89821e9471
Move grench.rc in the correct directory
2015-12-08 00:10:26 +00:00
Maxime Coste
888ff33683
Merge remote-tracking branch 'alexherbo2/grench-rc'
2015-12-07 13:52:24 +00:00
Maxime Coste
937bef69d9
Add support for adding saved selections to current ones with <a-z>
2015-12-07 13:43:09 +00:00
Maxime Coste
966ac90fe7
Change eolformat and BOM options to be enums instead of strings
2015-12-06 12:51:55 +00:00
Maxime Coste
39fffec104
Improve info box placement behaviour in some corner cases
2015-12-05 10:51:46 +00:00
Maxime Coste
eac6d63371
Small code refactor
2015-12-05 10:14:04 +00:00
Maxime Coste
9799f34f78
Refactor some code in shell_manager.cc
2015-12-05 10:00:11 +00:00
Maxime Coste
84fc4bd6cb
Support -e in filter mode to give commands to execute (executed before keys)
2015-12-03 13:48:30 +00:00
Maxime Coste
c4a9f059dc
Fix unset option when using the current scope and it points to global
2015-12-02 19:25:40 +00:00
Maxime Coste
9a6347d6aa
Another try to fix csr problems ( #469 )
2015-12-02 01:12:24 +00:00
Maxime Coste
2a8a329b83
Remove support for %arg{#}, can be added back if we got a use case
...
It is very unlikely we need %arg{#} without needing a %sh anyway.
2015-12-02 01:08:41 +00:00
Maxime Coste
a02ad38fb4
Forward each params in %arg{@} separately
2015-12-02 01:01:48 +00:00
Maxime Coste
b2648053f9
Add argument expansion support
2015-12-01 20:07:14 +00:00
Maxime Coste
550a95a3d7
Change def -shell-params to def -params and take the counts as parameters
2015-12-01 14:00:55 +00:00
Maxime Coste
7335065d20
Update buffer display names after changing working directory
...
Fixes #501
2015-12-01 13:42:42 +00:00
Maxime Coste
1745344869
Run InsertIdle after reseting completer to permit InsertIdle to display an info box
2015-11-30 13:54:59 +00:00
Maxime Coste
e91da2bd43
Try to just reset the scroll region to workaround #469
2015-11-30 13:35:15 +00:00
Maxime Coste
a8d81e395b
Support dropping last jump and use it to fix :tag double jump push
...
Fixes #492
2015-11-27 13:57:46 +00:00
Maxime Coste
516e999a28
Disable history in all non interactive contexts
2015-11-27 13:50:40 +00:00
Maxime Coste
b4df57d369
Small cleanups
2015-11-27 13:50:40 +00:00
Maxime Coste
a81dbd90a1
Consolidate writing to fd
2015-11-27 13:50:40 +00:00
Maxime Coste
0b57103c72
Remind user hooks disable when replaying last insert
...
Fixes #495
2015-11-26 23:02:59 +00:00
Maxime Coste
de72c7d5d3
Add missing <cstdio> include
...
Fixes #498
2015-11-26 22:51:39 +00:00
Alex Leferry 2
5da00a0f14
add rc/grench.kak
2015-11-26 15:23:02 +01:00
Maxime Coste
f66bbdf209
select/split interpret count parameter as the capture group to use
...
count being 0 by default, we use the whole match, but we can now
specify to use capture 1 with 1s<regex><ret>.
2015-11-26 13:36:26 +00:00
Maxime Coste
9e08cf8ea4
Preserve default registers in exec/eval by default
2015-11-26 13:34:46 +00:00
Maxime Coste
001da44e11
Add -save-regs <regs> option to exec and eval to preserve registers
...
Fixes #279
2015-11-25 23:40:38 +00:00
Maxime Coste
3644f2a056
Refactor registers to initialize all of them at startup and add null register
...
Fixes #497
2015-11-25 21:48:17 +00:00
Maxime Coste
ec91ea17fe
Add a static const String::ms_empty empty string
2015-11-25 21:07:41 +00:00
Maxime Coste
3b5b781c5d
Reject non ascii register names
...
Fixes #493
2015-11-25 20:12:11 +00:00
Maxime Coste
e45b0c3ffc
Add StatusLine{Mode,Info,Value} built in faces
...
Fixes #491
2015-11-24 13:53:15 +00:00
Maxime Coste
ad5c8db7a8
Add support for various completions in :prompt
...
Fixes #489
2015-11-23 13:57:36 +00:00
Maxime Coste
36bf145b02
Support opening new files on kak -c command line
...
Fixes #485
2015-11-22 11:48:02 +00:00
Maxime Coste
7cf7f121e8
Fix onkey autoinfo
2015-11-21 17:21:21 +00:00
Maxime Coste
b0d696d994
Merge remote-tracking branch 'somasis/master'
2015-11-21 15:39:27 +00:00
Maxime Coste
a8d2c93ac8
Add a profiling debug flag to get timings for hooks/shell eval
2015-11-21 12:11:19 +00:00
Maxime Coste
5e4f5cd2a0
Move enum option handling in enum.hh and refactor enum options
2015-11-20 09:06:53 +00:00
Kylie McClain
77ba471020
Makefile: Allow for passing include/ncursesw path
2015-11-19 20:09:24 -05:00
Maxime Coste
c0f1b7b99f
Introduce a debug flags option to control some tracing
...
Support shell|hooks and write traces in debug buffer
2015-11-19 21:58:26 +00:00
Maxime Coste
2977cc97b3
Merge branch 'ws' of git://github.com/jubalh/kakoune
2015-11-19 21:56:45 +00:00
Maxime Coste
bf213b01dd
Keep an empty last line in debug buffer to provide auto scrolling
2015-11-19 21:33:50 +00:00
Kylie McClain
1ed66e9b6a
Fix building with musl libc
2015-11-19 20:23:55 +00:00
Maxime Coste
788c358720
Fix some cases where menu items are truncated needlessly
2015-11-19 20:23:27 +00:00
Michael Vetter
71f6ee3234
Remove trailing whitespaces
2015-11-19 16:31:00 +01:00
Maxime Coste
daf041e839
Implement some generic utilities to convert flags to/from strings
2015-11-19 00:17:52 +00:00
Maxime Coste
784ab635ee
Splitting an empty string now returns an empty vector
2015-11-19 00:17:18 +00:00
Maxime Coste
9656f088e7
Change autoinfo option to be a flags option, document flags options
...
Support the value1|value2|value3 syntax for flag options.
2015-11-18 23:47:28 +00:00
Maxime Coste
5c37f0dd5e
Propagate shell context through prompt/onkey/menu commands
2015-11-18 20:15:51 +00:00
Maxime Coste
5743ea7384
Respect count argument on search
2015-11-18 20:13:03 +00:00
Maxime Coste
8d47cf0674
Fix correctly ncurses menu size computations and avoid divide by 0
2015-11-18 20:12:16 +00:00
Maxime Coste
6925ff33b1
Send client dimensions on connection, avoid a race condition.
...
Fixes #429
2015-11-18 13:43:43 +00:00
Maxime Coste
a37858ece7
Put count and register normal mode params in the shell context
...
'10:echo %val{count}' will display 10
Fixes #10
2015-11-17 23:47:59 +00:00
Maxime Coste
6bd71c68e5
NCurses: Fix max menu item width computation
2015-11-17 23:34:03 +00:00
Maxime Coste
cb108b248a
Fix alias completion and overwritting
2015-11-17 13:55:27 +00:00
Maxime Coste
97cc166885
Try to restore the previously opened buffer when converting to client mode
...
Fixes #483
2015-11-16 13:52:33 +00:00
Maxime Coste
1bf0a964ce
Move is_basic_alpha to unicode.hh
2015-11-15 13:24:39 +00:00
Maxime Coste
111732005a
Support <c-v> to insert raw value in insert/prompt mode
2015-11-13 13:52:54 +00:00
Maxime Coste
67d1b7dcd1
Faster BufferIterator::operator++/--
2015-11-12 13:59:36 +00:00
Maxime Coste
2113b829df
Show an info box explaining that spaces disable history recording in command prompt
...
Fixes #477
2015-11-12 13:57:14 +00:00
Maxime Coste
d6168a90fc
Fix access to dead temporary
2015-11-11 19:14:35 +00:00
Maxime Coste
b73a890f8c
Document i attribute in face command info
2015-11-11 19:05:47 +00:00
Maxime Coste
a5c8437873
Remove unneeded conversion
2015-11-11 19:05:32 +00:00
Maxime Coste
892c3647e4
Fix to_lower/to_upper handling to correctly support non unicode chars
...
require a proper unicode locale setup on the system
Fixes #94
2015-11-11 00:21:20 +00:00
Maxime Coste
7bd3f4306d
Remove useless checks, buffer has always at list one line
2015-11-10 23:06:57 +00:00
Maxime Coste
217dd6a1de
Disable history when executing maps
...
Fixes #476
2015-11-10 21:24:47 +00:00
Maxime Coste
a0bcdd83df
Document default registers
2015-11-10 20:39:17 +00:00
Maxime Coste
9134066e85
Try to switch to last buffer when removing the current one
2015-11-10 13:52:48 +00:00
Maxime Coste
53184829ee
Avoid unneeded inc/dec rec in RefPtr::operator=
2015-11-10 13:50:15 +00:00
Maxime Coste
6e08716899
Refactor Normal input mode on_key method
2015-11-09 21:30:07 +00:00
Maxime Coste
6ecccf4119
Regex based normal mode command honor the selected register
...
They default to the '/' register for the default regex, but can
use another if specified with "<reg>
2015-11-09 21:28:18 +00:00
Maxime Coste
9b8e2526f9
Merge search hihglighter and regex option highlighter in dynregex
2015-11-09 09:34:03 +00:00
Maxime Coste
62c981fe2d
Small tweak in DynamicRegexHighlighter
2015-11-09 08:50:17 +00:00
Maxime Coste
a2d78941ba
Catch expression evaluation errors in line/column highlighters
2015-11-09 08:42:40 +00:00
Maxime Coste
12abb54a88
Slightly more performant regex capture gathering in select_all_matches
2015-11-09 08:42:12 +00:00
Maxime Coste
6840f7ce9c
Store the last used buffer in clients
...
Fixes #474
2015-11-07 18:25:49 +00:00
Maxime Coste
6bb775241c
Optimize BufferIterator to avoid a lot of pointer chasing
2015-11-07 16:55:48 +00:00
Maxime Coste
04c8334c98
Avoid useless StringDataPtr copy
2015-11-07 16:55:20 +00:00
Maxime Coste
28d451b844
Support 'current' scope in set/unset command
2015-11-06 13:56:48 +00:00
Maxime Coste
65e67b0656
Remove unused _ss UDL
2015-11-06 13:37:51 +00:00
Maxime Coste
33253a8fd5
Support 'V' for locked view control
...
Fixes #343
2015-11-05 13:40:40 +00:00
Maxime Coste
05f7337eb0
Change ncurses wheel down default button to 5
2015-11-05 13:28:58 +00:00
Maxime Coste
48a296dc71
Avoid an unneeded call to ensure_char_start
2015-11-04 20:10:12 +00:00
Maxime Coste
d6a2d77857
Fix double check_invariant in SelectionList construction, and set main selection to last
2015-11-04 19:53:47 +00:00
Maxime Coste
2ce0a5a8a8
Merge https://github.com/alpha123/kakoune
2015-11-04 19:49:21 +00:00
Maxime Coste
1c831b41da
always_inline a few RefPtr operators
2015-11-04 19:47:26 +00:00
Maxime Coste
e82ca36117
Avoid unneeded sort_and_merge_ovelapping call in select_all_matches
2015-11-04 19:43:25 +00:00
Maxime Coste
719997f0ab
Do not tag BufferIterator as random access
...
Boost regex considers that random access means fast distance
computation, which is not the case for BufferIterator where
Buffer::distance is O(num lines between them) which can get
big on large files.
Fixes #462
2015-11-04 01:01:52 +00:00
Maxime Coste
6273aa9443
Rework Buffer::distance implementation
2015-11-04 01:01:52 +00:00
alpha123
97c92368bc
Build on FreeBSD
2015-11-03 11:51:27 -07:00
Maxime Coste
e8239feddf
Minor cleanup in normal.cc
2015-11-03 13:59:05 +00:00
sinetek
4b8c03afe6
Adding support for DragonFlyBSD.
2015-11-03 01:14:34 +07:00
Maxime Coste
c8d2417646
Support horizontal centering in view commands (using m)
...
Fixes #442
2015-11-02 19:51:59 +00:00
Maxime Coste
17eef4a7dc
Use explicit lambda captures
2015-11-02 13:44:03 +00:00
Maxime Coste
2bf44b6b49
Make word insert completion work better with unicode char
2015-10-30 13:57:46 +00:00
Maxime Coste
f556ef12c4
Fix preservation of entered text in option insert completer
2015-10-30 13:08:07 +00:00
Maxime Coste
34d7bdbc01
Minor code cleanup in insert_completer.cc
2015-10-30 13:07:48 +00:00
Maxime Coste
32b51e2cc3
Use ranked matches for option completion as well
2015-10-29 13:57:50 +00:00
Maxime Coste
8030897708
Merge branch 'master' into ranked-word-completion
2015-10-29 13:44:55 +00:00
Maxime Coste
24043bbffe
Use an heuristic based match ranking algorithm inspired by what YouCompleteMe does
2015-10-29 13:36:30 +00:00
Maxime Coste
4b7b04bf59
Fix mouse scrolling up stopping at line 2
...
Fixes #448
2015-10-28 00:01:25 +00:00
Maxime Coste
89d22f3335
Move more logic into RankedMatch
2015-10-27 21:25:18 +00:00
Maxime Coste
2eba789610
Merge branch 'master' into ranked-word-completion
2015-10-27 13:33:15 +00:00
Maxime Coste
40c6edf243
Document exclusive attribute
2015-10-23 13:49:02 +01:00
Maxime Coste
5118e13aee
Remove useless std::move
2015-10-23 13:46:55 +01:00
Maxime Coste
e7152bad56
Add an exclusive attribute that overrides existing face
2015-10-23 13:46:41 +01:00
Maxime Coste
1ba37bacd8
Fix optimized linkage
2015-10-23 09:49:06 +01:00
Maxime Coste
c77cb7c777
Extract WordDB::RankedWord as RankedMatch in its own file
2015-10-22 19:49:08 +01:00
Maxime Coste
da7fc3311f
Pass ShellContext to commands
...
Fix #427
2015-10-22 13:59:23 +01:00
Maxime Coste
e51ef6c3c2
Wrap the shell params en env vars in a ShellContext struct
2015-10-22 13:48:57 +01:00
Maxime Coste
7346220e38
Fix :set completion when -add switch is given
2015-10-22 13:29:34 +01:00
Maxime Coste
5938712d1f
Support :set -add on strings, using concatenation
2015-10-22 13:21:59 +01:00
Maxime Coste
019b3235b0
Remove legacy WordDB::find_matching method
2015-10-21 20:16:36 +01:00
Maxime Coste
2bf391f36d
Sort insert completer words by name favoring lower case and then stable sort by rank
2015-10-20 13:50:55 +01:00
Maxime Coste
9449f763e0
Fix removal of duplicated words in insert completion
2015-10-19 19:39:05 +01:00
Maxime Coste
73e438be07
Fix handling of explicit insert completers
2015-10-19 13:43:23 +01:00
Maxime Coste
364914afbd
Do not filter completions in InsertCompleter anymore
...
Just rerun the actual completers
2015-10-18 17:51:13 +01:00
Maxime Coste
4f2584a091
Experiment with ranked word completion depending on word boundaries
2015-10-18 16:55:21 +01:00
Maxime Coste
944d8f53fb
Fix OSX compilation
2015-10-18 12:45:27 +01:00
Maxime Coste
2cd0ce41ac
Do not try to extend last match when updating regex matches
...
It does not work well with regexes starting with a lookbehind, as
we would need to reparse from further away, leading to the last
match just being removed. It seems safer not to remove it, as
the motivating use case (multiline macros) is better left to
regions anyway.
Fixes #440
2015-10-18 11:37:04 +01:00
Maxime Coste
76fadd8108
More cleanups in the buffer open/reload code
2015-10-17 11:33:09 +01:00
Maxime Coste
fe704b9b84
Move line parsing and to Buffer.cc directly
2015-10-17 11:33:09 +01:00
Maxime Coste
3795ff735a
Refactor buffer creation and reloading to be more explicit
...
Reloading used to be implicit in the buffer creation function,
which is not always nice, as code that explicitely wanted to
reload a buffer could not say so.
2015-10-17 11:33:09 +01:00
Maxime Coste
776059a4c3
Fix double destruction of local ui
2015-10-14 13:21:27 +01:00
Maxime Coste
43fb216772
Remove unneeded constructor
2015-10-14 08:49:13 +01:00
Maxime Coste
572cf9d6b2
Fix file change detection not working in certain cases
...
Files opened from the command line where not handled correctly.
2015-10-13 19:31:24 +01:00
Maxime Coste
49557f5b17
Restore info box after a resize as well
...
Fixes #425
2015-10-13 13:58:39 +01:00
Maxime Coste
9f78f9bfd5
Try to restore menu after a resize
2015-10-13 13:52:02 +01:00
Maxime Coste
e5240ba4ff
Fix NCursesUI::m_items not being empty after a resize
...
Fixes #435
2015-10-13 13:40:04 +01:00
Maxime Coste
2d7e99da98
Tweak file change checking timeout handling
2015-10-10 14:18:43 +01:00
Maxime Coste
50f5140cbd
When displaying a prompt content with line break char, replace them with their unicode control picture
2015-10-09 13:55:55 +01:00
Maxime Coste
256e4d7862
NCursesUI: Remove color restoring support
2015-10-09 13:43:13 +01:00
Maxime Coste
a4447819e5
Fix OSX compilation
2015-10-09 13:41:28 +01:00
Maxime Coste
0d8b9c6677
Tweak handling of SIGINT
2015-10-08 20:23:32 +01:00
Maxime Coste
473196e18d
Store color/color pairs mapping in the ncurses ui instance
2015-10-08 20:23:32 +01:00
Maxime Coste
bd01171861
Auto fork server when suspending the local client
...
That way, other clients can still be serviced by the server.
2015-10-08 20:05:47 +01:00
Maxime Coste
7776c38755
Detect ungraceful exits, and backup modified buffers in these cases
2015-10-08 13:43:39 +01:00
Maxime Coste
3098cd12f8
Check for terminal resize on SIGCONT
...
Fixes #423
2015-10-08 13:24:58 +01:00
Maxime Coste
5e4443812c
Fix warning in ncurses_ui.cc
2015-10-06 21:15:13 +01:00
Maxime Coste
67646cd45a
Cleanup insert_completer code and use markup for option completion menu entry
2015-10-06 13:37:16 +01:00
Maxime Coste
c41a7eed09
Fix display of path insert completion for absolute paths
2015-10-05 23:30:20 +01:00
Maxime Coste
31cc61b6fc
Allow parsing empty strings as default color in face descs
2015-10-05 20:32:51 +01:00
Maxime Coste
db2fa6f5cb
Support markup in menu command
2015-10-05 13:51:13 +01:00
Maxime Coste
69b16d814b
Display word insert completion buffer name in a different color
2015-10-05 01:48:00 +01:00
Maxime Coste
c54e6738b9
Use DisplayLine for menu choices
2015-10-05 01:25:23 +01:00
Maxime Coste
38e9bf4f96
Fix OSX compilation
2015-10-03 11:21:35 +01:00
Maxime Coste
f7ba2a896c
Tweak ui_options docstring
2015-10-02 13:56:19 +01:00
Eike Plack
faa3b3b173
Add self documentation to ui_options
...
* For now the non ui code will hold this information. Ideally the UI would
be able to describe its options in some way.
2015-10-02 13:54:08 +01:00
Maxime Coste
a6cd764042
Add ncurses_enable_mouse ui option
2015-10-02 13:52:41 +01:00
Maxime Coste
bb96ad44b2
Refactor ShellManager process spawning
2015-10-02 13:37:06 +01:00
Maxime Coste
1cb4d2965f
Fix '*' word boundary detection at begin/end of buffer
2015-10-01 19:35:42 +01:00
Maxime Coste
77408becbd
Fix removing shared highlighters
2015-09-30 00:18:37 +01:00
Maxime Coste
6913d5427c
Try to fix OSX compilation
2015-09-27 18:48:01 +01:00
Maxime Coste
9fdb822c27
Add support for italic text attribute
2015-09-27 14:24:42 +01:00
Maxime Coste
e2720f1fbe
Store timespec for buffer fs timestamps, not just time_t
...
time_t has a resolution of one second, which cause troubles when
a file changes multiple time during that same second.
2015-09-27 11:55:34 +01:00
Maxime Coste
3262a6902c
Allow custom separator for line numbers
...
the number_lines highlighter accepts a -separator <arg> switch
to change the default '│' separator.
Fixes #295
2015-09-25 13:47:57 +01:00
Maxime Coste
4ea89def3b
Avoid (*it++) pattern in utf8.hh
2015-09-25 13:19:21 +01:00
Maxime Coste
48a7448b11
Merge remote-tracking branch 'freefull/master'
2015-09-24 23:01:20 +01:00
Filip Szczepański
47e6eed7c9
Add Haiku support.
2015-09-24 22:36:29 +00:00
Maxime Coste
aa4b98af7c
Add utf8::read_codepoint that both gets the codepoint and advance iterator
2015-09-24 23:00:47 +01:00
Maxime Coste
12ef466f3a
Avoid redundant calls to get_face in highlight_selections
2015-09-24 13:55:06 +01:00
Maxime Coste
e601bd5fe8
Minor additional cleanup in utf8.hh
2015-09-23 22:09:37 +01:00
Maxime Coste
ceafa5459a
Avoid unneeded iterator copies in utf8.hh
2015-09-23 19:48:15 +01:00
Maxime Coste
27571a7716
Refactor utf8::iterator to be on the safe side
...
utf8::iterator now knows the iterator valid range, and pass
it to utf8 functions.
2015-09-23 19:39:21 +01:00
Maxime Coste
b5972cd647
Tweak utf8::iterator::distance implementation, remove unused advance method
2015-09-23 19:30:47 +01:00
Maxime Coste
6ec693d598
Cleanup compute_needed_size implementation
2015-09-23 00:43:40 +01:00
Maxime Coste
eed3e5459d
Cleanup ncurses string writing code
2015-09-23 00:40:09 +01:00
Maxime Coste
3c000cbd0d
Error when trying to run an empty register as a macro
2015-09-22 19:01:24 +01:00
Maxime Coste
8529720aef
Fix some redrawing problems after resize
2015-09-21 22:12:23 +01:00
Maxime Coste
8b9452680a
Use different object filenames between debug/non-debug builds
2015-09-21 13:39:11 +01:00
Maxime Coste
459d0baf79
Tweak string unit tests
2015-09-20 17:18:43 +01:00
Maxime Coste
22f3881cad
Fix prompt history handling when pressing the down key
2015-09-20 17:02:37 +01:00
Maxime Coste
01152d7cd9
Improve escaping of % in command parsing
2015-09-20 11:48:11 +01:00
Maxime Coste
ca2043d9f2
Fix unescape implementation
2015-09-20 11:47:20 +01:00
Maxime Coste
2b4b73ae8e
Remove the default_face parameter of parse_display_line
...
No need to define a default face there, we will pass a default face
to UserInterface::draw_status later.
2015-09-20 11:34:13 +01:00
Maxime Coste
b3e0e27d1f
Do not allow '\n' in display lines, replace with a space
2015-09-20 11:23:10 +01:00
Maxime Coste
574e337132
Improve command completion by taking into account quoting of arguments
2015-09-20 11:19:10 +01:00
Maxime Coste
f59108072f
Initial support for user configurable modeline with the modelinefmt option
...
modelinefmt is first sent through a command line expander (so %sh{...},
%val{...} et al. are expanded), then through markup expand (so that
{face} are interpreted as well)
2015-09-19 12:43:39 +01:00
Maxime Coste
6bc5f8c3a3
Add simple markup support to generate display lines from strings
...
The syntax is simply {face} to enable the given face, use \{ to
escape a {, and \\ to escape a \.
2015-09-19 12:19:17 +01:00
Maxime Coste
db8c12fd2a
Be tolerant to modifiers in <c-x> bindings
...
<c-x><c-f> should be accepted, as it is cumbersome to unpress
control before hitting f in that case.
2015-09-19 11:55:55 +01:00
Maxime Coste
96b6b1b647
Tweak NCursesUI behaviour to reduce flickering on resize
2015-09-19 11:30:17 +01:00
Maxime Coste
d2c4d22d1f
Keep it simple, remove all that sorted id map thing
2015-09-18 13:52:32 +01:00
Maxime Coste
6a6b22d92c
Fix libstdc++ 4.8 compatibility
2015-09-17 20:03:58 +01:00
Maxime Coste
e7a8f64722
Use a sorted IdMap for aliases
2015-09-16 22:32:02 +01:00
Maxime Coste
bab95491c8
Keep sorted state when transmitting id maps
2015-09-16 22:29:19 +01:00
Maxime Coste
36828e6059
IdMaps can be sorted, in which case the find method uses a binary search
2015-09-16 22:22:51 +01:00
Maxime Coste
c859e8ab5f
Create directory with 0777 mode in make_directory
...
Fixes #408
2015-09-16 20:17:31 +01:00
Maxime Coste
693d9a4861
Store key hash in IdMap
2015-09-16 20:02:12 +01:00
Maxime Coste
afad50514b
Simpler IdMap::operator==
2015-09-16 19:25:12 +01:00
Maxime Coste
73c0fa175e
Use IdMap instead of UnorderedMap for ui options and env vars
2015-09-16 19:04:19 +01:00
Maxime Coste
85918d9f15
use getpwuid(geteuid())->pw_name rather than getlogin()
...
getlogin() can fail when stdin is not a tty on certain configuration
as it needs to find a controling terminal.
2015-09-15 13:32:26 +01:00
Maxime Coste
0338c0f437
Fix compilation with std regex
2015-09-15 13:28:36 +01:00
Maxime Coste
fd0567c730
Do not touch the first 16 colors in ncurses UI
2015-09-14 14:47:37 +01:00
Maxime Coste
a4804afa42
Restore redraw on <c-l> in ncurses ui
2015-09-14 14:30:01 +01:00
Maxime Coste
e0049bb587
Fix backward search searching from on char before the corret one.
...
Fixes #406
2015-09-14 14:28:45 +01:00
Maxime Coste
a2b4bf09fd
Fix color restoring
2015-09-12 10:54:55 +01:00
Maxime Coste
ad2aa35546
Fix ncurses info box avoiding dead menus
2015-09-12 10:51:46 +01:00
Maxime Coste
5173dad470
Add some missing memory domains
2015-09-12 10:51:16 +01:00
Maxime Coste
8aca7622bf
Restore keypad support in ncurses ui
2015-09-11 13:54:37 +01:00
Maxime Coste
2334a57970
Reduce allocation count in file.cc
2015-09-11 13:49:08 +01:00
Maxime Coste
afbe2f10d5
Slight refactor of NCursesUI ui_options handling
2015-09-11 13:20:37 +01:00
Maxime Coste
6ac1ae56fb
Small code style tweak in insert_completer.cc
2015-09-11 13:07:51 +01:00
Maxime Coste
6292d451cf
Small code cleanup in ncurses_ui.cc
2015-09-11 13:07:51 +01:00
Maxime Coste
5a5a78c608
Improve redraw behaviour on resize
2015-09-11 11:46:39 +01:00
Maxime Coste
34d0f63fd9
Use wgetch rather than getch to avoid unwanted redraws
2015-09-11 00:05:31 +01:00
Maxime Coste
80726a789b
Refactor NCursesUI implementation, use pads instead of windows
2015-09-10 23:39:19 +01:00
Maxime Coste
a685a928f7
Try to restore colors to hard coded xterm palette on ncurses quit
...
Fixes #327
2015-09-10 23:38:05 +01:00
Maxime Coste
182cc368a0
Tweak BufferManager::delete_buffer implementation
2015-09-08 13:10:22 +01:00
Maxime Coste
fede8da14b
Delete all existig window before resizing
2015-09-07 23:52:34 +01:00
Maxime Coste
29b508a894
Avoid wrapping lines with negative max width
2015-09-07 23:29:01 +01:00
Maxime Coste
53b65401f8
Small info box handling in cleanup in ncurses
2015-09-07 23:15:21 +01:00
Maxime Coste
30ad9a0475
Complete aliases in command prompt
2015-09-06 18:09:32 +01:00
Maxime Coste
a45876124b
Avoid restoring selections in regex_prompt when they cannot have been modified
2015-09-04 19:00:42 +01:00
Maxime Coste
ae720b90b1
Small code tweak in show_whitespaces highlighter
2015-09-04 13:47:16 +01:00
Maxime Coste
ededc84c8c
Remove some useless code in remote.cc
2015-09-03 23:17:57 +01:00
Maxime Coste
f81e5593db
Tweak headers in shell_manager.hh, no need for regex.hh
2015-09-03 13:54:21 +01:00
Maxime Coste
e69db0f671
Regex are overkill for shell manager env vars, we just need exact match or prefix match
2015-09-03 13:21:35 +01:00
Maxime Coste
ea7f76f7f2
Change ncurses title logic, use hard coded \033]2;<title>\007 sequence
...
And add a ncurses_set_title ui option defaulting to true.
2015-09-03 00:03:07 +01:00
Maxime Coste
995a094471
Fallback on /usr/share/kak if the relative runtime path does not exists
2015-09-02 22:28:41 +01:00
Maxime Coste
a7d93fa11e
std::accumulate is in <numeric> not <algorithm>
2015-09-02 21:15:16 +01:00
Maxime Coste
da5e662cf8
Add missing include
2015-09-02 20:59:45 +01:00
Maxime Coste
64a5948e1c
comparison ops for MatchAndBuffer should be const
2015-09-02 13:54:17 +01:00
Maxime Coste
455cca19db
Add support for a separate menu text in insert completions
...
Display buffer of origin in word completion menu
2015-09-02 13:43:07 +01:00
Maxime Coste
1295bc95cc
Fix clang compilation
2015-09-02 13:35:50 +01:00
Maxime Coste
adcd0a03b1
Fix forward declare struct/class mismatch
2015-09-02 13:34:18 +01:00
Maxime Coste
e9d7d70e47
Cache buffer display name
2015-09-01 20:49:47 +01:00
Maxime Coste
ae7dc3c576
Simplify runtime_directory
2015-09-01 13:51:57 +01:00
Maxime Coste
b512f3220f
Detect normal mode count overflow
2015-08-31 20:34:45 +01:00
Maxime Coste
c603d39a20
Merge remote-tracking branch 'elegios/master'
2015-08-31 00:02:59 +01:00
Maxime Coste
6071e636a2
Use a named struct for insert completion candidates
2015-08-30 23:02:20 +01:00
Maxime Coste
f666cd9c69
Merge remote-tracking branch 'Maroniemann/master'
2015-08-30 15:48:45 +01:00
Clemens Stadlbauer
3db95ce50c
Prevented incorrect softlink from being created
...
If the "autoload" directory softlink has already been created,
"make install" would place a recursive softlink inside it on the
next install, which made future installs fail.
2015-08-30 13:30:15 +02:00
Maxime Coste
64c21b93a5
Additional code tweak in command_manager.cc
2015-08-29 21:39:23 +01:00
Maxime Coste
ac78cfa11c
Add missing std::move, avoid a needless string copy
2015-08-28 13:54:12 +01:00
Maxime Coste
1249df9c76
Avoid using an UnorderedMap for 4 elements...
2015-08-27 21:36:49 +01:00
Maxime Coste
36b82c42e5
Refactor command parsing, maintain coordinates while reading the string
2015-08-27 21:32:04 +01:00
Maxime Coste
b529288176
Small code cleanup in command_manager.cc
2015-08-27 13:57:56 +01:00
Maxime Coste
04536657d1
Add a kill command that kills the current session
...
Fixes #331
A given session can be killed with 'echo kill | kak -p <session>'
2015-08-26 19:34:19 +01:00
Maxime Coste
0c41c14187
Reorganize slightly local client creation
2015-08-26 19:33:52 +01:00
Viktor Palmkvist
b53d9e282e
Fix segfault in edge case when jumping backwards in jumplist
...
Closes #380
2015-08-26 11:54:51 +02:00
Viktor Palmkvist
1bdaf0675d
Argument text object no longer handles <>
2015-08-25 15:56:49 +02:00
Maxime Coste
0755366cb1
Rework resize handling
...
Fixes #383
2015-08-23 15:18:18 +01:00
Maxime Coste
a2e90c2c25
Add support for listing existing sessions with kak -l
...
Fixes #381
2015-08-23 14:22:23 +01:00
Maxime Coste
71e362e2f9
Move session socket to /tmp/kakoune/<user name>/<session>
2015-08-23 14:13:46 +01:00
Maxime Coste
ae839fc471
Remove Client::window() method, use a force_redraw() one
...
We cannot assume Client::m_window is always non-null, as when
changing current buffer its temporarily null, at the point
where WinCreate hook might get called.
Fixes #382
2015-08-23 13:29:24 +01:00
Maxime Coste
dc504284c3
Change flag lines highlighter to use faces instead of colors
...
Fixes #130
2015-08-23 12:13:14 +01:00
Maxime Coste
504862fce7
Avoid double session closing
2015-08-22 11:27:48 +01:00
Maxime Coste
47ab4038ec
Format session socket name in place into the sockaddr_un
2015-08-22 11:27:04 +01:00
Maxime Coste
564ab7d942
Merge remote-tracking branch 'zakgreant/reference-sheet-scripts'
2015-08-20 20:13:48 +01:00
Maxime Coste
689494fb2f
Fix reentrency in Normal::handle_key
2015-08-20 19:16:14 +01:00
Maxime Coste
3834a967f8
No reason for NestedBool operator bool to be explicit
2015-08-19 21:20:34 +01:00
Maxime Coste
8af3b52bfa
Add alternative names to ^ (caret) and @ (arobase) registers
2015-08-19 21:20:01 +01:00
Maxime Coste
7ee027b125
Use the "<reg> syntax along with a default register for marks and macros
...
Marks use the '^' register by default, macros the '@' register.
2015-08-19 13:58:37 +01:00
Maxime Coste
baf0203b9d
Default register is not handled by the Normal input mode.
...
Normal input mode will just pass 0 as the reg if it was not specified
by the user, its yank/paste functions that should determine 0 means
use '"' register.
2015-08-19 13:41:16 +01:00
Maxime Coste
3f493fa186
Rename Disableable to more general NestedBool
...
A NestedBool can be set multiple times, and will be considered false
only when unset the same number.
2015-08-18 23:17:56 +01:00
Maxime Coste
a33c8d9677
Smaller sizeof for in place strings
2015-08-18 21:06:53 +01:00
Maxime Coste
386f41e1c5
Be more explicit about paramater parsing error
2015-08-18 00:28:04 +01:00
Maxime Coste
f2580a366d
Cleanup key to codepoint conversion
...
Fixes #378
Fixes #365
2015-08-18 00:19:14 +01:00
Maxime Coste
043ca99983
Cleanup mouse handling a little
2015-08-16 14:06:07 +01:00
Zak Greant
dc2d12a124
Fixing minor typo
...
s/prevous/previous/
2015-08-15 16:46:57 +02:00
Maxime Coste
97b871d49e
Tweak notify_fatal_error message box title, might not be an assert failed
2015-08-14 13:16:06 +01:00
Maxime Coste
92d3178305
Clamp m_anchor in mouse handler, nothing garantees that it is still valid
...
Fixes #350
2015-08-14 13:12:44 +01:00
Maxime Coste
d2b82f507f
More performant escape/unescape
2015-08-13 22:04:21 +01:00
Maxime Coste
7a36a4644e
Detect face being aliased to itself
...
Fixes #374
2015-08-12 21:49:29 +01:00
Maxime Coste
d2762e6a1a
Try to fix compilation on travis
2015-08-12 19:16:52 +01:00
Maxime Coste
7086135fa6
Display auto info on register insertion/explicit insert completion
2015-08-11 20:36:07 +01:00
Maxime Coste
8d9c402f52
Handle registers insert/explicit completion with a nested on_next_key mode
2015-08-11 13:55:56 +01:00
Maxime Coste
d7744308f6
Ensure the command exist before adding an alias
...
Fixes #371
2015-08-11 13:37:38 +01:00
Maxime Coste
94ec1cdde7
Add an unset command to remove an option value (falling back to parent)
...
unset is not applicable to global scope.
2015-08-10 13:54:52 +01:00
Maxime Coste
10d8cf64cf
Move option docstring obtention to OptionRegistry
2015-08-10 13:53:30 +01:00
Maxime Coste
bfb116b8b4
Move option name completion to the OptionRegistry
...
Option names are the same for every option manager.
2015-08-10 13:38:06 +01:00
Maxime Coste
2eced81753
clamp coordinates find_buffer_coord
2015-08-09 23:18:26 +01:00
Maxime Coste
9d50dd3886
Use a struct rather than a std::pair for InputHandler::Insertion
2015-08-08 22:46:11 +01:00
Maxime Coste
7a59a6d758
ensure a buffer is not referenced a second time, just before actually deleting it
...
It can happen in certain case that a buffer gets referenced after it
gets moved to the trash, for example when it gets deleted during its
construction (due to BufCreate hook for example).
2015-08-06 21:51:44 +01:00
Maxime Coste
e7b4217762
Support flags getting modified by hooks at buffer creation
...
Fixes #361
2015-08-04 23:02:40 +01:00
Maxime Coste
d19df5d5de
Enable more invariant checking in selection lists
2015-08-03 11:23:40 +01:00
Maxime Coste
19c52c3d61
Fix command parsing bug
...
Fixes #347
2015-07-30 09:41:23 +01:00
Maxime Coste
3da9458b5e
Merge remote-tracking branch 'lenormf/autoinfo_number'
2015-07-29 10:44:39 +01:00
Frank LENORMAND
b7e232d230
Add the 'n' flag to the autoinfo popup window
2015-07-29 10:20:11 +03:00
Maxime Coste
12e0f46e25
Use forward declaration instead of include in commands.hh
2015-07-28 20:18:18 +01:00
Maxime Coste
6b06d77490
Small formatting fix
2015-07-27 20:43:18 +01:00
Maxime Coste
1170277e91
Always inline Allocator::construct/destroy
2015-06-26 21:32:37 +01:00
Maxime Coste
1af82e2e24
Tweak regex constructor calls
2015-07-25 11:15:03 +01:00
Maxime Coste
6bed464105
Avoid appending chars one by one in some parsing functions in CommandManager
2015-07-25 08:56:27 +01:00
TSUYUSATO Kitsune
4a20882a8d
CPPFLAGS should use to specify flags for C pre-processor
2015-07-25 10:20:33 +09:00
Maxime Coste
6f337b254d
Fix warning
2015-07-24 13:57:44 +01:00
Maxime Coste
ea02467564
Disable notifications when disabling an option temporarly
2015-07-23 23:42:48 +01:00
Maxime Coste
58101645ab
Rewrite select_lines and trim_partial_lines
...
Fixes #338 for real (I hope)
2015-07-23 21:03:38 +01:00
Maxime Coste
2946504a17
Improve column highlighter to cooperate better with other highlighters
...
Fixes #268
2015-07-23 13:58:23 +01:00
Maxime Coste
889bc98866
fix crash in trim_partial_lines
...
Fixes #338
2015-07-23 13:46:20 +01:00
Maxime Coste
36ffff96be
Avoid copying selection before the first line
2015-07-22 23:24:20 +01:00