Class LineChangeHover

    • Constructor Detail

      • LineChangeHover

        public LineChangeHover()
    • Method Detail

      • 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