Class LineChangeHover

java.lang.Object
org.eclipse.jface.text.source.LineChangeHover
All Implemented Interfaces:
IInformationProviderExtension2, IAnnotationHover, IAnnotationHoverExtension

public class LineChangeHover extends Object implements IAnnotationHover, IAnnotationHoverExtension, IInformationProviderExtension2
A hover for line oriented diffs. It determines the text to show as hover for a certain line in the document.
Since:
3.0
  • Constructor Details

    • LineChangeHover

      public LineChangeHover()
  • Method Details

    • getHoverInfo

      public String getHoverInfo(ISourceViewer sourceViewer, int lineNumber)
      Description copied from interface: IAnnotationHover
      Returns the text which should be presented in the a hover popup window. This information is requested based on the specified line number.
      Specified by:
      getHoverInfo in interface IAnnotationHover
      Parameters:
      sourceViewer - the source viewer this hover is registered with
      lineNumber - the line number for which information is requested
      Returns:
      the requested information or null if no such information exists
    • formatSource

      protected String formatSource(String content)
      Formats the source w/ syntax coloring etc. This implementation replaces tabs with spaces. May be overridden by subclasses.
      Parameters:
      content - the hover content
      Returns:
      content reformatted
    • getTabReplacement

      protected String getTabReplacement()
      Returns a replacement for the tab character. The default implementation returns a tabulator character, but subclasses may override to specify a number of spaces.
      Returns:
      a whitespace String that will be substituted for the tabulator character
    • decorateText

      protected String decorateText(List<? extends ILineDiffInfo> diffInfos, int maxLines)
      Takes a list of ILineDiffInfos and computes a hover of at most maxLines. Added lines are prefixed with a '+', changed lines with '>' and deleted lines with '-'.

      Deleted and added lines can even each other out, so that a number of deleted lines get displayed where - in the current document - the added lines are.

      Parameters:
      diffInfos - a List of ILineDiffInfo
      maxLines - the maximum number of lines. Note that adding up all annotations might give more than that due to deleted lines.
      Returns:
      a String suitable for hover display
    • computeLineRange

      protected Point computeLineRange(ISourceViewer viewer, int line, int min, int max)
      Computes the block of lines which form a contiguous block of changes covering line.
      Parameters:
      viewer - the source viewer showing
      line - the line which a hover is displayed for
      min - the first line in viewer's document to consider
      max - the last line in viewer's document to consider
      Returns:
      the selection in the document displayed in viewer containing line that is covered by the hover information returned by the receiver.
    • getHoverInfo

      public Object getHoverInfo(ISourceViewer sourceViewer, ILineRange lineRange, int visibleLines)
      Description copied from interface: IAnnotationHoverExtension
      Returns the object which should be presented in the a hover popup window. The information is requested based on the specified line range.
      Specified by:
      getHoverInfo in interface IAnnotationHoverExtension
      Parameters:
      sourceViewer - the source viewer this hover is registered with
      lineRange - the line range for which information is requested
      visibleLines - the number of visible lines
      Returns:
      the requested information or null if no such information exists
    • getHoverLineRange

      public ILineRange getHoverLineRange(ISourceViewer viewer, int lineNumber)
      Description copied from interface: IAnnotationHoverExtension
      Returns the range of lines that include the given line number for which the same hover information is valid.
      Specified by:
      getHoverLineRange in interface IAnnotationHoverExtension
      Parameters:
      viewer - the viewer which the hover is queried for
      lineNumber - the line number of the line for which a hover is displayed for
      Returns:
      the computed line range or null for no range
    • canHandleMouseCursor

      public boolean canHandleMouseCursor()
      Description copied from interface: IAnnotationHoverExtension
      Returns whether the provided information control can interact with the mouse cursor. I.e. the hover must implement custom information control management.
      Specified by:
      canHandleMouseCursor in interface IAnnotationHoverExtension
      Returns:
      true if the mouse cursor can be handled
    • getHoverControlCreator

      public IInformationControlCreator getHoverControlCreator()
      Description copied from interface: IAnnotationHoverExtension
      Returns the hover control creator of this annotation hover.
      Specified by:
      getHoverControlCreator in interface IAnnotationHoverExtension
      Returns:
      the hover control creator
    • getInformationPresenterControlCreator

      public IInformationControlCreator getInformationPresenterControlCreator()
      Description copied from interface: IInformationProviderExtension2
      Returns the information control creator of this information provider.
      Specified by:
      getInformationPresenterControlCreator in interface IInformationProviderExtension2
      Returns:
      the information control creator or null if none is available