Skip to content

Instantly share code, notes, and snippets.

@igor-ramazanov
Created September 2, 2025 13:39
Show Gist options
  • Select an option

  • Save igor-ramazanov/c2645cc906dcb69b30b01f734c4b3149 to your computer and use it in GitHub Desktop.

Select an option

Save igor-ramazanov/c2645cc906dcb69b30b01f734c4b3149 to your computer and use it in GitHub Desktop.
An example of reusing Fish completions in Nushell
use bloop.nu
use coursier.nu
use scala-cli.nu
use scalafix.nu
export-env {
if (not ($env.__completers_loaded? | default false)) {
$env.__completers_loaded = true
let fish_completer = {|spans|
fish --command $'complete "--do-complete=($spans | str join " ")"'
| from tsv --flexible --noheaders --no-infer
| rename value description
}
$env.config.completions.external.completer = {|spans|
let command = scope aliases
| where name == $spans.0
| get --optional 0
| get --optional expansion
| default $spans.0
| split row " "
| first
let spans = $spans | skip 1 | prepend $command
match $spans.0 {
"bloop" => { bloop --spans $spans }
"scala-cli" => { scala-cli --spans $spans }
"cs" | "coursier" => { coursier --spans $spans }
"batman" => { do $fish_completer ($spans | skip 1 | prepend "man")}
"scalafix" => { scalafix --spans $spans }
_ => { do $fish_completer $spans }
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment