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 found
  • IWatchExpression - 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
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.eclipse.debug.core.model.IWatchExpression
    evaluateExpression(org.eclipse.emf.ecore.EObject hoveredObject, String hoveredObjectName)
    Evaluate expression, associated with hovered object and return IWatchExpression for this expression.
    protected org.eclipse.debug.core.model.IVariable
    findLocalVariableWithName(org.eclipse.emf.ecore.EObject hoveredObject, String hoveredObjectName)
    Find local BSL stack frame IVariable, 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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 interface org.eclipse.jface.text.ITextHover
      Overrides:
      getHoverRegion in class org.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 interface org.eclipse.xtext.ui.editor.hover.IEObjectHover
      Overrides:
      getHoverInfo in class org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover
    • getHoverControlCreator

      public org.eclipse.jface.text.IInformationControlCreator getHoverControlCreator()
      Specified by:
      getHoverControlCreator in interface org.eclipse.jface.text.ITextHoverExtension
      Overrides:
      getHoverControlCreator in class org.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 interface ITextHoverExtension3
      Parameters:
      textViewer - the active text viewer (may be null)
      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 class org.eclipse.xtext.ui.editor.hover.AbstractEObjectHover
    • getHoveredObjectName

      protected String getHoveredObjectName(org.eclipse.emf.ecore.EObject hoveredObject)
      Return name of hovered element. Can return simple object name or complex (e.g. 'object.feature1.feature2') name.
      Parameters:
      hoveredObject - current hovered object, cannot be null
      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 be null
      Returns:
      whether debug hover is enabled for given hovered object
    • isSupported

      protected boolean isSupported(Expression expression)
      Returns whether given expression is supported for hover creation.

      Returns true if given expression is not seems like method invocation, otherwise returns false.

      Parameters:
      expression - expression to check, cannot be null
      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 frame IVariable, associated with hovered object.
      Can return null if variable not found.
      Parameters:
      hoveredObject - current hovered object, cannot be null
      hoveredObjectName - name of hovered object, cannot be null
      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 return IWatchExpression for this expression.
      Parameters:
      hoveredObject - current hovered object, cannot be null
      hoveredObjectName - name of hovered object, cannot be null
      Returns:
      evaluating / evaluated watch expression for given hovered object, never null
    • getStackFrame

      protected IBslStackFrame getStackFrame()
      Get current BSL stack frame from current debug context.
      Can return null, if there isn't appropriate debug context (no active BSL stack frames).
      Returns:
      BSL stack frame, or null if there isn't one active