function makeSignature(params) {
	const r = ['('];
	if ( params ) {
		for (let i = 0, p; (p = params[i]); i++) {
			// ignore @param tags for 'virtual' params that are used to document members of config-like params
			// (e.g. like "@param param1.key ...")
			if (p.name && p.name.indexOf('.') == -1) {
				if (i > 0) {
					r.push(', ');
				}

				r.push('<span');

				const types = listTypes(p.type, true);
				const desc = asPlainSummary(p.description);
				if ( desc || types ) {
					r.push(' title="');
					if (types) {
						r.push('(');
						r.push(types);
						r.push(') ');
					}
					r.push(desc);
					r.push('"');
				}

				r.push('>');
				r.push(p.name);
				r.push('</span>');
				if ( p.optional ) {
					r.push('<i class="help" title="Optional parameter">?</i>');
				}
			}
		}
	}
	r.push(')');
	return r.join('');
}
/* Build output for displaying function parameters. */
Build output for displaying function parameters.
Build output for displaying function parameters .
function makeSignature(params) {
	const r = ['('];
	if ( params ) {
		for (let i = 0, p; (p = params[i]); i++) {
			if (p.name && p.name.indexOf('.') == -1) {
				if (i > 0) {
					r.push(', ');
				}
				r.push('<span');
				const types = listTypes(p.type, true);
				const desc = asPlainSummary(p.description);
				if ( desc || types ) {
					r.push(' title="');
					if (types) {
						r.push('(');
						r.push(types);
						r.push(') ');
					}
					r.push(desc);
					r.push('"');
				}
				r.push('>');
				r.push(p.name);
				r.push('</span>');
				if ( p.optional ) {
					r.push('<i class="help" title="Optional parameter">?</i>');
				}
			}
		}
	}
	r.push(')');
	return r.join('');
}
function makeSignature ( params ) { const r = [ '(' ] ; if ( params ) { for ( let i = 0 , p ; ( p = params [ i ] ) ; i ++ ) { if ( p . name && p . name . indexOf ( '.' ) == - 1 ) { if ( i > 0 ) { r . push ( ', ' ) ; } r . push ( '<span' ) ; const types = listTypes ( p . type , true ) ; const desc = asPlainSummary ( p . description ) ; if ( desc || types ) { r . push ( ' title="' ) ; if ( types ) { r . push ( '(' ) ; r . push ( types ) ; r . push ( ') ' ) ; } r . push ( desc ) ; r . push ( '"' ) ; } r . push ( '>' ) ; r . push ( p . name ) ; r . push ( '</span>' ) ; if ( p . optional ) { r . push ( '<i class="help" title="Optional parameter">?</i>' ) ; } } } } r . push ( ')' ) ; return r . join ( '' ) ; }
Build output for displaying function parameters.
Build output for displaying function parameters .
// ignore @param tags for 'virtual' params that are used to document members of config-like params // (e.g. like "@param param1.key ...")