Jake Feature Reference¶
This comprehensive guide documents all of Jake's features and capabilities. Use this reference to understand the full extent of Jake's functionality and how to use each feature effectively.
Context Sharing System¶
Jake's context sharing system allows it to understand your LabVIEW code and environment through special markers.
- @bd - Share block diagram context
- @fp - Share front panel context
- @selection - Share selected objects
- @vi - Share VI properties
- @project - Share project context
- @classes - Share class information
Analysis Commands¶
Specialized commands for specific types of analysis:
- /explain (?) - Get detailed explanations
- /pattern ($) - Analyze design patterns
- /review (!) - Get quality review and suggestions
- /comment (+) - Get documentation suggestions
Block Diagram Context (@bd)¶
The @bd marker shares your current VI's block diagram with Jake.
Usage: @bd
User: Can you explain this code? @bd
Jake: Sure, let me look at your block diagram...
Capabilities:
-
Analyzes data flow and execution order
-
Identifies design patterns and architectures
-
Evaluates error handling implementation
-
Assesses performance considerations
-
Reviews code quality and maintainability
Front Panel Context (@fp)¶
The @fp marker provides information about your VI's front panel.
Usage: @fp
Example: "Review my control layout @fp"
Capabilities:
-
Evaluates UI design and usability
-
Reviews control and indicator organization
-
Assesses type definitions usage
-
Analyzes control properties
-
Reviews documentation strings
Selection Context (@selection)¶
The @selection marker focuses Jake's analysis on specific selected objects.
Usage: @selection
Example: "Why isn't this loop working? @selection"
Capabilities:
-
Analyzes specific code sections
-
Reviews selected controls or indicators
-
Evaluates specific error handling paths
-
Examines particular design implementations
-
Reviews local documentation
VI Properties Context (@vi)¶
The @vi marker shares general VI properties and settings.
Usage: @vi
Example: "Check my VI's configuration @vi"
Capabilities:
-
Reviews VI properties and settings
-
Analyzes connector pane configuration
-
Evaluates VI characteristics
-
Reviews execution settings
-
Assesses reentrance configuration
Project Context (@project)¶
The @project marker provides information about the LabVIEW project structure.
Usage: @project
Example: "Review my project architecture @project"
Capabilities:
-
Analyzes project organization
-
Reviews dependency relationships
-
Evaluates build specifications
-
Assesses library usage
-
Reviews project documentation
Class Context (@classes)¶
The @classes marker shares information about LabVIEW classes.
Usage: @classes
Example: "Show my class hierarchy @classes"
Capabilities:
-
Analyzes class relationships
-
Reviews inheritance structures
-
Evaluates method implementations
-
Assesses property definitions
-
Reviews dynamic dispatch usage
Analysis Commands¶
Jake provides specialized commands for different types of analysis.
Explain Command (/explain or ?)¶
Provides detailed explanations of code functionality.
Usage: /explain
or ?
Example: "? @bd" or "/explain @bd"
Capabilities:
-
Describes code functionality
-
Explains data flow
-
Details execution order
-
Clarifies implementation details
-
Provides technical context
Pattern Command (/pattern or $)¶
Analyzes and suggests design patterns.
Usage: /pattern
or $
Example: "$ @bd" or "/pattern @bd"
Capabilities:
-
Identifies existing patterns
-
Suggests pattern improvements
-
Reviews pattern implementation
-
Provides pattern guidance
-
Explains pattern benefits
Review Command (/review or !)¶
Performs comprehensive code review.
Usage: /review
or !
Example: "! @bd" or "/review @bd"
Capabilities:
-
Evaluates code quality
-
Suggests improvements
-
Reviews error handling
-
Assesses performance
-
Checks documentation
Comment Command (/comment or +)¶
Provides documentation suggestions.
Usage: /comment
or +
Example: "+ @bd" or "/comment @bd"
Capabilities:
-
Generates VI documentation
-
Creates control descriptions
-
Suggests inline comments
-
Provides usage examples
-
Creates technical specifications
Visualization Features¶
Jake can create various types of diagrams to visualize code structure and relationships.
State Machine Diagrams¶
Creates visual representations of state machine implementations.
Capabilities:
-
Shows state transitions
-
Displays decision points
-
Illustrates error handling
-
Maps data flow
-
Documents state behavior
Class Hierarchy Diagrams¶
Visualizes class relationships and inheritance structures.
Capabilities:
-
Shows inheritance relationships
-
Displays method overrides
-
Illustrates property inheritance
-
Maps dynamic dispatch
-
Documents class interfaces
Sequence Diagrams¶
Creates diagrams showing interaction sequences and timing.
Capabilities:
-
Shows message flow
-
Displays timing relationships
-
Illustrates parallel operations
-
Maps dependencies
-
Documents process flow
Data Flow Diagrams¶
Visualizes data movement and transformation through systems.
Capabilities:
-
Shows data paths
-
Displays transformations
-
Illustrates data storage
-
Maps data dependencies
-
Documents data handling
Integration Features¶
Jake integrates with various LabVIEW development tools and resources.
VIPM Integration¶
Searches and provides guidance for VI Package Manager packages.
Capabilities:
-
Searches package database
-
Evaluates package options
-
Suggests implementation approaches
-
Reviews compatibility
-
Provides usage guidance
Project Integration¶
Integrates with LabVIEW project management features.
Capabilities:
-
Analyzes project structure
-
Reviews build specifications
-
Evaluates dependencies
-
Assesses library usage
-
Reviews project documentation
Best Practice Detection¶
Jake automatically identifies and suggests LabVIEW best practices.
Capabilities:
-
Error handling patterns
-
Memory management
-
Performance optimization
-
Code organization
-
Documentation standards
Advanced Features¶
Check out the Advanced Features page for more tips and tricks on working with Jake.
Regular Updates¶
Jake's capabilities are continuously expanding. Check the Release Notes for the latest features and improvements.
This reference will be updated as new features are added to Jake.