Commit Graph

16 Commits

Author SHA1 Message Date
Johannes Altmanninger
7d5b44e828 Support FOO=bar syntax for passing variables to individual commands
This adds initial support for statements with prefixed variable assignments.
Statments like this are supported:

a=1 b=$a echo $b        # outputs 1

Just like in other shells, the left-hand side of each assignment must
be a valid variable identifier (no quoting/escaping).  Array indexing
(PATH[1]=/bin ls $PATH) is *not* yet supported, but can be added fairly
easily.

The right hand side may be any valid string token, like a command
substitution, or a brace expansion.

Since `a=* foo` is equivalent to `begin set -lx a *; foo; end`,
the assignment, like `set`, uses nullglob behavior, e.g. below command
can safely be used to check if a directory is empty.

x=/nothing/{,.}* test (count $x) -eq 0

Generic file completion is done after the equal sign, so for example
pressing tab after something like `HOME=/` completes files in the
root directory
Subcommand completion works, so something like
`GIT_DIR=repo.git and command git ` correctly calls git completions
(but the git completion does not use the variable as of now).

The variable assignment is highlighted like an argument.

Closes #6048
2019-11-25 09:20:51 +01:00
David Adam
02d82dcf85 docs: update all command synopsis formatting
Adds synopses for those commands missing them.

Moves all synopsis sections to code blocks. This improves the appearance, although highlighting as
fish code may not be the ideal appearance.
2019-09-17 17:59:04 +08:00
David Adam
605885f851 docs: whitespace cleanup in source
Fixes some lint warnings.
2019-09-17 17:28:19 +08:00
David Adam
8bb343879e docs: update set --show synopsis
As reported on the mailing list in Message-ID:
<CAK72cnbc7qW=Meuvr=vBRyok0syFSC5nitsTKUpbs89XpFCoDg@mail.gmail.com>
2019-07-25 20:22:41 +08:00
Fabian Homborg
b6eddc75bc docs: Remove -# formatting
That was supposed to be displayed like a list item, but it's displayed
verbatim in the html output at least, so it looks weird.

[ci skip]
2019-06-06 19:14:11 +02:00
Fabian Homborg
8d9782301e docs: Call "arrays" "lists"
We were flip-flopping between the two terms, so we now use one. We
still mention "array" in the chapter, and it's still `read --array`,
though.

Fixes #5846.

[ci skip]
2019-05-05 14:01:07 +02:00
Fabian Homborg
05b2d4ee54 Docs: Document path vars more
Fixes #5741.

[ci skip]
2019-04-30 13:18:56 +02:00
Fabian Homborg
127c0e9764 docs: Fix remaining references
Fixes #5775.
2019-03-31 11:35:02 +02:00
Fabian Homborg
cf9b8fa3fa docs: Add labels to all commands
This allows us to use :ref: references, which don't require hardcoding
it as html

[ci skip]
2019-03-31 11:05:33 +02:00
ridiculousfish
c8dc306b18 Fix command section separator line lengths 2019-02-24 18:15:48 -08:00
ridiculousfish
0e936198db Switch backticks to double backticks for rst compatibility 2019-02-24 18:15:48 -08:00
ridiculousfish
2a002a4ba1 Switch \fish sections to rst format 2019-02-24 18:15:48 -08:00
ridiculousfish
c33d1a217c Convert \\subsection sections into rst format 2019-02-24 18:15:48 -08:00
ridiculousfish
256c2dadee Migrate the 'synopsis' sections to .rst format 2019-02-24 18:15:48 -08:00
ridiculousfish
c213882511 Switch command docs from \section to reStructuredText 2019-02-24 18:15:48 -08:00
ridiculousfish
afd035f8cc Copy doc_src to sphinx_doc_src and add a TOC 2019-02-24 18:15:48 -08:00