`umount` tab completion doesn't handle relative directories or `~` arguments
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 52/100
Línea de trabajo
Empieza por share/completions/umount.fish y share/functions/__fish_print_mounted.fish; después, inspecciona cómo se pasa o interpreta el token de completion actual. Usa la salida de mount proporcionada y los pasos de reproducción en macOS para comprobar las rutas relativas y las rutas con ~. Se considera terminado cuando umount ofrece completions para ambas formas, manteniendo la completion de rutas absolutas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version information:
- fish version 4.5.0
- macos 15.7.4, Terminal.app
- reproducible without third-party customizations ✅
When attempting to unmount a directory using umount, tab completion doesn't find relative paths such as ./mymount or paths starting with ~ such as ~/tmp/mymount.
The issue appears to be that umount completes absolute paths only, and does not have home directory ~ handling. share/completions/umount.fish calls __fish_print_mounted.fish:
complete -c umount -d "Mount point" -x -a '(__fish_print_mounted)'
which doesn't have any handling for the current completion token (which would be a clue that the user is looking for a relative path).
My use cases are being in the same directory as a mount point and wanting to umount it (relative path) or giving the path to the mount as ~/path/to/mount (absolute path using ~).
If you're looking for a way to reproduce this on macOS, you can create your own mount using https://github.com/marcelcotta/DarwinFUSE:
$ git clone https://github.com/marcelcotta/DarwinFUSE
$ cd DarwinFUSE
DarwinFUSE $ make examples
DarwinFUSE $ mkdir -p ~/tmp/mymount
DarwinFUSE $ ./examples/hello ~/tmp/mymount/
DarwinFUSE $ umount ~/tmp<TAB> # <- will flash indicating no completions
But it's a bit unnecessary since the completion is just string processing the mount output if you don't have an /etc/mtab (as is my case):
function __fish_print_mounted --description 'Print mounted devices'
if test -r /etc/mtab
...
else
mount | string replace -r '^(\S+) \S+ (\S+) .*' '$1\n$2' | string replace -r '[\d.]*:/' / | string match '/*'
end
end
Here's what the output of mount looks like for me, to make it easier to test an implementation without having to mount a file yourself:
$ mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk3s6 on /System/Volumes/VM (apfs, local, noexec, journaled, noatime, nobrowse)
/dev/disk3s2 on /System/Volumes/Preboot (apfs, local, journaled, nobrowse)
/dev/disk3s4 on /System/Volumes/Update (apfs, local, journaled, nobrowse)
/dev/disk1s2 on /System/Volumes/xarts (apfs, local, noexec, journaled, noatime, nobrowse)
/dev/disk1s1 on /System/Volumes/iSCPreboot (apfs, local, journaled, nobrowse)
/dev/disk1s3 on /System/Volumes/Hardware (apfs, local, journaled, nobrowse)
/dev/disk3s5 on /System/Volumes/Data (apfs, local, journaled, nobrowse, protect, root data)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
127.0.0.1:/ on /Users/razzi/tmp/mymount (nfs, nodev, nosuid, mounted by razzi)
- Lenguaje dominante
- Rust
- Estrellas
- 34.4k
- Forks
- 2.5k
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fish-shell/fish-shell
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
fish-shell/fish-shell#13084 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
fish-shell/fish-shell#13072 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
fish-shell/fish-shell#12971 · 7 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
fish-shell/fish-shell#12880 ·
Los mantenedores suelen responder en 2 días
-
`__fish_print_hostnames` picks up `broadcasthost` from macOS /etc/hostsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
fish-shell/fish-shell#12845 ·
Los mantenedores suelen responder en 2 días
Todos los issues de fish-shell/fish-shell
Issues similares
-
[cosmic-applet-battery] Division by zero displays NaN% when UPower reports max_brightness = 0Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
pop-os/cosmic-applets#1619 ·
Los mantenedores suelen responder en 3 días
-
binding:python bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
coollabsio/orbit#72 ·
Los mantenedores suelen responder en 1 día
-
swc_common: Mark::least_ancestor never returns when the answer is the root mark (ANT-2026-JYDQGGRT)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
swc-project/swc-ai-issues#137 ·
-
Synth suite fails unless run from the repo root: signal_flow's default machine path is cwd-relativeAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Nimblesite/osprey#370 ·
Los mantenedores suelen responder en 1 día