#compdef nim _nim() { _arguments -C \ ':command:(( {compile,c}\:compile\ project\ with\ default\ code\ generator\ C doc\:generate\ the\ documentation\ for\ inputfile {compileToC,cc}\:compile\ project\ with\ C\ code\ generator {compileToCpp,cpp}\:compile\ project\ to\ C++\ code {compileToOC,objc}\:compile\ project\ to\ Objective\ C\ code js\:compile\ project\ to\ Javascript e\:run\ a\ Nimscript\ file rst2html\:convert\ a\ reStructuredText\ file\ to\ HTML rst2tex\:convert\ a\ reStructuredText\ file\ to\ TeX jsondoc\:extract\ the\ documentation\ to\ a\ json\ file buildIndex\:build\ an\ index\ for\ the\ whole\ documentation genDepend\:generate\ a\ DOT\ file\ containing\ the\ module\ dependency\ graph dump\:dump\ all\ defined\ conditionals\ and\ search\ paths check\:checks\ the\ project\ for\ syntax\ and\ semantic ))' \ '*-r[run the application]' \ '*--run[run the application]' \ '*-p=[add path to search paths]' \ '*--path=[add path to search paths]' \ '*-d=[define a conditional symbol]' \ '*--define=[define a conditional symbol]' \ '*-u=[undefine a conditional symbol]' \ '*--undef=[undefine a conditional symbol]' \ '*-f[force rebuilding of all modules]' \ '*--forceBuild[force rebuilding of all modules]' \ '*--stackTrace=on[turn stack tracing on]' \ '*--stackTrace=off[turn stack tracing off]' \ '*--lineTrace=on[turn line tracing on]' \ '*--lineTrace=off[turn line tracing off]' \ '*--threads=on[turn support for multi-threading on]' \ '*--threads=off[turn support for multi-threading off]' \ '*-x=on[turn all runtime checks on]' \ '*-x=off[turn all runtime checks off]' \ '*--checks=on[turn all runtime checks on]' \ '*--checks=off[turn all runtime checks off]' \ '*--objChecks=on[turn obj conversion checks on]' \ '*--objChecks=off[turn obj conversion checks off]' \ '*--fieldChecks=on[turn case variant field checks on]' \ '*--fieldChecks=off[turn case variant field checks off]' \ '*--rangeChecks=on[turn range checks on]' \ '*--rangeChecks=off[turn range checks off]' \ '*--boundChecks=on[turn bound checks on]' \ '*--boundChecks=off[turn bound checks off]' \ '*--overflowChecks=on[turn int over-/underflow checks on]' \ '*--overflowChecks=off[turn int over-/underflow checks off]' \ '*-a[turn assertions on]' \ '*-a[turn assertions off]' \ '*--assertions=on[turn assertions on]' \ '*--assertions=off[turn assertions off]' \ '*--floatChecks=on[turn all floating point (NaN/Inf) checks on]' \ '*--floatChecks=off[turn all floating point (NaN/Inf) checks off]' \ '*--nanChecks=on[turn NaN checks on]' \ '*--nanChecks=off[turn NaN checks off]' \ '*--infChecks=on[turn Inf checks on]' \ '*--infChecks=off[turn Inf checks off]' \ '*--nilChecks=on[turn nil checks on]' \ '*--nilChecks=off[turn nil checks off]' \ '*--opt=none[do not optimize]' \ '*--opt=speed[optimize for speed|size - use -d:release for a release build]' \ '*--opt=size[optimize for size]' \ '*--debugger:native[use native debugger (gdb)]' \ '*--app=console[generate a console app]' \ '*--app=gui[generate a GUI app]' \ '*--app=lib[generate a dynamic library]' \ '*--app=staticlib[generate a static library]' \ '*--cpu=alpha[compile for Alpha architecture]' \ '*--cpu=amd64[compile for x86_64 architecture]' \ '*--cpu=arm[compile for ARM architecture]' \ '*--cpu=arm64[compile for ARM64 architecture]' \ '*--cpu=avr[compile for AVR architecture]' \ '*--cpu=esp[compile for ESP architecture]' \ '*--cpu=hppa[compile for HPPA architecture]' \ '*--cpu=i386[compile for i386 architecture]' \ '*--cpu=ia64[compile for ia64 architecture]' \ '*--cpu=js[compile to JavaScript]' \ '*--cpu=m68k[compile for m68k architecture]' \ '*--cpu=mips[compile for MIPS architecture]' \ '*--cpu=mipsel[compile for MIPS EL architecture]' \ '*--cpu=mips64[compile for MIPS64 architecture]' \ '*--cpu=mips64el[compile for MIPS64 EL architecture]' \ '*--cpu=msp430[compile for msp430 architecture]' \ '*--cpu=nimvm[compile for Nim VM]' \ '*--cpu=powerpc[compile for PowerPC architecture]' \ '*--cpu=powerpc64[compile for PowerPC64 architecture]' \ '*--cpu=powerpc64el[compile for PowerPC64 EL architecture]' \ '*--cpu=riscv32[compile for RISC-V 32 architecture]' \ '*--cpu=riscv64[compile for RISC-V 64 architecture]' \ '*--cpu=sparc[compile for SPARC architecture]' \ '*--cpu=sparc64[compile for SPARC64 architecture]' \ '*--cpu=vm[compile for Nim VM]' \ '*--cpu=wasm32[compile to WASM 32]' \ '*--gc=refc[use reference counting garbage collection]' \ '*--gc=arc[use ARC garbage collection]' \ '*--gc=orc[use ORC garbage collection]' \ '*--gc=markAndSweep[use mark-and-sweep garbage collection]' \ '*--gc=boehm[use Boehm garbage collection]' \ '*--gc=go[use Go garbage collection]' \ '*--gc=regions[use region-based memory management]' \ '*--gc=none[disable garbage collection]' \ '*--os=Standalone[generate a stand-alone executable]' \ '*--os=AIX[compile for AIX]' \ '*--os=Amiga[compile for Amiga OS]' \ '*--os=Android[compile for Android]' \ '*--os=Any[compile for any OS]' \ '*--os=Atari[compile for Atari]' \ '*--os=DOS[compile for DOS]' \ '*--os=DragonFly[compile for DragonFly]' \ '*--os=FreeBSD[compile for FreeBSD]' \ '*--os=FreeRTOS[compile for FreeRTOS]' \ '*--os=Genode[compile for Genode]' \ '*--os=Haiku[compile for Haiku]' \ '*--os=iOS[compile for iOS]' \ '*--os=Irix[compile for Irix]' \ '*--os=Linux[compile for Linux]' \ '*--os=MacOS[compile for MacOS]' \ '*--os=MacOSX[compile for MacOSX]' \ '*--os=MorphOS[compile for MorphOS]' \ '*--os=NetBSD[compile for NetBSD]' \ '*--os=Netware[compile for Netware]' \ '*--os=NimVM[compile for NimVM]' \ '*--os=NintendoSwitch[compile for NintendoSwitch]' \ '*--os=OS2[compile for OS2]' \ '*--os=OpenBSD[compile for OpenBSD]' \ '*--os=PalmOS[compile for PalmOS]' \ '*--os=QNX[compile for QNX]' \ '*--os=SkyOS[compile for SkyOS]' \ '*--os=Solaris[compile for Solaris]' \ '*--os=VxWorks[compile for VxWorks]' \ '*--os=Windows[compile for Windows]' \ '*--os=JS[generate javascript]' \ '*--panics=off[turn panics into process terminations: off by default]' \ '*--panics=on[turn panics into process terminations]' \ '*--verbosity=0[set verbosity to 0]' \ '*--verbosity=1[set verbosity to 1 (default)]' \ '*--verbosity=2[set verbosity to 2]' \ '*--verbosity=3[set verbosity to 3]' \ '*--hints=on[print compilation hints]' \ '*--hints=off[disable compilation hints]' \ '*--hints=list[print compilation hints list]' \ ':filename:_files -g"*.nim"' } _nim "$@"