mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 12:12:45 +00:00 
			
		
		
		
	 696f23d7a0
			
		
	
	
		696f23d7a0
		
	
	
	
	
		
			
			This patch adds a basic Zsh completion script for the commands and
targets provided by Meta/serenity.sh. There's some room for improvement
here, e.g. we could provide completion for available CMake targets -
currently completion stops after serenity.sh <command> <target>.
You can enable it by adding this to your .zshrc before completions are
loaded:
    fpath=($SERENITY_SOURCE_DIR/Meta/ShellCompletions/zsh $fpath)
		
	
			
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef serenity serenity.sh
 | |
| 
 | |
| _serenity() {
 | |
|     local args
 | |
|     args=(
 | |
|         '1:command:->commands'
 | |
|         '2:target:->targets'
 | |
|         '*:: :->args'
 | |
|     )
 | |
| 
 | |
|     local commands
 | |
|     commands=(
 | |
|         'build'
 | |
|         'install'
 | |
|         'image'
 | |
|         'run'
 | |
|         'gdb'
 | |
|         'test'
 | |
|         'delete'
 | |
|         'recreate'
 | |
|         'rebuild'
 | |
|         'kaddr2line'
 | |
|         'addr2line'
 | |
|         'rebuild-toolchain'
 | |
|         'rebuild-world'
 | |
|     )
 | |
| 
 | |
|     local targets
 | |
|     targets=(
 | |
|         'i686:Target i686 (default)'
 | |
|         'x86_64:Target x86_64'
 | |
|         'lagom:Target host machine'
 | |
|     )
 | |
| 
 | |
|     _arguments -C -S "$args[@]"
 | |
| 
 | |
|     local command
 | |
|     command="$line[1]"
 | |
| 
 | |
|     local target
 | |
|     target="$line[2]"
 | |
| 
 | |
|     case "$state" in
 | |
|         commands)
 | |
|             _describe 'command' commands
 | |
|             ;;
 | |
|         targets)
 | |
|             case "$command" in
 | |
|                 install|image|kaddr2line|rebuild-toolchain|rebuild-world)
 | |
|                     # lagom target is not supported for these, remove from targets
 | |
|                     targets[$targets[(i)lagom]]=()
 | |
|                     ;;
 | |
|             esac
 | |
|             _describe 'target' targets
 | |
|             ;;
 | |
|         args)
 | |
|             ;;
 | |
|     esac
 | |
| 
 | |
|     return 0
 | |
| }
 | |
| 
 | |
| _serenity
 |