Class BslDebugDispatchingEObjectTextHover
java.lang.Object
org.eclipse.xtext.ui.editor.hover.AbstractHover
org.eclipse.xtext.ui.editor.hover.AbstractEObjectHover
org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
com._1c.g5.v8.dt.internal.debug.ui.hover.BslDebugDispatchingEObjectTextHover
- All Implemented Interfaces:
ITextHoverExtension3
,org.eclipse.jface.text.ITextHover
,org.eclipse.jface.text.ITextHoverExtension
,org.eclipse.jface.text.ITextHoverExtension2
,org.eclipse.xtext.ui.editor.hover.IEObjectHover
,org.eclipse.xtext.ui.editor.ISourceViewerAware
public class BslDebugDispatchingEObjectTextHover
extends org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
implements ITextHoverExtension3
DispatchingEObjectTextHover
extension for BSL 1C:Enterprise Runtime debug
process.
Provides debug element, associated with hovered element (if can), and show it as tree. Debug hover returns:
IBslVariable
- if BSL stack frame variable associated with hovered element was foundIWatchExpression
- if hovered element is evaluating during hover creation. Will be evaluated for all BSL elements, expect of methods invocations.
-
Field Summary
Fields inherited from class org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
lastCreatorProvider
Fields inherited from class org.eclipse.xtext.ui.editor.hover.AbstractHover
sourceViewer
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.eclipse.debug.core.model.IWatchExpression
evaluateExpression
(org.eclipse.emf.ecore.EObject hoveredObject, String hoveredObjectName) Evaluate expression, associated with hovered object and returnIWatchExpression
for this expression.protected org.eclipse.debug.core.model.IVariable
findLocalVariableWithName
(org.eclipse.emf.ecore.EObject hoveredObject, String hoveredObjectName) Find local BSL stack frameIVariable
, associated with hovered object.org.eclipse.jface.text.IInformationControlCreator
protected String
getHoveredObjectName
(org.eclipse.emf.ecore.EObject hoveredObject) Return name of hovered element.getHoverInfo
(org.eclipse.emf.ecore.EObject hoveredObject, org.eclipse.jface.text.ITextViewer textViewer, org.eclipse.jface.text.IRegion hoverRegion) org.eclipse.jface.text.IRegion
getHoverRegion
(org.eclipse.jface.text.ITextViewer textViewer, int offset) protected IBslStackFrame
Get current BSL stack frame from current debug context.protected org.eclipse.xtext.util.Pair<org.eclipse.emf.ecore.EObject,
org.eclipse.jface.text.IRegion> getXtextElementAt
(org.eclipse.xtext.resource.XtextResource resource, int offset) .boolean
isEnabled
(org.eclipse.jface.text.ITextViewer textViewer, int offset) Checks if hover is enabled in the given context.protected boolean
isNodeInsideDebuggingMethod
(org.eclipse.xtext.nodemodel.INode hoveredObjectNode) Returns whether given node is inside debugging method.protected boolean
isSupported
(Expression expression) Returns whether given expression is supported for hover creation.Methods inherited from class org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
getHoverInfo
Methods inherited from class org.eclipse.xtext.ui.editor.hover.AbstractEObjectHover
getHoverInfo2, getXtextElementAt
Methods inherited from class org.eclipse.xtext.ui.editor.hover.AbstractHover
getDocument, getLineNumber, setSourceViewer
-
Constructor Details
-
BslDebugDispatchingEObjectTextHover
public BslDebugDispatchingEObjectTextHover()
-
-
Method Details
-
getHoverRegion
public org.eclipse.jface.text.IRegion getHoverRegion(org.eclipse.jface.text.ITextViewer textViewer, int offset) - Specified by:
getHoverRegion
in interfaceorg.eclipse.jface.text.ITextHover
- Overrides:
getHoverRegion
in classorg.eclipse.xtext.ui.editor.hover.AbstractEObjectHover
-
getHoverInfo
public Object getHoverInfo(org.eclipse.emf.ecore.EObject hoveredObject, org.eclipse.jface.text.ITextViewer textViewer, org.eclipse.jface.text.IRegion hoverRegion) - Specified by:
getHoverInfo
in interfaceorg.eclipse.xtext.ui.editor.hover.IEObjectHover
- Overrides:
getHoverInfo
in classorg.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
-
getHoverControlCreator
public org.eclipse.jface.text.IInformationControlCreator getHoverControlCreator()- Specified by:
getHoverControlCreator
in interfaceorg.eclipse.jface.text.ITextHoverExtension
- Overrides:
getHoverControlCreator
in classorg.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
-
isEnabled
public boolean isEnabled(org.eclipse.jface.text.ITextViewer textViewer, int offset) Description copied from interface:ITextHoverExtension3
Checks if hover is enabled in the given context.- Specified by:
isEnabled
in interfaceITextHoverExtension3
- Parameters:
textViewer
- the active text viewer (may benull
)offset
- offset to check enablement of this hover in current context or-1
if information about offset is absent- Returns:
- true if hover is enabled in given context
-
getXtextElementAt
protected org.eclipse.xtext.util.Pair<org.eclipse.emf.ecore.EObject,org.eclipse.jface.text.IRegion> getXtextElementAt(org.eclipse.xtext.resource.XtextResource resource, int offset) . Do not performs resolving cross reference elements, as parent class.- Overrides:
getXtextElementAt
in classorg.eclipse.xtext.ui.editor.hover.AbstractEObjectHover
-
getHoveredObjectName
Return name of hovered element. Can return simple object name or complex (e.g. 'object.feature1.feature2') name.- Parameters:
hoveredObject
- current hovered object, cannot benull
- Returns:
- name of hovered object, never
null
-
isNodeInsideDebuggingMethod
protected boolean isNodeInsideDebuggingMethod(org.eclipse.xtext.nodemodel.INode hoveredObjectNode) Returns whether given node is inside debugging method.- Parameters:
hoveredObjectNode
- node for hovered object to check correctness, cannot benull
- Returns:
- whether debug hover is enabled for given hovered object
-
isSupported
Returns whether given expression is supported for hover creation.Returns
true
if given expression is not seems like method invocation, otherwise returnsfalse
.- Parameters:
expression
- expression to check, cannot benull
- Returns:
- whether given expression is supported for hover creation
-
findLocalVariableWithName
protected org.eclipse.debug.core.model.IVariable findLocalVariableWithName(org.eclipse.emf.ecore.EObject hoveredObject, String hoveredObjectName) Find local BSL stack frameIVariable
, associated with hovered object.
Can returnnull
if variable not found.- Parameters:
hoveredObject
- current hovered object, cannot benull
hoveredObjectName
- name of hovered object, cannot benull
- Returns:
- local BSL stack frame variable, associated with hovered object,
or
null
if variable not found
-
evaluateExpression
protected org.eclipse.debug.core.model.IWatchExpression evaluateExpression(org.eclipse.emf.ecore.EObject hoveredObject, String hoveredObjectName) Evaluate expression, associated with hovered object and returnIWatchExpression
for this expression.- Parameters:
hoveredObject
- current hovered object, cannot benull
hoveredObjectName
- name of hovered object, cannot benull
- Returns:
- evaluating / evaluated watch expression for given hovered object,
never
null
-
getStackFrame
Get current BSL stack frame from current debug context.
Can returnnull
, if there isn't appropriate debug context (no active BSL stack frames).- Returns:
- BSL stack frame, or
null
if there isn't one active
-