ridiculousfish
e395a0eb69
Migrate PATH-completion logic from complete.cpp to expand.cpp
...
Prior to this fix, when completing a command that doesn't have a /, we
would prepend each component of PATH and then expand the whole thing. So
any special characters in the PATH would be interpreted when performing
tab completion.
With this fix, we pull the PATH resolution out of complete.cpp and
migrate it to expand.cpp. This unifies nicely with the CDPATH resolution
already in that file. This requires introducing a new expand flag
EXPAND_SPECIAL_FOR_COMMAND, which is analogous to EXPAND_SPECIAL_CD
(which is renamed to EXPAND_SPECIAL_FOR_CD). This flag tells expand to
resolve paths against PATH instead of the working directory.
Fixes #952
2016-04-07 20:15:32 -07:00
ridiculousfish
947f659f96
Miscellaneous cleanup and dead code removal
...
Noticed by cppcheck
2016-02-19 15:45:31 -08:00
ridiculousfish
718d9baead
Implement the cd "unique hierarchy" autosuggestion in expand.cpp
2016-02-18 17:00:26 -08:00
ridiculousfish
1907323afc
Additional work on unifying cd autosuggestions with complete
2016-02-18 17:00:26 -08:00
ridiculousfish
c5ed4e5cdf
Pass a struct stat by const reference instead of by value
2016-01-03 12:12:42 -08:00
ridiculousfish
aeaacedf75
Don't do intermediate fuzzy directory matching with $PATH
...
When expanding an executable with $PATH, don't attempt to
interpret the directories in PATH as fuzzy matching. Fixes #2413 .
2015-10-03 15:44:57 -07:00
ridiculousfish
71e38dec11
Fix a typo
2015-09-27 17:33:00 -07:00
ridiculousfish
11376ae25b
Fix for recursive wildcard expansion ignoring directories
...
When ascending out of a directory, we need to clear the directory
from the visited set. Fixes #2414 .
2015-09-27 17:19:52 -07:00
ridiculousfish
dd245f62f0
Trailing slashes in wildcards need to match directories
...
Fixes the wrong sense in a waccess test.
2015-09-27 17:19:52 -07:00
ridiculousfish
3a3a9f5cc1
Add wreaddir_for_dirs function
...
Eliminates some stat calls, speeding up wildcard expansion
2015-08-08 14:52:04 -07:00
ridiculousfish
6347988e0a
Eliminate wildcard_expand function
2015-08-08 13:55:51 -07:00
ridiculousfish
b92acd3cf2
Initial implementation of intermediate fuzzy completion
...
e.g. /u/l/b<tab> may be expanded to /usr/local/bin
2015-08-08 13:55:51 -07:00
ridiculousfish
fd96bafbc8
Experiment to rework wildcard matching
...
Preparation for zsh-style intermediate component
tab completion
2015-08-08 13:55:51 -07:00
ridiculousfish
b7e16cb0dd
Tweak try_add_completion_result logic
...
Preparation for zsh-style intermediate fuzzy matching
2015-08-08 13:55:51 -07:00
ridiculousfish
459df23931
Migrate the prepend_token_prefix logic into the expander
2015-08-08 13:55:50 -07:00
ridiculousfish
e7b22a7ed2
Factor the expander class a bit more
2015-08-08 13:55:50 -07:00
ridiculousfish
bcbe91461e
Move the "wildcard_complete" test into wildcard_test_flags_then_complete
...
Simplifies code yet further
2015-08-08 13:55:50 -07:00
ridiculousfish
b68410d619
Eliminate the wildcard_expand_internal function
2015-08-08 13:55:50 -07:00
ridiculousfish
602e9cebd9
rename FOR_COMPLETIONS to EXPAND_FOR_COMPLETIONS
...
This is yet clearer
2015-08-08 13:55:50 -07:00
ridiculousfish
d2049edcab
Slight refactoring of expander's return code implementation
2015-08-08 13:55:49 -07:00
ridiculousfish
83322f63c6
Rewrite wildcard_complete_internal to be easier to follow
2015-08-08 13:55:49 -07:00
ridiculousfish
f0a2f24701
Remove some dead code
2015-08-08 13:55:49 -07:00
ridiculousfish
97f1a8fe91
Factor the completion prefix behavior into its own function
...
In a few places, we need to add a prefix to completions that
replace the token. This change factors that logic into its
own function prepend_token_prefix.
2015-08-08 13:55:49 -07:00
ridiculousfish
0ac9f159d6
Eliminate recurse_to_subdirectories function
2015-08-08 13:55:49 -07:00
ridiculousfish
a3f8e27bf8
rename ACCEPT_INCOMPLETE to FOR_COMPLETIONS, which is clearer
2015-08-08 13:55:49 -07:00
ridiculousfish
b55c13f275
Turn on the new wildcard expander
2015-08-08 13:55:48 -07:00
ridiculousfish
70548f7cc7
Initial implementation of wildcard match refactoring
...
Not yet turned on.
2015-08-08 13:55:43 -07:00
David Adam
a6a16808e3
Merge branch 'iwyu'
...
http://include-what-you-use.org/
2015-07-29 09:30:19 +08:00
ridiculousfish
6e3231a9d7
Stop passing mutable references to completions around
...
Replace uses of vector<completion_t>& with vector<completion_t>*
This makes it clear at the call site that the object may be mutated.
2015-07-27 18:45:47 -07:00
David Adam
3929e9de0e
Merge branch 'master' into iwyu
2015-07-26 10:20:13 +08:00
ridiculousfish
a91e8887cd
Migrate source files into src/ directory
...
This change moves source files into a src/ directory,
and puts object files into an obj/ directory. The Makefile
and xcode project are updated accordingly.
Fixes #1866
2015-07-25 12:31:57 -07:00
ridiculousfish
b4f53143b0
Migrate source files into src/ directory
...
This change moves source files into a src/ directory,
and puts object files into an obj/ directory. The Makefile
and xcode project are updated accordingly.
Fixes #1866
2015-07-24 00:59:27 -07:00