id = "asymptote"
name = "Asymptote"
homepage = "https://asymptote.sourceforge.io/"
description = "A powerful descriptive vector graphics language for technical drawing."
executables = ["asy"]
[dotfiles]
paths = ["~/.asy/config.asy"]
secret = []
[commands]
format = 1
label = "Compile Asymptote"
description = "Compile one or more .asy files to a graphics format. Only the common output options are listed."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "manual"
kind = "manual"
url = "https://asymptote.sourceforge.io/asymptote.pdf"
revision = "2026-10-27"
evidence = """
Options (negate boolean options by replacing - with -no):
-V,-View
-cd directory
-f,-outformat format
Convert each output file to specified format
-o,-outname name
Alternative output directory/file prefix
-render n
-k,-keep
-v,-verbose
-tex engine
asy -V -f pdf test
"""
[[commands.field]]
id = "files"
label = "Input files"
type = "path"
path = { kind = "file", role = "input" }
position = 0
multiple = true
sources = ["manual"]
[[commands.field]]
id = "view"
label = "Open in viewer"
type = "boolean"
option = ["-V"]
sources = ["manual"]
[[commands.field]]
id = "outformat"
label = "Output format"
description = "For example pdf, eps, svg, png."
type = "string"
option = ["-f"]
suggestions = [{ value = "pdf", label = "PDF" }, { value = "eps", label = "EPS" }, { value = "svg", label = "SVG" }, { value = "png", label = "PNG" }]
sources = ["manual"]
[[commands.field]]
id = "outname"
label = "Output name"
description = "Alternative output directory or file prefix."
type = "string"
option = ["-o"]
sources = ["manual"]
[[commands.field]]
id = "cd"
label = "Working directory"
type = "path"
path = { kind = "directory", role = "input" }
option = ["-cd"]
sources = ["manual"]
[[commands.field]]
id = "render"
label = "Render resolution factor"
type = "integer"
option = ["-render"]
sources = ["manual"]
[[commands.field]]
id = "keep"
label = "Keep intermediate files"
type = "boolean"
option = ["-k"]
sources = ["manual"]
[[commands.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["-v"]
sources = ["manual"]
[[commands.task]]
id = "pdf"
label = "Compile to PDF"
set = { outformat = ["pdf"] }
fields = ["files", "outformat", "outname", "view"]
required = ["files"]
[[commands.task]]
id = "png"
label = "Compile to PNG"
set = { outformat = ["png"] }
fields = ["files", "outformat", "render", "outname"]
required = ["files"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["files", "outformat", "outname", "view"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["cd", "render", "keep", "verbose"]