mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-22 10:06:49 +08:00
Try to use the fish_indent that corresponds to the fish binary
Some checks failed
Rust checks / clippy (push) Has been cancelled
make test / ubuntu (push) Has been cancelled
make test / ubuntu-32bit-static-pcre2 (push) Has been cancelled
make test / ubuntu-asan (push) Has been cancelled
make test / macos (push) Has been cancelled
Rust checks / rustfmt (push) Has been cancelled
Some checks failed
Rust checks / clippy (push) Has been cancelled
make test / ubuntu (push) Has been cancelled
make test / ubuntu-32bit-static-pcre2 (push) Has been cancelled
make test / ubuntu-asan (push) Has been cancelled
make test / macos (push) Has been cancelled
Rust checks / rustfmt (push) Has been cancelled
Users may install two versions of fish and configure their terminal to run the one that is second in $PATH. This is not really what I'd do but it seems reasonable. We should not need $PATH for this. Fixes #10770
This commit is contained in:
parent
88e749e4ce
commit
edaf011ab1
8
share/functions/__fish_indent.fish
Normal file
8
share/functions/__fish_indent.fish
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
function __fish_indent
|
||||||
|
set -l dir "$(path dirname -- (status fish-path 2>/dev/null))"
|
||||||
|
if command -v $dir/fish_indent >/dev/null
|
||||||
|
$dir/fish_indent $argv
|
||||||
|
else
|
||||||
|
fish_indent $argv
|
||||||
|
end
|
||||||
|
end
|
|
@ -18,7 +18,7 @@ function edit_command_buffer --description 'Edit the command buffer in an extern
|
||||||
set -l editor (__fish_anyeditor)
|
set -l editor (__fish_anyeditor)
|
||||||
or return 1
|
or return 1
|
||||||
|
|
||||||
set -l indented_lines (commandline -b | fish_indent --only-indent)
|
set -l indented_lines (commandline -b | __fish_indent --only-indent)
|
||||||
string join -- \n $indented_lines >$f
|
string join -- \n $indented_lines >$f
|
||||||
set -l offset (commandline --cursor)
|
set -l offset (commandline --cursor)
|
||||||
# compute cursor line/column
|
# compute cursor line/column
|
||||||
|
@ -91,7 +91,7 @@ function edit_command_buffer --description 'Edit the command buffer in an extern
|
||||||
$editor
|
$editor
|
||||||
|
|
||||||
set -l raw_lines (command cat $f)
|
set -l raw_lines (command cat $f)
|
||||||
set -l unindented_lines (string join -- \n $raw_lines | fish_indent --only-unindent)
|
set -l unindented_lines (string join -- \n $raw_lines | __fish_indent --only-unindent)
|
||||||
|
|
||||||
# Here we're checking the exit status of the editor.
|
# Here we're checking the exit status of the editor.
|
||||||
if test $status -eq 0 -a -s $f
|
if test $status -eq 0 -a -s $f
|
||||||
|
|
|
@ -3,8 +3,8 @@ function fish_clipboard_copy
|
||||||
if isatty stdin
|
if isatty stdin
|
||||||
# Copy the current selection, or the entire commandline if that is empty.
|
# Copy the current selection, or the entire commandline if that is empty.
|
||||||
# Don't use `string collect -N` here - `commandline` adds a newline.
|
# Don't use `string collect -N` here - `commandline` adds a newline.
|
||||||
set cmdline (commandline --current-selection | fish_indent --only-indent | string collect)
|
set cmdline (commandline --current-selection | __fish_indent --only-indent | string collect)
|
||||||
test -n "$cmdline"; or set cmdline (commandline | fish_indent --only-indent | string collect)
|
test -n "$cmdline"; or set cmdline (commandline | __fish_indent --only-indent | string collect)
|
||||||
else
|
else
|
||||||
# Read from stdin
|
# Read from stdin
|
||||||
while read -lz line
|
while read -lz line
|
||||||
|
|
|
@ -47,12 +47,12 @@ function funced --description 'Edit function definition'
|
||||||
|
|
||||||
if test "$editor" = fish
|
if test "$editor" = fish
|
||||||
if functions -q -- $funcname
|
if functions -q -- $funcname
|
||||||
functions --no-details -- $funcname | fish_indent --only-unindent | fish_indent --no-indent | read -z init
|
functions --no-details -- $funcname | __fish_indent --only-unindent | __fish_indent --no-indent | read -z init
|
||||||
end
|
end
|
||||||
|
|
||||||
set -l prompt 'printf "%s%s%s> " (set_color green) '$funcname' (set_color normal)'
|
set -l prompt 'printf "%s%s%s> " (set_color green) '$funcname' (set_color normal)'
|
||||||
if read -p $prompt -c "$init" --shell cmd
|
if read -p $prompt -c "$init" --shell cmd
|
||||||
echo -n $cmd | fish_indent --only-unindent | read -lz cmd
|
echo -n $cmd | __fish_indent --only-unindent | read -lz cmd
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
end
|
end
|
||||||
if set -q _flag_save
|
if set -q _flag_save
|
||||||
|
|
Loading…
Reference in New Issue
Block a user