id = "numbat"
name = "Numbat"
homepage = "https://github.com/sharkdp/numbat"
description = "A statically typed programming language for scientific computations with first-class support for physical dimensions and units."
executables = ["numbat"]
[dotfiles]
paths = ["[configHome]/numbat/init.nbt", "[configHome]/numbat/modules/"]
secret = []
[commands]
format = 1
label = "Run Numbat"
description = "Evaluate expressions, run a script file, or start the interactive session. Script arguments are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/sharkdp/numbat/blob/master/numbat-cli/src/main.rs"
evidence = """
numbat-cli/src/main.rs (clap derive; field names map to flags):
file: Path to source file with Numbat code. If none is given, an interactive session is started.
-e, --expression <CODE> Evaluate a single expression. Can be specified multiple times to evaluate several expressions in sequence.
-i, --inspect-interactively Enter interactive session after running a numbat script or expression
--no-config Do not load the user configuration file.
-N, --no-prelude Do not load the prelude with predefined physical dimensions and units. This implies --no-init.
--no-init Do not load the user init file.
"""
[[commands.field]]
id = "file"
label = "Script file"
description = "Leave empty for an interactive session."
type = "path"
position = 0
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "expression"
label = "Expression"
type = "string"
option = ["--expression", "-e"]
multiple = true
sources = ["help"]
[[commands.field]]
id = "interactive"
label = "Stay interactive afterwards"
type = "boolean"
option = ["--inspect-interactively", "-i"]
sources = ["help"]
[[commands.field]]
id = "no_config"
label = "Skip user config"
type = "boolean"
option = ["--no-config"]
sources = ["help"]
[[commands.field]]
id = "no_init"
label = "Skip user init file"
type = "boolean"
option = ["--no-init"]
sources = ["help"]
[[commands.field]]
id = "no_prelude"
label = "Skip prelude"
type = "boolean"
option = ["--no-prelude", "-N"]
sources = ["help"]
[[commands.task]]
id = "eval"
label = "Evaluate expression"
fields = ["expression", "interactive"]
required = ["expression"]
[[commands.task]]
id = "script"
label = "Run script"
fields = ["file", "interactive"]
required = ["file"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["expression", "file", "interactive"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["no_config", "no_init", "no_prelude"]