Index:
DebugTextHover.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DebugTextHover.java,v retrieving
revision 1.8 diff -u -r1.8 DebugTextHover.java ---
DebugTextHover.java 23 Jan 2003 18:54:33 -0000 1.8 +++
DebugTextHover.java 30 Sep 2003 16:05:59 -0000 @@ -31,6 +31,8
@@ */ public class DebugTextHover implements
ITextHover { + static final private int MAX_HOVER_INFO_SIZE =
100; + /** * Constructor for
DebugTextHover. */ @@ -82,36 +84,17
@@ StringBuffer buffer = new
StringBuffer(); boolean showDebugTarget =
targetList.size() > 1; Iterator iterator =
targetList.iterator(); - boolean first =
true; while ( iterator.hasNext()
) { IDebugTarget
target =
(IDebugTarget)iterator.next(); ICExpressionEvaluator
ee = (ICExpressionEvaluator)target.getAdapter( ICExpressionEvaluator.class
); if ( ee.canEvaluate()
) { - String
result = evaluateExpression( ee, _expression_
); + String result = evaluateExpression(
ee, _expression_
).trim(); try { if
( result != null
) - { - if
( first
) - { - first
=
false; - } - else - { - buffer.append(
'\n'
); - } - if
( showDebugTarget
) - { - buffer.append(
'[' ); - buffer.append(
target.getName()
); - buffer.append( "]:
"
); - } - buffer.append(
_expression_ ); - buffer.append(
'=' ); - buffer.append( result
); - } + appendVariable(
buffer, _expression_, result, showDebugTarget ? target.getName() : null
); } catch(
DebugException x ) { @@ -162,5
+145,62 @@ //
ignore } return
result; + } + + /** + * A variable gets one line for
each debug target it appears in. + */ + private static void
appendVariable( StringBuffer buffer,
+ String
_expression_,
+ String
value, + String
debugTargetName ) throws DebugException + { + if (
value.length() > MAX_HOVER_INFO_SIZE ) + value =
value.substring( 0, MAX_HOVER_INFO_SIZE ) + "
..."; + buffer.append( "<p>" );
//$NON-NLS-1$ + if ( debugTargetName != null )
+ { + buffer.append( '[' + debugTargetName +
"] " ); //$NON-NLS-1$ + } + buffer.append(
makeHTMLSafe( _expression_ ) ); + buffer.append( " = " );
//$NON-NLS-1$ + + String safeValue = "<b>" +
makeHTMLSafe( value ) + "</b>"; //$NON-NLS-1$
//$NON-NLS-2$ + buffer.append( safeValue
); + buffer.append( "</p>" );
//$NON-NLS-1$ + } + + /** + * Replace any characters
in the given String that would confuse an HTML + * parser with their
escape sequences. + */ + private static String makeHTMLSafe(
String string ) + { + StringBuffer buffer = new
StringBuffer( string.length() ); + + for ( int i = 0; i
!= string.length(); i++ ) + { + char ch =
string.charAt( i ); + + switch( ch )
+ { + case
'&': + buffer.append( "&" );
//$NON-NLS-1$ + break; + + case
'<': + buffer.append( "<" );
//$NON-NLS-1$ + break; + + case
'>': + buffer.append( ">" );
//$NON-NLS-1$ + break; + + default: + buffer.append(
ch
); + break; + } + } + return
buffer.toString(); } }
Index:
ChangeLog =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v retrieving revision
1.186 diff -u -r1.186 ChangeLog --- ChangeLog 25 Sep 2003 02:12:59
-0000 1.186 +++ ChangeLog 30 Sep 2003 16:06:17 -0000 @@ -1,19
+1,25 @@ -2003-10-24 Mikhail Khodjaiants +2003-09-30 Mikhail
Khodjaiants + Fix for PR 39737: Tooltip in debug mode over long strings
is not handled properly. + Added an internal constant to limit the hover
text size. + Present the hover text in HTML format. + *
DebugTextHover.java + +2003-09-24 Mikhail Khodjaiants Fix
for PR 43624: The "Show Types Name" action of the Registers view doesn't
work. * ShowRegisterTypesAction.java *
RegistersView.java -2003-10-22 Mikhail Khodjaiants +2003-09-22
Mikhail Khodjaiants Moved the
'AddAddressBreakpointActionDelegate' action to the
'org.eclipse.cdt.debug.internal.ui.actions' package. *
AddAddressBreakpointActionDelegate.java *
plugin.xml -2003-10-16 Mikhail Khodjaiants +2003-09-16 Mikhail
Khodjaiants Cleanup. *
CUISourceLocator.java -2003-10-11 Mikhail
Khodjaiants +2003-09-11 Mikhail Khodjaiants Reset the
selection of variable after casting. *
CastToArrayActionDelegate.java *
CastToTypeActionDelegate.java
|