From c7ca83e9dd642b35244309fed2a247fe3b1750d9 Mon Sep 17 00:00:00 2001 From: Henrik Brix Andersen Date: Mon, 23 Jul 2012 14:51:35 +0200 Subject: [PATCH] Add zsh(1) completion system configuration for Slic3r. --- utils/zsh/README.markdown | 21 +++++++ utils/zsh/functions/_slic3r | 119 ++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 utils/zsh/README.markdown create mode 100644 utils/zsh/functions/_slic3r diff --git a/utils/zsh/README.markdown b/utils/zsh/README.markdown new file mode 100644 index 000000000..e84b94310 --- /dev/null +++ b/utils/zsh/README.markdown @@ -0,0 +1,21 @@ +# ZSH Completions for Slic3r + +To enable zsh(1) completions for Slic3r, add the following to your +``~/.zshrc`` file, replacing ``/path/to/Slic3r/`` with the actual path +to your Slic3r directory: + + typeset -U fpath + + if [[ -d /path/to/Slic3r/utils/zsh/functions ]]; then + fpath=(/path/to/Slic3r/utils/zsh/functions $fpath) + fi + + autoload -Uz compinit + compinit + zstyle ':completion:*' verbose true + zstyle ':completion:*:descriptions' format '%B%d%b' + zstyle ':completion:*:messages' format '%d' + zstyle ':completion:*:warnings' format 'No matches for %d' + zstyle ':completion:*' group-name '%d' + +See the zshcompsys(1) man page for further details. diff --git a/utils/zsh/functions/_slic3r b/utils/zsh/functions/_slic3r new file mode 100644 index 000000000..16d32e0eb --- /dev/null +++ b/utils/zsh/functions/_slic3r @@ -0,0 +1,119 @@ +#compdef -P slic3r(|.pl|.exe) +# +# Slic3r completions configuration for zsh(1). + +# Currently undocumented options: +# --debug, --gui, --ignore-nonexistent-config +# --acceleration, --perimeter-acceleration, --infill-acceleration + +_arguments -S \ + '(- *)--help[output usage screen and exit]' \ + '(- *)--version[output the version of Slic3r and exit]' \ + '--save[save configuration to file]:config output file:_files -g "*.(#i)ini(-.)"' \ + '*--load[load configuration from file]:config input file:_files -g "*.(#i)ini(-.)"' \ + '(--output -o --output-filename-format)'{--output,-o}'[specify output file]:output file:_files -g "*.(#i)(gcode|svg)(-.)"' \ + '(--threads -j)'{--threads,-j}'[specify number of threads to use]:number of threads' \ + \ + '(--output -o)--output-filename-format[specify output filename format]:output filename format' \ + '*--post-process[specify post-processing script]:post-processing script file:_files' \ + '--export-svg[export SVG containing slices instead of G-code]' \ + '(--merge -m)'{--merge,-m}'[merge multiple input files into a single print]' \ + \ + '*--nozzle-diameter[specify nozzle diameter]:nozzle diameter in mm' \ + '--print-center[specify print center coordinates]:print center coordinates in mm,mm' \ + '--z-offset[specify Z-axis offset]:Z-axis offset in mm' \ + '--gcode-flavor[specify the type of G-code to generate]:G-code flavor:(reprap teacup makerbot mach3 no-extrusion)' \ + '(--use-relative-e-distances --no-use-relative-e-distances)'--{no-,}use-relative-e-distances'[disable/enable relative E values]' \ + '--extrusion-axis[specify letter associated with the extrusion axis]:extrusion axis letter' \ + '(--gcode-arcs --no-gcode-arcs)'--{no-,}gcode-arcs'[disable/enable G2/G3 commands for native arcs]' \ + '(--g0 --no-g0)'--{no-,}g0'[disable/enable G0 commands for retraction]' \ + '(--gcode-comments --no-gcode-comments)'--{no-,}gcode-comments'[disable/enable verbose G-code comments]' \ + \ + '*--filament-diameter[specify raw filament diameter]:raw filament diameter in mm' \ + '*--extrusion-multiplier[specify multiplier for amount of plastic extruded]:extrusion multiplier' \ + '*--temperature[specify extrusion temperature]:extrusion temperature in Celsius' \ + '*--first-layer-temperature[specify extrusion temperature for the first layer]:first layer extrusion temperature in Celsius' \ + '--bed-temperature[specify heated bed temperature]:heated bed temperature in Celsius' \ + '--first-layer-bed-temperature[specify heated bed temperature for the first layer]:first layer heated bed temperature in Celsius' \ + \ + '--perimeter-extruder[specify extruder to use for printing perimeters]:extruder number' \ + '--infill-extruder[specify extruder to use for printing infill]:extruder number' \ + '--support-material-extruder[specify extruder to use for printing support material]:extruder number' \ + \ + '--travel-speed[specify speed of non-print moves]:speed of non-print moves in mm/s' \ + '--perimeter-speed[specify speed of print moves for perimeters]:speed of print moves for perimeters in mm/s' \ + '--external-perimeter-speed[specify speed of print moves for external perimeters]:speed of print moves for external perimeters in mm/s or % of --perimeter-speed' \ + '--small-perimeter-speed[specify speed of print moves for small perimeters]:speed of print moves for small perimeters in mm/s or % of --perimeter-speed' \ + '--infill-speed[specify speed of infill print moves]:speed of infill print moves in mm/s' \ + '--solid-infill-speed[specify speed of solid surface print moves]:speed of solid surface print moves in mm/s or % of --infill-speed' \ + '--top-solid-infill-speed[specify speed of top surface print moves]:speed of top surface print moves in mm/s or % of --solid-infill-speed' \ + '--bridge-speed[specify speed of bridge print moves]:speed of bridge print moves in mm/s' \ + '--first-layer-speed[specify speed of bottom layer print moves]:speed of bottom layer print moves in mm/s or % of normal speeds' \ + \ + '--layer-height[specify layer height]:layer height in mm' \ + '--first-layer-height[specify layer height for bottom layer]:layer height for bottom layer in mm or % of --layer-height' \ + '--infill-every-layers[specify infill for every N layers]:N layers' \ + \ + '--perimeters[specify number of perimeters]:number of perimeters' \ + '--solid-layers[specify number of solid layers to do for top/bottom surfaces]:number of layers for top/bottom surfaces' \ + '--fill-density[specify infill density]:infill density in percent' \ + '--fill-angle[specify infill angle]:infill angle in degrees' \ + '--fill-pattern[specify pattern used for infill]:infill pattern:(rectilinear line concentric honeycomb hilbertcurve archimedeanchords octagramspiral)' \ + '--solid-fill-pattern[specify pattern used for solid layers]:solid fill pattern:(rectilinear concentric hilbertcurve archimedeanchords octagramspiral)' \ + '--start-gcode[load initial G-code from file]:start G-code file:_files -g "*.(#i)(gcode)(-.)"' \ + '--end-gcode[load final G-code from file]:end G-code file:_files -g "*.(#i)(gcode)(-.)"' \ + '--layer-gcode[load layer-change G-code from file]:layer-change G-code file:_files -g "*.(#i)(gcode)(-.)"' \ + '(--support-material --no-support-material)'--{no-,}support-material'[disable/enable generation of support material for overhangs]' \ + '--support-material-threshold[specify support material threshold]:maximum slope angle for generating support material' \ + '--support-material-pattern[specify pattern used for support material]:support material pattern:(rectilinear honeycomb)' \ + '--support-material-spacing[specify spacing between support material lines]:spacing between support material lines in mm' \ + '--support-material-angle[specify support material angle]:support material angle in degrees' \ + '(--randomize-start --no-randomize-start)'--{no-,}randomize-start'[disable/enable randomization of starting point across layers]' \ + '(--extra-perimeters --no-extra-perimeters)'--{no-,}extra-perimeters'[disable/enable generation of extra perimeters when needed]' \ + \ + '--retract-length[specify filament retraction length when pausing extrusion]:filament retraction length in mm' \ + '--retract-speed[specify filament retraction speed]:filament retraction speed in mm/s' \ + '--retract-restart-extra[specify filament length to extrude for compensating retraction]: filament lenght in mm' \ + '--retract-before-travel[specify minimum travel length for activating retraction]:minimum travel length for activating retraction in mm' \ + '--retract-lift[specify Z-axis lift for use when retracting]:Z-axis lift in mm' \ + \ + '(--cooling --no-cooling)'--{no-,}cooling'[disable/enable fan and cooling control]' \ + '--min-fan-speed[specify minimum fan speed]:minimum fan speed in percent' \ + '--max-fan-speed[specify maximum fan speed]:maximum fan speed in percent' \ + '--bridge-fan-speed[specify fan speed to use for bridging]:bridging fan speed in percent' \ + '--fan-below-layer-time[specify maximum layer print time before activating fan]:maximum layer print time in seconds' \ + '--slowdown-below-layer-time[specify maximum layer print time before slowing down printing]:maximum layer print time in seconds' \ + '--min-print-speed[specify minimum print speed]:minimum print speed in mm/s' \ + '--disable-fan-first-layers[specify number of bottom layers to print before activating fan]:number of bottom layers' \ + '(--fan-always-on --no-fan-always-on)'--{no-,}fan-always-on'[disable/enable deactivation of fan]' \ + \ + '--skirts[specify number of skirts]:number of skirts' \ + '--skirt-distance[specify distance between innermost skirt and object]:distance between innermost skirt and object in mm' \ + '--skirt-height[specify number of skirt layers]:number of skirt layers' \ + '--brim-width[specify brim width]:width of brim in mm' \ + \ + '--scale[specify object scaling factor]:object scaling factor in percent' \ + '--rotate[specify object rotation angle]:object rotation angle in degrees' \ + '(--duplicate-grid)--duplicate[specify number of duplicates for auto-arrange]:number of duplicates for auto-arrange' \ + '(--duplicate-grid)--bed-size[specify bed size for auto-arrange]:bed size for auto-arrange in mm,mm' \ + '(--duplicate --bed-size)--duplicate-grid[specify number of duplicates for grid arrangement]:number of duplicates for grid arrangement as x,y' \ + '--duplicate-distance[specify distance between duplicates]:distance between duplicates in mm' \ + \ + '(--complete-objects --no-complete-objects)'--{no-,}complete-objects'[disable/enable completion of each object before starting a new one]' \ + '--extruder-clearance-radius[specify radius above which extruder will not collide with anything]:radius in mm' \ + '--extruder-clearance-height[specify maximum vertical extruder depth]:maximum vertical extruder depth in mm' \ + \ + '--notes[specify notes to be added as comments to the output file]:notes' \ + \ + '--extrusion-width[specify extrusion width]:extrusion width in mm or % of --layer-height' \ + '--first-layer-extrusion-width[specify extrusion width for first layer]:first layer extrusion width in mm or % og --layer-height' \ + '--perimeters-extrusion-width[specify extrusion width for perimeters]:perimeter extrusion width in mm or % of --layer-height' \ + '--infill-extrusion-width[specify extrusion width for infill]:infill extrusion width in mm or % of --layer-height' \ + '--support-material-extrusion-width[specify extrusion width for support material]:support material extrusion width in mm or % of --layer-height' \ + '--bridge-flow-ratio[specify multiplier for extrusion when bridging]:bridge extrusion multiplier' \ + \ + '*:input file:_files -g "*.(#i)(stl|obj|amf|xml)(-.)"' + +# Local Variables: *** +# mode:sh *** +# End: ***