ridiculousfish
0e9d159bc2
Improvements to error reporting. In particular, we now append a newline
...
in reader_shell_test, so that there's always a statement terminator.
Otherwise commands like 'echo |' would not be considered an error (just
incomplete).
2014-01-08 18:20:55 -08:00
ridiculousfish
993148552e
Support for Ctrl-C cancellation in new parser. Added tests for it too.
2014-01-02 16:19:33 -08:00
Julian Aron Prenner
2587649ca2
Allow restricting earsing and listing of bindings to specific mode;
...
implement force repaint and multi-char bindings;
2013-12-31 14:53:29 +01:00
ridiculousfish
a9787b769f
Support for implicit cd, no-exec, and the exit builtin. All tests now
...
pass (!). Error reporting still unsteady.
2013-12-29 16:23:26 -08:00
ridiculousfish
715823a666
Bringup of function definitions, switch statements with new parser
2013-12-27 03:58:42 -08:00
ridiculousfish
6536ffe178
Facilities for turning on new AST-based parser.
2013-12-26 13:24:10 -08:00
ridiculousfish
ed70195c7e
Merge branch 'master' into ast
...
Conflicts:
function.cpp
parser.cpp
parser.h
2013-12-20 17:44:37 -08:00
ridiculousfish
e38217683c
Refactor block_t storage in parser_t from a linked list to a vector
2013-12-20 17:41:21 -08:00
ridiculousfish
3e9153d955
Clean up some error messages. Don't show the line in the error message
...
if it's the first line and we're interactive, since then it's obvious
2013-12-16 16:52:23 -08:00
ridiculousfish
5b24aac266
Initial work on backtrace support with new parser
2013-12-15 16:05:37 -08:00
ridiculousfish
5cf59de676
Finish rewriting detect_errors to use new parser. All tests now pass (!)
2013-12-12 18:18:07 -08:00
ridiculousfish
925fe65dd8
Remove the indentation part of parser_t::test(). Rename it to
...
detect_errors().
2013-12-08 16:25:07 -08:00
ridiculousfish
dd0cc5ed9f
Rewriting indenting functionality to use new parser
2013-12-08 13:41:12 -08:00
ridiculousfish
a23441109d
Merge branch 'master' into ast
...
Conflicts:
complete.cpp
fish_tests.cpp
highlight.cpp
2013-12-07 12:54:43 -08:00
ridiculousfish
263f919beb
Replace autosuggestions "completions to load" mechanism with moderately
...
less hackish and far simpler "perform on main thread" mechanism
2013-11-29 23:44:26 -08:00
ridiculousfish
964c7e6f3b
Merge branch 'master' into ast
...
Conflicts:
complete.cpp
2013-10-27 13:37:14 -07:00
ridiculousfish
cf766b55cc
Fix formatting
2013-10-26 15:27:39 -07:00
ridiculousfish
e05743d0ba
Fix for errant SIGHUPs due to child fish shells messing with the term.
...
Fixes https://github.com/fish-shell/fish-shell/issues/1002
2013-10-26 15:22:20 -07:00
ridiculousfish
ddf98661e4
Adopt new parser in tab completions
2013-10-12 18:17:03 -07:00
ridiculousfish
5490f54d00
Make parse_t::parse a static method so we don't have to create lots of
...
useless parse_t objects
2013-10-12 01:17:55 -07:00
ridiculousfish
7b86b2e05a
Adoption of new parser in abbreviations
2013-10-09 02:03:50 -07:00
ridiculousfish
cbe615224d
Make tok_last_type return an enum token_type instead of int
2013-09-30 13:57:36 -07:00
ridiculousfish
7ce5f34d6f
Disable flow control per #814
2013-09-22 18:14:18 -07:00
ridiculousfish
97ea61a407
Fix for parse_util_token_extent doing the wrong thing inside a command
...
substitution. Fixes https://github.com/fish-shell/fish-shell/issues/833
2013-09-21 16:38:57 -07:00
ridiculousfish
44bd405ed3
reader_replace_current_token can be made static
2013-09-21 16:27:37 -07:00
ridiculousfish
61c5b631f3
Fix for infinite loop in cycle_competions, and potential issue in
...
fish_pager when given an empty completion list
2013-09-10 21:13:47 -07:00
ridiculousfish
b993dce12f
Rework some of the new case-modifying commands to share more code, and
...
also to update the autosuggestion and syntax highlighting
2013-09-10 20:46:46 -07:00
Christian Rishøj
cd1c2f74d3
add support for downcase-word, upcase-word and capitalise-word
2013-09-09 18:46:16 +02:00
Leonardo Boiko
1b1aa07414
When exiting, only warn about _stopped_ background jobs ( fix #111 )
2013-09-08 22:51:34 +08:00
ridiculousfish
c38a40d193
Adjust prefix completions to sort alphabetically instead of by length.
...
Other completions are still sorted by length.
https://github.com/fish-shell/fish-shell/issues/923
2013-08-31 15:01:02 -07:00
Konrad Borowski
da89591a53
Initialize cycle_cursor_pos.
...
This removes the warning from compiler.
2013-08-29 13:06:04 +02:00
ridiculousfish
06b4964dd8
Clean up some comments and make a function static
2013-08-26 00:05:23 -07:00
Tony Wang
d2ffdc8986
improve comments and extract a common function
2013-08-25 19:33:39 -07:00
Tony Wang
7e1a3148fb
fixed fish-shell/fish-shell#944
...
When the completion list includes the exact typed string with other
candidates, i.e. completion_t.match.type == fuzzy_match_exact,
the other candidates will be removed from the list, as they are not
the "best type". This is inconvenient for the user who wants to
type and complete commands in the other candidates.
The commit is to make the best_type to fuzzy_match_prefix as highest
priority, also, when comparing to best_type, the same or higher
priority completions can both match.
2013-08-25 19:33:39 -07:00
ridiculousfish
b6f495d107
Expand abbreviations at the beginning of commands as discussed in https://github.com/fish-shell/fish-shell/issues/731
2013-08-24 11:47:37 -07:00
ridiculousfish
d6791a836b
Include the autosuggestion in history if it was truncated
...
https://github.com/fish-shell/fish-shell/issues/650
2013-08-20 20:08:56 -07:00
ridiculousfish
4899086b3c
Big fat refactoring of how redirections work. In fish 1.x and 2.0.0, the redirections for a process were flattened into a big list associated with the job, so there was no way to tell which redirections applied to each process. Each process therefore got all the redirections associated with the job. See https://github.com/fish-shell/fish-shell/issues/877 for how this could manifest.
...
With this change, jobs only track their block-level redirections. Process level redirections are correctly associated with the process, and at exec time we stitch them together (block, pipe, and process redirects).
This fixes the weird issues where redirects bleed across pipelines (like #877 ), and also allows us to play with the order in which redirections are applied, since the final list is constructed right before it's needed. This lets us put pipes after block level redirections but before process level redirections, so that a 2>&1-type redirection gets picked up after the pipe, i.e. it should fix https://github.com/fish-shell/fish-shell/issues/110
This is a significant change. The tests all pass. Cross your fingers.
2013-08-19 18:06:24 -07:00
Konrad Borowski
d407d680ea
Show path containing current disk drive in Windows in title
2013-08-14 12:21:17 +03:00
waterhouse
e3ea953ff4
Ctrl+E should insert suggested completion and then go to end of line
...
(Closes #91 , #932 )
Currently, control-E is bound to `end-of-line`.
This patch modifes the `end-of-line` procedure so that, if it is invoked when
the cursor is at the end of a command and there is pending completion text,
it will accept the completion text and move to the end. The behavior of
`end-of-line` will not otherwise be altered.
2013-07-27 18:00:02 +08:00
ridiculousfish
f9c2a77c67
Next stab at abbreviations. Highlighting should work.
2013-07-19 12:41:35 -07:00
ridiculousfish
92099c7af2
Initial abbreviation work. Tests currently fail.
2013-07-19 12:41:34 -07:00
ridiculousfish
464187491f
Formatting
2013-06-02 01:14:26 -07:00
ridiculousfish
fd15d30987
Add some const, fix spaces
2013-06-02 01:14:05 -07:00
Christian Rishøj
03e36bda72
make cursor placement consistent with transpose-words
from readline
2013-06-02 00:59:22 -07:00
Christian Rishøj
a259c37415
transpose-words
2013-06-02 00:59:22 -07:00
ridiculousfish
908b07527e
Support for fuzzy completions
...
https://github.com/fish-shell/fish-shell/issues/568
https://github.com/fish-shell/fish-shell/issues/528
2013-05-25 15:41:18 -07:00
ridiculousfish
ee95a7309a
Fix issue where transpose fails if there is a trailing autosuggestion
2013-05-24 23:56:12 -07:00
Christian Rishøj
f32dfe2da6
command and binding for transpose-chars
2013-05-24 23:56:12 -07:00
ridiculousfish
924b646b79
Fix for crashing and assertion failures when tab completing a token that consists of only backslash
...
Fixes https://github.com/fish-shell/fish-shell/issues/762
2013-05-20 01:40:24 -07:00
ridiculousfish
f8786c25be
Fix for failing to update command line while cycling through tab completions
...
https://github.com/fish-shell/fish-shell/issues/765
2013-05-20 00:31:47 -07:00
ridiculousfish
2da81b0ae7
Formatting and style updates
2013-05-05 02:33:17 -07:00
ridiculousfish
fe6699f0bf
Rely on $PWD instead of getcwd() more often
...
Fixes https://github.com/fish-shell/fish-shell/issues/696
2013-04-27 00:45:38 -07:00
ridiculousfish
b8f34cdd35
Teach case-insensitive completions about tildes. Fixes https://github.com/fish-shell/fish-shell/issues/647
2013-04-07 23:54:43 -07:00
ridiculousfish
c6302e3b3f
Add some more cancellability to autosuggestions
2013-04-07 16:40:14 -07:00
ridiculousfish
42497d9932
Fix for issue where a file may be incompletely read on receipt of a signal.
2013-04-07 14:52:16 -07:00
ridiculousfish
437b4397b9
Mark stdin as nonblocking if we get EWOULDBLOCK, and before handing it off to child processes when either starting them or moving them to the foreground.
...
https://github.com/fish-shell/fish-shell/issues/176
2013-04-07 12:40:08 -07:00
ridiculousfish
516e18900c
Repaint after completions
...
Fixes #643 , #644
2013-04-04 11:51:23 -07:00
ridiculousfish
1543d02f96
Add callbacks that get invoked before the next call to select(), which will allow for a nice fix to https://github.com/fish-shell/fish-shell/issues/608 . Eliminate the poll handler, and replace it with this mechanism.
2013-04-03 13:49:58 -07:00
ridiculousfish
e0e0bcdc1e
Update code formatting
2013-03-21 17:44:51 -07:00
ridiculousfish
3b00d06a62
Return key should only insert a newline if backslashed character is whitespace, or backslash terminates the line
...
https://github.com/fish-shell/fish-shell/issues/613
2013-03-12 13:00:37 -07:00
ridiculousfish
b48e504522
Spelling mistake in comment
2013-03-11 10:55:47 -07:00
ridiculousfish
4cce303c89
Add support for making a leading space not save to history
...
https://github.com/fish-shell/fish-shell/pull/615
2013-03-10 14:25:43 -07:00
ridiculousfish
4d19bb17a9
Break out COMPLETE_NO_CASE and COMPLETE_REPLACES_TOKEN into separate flags, in preparation for upcoming fuzzy completion work
2013-03-05 20:54:16 -08:00
David Adam (zanchey)
daf5ef1bbd
Kill termio.h and sys/termios.h
...
On FreeBSD, compilation complains that "this file includes
<sys/termios.h> which is deprecated, use <termios.h> instead". On Linux
and FreeBSD, <sys/termios.h> literally just pulls in <termios.h>. On OS
X and Solaris, <termios.h> pulls in <sys/termios.h>.
<termio.h> doesn't exist on FreeBSD or Mac OS X, and on Linux is marked
as deprecated and just includes <termios.h>. It does exist on Solaris,
but no `struct termio` is ever actually used in the codebase.
2013-03-05 12:25:00 -08:00
ridiculousfish
94b1d58cc2
Additional changes related to https://github.com/fish-shell/fish-shell/pull/592
2013-02-28 10:25:32 -08:00
ridiculousfish
7b873179ad
Use swap instead of copying in reader_repaint_without_autosuggestion
2013-02-20 18:18:08 -08:00
Yannis Chatzimichos
f1d923714a
Clear the autosuggestion from the old commandline when showing the completion list. Fixes #561
2013-02-20 18:07:38 -08:00
Yannis Chatzimichos
b9ba227733
Clean up comments and fix spelling errors
2013-02-20 18:07:38 -08:00
ridiculousfish
aaa0c25ff7
Large set of changes to how PATH is handled. Changed fish to no longer modify PATH in share/config.fish. Introduced variable fish_user_paths, and a glue function __fish_reconstruct_path that splices together PATH with fish_user_paths. Changed fish to no longer validate changes to PATH unless the paths are new (i.e. don't recheck what's already there). Modified certain sets to store const wchar_t instead of wcstring to save a few allocations.
...
https://github.com/fish-shell/fish-shell/issues/527
2013-02-19 18:05:20 -08:00
ridiculousfish
911c37e63e
Fix for issue where backward kill line crashes if performed while the cursor is on a newline
...
https://github.com/fish-shell/fish-shell/pull/580
2013-02-17 14:22:27 -08:00
ridiculousfish
4416753df0
More cleanup based on static analysis
...
https://github.com/fish-shell/fish-shell/issues/575
2013-02-16 02:38:13 -08:00
ridiculousfish
8d95d0834d
First stab at builtin set_color. Moved set_color.cpp to builtin_set_color.cpp and taught fish about it.
2013-02-14 15:52:24 -08:00
ridiculousfish
b119b4f1da
Fix to look up fish_pager in __fish_bin_dir instead of by using PATH, in preparation for making fish no longer need to modify PATH
2013-02-13 13:22:29 -08:00
ridiculousfish
2a7fc9c3a5
Clean up env_var_table_t. Switch from storing var_uni_entry_t* to var_uni_entry_t. Various other cleanups.
2013-02-11 23:16:50 -08:00
Cheer Xiao
3f9706a7f3
Make io_data_t::fd const
...
In exec(), pipe_{write,read} no longer get reused.
2013-02-11 22:05:47 -08:00
Jan Kanis
51a955c75c
remove __warn_unused attribute from exec_subshell
2013-02-06 01:11:46 +01:00
Jan Kanis
9a89da3b33
merge branch 'bug-537' and branch 'bug-read-ctrlC'. This should fix both #537 and #516
2013-02-05 23:16:18 +01:00
Jan Kanis
3f5c02bf92
rename reader_cancel_thread to reader_thread_job_is_stale, update comments
2013-02-05 21:28:23 +01:00
ridiculousfish
e918851902
Formatting
2013-02-03 11:38:22 -08:00
ridiculousfish
ded81ec186
Teach fish how to put completion data inside a closing quote
...
Fixes https://github.com/fish-shell/fish-shell/issues/552
2013-02-02 14:50:22 -08:00
ridiculousfish
ad8d68dd43
Make subcommands modify $status, and make builtin_set not modify status unless it fails
...
https://github.com/fish-shell/fish-shell/issues/547
https://github.com/fish-shell/fish-shell/issues/214
2013-01-31 15:57:08 -08:00
ridiculousfish
1879dc4b59
Initial set of changes working to make fish robust against running out of file descriptors
2013-01-30 02:22:38 -08:00
ridiculousfish
4683ce2771
Fix unused return value warning a different way
2013-01-27 14:04:44 -08:00
ridiculousfish
798537d47b
Fixed an unused variable warning
2013-01-27 13:50:30 -08:00
ridiculousfish
0257b02a8c
Fix to output the prompt even if fish_prompt fails
2013-01-27 13:44:32 -08:00
ridiculousfish
92b2376c23
Indent switch + case properly. https://github.com/fish-shell/fish-shell/issues/530
2013-01-24 14:59:52 -08:00
Jan Kanis
29fda9cb6c
make the casting magic standards compliant and avoid compiler warnings; add error check
2013-01-24 15:09:45 +01:00
Jan Kanis
e7b3f5745c
replace compiler-supported TLS with pthread_get/setspecific; remove GPLv3 code from two commits ago
2013-01-24 14:29:13 +01:00
Jan Kanis
d12b1650aa
make threadlocal use conditional on configure check. NB: This revision mixes GPLv2-only and GPLv3+ code so should be considered proof of concept.
2013-01-23 01:03:12 +01:00
Jan Kanis
70a75dc88a
implement reader_cancel_thread using __thread thread-local storage
2013-01-23 00:19:29 +01:00
Jan Kanis
b6bd6e399d
tweak reader interrupt behavior
2013-01-22 11:57:47 +01:00
Jan Kanis
a3b497b271
rename reader_data_t.interruptible to exit_on_interrupt
2013-01-22 11:28:04 +01:00
Jan Kanis
55b3cf4627
move work out of interrupt handler (which is safer as well)
2013-01-22 11:19:01 +01:00
Jan Kanis
eb1c00c56b
fix comments on #516 . Split reader_interrupted
into a reader_interrupted
and a reader_reading_interrupted
2013-01-22 11:00:02 +01:00
Jan Kanis
970d05df39
make the read
builtin respect ctrl-C
2013-01-20 23:38:21 +01:00
Jan Kanis
abae08a9fb
create reader_data_t.interruptible flag and infrastructure to make it work.
2013-01-20 23:38:21 +01:00
Cheer Xiao
e020ad0c06
Convert io_buffer_read to io_buffer_t::read
2013-01-17 15:55:05 +08:00
Cheer Xiao
9057801c4b
Convert io_buffer_create to static io_buffer_t::create, make io_buffer_t constructor private
2013-01-17 15:55:05 +08:00
Cheer Xiao
0f443ef37b
Convert io_buffer_destroy to ~io_buffer_t
2013-01-17 15:55:05 +08:00
Cheer Xiao
a20e0b9e2e
Split out io_buffer_t, make input_redirect in exec() a raw pointer
2013-01-17 15:55:05 +08:00