.. _Tooltips:

Tooltips
========

.. rst-class:: lead

  A tooltip is a brief, informative message that appears when a user interacts with an element in a graphical user interface (GUI). In DVT tooltips are initiated through a mouse-hover gesture.

The below table highlights all the available areas from where tooltips can be triggered:

.. list-table::

   * - Code
     - Place the mouse cursor over an identifier in the editor. The tooltip will display information about the element under cursor including:  
       the comment associated with the element's declaration (written above or inline), or the LRM documentation for predefined API  
       
       .. figure:: ../../images/vlogdt-tooltip-comment.png  
       
       the scoping information for types (enclosing package)  
       
       .. figure:: ../../images/vlogdt-tooltip-scoping.png  
        
       the full signature of methods  
       
       .. figure:: ../../images/vlogdt-tooltip-function.png  
        
       the direction of ports  
       
       .. figure:: ../../images/vlogdt-tooltip-port.png  
        
       Tooltips are available for all the types, methods, fields, macros, etc. from the source code files that DVT analyzes in your project.
   * - Folded regions
     - Place the mouse cursor over the + sign of a folded code region. The tooltip will display the folded region contents:  
     
       .. figure:: ../../images/vlogdt-collapsed-code.png
   * - Macros Values
     - .. figure:: ../../images/vlogdt-macro-value-info.png
   * - Parameter Values
     - .. figure:: ../../images/vlogdt-param-value-info.png
   * - Override indications
     - Place the mouse cursor over an override annotation on the left vertical ruler. The tooltip will display the overridden method signature. 
       
       .. figure:: ../../images/vlogdt-override-tooltip.png
   * - Problems
     - Place the mouse cursor over an error or warning annotation on the left vertical ruler of the editor. The tooltip will display the error or warning message:  
       
       .. figure:: ../../images/vlogdt-problem-tooltip-info.png  
        
       If multiple problems are reported on the same line, an annotation list is displayed: 
       
       .. figure:: ../../images/vlogdt-problem-list-info.png
   * - WaveDrom Diagrams
     - Place the mouse cursor over a JSON waveform description written inside a comment. The tooltip will display :ref:`WaveDrom Timing Diagrams`, if the descriptions are compliant with the WaveDrom library standard:  
       
       .. figure:: ../../images/wavedrom-tooltip.png
   * - UVM Register Bit Field Diagrams
     - Place the mouse cursor over an UVM register class. The tooltip will display bit field diagrams, by parsing the UVM configuration methods:  
     
       .. figure:: ../../images/common/bitfield_tooltip.png
   * - | Method Call Arguments Mapping  
       |
       | Macro Call Arguments Mapping   
       |
       | Ordered Parameter Mapping  
       |
       | Ordered Port Connection Mapping
     - Place the editor cursor on a method call argument and press :kbd:`Ctrl+Shift+Space`. The tooltip will list all the method declaration arguments along with their name, type, direction and default value. Move the editor cursor using the arrow keys to inspect argument mapping - the argument under cursor is always highlighted in boldface:  
     
       .. figure:: ../../images/common/sv_context_menu_popup.png  
        
       The same functionality is available for macro calls, instance parameter connections and instance port connections:  
       
       .. figure:: ../../images/common/sv_context_menu_macro_call.png   
        
       .. figure:: ../../images/common/sv_positional_tooltips_parameters_vlog.png 
        
       .. figure:: ../../images/common/sv_context_menu_ordered_pc.png
