mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	golang: improve go doc completion
This commit is contained in:
		
							parent
							
								
									9c08641d7c
								
							
						
					
					
						commit
						9e9b790fe1
					
				@ -54,23 +54,37 @@ __go_tool_complete() {
 | 
			
		||||
    '-installsuffix[suffix to add to package directory]:suffix'
 | 
			
		||||
    '-tags[list of build tags to consider satisfied]:tags'
 | 
			
		||||
  )
 | 
			
		||||
  __go_list() {
 | 
			
		||||
      local expl importpaths
 | 
			
		||||
      declare -a importpaths
 | 
			
		||||
      importpaths=($(go list ${words[$CURRENT]}... 2>/dev/null))
 | 
			
		||||
      _wanted importpaths expl 'import paths' compadd "$@" - "${importpaths[@]}"
 | 
			
		||||
  __go_packages() {
 | 
			
		||||
      _path_files -W "$(go env GOROOT)/src" -/
 | 
			
		||||
      _path_files -W "$(go env GOPATH)/src" -/
 | 
			
		||||
  }
 | 
			
		||||
  __go_identifiers() {
 | 
			
		||||
      compadd $(godoc -templates $ZSH/plugins/golang/templates ${words[-2]} 2> /dev/null)
 | 
			
		||||
  }
 | 
			
		||||
  case ${words[2]} in
 | 
			
		||||
  clean|doc)
 | 
			
		||||
      _arguments -s -w : '*:importpaths:__go_list'
 | 
			
		||||
  doc)
 | 
			
		||||
    _arguments -s -w \
 | 
			
		||||
      "-c[symbol matching honors case (paths not affected)]" \
 | 
			
		||||
      "-cmd[show symbols with package docs even if package is a command]" \
 | 
			
		||||
      "-u[show unexported symbols as well as exported]" \
 | 
			
		||||
      "2:importpaths:__go_packages" \
 | 
			
		||||
      ":next identifiers:__go_identifiers"
 | 
			
		||||
      ;;
 | 
			
		||||
  clean)
 | 
			
		||||
    _arguments -s -w \
 | 
			
		||||
      "-i[remove the corresponding installed archive or binary (what 'go install' would create)]" \
 | 
			
		||||
      "-n[print the remove commands it would execute, but not run them]" \
 | 
			
		||||
      "-r[apply recursively to all the dependencies of the packages named by the import paths]" \
 | 
			
		||||
      "-x[print remove commands as it executes them]" \
 | 
			
		||||
      "*:importpaths:__go_packages"
 | 
			
		||||
      ;;
 | 
			
		||||
  fix|fmt|list|vet)
 | 
			
		||||
      _alternative ':importpaths:__go_list' ':files:_path_files -g "*.go"'
 | 
			
		||||
      _alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"'
 | 
			
		||||
      ;;
 | 
			
		||||
  install)
 | 
			
		||||
      _arguments -s -w : ${build_flags[@]} \
 | 
			
		||||
        "-v[show package names]" \
 | 
			
		||||
        '*:importpaths:__go_list'
 | 
			
		||||
        '*:importpaths:__go_packages'
 | 
			
		||||
      ;;
 | 
			
		||||
  get)
 | 
			
		||||
      _arguments -s -w : \
 | 
			
		||||
@ -81,7 +95,7 @@ __go_tool_complete() {
 | 
			
		||||
        ${build_flags[@]} \
 | 
			
		||||
        "-v[show package names]" \
 | 
			
		||||
        "-o[output file]:file:_files" \
 | 
			
		||||
        "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }"
 | 
			
		||||
        "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }"
 | 
			
		||||
      ;;
 | 
			
		||||
  test)
 | 
			
		||||
      _arguments -s -w : \
 | 
			
		||||
@ -103,7 +117,7 @@ __go_tool_complete() {
 | 
			
		||||
        "-cpuprofile[write CPU profile to file]:file:_files" \
 | 
			
		||||
        "-memprofile[write heap profile to file]:file:_files" \
 | 
			
		||||
        "-memprofilerate[set heap profiling rate]:number" \
 | 
			
		||||
        "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }"
 | 
			
		||||
        "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }"
 | 
			
		||||
      ;;
 | 
			
		||||
  help)
 | 
			
		||||
      _values "${commands[@]}" \
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								plugins/golang/templates/package.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								plugins/golang/templates/package.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
{{with .PDoc}}{{/*
 | 
			
		||||
 | 
			
		||||
Constants 
 | 
			
		||||
---------------------------------------
 | 
			
		||||
 | 
			
		||||
*/}}{{with .Consts}}{{range .}}{{range .Names}}{{.}} {{end}}{{end}}{{end}}{{/*
 | 
			
		||||
 | 
			
		||||
Variables
 | 
			
		||||
---------------------------------------
 | 
			
		||||
 | 
			
		||||
*/}}{{with .Vars}}{{range .}}{{range .Names}}{{.}} {{end}}{{end}}{{end}}{{/*
 | 
			
		||||
 | 
			
		||||
Functions
 | 
			
		||||
---------------------------------------
 | 
			
		||||
 | 
			
		||||
*/}}{{with .Funcs}}{{range .}}{{ .Name }} {{end}}{{end}}{{/*
 | 
			
		||||
 | 
			
		||||
Types
 | 
			
		||||
---------------------------------------
 | 
			
		||||
 | 
			
		||||
*/}}{{with .Types}}{{range .}}{{ $TypeName := .Name }}{{ $TypeName }} {{/*
 | 
			
		||||
 | 
			
		||||
*/}}{{range .Methods}}{{ $TypeName }}.{{.Name}} {{end}}{{/*
 | 
			
		||||
 | 
			
		||||
*/}}{{range .Funcs}}{{.Name}} {{end}}{{/*
 | 
			
		||||
 | 
			
		||||
*/}}{{range .Consts}}{{range .Names}}{{.}} {{end}}{{end}}{{/*
 | 
			
		||||
 | 
			
		||||
*/}}{{range .Vars}}{{range .Names}}{{.}} {{end}}{{end}}{{end}}{{end}}{{end}}
 | 
			
		||||
							
								
								
									
										0
									
								
								plugins/golang/templates/search.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								plugins/golang/templates/search.txt
									
									
									
									
									
										Normal file
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user