bundles/org.eclipse.orion.client.editor/web/orion/editor/contentAssist.js
function(proposals) {
			// get rid of extra separators and titles
			var mappedProposals = proposals.map(function(proposalArray) {
				var element = proposalArray.filter(function(proposal, index) {
					var keepElement = true;
					if (STYLES[proposal.style] === STYLES.hr) {
						if ((0 === index) || ((proposalArray.length - 1) === index)) {
							keepElement = false; // remove separators at first or last element
						} else if (STYLES.hr === STYLES[proposalArray[index - 1].style]) {
							keepElement = false; // remove separator preceeded by another separator
						}
					} else if (STYLES[proposal.style] === STYLES.noemphasis_title) {
						var nextProposal = proposalArray[index + 1];
						if (nextProposal) {
							// remove titles that preceed other titles, all of their subelements have already been filtered out
							if (STYLES[nextProposal.style] === STYLES.noemphasis_title) {
								keepElement = false;
							}
						} else {
							keepElement = false; //remove titles that are at the end of the array
						}
					}
					return keepElement;
				});
				return element;
			});
			
			return mappedProposals;
		}
function(proposals) {
			// get rid of extra separators and titles
			var mappedProposals = proposals.map(function(proposalArray) {
				var element = proposalArray.filter(function(proposal, index) {
					var keepElement = true;
					if (STYLES[proposal.style] === STYLES.hr) {
						if ((0 === index) || ((proposalArray.length - 1) === index)) {
							keepElement = false; // remove separators at first or last element
						} else if (STYLES.hr === STYLES[proposalArray[index - 1].style]) {
							keepElement = false; // remove separator preceeded by another separator
						}
					} else if (STYLES[proposal.style] === STYLES.noemphasis_title) {
						var nextProposal = proposalArray[index + 1];
						if (nextProposal) {
							// remove titles that preceed other titles, all of their subelements have already been filtered out
							if (STYLES[nextProposal.style] === STYLES.noemphasis_title) {
								keepElement = false;
							}
						} else {
							keepElement = false; //remove titles that are at the end of the array
						}
					}
					return keepElement;
				});
				return element;
			});
			
			return mappedProposals;
		}
function ( proposals ) { // get rid of extra separators and titles
 var mappedProposals = proposals . map ( function ( proposalArray ) { var element = proposalArray . filter ( function ( proposal , index ) { var keepElement = true ; if ( STYLES [ proposal . style ] === STYLES . hr ) { if ( ( 0 === index ) || ( ( proposalArray . length - 1 ) === index ) ) { keepElement = false ; // remove separators at first or last element
 } else if ( STYLES . hr === STYLES [ proposalArray [ index - 1 ] . style ] ) { keepElement = false ; // remove separator preceeded by another separator
 } } else if ( STYLES [ proposal . style ] === STYLES . noemphasis_title ) { var nextProposal = proposalArray [ index + 1 ] ; if ( nextProposal ) { // remove titles that preceed other titles, all of their subelements have already been filtered out
 if ( STYLES [ nextProposal . style ] === STYLES . noemphasis_title ) { keepElement = false ; } } else { keepElement = false ; //remove titles that are at the end of the array
 } } return keepElement ; } ) ; return element ; } ) ; return mappedProposals ; }
Helper method which removes extra separators and titles from
an array containing arrays of proposals from the various providers.
@param{Array[]} proposals An array with each element containing an array of proposals
@returns {Array} An array without the extra unselectable elements
Helper method which removes extra separators and titles from an array containing arrays of proposals from the various providers .