Skip to content

Update the zsh completion file for rustc. #11959

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 2, 2014
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 70 additions & 40 deletions src/etc/zsh/_rust
Original file line number Diff line number Diff line change
Expand Up @@ -5,80 +5,110 @@ local -a _rustc_opts_switches _rustc_opts_lint _rustc_opts_debug
typeset -A opt_args

_rustc_opts_switches=(
--android-cross-path'[The path to the Android NDK]'
--ar'[Program to use for managing archives instead of the default.]'
--bin'[Compile an executable crate (default)]'
-c'[Compile and assemble, but do not link]'
--cfg'[Configure the compilation environment]'
--crate-id'[Output the crate id and exit]'
--crate-file-name'[Output the file(s) that would be written if compilation continued and exit]'
--crate-name'[Output the crate name and exit]'
--dep-info'[Output dependency info to <filename> after compiling]'
--dylib'[Compile a dynamic library crate]'
--emit-llvm'[Produce an LLVM bitcode file]'
{-h,--help}'[Display this message]'
-L'[Add a directory to the library search path]'
--lib'[Compile a library crate]'
--linker'[Program to use for linking instead of the default.]'
--link-args'[FLAGS is a space-separated list of flags passed to the linker]'
--llvm-args'[A list of arguments to pass to llvm, comma separated]'
--ls'[List the symbols defined by a library crate]'
--no-analysis'[Parse and expand the output, but run no analysis or produce output]'
--no-rpath'[Disables setting the rpath in libs/exes]'
--no-trans'[Run all passes except translation; no output]'
-O'[Equivalent to --opt-level=2]'
-o'[Write output to <filename>]'
--opt-level'[Optimize with possible levels 0-3]'
--out-dir'[Write output to compiler-chosen filename in <dir>]'
--parse-only'[Parse only; do not compile, assemble, or link]'
--passes'[Comma or space separated list of pass names to use]'
--pretty'[Pretty-print the input instead of compiling]'
--rlib'[Compile a rust library crate as an rlib file]'
-S'[Compile only; do not assemble or link]'
--save-temps'[Write intermediate files (.bc, .opt.bc, .o) in addition to normal output]'
--staticlib'[Compile a static library crate]'
--sysroot'[Override the system root]'
--test'[Build a test harness]'
--target'[Target triple cpu-manufacturer-kernel\[-os\] to compile]'
--target-cpu'[Select target processor (llc -mcpu=help for details)]'
--target-feature'[Target specific attributes (llc -mattr=help for details)]'
--android-cross-path'[The path to the Android NDK]'
{-v,--version}'[Print version info and exit]'
)
_rustc_opts_lint=(
'path-statement[path statements with no effect]'
'missing-trait-doc[detects missing documentation for traits]'
'missing-struct-doc[detects missing documentation for structs]'
'attribute-usage[detects bad use of attributes]'
'ctypes[proper use of std::libc types in foreign modules]'
"unused-mut[detect mut variables which don't need to be mutable]"
'unused-imports[imports that are never used]'
'heap-memory[use of any (~ type or @ type) heap memory]'
'default-methods[allow default methods]'
'unused-variable[detect variables which are not used in any way]'
'dead-assignment[detect assignments that will never be read]'
'unrecognized-lint[unrecognized lint attribute]'
'type-limits[comparisons made useless by limits of the types involved]'
'unused-unsafe[unnecessary use of an `unsafe` block]'
'while-true[suggest using loop { } instead of while(true) { }]'
'non-camel-case-types[types, variants and traits should have camel case names]'
'dead-code[detect piece of code that will never be used]'
'default-type-param-usage[prevents explicitly setting a type parameter with a default]'
'deprecated[detects use of #\[deprecated\] items]'
'experimental[detects use of #\[experimental\] items]'
'heap-memory[use of any (~ type or @ type) heap memory]'
'managed-heap-memory[use of managed (@ type) heap memory]'
'unnecessary-allocation[detects unnecessary allocations that can be eliminated]'
'missing-doc[detects missing documentation for public members]'
'non-camel-case-types[types, variants and traits should have camel case names]'
'non-uppercase-pattern-statics[static constants in match patterns should be all caps]'
'non-uppercase-statics[static constants should have uppercase identifiers]'
'owned-heap-memory[use of owned (~ type) heap memory]'
'path-statement[path statements with no effect]'
'type-limits[comparisons made useless by limits of the types involved]'
'type-overflow[literal out of range for its type]'
'unknown-crate-type[unknown crate type found in #\[crate_type\] directive]'
'unknown-features[unknown features found in crate-level #\[feature\] directives]'
'unnecessary-allocation[detects unnecessary allocations that can be eliminated]'
'unnecessary-parens[`if`, `match`, `while` and `return` do not need parentheses]'
'unnecessary-qualification[detects unnecessarily qualified names]'
'unnecessary-typecast[detects unnecessary type casts, that can be removed]'
'unreachable-code[detects unreachable code]'
'unrecognized-lint[unrecognized lint attribute]'
'unsafe-block[usage of an `unsafe` block]'
'unstable[detects use of #\[unstable\] items (incl. items with no stability attribute)]'
'unused-imports[imports that are never used]'
'unused-must-use[unused result of an type flagged as #\[must_use\]]'
"unused-mut[detect mut variables which don't need to be mutable]"
'unused-result[unused result of an expression in a statement]'
'unused-unsafe[unnecessary use of an `unsafe` block]'
'unused-variable[detect variables which are not used in any way]'
'warnings[mass-change the level for lints which produce warnings]'
'while-true[suggest using `loop { }` instead of `while true { }`]'
)

_rustc_opts_debug=(
'verbose:in general, enable more debug printouts'
'time-passes:measure time of each rustc pass'
'count-llvm-insns:count where LLVM instrs originate'
'time-llvm-passes:measure time of each LLVM pass'
'trans-stats:gather trans statistics'
'asm-comments:generate comments into the assembly (may change behavior)'
'no-verify:skip LLVM verification'
'trace:emit trace logs'
'coherence:perform coherence checking'
'borrowck-stats:gather borrowck statistics'
"borrowck-note-pure:note where purity is req'd"
"borrowck-note-loan:note where loans are req'd"
'no-landing-pads:omit landing pads for unwinding'
'debug-llvm:enable debug output from LLVM'
'count-type-sizes:count the sizes of aggregate types'
'meta-stats:gather metadata statistics'
'no-opt:do not optimize, even if -O is passed'
'print-link-args:Print the arguments passed to the linker'
'gc:Garbage collect shared data (experimental)'
'jit:Execute using JIT (experimental)'
'extra-debug-info:Extra debugging info (experimental)'
'debug-info:Produce debug info (experimental)'
'static:Use or produce static libraries or binaries (experimental)'
'no-debug-borrows:do not show where borrow checks fail'
'lint-llvm:Run the LLVM lint pass on the pre-optimization IR'
'asm-comments[generate comments into the assembly (may change behavior)]'
'borrowck-stats[gather borrowck statistics]'
'count-llvm-insns[count where LLVM instrs originate]'
'count-type-sizes[count the sizes of aggregate types]'
'debug-info[Produce debug info (experimental)]'
'debug-llvm[enable debug output from LLVM]'
'extra-debug-info[Extra debugging info (experimental)]'
'gc[Garbage collect shared data (experimental)]'
'gen-crate-map[Force generation of a toplevel crate map]'
'lto[Perform LLVM link-time optimizations]'
'meta-stats[gather metadata statistics]'
"no-integrated-as[Use external assembler rather than LLVM's integrated one]"
'no-landing-pads[omit landing pads for unwinding]'
'no-opt[do not optimize, even if -O is passed]'
"no-prepopulate-passes[Don't pre-populate the pass managers with a list of passes, only use the passes from --passes]"
"no-vectorize-loops[Don't run the loop vectorization optimization passes]"
"no-vectorize-slp[Don't run LLVM's SLP vectorization passes]"
'no-verify[skip LLVM verification]'
'prefer-dynamic[Prefer dynamic linking to static linking]'
'print-link-args[Print the arguments passed to the linker]'
'print-llvm-passes[Prints the llvm optimization passes being run]'
'soft-float[Generate software floating point library calls]'
'time-llvm-passes[measure time of each LLVM pass]'
'time-passes[measure time of each rustc pass]'
'trans-stats[gather trans statistics]'
'verbose[in general, enable more debug printouts]'
)

_rustc_opts_fun_lint(){
Expand Down