Fabian Homborg
8b1ac0912b
Add reader flog category
...
For both input and reader, because the "reader" term is more general
and we don't have enough messages to justify multiple categories
2020-01-19 14:55:08 +01:00
Rosen Penev
06cb0bbe9a
[clang-tidy] Add several references
...
Found with performance-unnecessary-value-param
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-12-26 21:55:53 -08:00
Fabian Homborg
e986970f4d
Remove vi_arg_digit and vi_delete_to
...
They don't do anything anymore.
2019-12-25 10:44:27 +01:00
ridiculousfish
c19407ab0f
Default parser_t::eval()'s block type to top
...
This is the parameter value at every call site except one. Just make it the
default.
2019-12-22 16:27:03 -08:00
ridiculousfish
a59f35a378
Make block_type_t an enum class
2019-12-22 15:37:14 -08:00
Rosen Penev
586ac3dfa7
[clang-tidy] Convert loops to range based
...
Found with modernize-loop-convert
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-25 14:50:40 -08:00
Rosen Penev
1055ff321c
[clang-tidy] Replace NULL with nullptr
...
Found with modernize-use-nullptr
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-25 14:23:03 -08:00
Rosen Penev
7f62e30731
[clang-tidy] Replace size comparisons with empty
...
Found with readability-container-size-empty
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-25 14:13:33 -08:00
Jason
3cf6ebc0e1
Amend typos and grammar errors
2019-11-25 13:07:15 +01:00
ridiculousfish
82eca4bc86
Run clang-format on all files
...
The main change here is to reorder headers.
2019-10-13 15:50:48 -07:00
domdom
76f4b65981
Add prefix history search
2019-10-05 11:27:32 -07:00
ridiculousfish
18b56637f7
self-insert bindings to insert their own sequence
...
Prior to this fix, self-insert would always wait for a new character.
Track in char_event what sequence generated the readline event, and then
if the sequence is not empty, insert that sequence.
This will support implementing the space binding via pure readline
functions.
2019-09-21 15:58:57 -07:00
ridiculousfish
3f7bc7232e
yank_POP -> yank_pop
2019-09-21 14:31:22 -07:00
Aaron Gyes
22811ebcf6
Remove unused macros
...
Most just left behind after actual code was moved into different files.
2019-09-18 01:31:03 -07:00
ridiculousfish
533ee65963
Allow binding nul (zero byte)
...
This sequence can be generatd by control-spacebar. Allow it to be bound
properly.
To do this we must be sure that we never round-trip the key sequence
through a C string.
2019-09-14 16:37:57 -07:00
ridiculousfish
5afcc439a5
Clean up input_terminfo_get_sequence
2019-09-14 14:59:01 -07:00
Fabian Homborg
d415350aaf
reader: Add delete-or-exit bind function
...
This is an important binding and should therefore be in C++.
2019-06-25 19:57:00 +02:00
ridiculousfish
5b5887ea99
Correct capitalization of complete_and_search
2019-06-16 14:38:27 -07:00
ridiculousfish
ff55249447
Make events per-parser
...
This makes the following changes:
1. Events in background threads are executed in those threads, instead of
being silently dropped
2. Blocked events are now per-parser instead of global
3. Events are posted in builtin_set instead of within the environment stack
The last one means that we no longer support event handlers for implicit
sets like (example) argv. Instead only the `set` builtin (and also `cd`)
post variable-change events.
Events from universal variable changes are still not fully rationalized.
2019-06-03 02:48:35 -07:00
ridiculousfish
890c1188ab
Instantize and rationalize locking around the input mapping set
...
Hypothetically a background thread could invoke builtin_bind, etc.
Protect the set of input bindings with a lock.
2019-06-02 22:54:01 -07:00
ridiculousfish
ad35fb7457
Make the bind mode per-parser
...
Eliminates a use of principal_parser
2019-06-02 16:57:52 -07:00
ridiculousfish
671df14178
Thread a parser into inputter_t
2019-06-02 16:41:13 -07:00
ridiculousfish
a48dbf23b8
Instantize the character event queue
...
Wrap this stuff up in structs so it's no longer global.
2019-06-02 16:37:05 -07:00
Fabian Homborg
39099ceb10
Remove R_BEGIN_INPUT_FUNCTIONS
...
The enum starts at 0 (defined to be!), so we can eliminate this one.
That allows us to remove a reliance on the position of
beginning_of_line, and it would trigger a "type-limits" warning.
Also leave a comment because I actually hit that.
2019-05-29 20:50:35 +02:00
ridiculousfish
b405b979ec
Eliminate the CHECK() macro
...
This thing was pretty useless.
2019-05-27 17:24:19 -07:00
ridiculousfish
1719d6f136
Make $status and $pipestatus per-parser
...
Another step towards allowing multiple parsers to execute in parallel.
2019-05-12 14:00:44 -07:00
Fabian Homborg
c2970f9618
Reformat all files
...
This runs build_tools/style.fish, which runs clang-format on C++, fish_indent on fish and (new) black on python.
If anything is wrong with the formatting, we should fix the tools, but automated formatting is worth it.
2019-05-05 12:09:25 +02:00
ridiculousfish
9018a7d5ee
Rename input_initialized to s_input_initialized and make it relaxed atomic
2019-05-04 20:58:35 -07:00
ridiculousfish
9fb98baba6
Thread the parser into process_clean_after_marking
2019-05-04 20:58:35 -07:00
ridiculousfish
56fd6f696b
Improve thread safety in input.cpp
2019-05-04 20:58:35 -07:00
Fabian Homborg
8ff866b26b
Add repaint-mode bind function
...
If we switch the bind mode, we add a "force-repaint" there just to
redraw the mode indicator.
That's quite wasteful and annoying, considering that sometimes the prompt can take
half a second.
So we add a "repaint-mode" function that just reexecutes the
mode-prompt and uses the cached values for the others.
Fixes #5783 .
2019-04-01 15:59:39 +02:00
Fabian Homborg
0d72912641
Expand abbr explicitly ( #5762 )
...
* Add "expand-abbr" bind function
This can be used to explictly allow expanding abbreviations.
* Make expanding abbr explicit
NOTE: This accepts them for space only, we currently also do it for \n
and \r.
* Remove now dead code
We no longer trigger an abbr implicitly, so we can remove the code
that does it.
* Fix comment
[ci skip]
2019-04-01 15:59:15 +02:00
ridiculousfish
e7d7eff0ee
Rename all readline commands to lowercase and remove R_ prefix
2019-03-23 23:31:35 -07:00
ridiculousfish
2c56e27d37
Switch readline commands to readline_cmd_t enum class
2019-03-23 23:31:25 -07:00
ridiculousfish
b68d3b84de
Switch input_function_get_code() to return maybe_t
2019-03-23 23:31:22 -07:00
ridiculousfish
c2be5e8986
Introduce char_event_type_t::readline
...
Baby steps towards eliminating readline actions as characters.
2019-03-23 23:31:18 -07:00
ridiculousfish
14663089c8
Finish removing R_NULL
2019-03-23 23:31:09 -07:00
ridiculousfish
28b79a2c88
Some further steps towards removing R_NULL
...
Introduce char_event_type_t::check_exit to represent "check for exit"
instead of R_NULL.
2019-03-23 23:31:01 -07:00
ridiculousfish
70a92a9710
Switch interrupt_handler to return maybe_t<char_event_t>
...
Prepares to remove R_NULL
2019-03-23 23:13:19 -07:00
ridiculousfish
46dfad52d9
Switch the input interrupt function to return maybe_t
...
Allow returning none() to mean do nothing.
2019-03-23 23:12:12 -07:00
ridiculousfish
1e5c1c82c7
Rename and simplify input_read_characters_eof_only
...
Clarify its role.
2019-03-23 23:11:45 -07:00
ridiculousfish
00f24695fe
Remove R_EOF
...
Promote R_EOF to a new char_event_type_t instead of keeping it as a char
value.
2019-03-23 23:11:23 -07:00
ridiculousfish
185805641c
Remove R_TIMEOUT
...
Promote timeout to a char_event_type_t, moving it out of the "char" namespace.
This will help simplify the readline implementation.
2019-03-23 20:10:06 -07:00
Aaron Gyes
477b2e8d7c
std::vector<wcstring> is wcstring_list_t
2019-03-14 11:17:26 -07:00
Fabian Homborg
5a9d153363
input: Use range-for
...
Also adds a couple of consts.
2019-03-13 12:39:08 +01:00
Aaron Gyes
d5ac239f68
This commit changes wchar.h includes to cwchar, and uses std::
...
for everything it provides.
2019-03-12 15:09:36 -07:00
ridiculousfish
ecf51b575e
Clean up input initialization and destruction
2019-03-03 12:59:55 -08:00
ridiculousfish
1a4bb50cd5
Combine status and pipestatus into statuses_t
...
In most places where we set one, we want to set both. Make this less
error-prone by combining them into a single type statuses_t.
2019-02-26 20:07:37 -08:00
ridiculousfish
2c3214cabd
Make $pipestatus thread safe and other misc cleanup
2019-02-24 23:29:33 -08:00
zabereer
2c8abdf5cb
add $pipestatus
support
2019-02-24 21:46:52 -08:00