// printfArgKind returns the expected objKind when completing a // printf-like operand. call is the printf-like function call, and // argIdx is the index of call.Args being completed. func printfArgKind(info *types.Info, call *ast.CallExpr, argIdx int) objKind { … } // formatOperandKind returns the objKind corresponding to format's // operandIdx'th operand. func formatOperandKind(format string, operandIdx int) objKind { … } type formatOperand … // parsePrintfVerb parses the leading printf verb in f. The opening // "%" must already be trimmed from f. prevIdx is the previous // operand's index, or zero if this is the first verb. The format // string is returned with the leading verb removed. Multiple operands // can be returned in the case of dynamic widths such as "%*.*f". func parsePrintfVerb(f string, prevIdx int) (string, []formatOperand) { … }