/**
 * Gets a cursor with search suggestions.
 *
 * @param searchable Information about how to get the suggestions.
 * @param query The search text entered (so far).
 * @return a cursor with suggestions, or <code>null</null> the suggestion query failed.
 *
 * @hide because SearchableInfo is not part of the API.
 */
ECode CSearchManager::GetSuggestions(
    /* [in] */ ISearchableInfo *searchable,
    /* [in] */ const String &query,
    /* [out] */ ICursor **cursor)
{

    return GetSuggestions(searchable, query, -1, cursor);
}
void VHTMLSyntax::InsertChar( ICodeEditorDocument* inDocument, UniChar inUnichar, sLONG inLineIndex, sLONG inPosition, ITipInfoArray *outSuggestions, sLONG& outStartOffset )
{
	if ( inUnichar == '/' ) {
		int htmlNbLines = inDocument->GetNbLines();
		VString str;
		inDocument->GetLine(inLineIndex,str);
		
		if (inPosition>1 && str[inPosition-2]=='<' ) {
			GetSuggestions( inDocument, inLineIndex, inPosition, outSuggestions, outStartOffset, false );
		}  
	} else if ( inUnichar == '<' ) {
		inDocument->InsertText( VString( (UniChar) 62 ) ); //              62  is  >
		sLONG startloc = 0;
		sLONG endloc = 0;
		sLONG atline = 0;	

		inDocument->GetSelection(startloc,endloc,atline,atline);
		if ( startloc>0 ) {
			inDocument->Select(startloc-1,endloc-1,atline,atline);
		}
		GetSuggestions( inDocument, inLineIndex, startloc - 1, outSuggestions, outStartOffset, false );
	} else if ( inUnichar == '=' ) {
		inDocument->InsertText( CVSTR( "\"\"" ) );
		sLONG startloc = 0;
		sLONG endloc = 0;
		sLONG atline = 0;	

		inDocument->GetSelection(startloc,endloc,atline,atline);
		if ( startloc>0 ) {
			inDocument->Select(startloc-1,endloc-1,atline,atline);
		}
	} else if ( inUnichar == '\'' ) {
		inDocument->InsertText( VString( (UniChar) 39 ) ); //                        39 is '
		sLONG startloc = 0;
		sLONG endloc = 0;
		sLONG atline = 0;	

		inDocument->GetSelection(startloc,endloc,atline,atline);
		if ( startloc>0 ) {
			inDocument->Select(startloc-1,endloc-1,atline,atline);
		}
	} else if ( inUnichar == '!' ) {
		VString strtemp = "";
		inDocument->GetLine( inLineIndex,strtemp );

		if ( inPosition >= 2 && strtemp[inPosition-2] == '<' ) {
			inDocument->InsertText( "----"); //insert spaces       39 is '
			sLONG startloc = 0;
			sLONG endloc = 0;
			sLONG atline = 0;	

			inDocument->GetSelection(startloc,endloc,atline,atline);
			if ( startloc>0 ) {
				inDocument->Select(startloc-2,endloc-2,atline,atline);
			}
		}
	} else if ( inUnichar == '#' ) {
		VString strtemp = "";
		inDocument->GetLine( inLineIndex,strtemp );

		if ( inPosition >= 5 && strtemp[inPosition-2] == '-' && strtemp[inPosition-3] == '-' && strtemp[inPosition-4] == '!' && strtemp[inPosition-5] == '<') {
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DVAR", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DHTMLVAR", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DSCRIPT", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DINCLUDE", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DIF", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DENDIF", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DELSE", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DLOOP", vcol_blue ) );
			outSuggestions->AddTip( new VCodeEditorTipInfo( inDocument, "4DENDLOOP", vcol_blue ) );
		}
	}
}