Fabian Homborg
4fac2f98c2
[git completions] Use status v1 output
...
Apparently the v2 format is too new (released Nov 2016), and the v1
format has everything we need.
2018-01-31 11:25:13 +01:00
ogaclejapan
64c8d4c265
Fix typo that invalid options in argparse
2018-01-31 16:45:19 +11:00
David Adam
fb53a96a1c
Add configure-time check for std::make_unique
...
Fixes the build on Clang 6 and closes #4685 .
2018-01-31 13:43:05 +08:00
ridiculousfish
54cefeb5b1
Make sliced history (e.g. $history[1]) much faster
...
This special cases expansion of $history variables, so that slicing
history no longer needs to construct the entire history array. Speedup
is around 100x in my test.
Fixes #4650
2018-01-30 18:34:46 -08:00
ridiculousfish
816d35de43
Clean up expand_variables
...
Partially rewrite this function to be shorter and easier to follow.
2018-01-30 17:45:34 -08:00
ridiculousfish
3d1975c6a6
Convert variable_is_colon_delimited_var to a const array
2018-01-30 13:32:15 -08:00
ridiculousfish
39a02f8ead
Turn the set of read-only variables into a const array
2018-01-30 13:28:49 -08:00
ridiculousfish
f025269195
env_var_t to forget its name
...
Store properties associated with the name via flags instead
2018-01-30 12:36:50 -08:00
ridiculousfish
5c2e6734c1
Normal text input to disable paging instead of search
...
Prior to this fix, if the user typed normal characters while the
completion pager was shown, it would begin searching. This feature was
not well liked, so we are going to instead just append the characters as
normal and disable paging. Control-S can be used to toggle the search
field.
Fixes #2249
2018-01-30 09:58:08 -08:00
ridiculousfish
c4a12f90c1
Bind pager-toggle-search to control-s by default.
2018-01-30 09:58:08 -08:00
ridiculousfish
d0d7bb75cd
Add new pager-toggle-search input function
...
This adds a new input binding pager-toggle-search which toggles the
search field on and off when the pager is showing.
2018-01-30 09:58:08 -08:00
David Adam
f135c53196
[cmake] move all CheckFunctionExists to CheckCXXSymbolExists
...
CheckFunctionExists checks for C linkage only, and recommends the use of
CheckSymbolExists in the documentation. This improves the detection of
C++ features, as opposed to C features.
2018-01-30 22:28:04 +08:00
Donovan Glover
ac8fe1e4b9
Various fixes to CONTRIBUTING.md
2018-01-30 15:45:30 +11:00
ridiculousfish
d03aff8742
Encapsulate input function name and code into a single struct
...
Reduces the reliance in ugly parallel arrays.
2018-01-29 19:15:16 -08:00
ridiculousfish
43c839ab0e
Rename R_MIN and R_MAX to R_BEGIN/END_INPUT_FUNCTIONS
...
This makes the names more obvious.
We also make the range half-open as is the convention.
2018-01-29 11:53:44 -08:00
ridiculousfish
9ce3ac5b93
Remove R_SENTINAL
...
It was unused and misspelled.
2018-01-29 11:30:11 -08:00
Fabian Homborg
e3a2eadb49
Remove obsolete "--gui" option from gradle completions
...
Fixes #4691 .
[ci skip]
2018-01-29 19:31:12 +01:00
ridiculousfish
5b3729842c
tnode_t::try_get_child() to properly implement null check.
...
try_get_child() was taking the address of a reference; clang was thereby
assuming it could not be null and so was dropping the null check. Ensure
we do not dereference a null pointer.
Fixes #4678
2018-01-28 15:07:19 -08:00
Benoit Hamon
c92bb703dc
add few bindings for vi mode
2018-01-26 18:32:03 +01:00
Mahmoud Al-Qudsi
d11f9f7148
Fix git push REMOTE :BRANCH
completion
...
The `string match` was limiting it to `git push REMOTE :<TAB>` and would
fail for `git push REMOTE :x<TAB>`. Now working as expected.
2018-01-25 20:32:20 -06:00
Fabian Homborg
ea897fcc0f
git completions: Parse git status --porcelain ( #4673 )
...
* git completions: Parse git status --porcelain
This is much faster on large repositories, as it allows us to do a lot
more with a single git call.
It also makes it easy to add descriptions to distinguish modified
files from untracked ones.
TBD is if all commands now have the right kinds of files.
[ci skip]
2018-01-25 13:35:00 +01:00
Fabian Homborg
12c249abbe
Changelog pager navigation
...
[ci skip]
2018-01-25 13:27:23 +01:00
Fabian Homborg
cddd0d7538
[Pager] Adjust tests for changes in behavior
...
Since moving west no longer gets stuck in the top row (but instead
wraps around to the bottom row), this needs to have some indices
changed.
2018-01-25 13:26:53 +01:00
Fabian Homborg
dc95bfc1b1
[Pager] Make up without selected contents jump back into the pager
...
This makes it possible to select the last element of the completions
with just one keypress.
Fixes #3115 .
2018-01-25 13:26:53 +01:00
Fabian Homborg
13079911bc
[Pager] Wrap cardinal direction movement
...
Fixes #4669 .
2018-01-25 13:26:53 +01:00
Mahmoud Al-Qudsi
462b9c2209
Fix broken fish.pc build on non-GNU platforms
...
`-v` is a non-standard GNU-only extension to `awk`, its usage in the
generation of the fish.pc script breaks on non-GNU platforms (such as
FreeBSD and presumably macOS).
Using `sed` with only standard posix commands instead.
2018-01-23 22:07:04 -06:00
Birger J. Nordølum
2ba76a7115
diskutil.fish: added apfs completions, and tweaks to old ones
2018-01-23 19:25:12 +01:00
Yurizal Susanto
a6536db502
Update Eopkg support ( #4662 )
...
Update Eopkg support
Improve Eopkg completions
2018-01-22 14:25:34 -08:00
ridiculousfish
a39c57c1b6
Report errors for arguments to 'end'
...
For example, `begin ; end arg` will now report an error.
Fixes #986
2018-01-22 13:31:39 -08:00
ridiculousfish
9d48c68f24
Remove argument_or_redirection type
...
This was a symbol that represented either an argument or a redirection.
This was only used as part of argument_or_redirection_list.
It's simpler to just have these types be alternatives in the list type.
2018-01-22 13:18:34 -08:00
ridiculousfish
f81eef5ee1
Improve type checking of certain tnode_t interfaces
2018-01-22 13:13:28 -08:00
ridiculousfish
3b64a256b6
Add type checking to find_child()
...
Ensure that find_child() with impossible child nodes will now error
at compile time.
2018-01-22 11:09:29 -08:00
David Adam
020fe5ccdf
[cmake] fix installation of translations
2018-01-22 14:30:36 +08:00
David Adam
164108d0a9
[cmake] mark manual as an optional component for install
2018-01-21 20:37:29 +08:00
ridiculousfish
ae9b5871fb
Fix a tnode-related crash in syntax highlighting
...
Adds a new test too.
2018-01-21 02:17:21 -08:00
David Adam
9c7909c006
[cmake] install manual and changelog
2018-01-21 15:28:03 +08:00
David Adam
7b38d0b7cb
[cmake] match CMake project name to autotools
2018-01-21 15:28:03 +08:00
David Adam
1231d358de
[cmake] remove duplicate installation
2018-01-21 07:51:26 +08:00
ridiculousfish
04162b05ea
Remove the giant 'Fish grammar' comment
...
The fish grammar is now captured more precisely in parse_grammar.h
2018-01-20 14:09:40 -08:00
ridiculousfish
852cf183a6
Remove some unused parameters
2018-01-20 14:09:36 -08:00
ridiculousfish
c53ee263d8
Improve parse tree type safety
...
This merges a set of changes to improve the type safety of the fish parse
tree, in preparation for modifying fish grammar in 3.0. It expresses the
fish grammar via a new file parse_grammar.h. It then adds a new type
tnode_t parametrized on grammar elements, with typesafe access to its
children.
The idea here is to make it easy to change the fish grammar, and have the
compiler report code locations that must to be updated.
Merge branch 'threeparse'
2018-01-20 14:02:44 -08:00
ridiculousfish
0f8e8d1cea
Migrate tnode implementation to tnode.cpp
...
Also improve commenting.
2018-01-20 13:33:09 -08:00
ridiculousfish
094e853a20
Migrate tnode_t into new header tnode.h
2018-01-20 12:15:28 -08:00
ridiculousfish
1c2943bd8b
Make statement_is_in_pipeline a free typesafe function
2018-01-20 11:45:43 -08:00
ridiculousfish
194f7f34d9
Eliminate parse_node_tree::find_nodes
2018-01-20 11:45:43 -08:00
ridiculousfish
242512f0df
Migrate argument_list_is_root out of parse_node_tree_t
2018-01-20 11:45:43 -08:00
ridiculousfish
c1b60fa8e1
Remove header_node_for_block_statement
2018-01-20 11:45:43 -08:00
ridiculousfish
d7c28c9316
Eliminate job_should_be_backgrounded
2018-01-20 11:45:43 -08:00
ridiculousfish
3e7e92dfff
Remove specific_statements_for_job
2018-01-20 11:45:43 -08:00
ridiculousfish
05e8cf13f7
Eliminate parse_execution_context_t::get_child
2018-01-20 11:45:43 -08:00