πŸ€– AI Assistant

πŸ“ What is the AI Assistant?

Get intelligent, educational help with your code from an AI assistant that acts like a supportive senior developer. Ask specific questions or get a comprehensive code review!

βš™οΈ Prerequisites

Required: OpenAI API Key configured in Settings (βš™οΈ gear button)

The AI assistant uses OpenAI's GPT models to analyze your code and answer questions.

πŸš€ How to Get Help

Step 1: Write some code

Create your project in any supported mode:

  • Web: HTML, CSS, and JavaScript files
  • Pascal: Pascal program code
  • Python: Python script
  • Node.js: JavaScript or TypeScript application
Step 2: Choose your approach

Ask a Question: Type your specific question in the text area (e.g., "How can I make this function more efficient?" or "Why isn't my CSS working?")

Get a Full Review: Leave the text area empty for a comprehensive code analysis

Step 3: Click "Get AI Help"

Use the Get AI Help button in the toolbar to request assistance.

πŸ“‹ What You'll Get

For Questions: Focused, educational answers to your specific questions with code references and explanations.

For Full Reviews: Comprehensive feedback including:

  • Summary: Overview of your code in plain English
  • Strengths: What you're doing well
  • High-Priority Fixes: Critical issues to address first
  • Improvements by Category:
    • Correctness & bug fixes
    • Readability & style
    • Maintainability
    • Performance optimizations
    • Security & accessibility (for web projects)
  • Learning Opportunities: Common pitfalls and misconceptions
  • Testing Ideas: Simple steps to verify your code
  • Practice Exercises: Next steps for skill development
  • Overall Rating: Score out of 10 with encouragement

πŸ’‘ Tips for Better Help

  • Be specific with questions: "Why isn't my button clickable?" is better than "My button doesn't work"
  • Include context: Mention what you're trying to achieve
  • Complete code: Ensure your code is functional or nearly complete for best results
  • Mode-specific focus:
    • Web: Accessibility, cross-browser compatibility, responsive design
    • Pascal: Typing, procedures, flow control, algorithm logic
    • Python: PEP 8 style, error handling, best practices, data structures
    • Node.js: Async patterns, TypeScript usage, security, performance
  • Learning mindset: The AI focuses on education and understanding, not just fixing problems
Console Output

            
$
πŸ”§ Git Workflow

πŸ“‹ How the Git Terminal Works

  • Virtual Workspace: Operates on the current mode's files (Web, Pascal, Python, Node JS/TS)
  • No Navigation: You don't need to cd anywhere; it uses files from the active mode/tabs
  • GitHub Integration: Uses your GitHub token (set in Settings) for push operations
  • Available Commands: Type help in the Git panel to see supported commands

βš™οΈ Prerequisites

Required: Open Settings (βš™οΈ gear button) β†’ paste your GitHub Token β†’ Save β†’ Test

This is required for push operations to work.

πŸš€ Typical Workflow

Step 1: Initialize repo and stage files

Open the Git panel (right-side "Git" tab) and run these commands:

# Initialize a repo for the current mode's files
init

# See what's tracked
status

# Stage everything from the current mode
add .
Step 2: Commit your changes
commit -m "Initial commit"
Step 3: Set main branch (if needed)
branch -M main
Step 4: Create remote and push
Option A: If create-repo is supported
# Create a GitHub repo and set it as origin
create-repo my-learning-project --private
push -u origin main
Option B: Manual repo creation
  1. Manually create an empty repo on GitHub (no README)
  2. Then run:
remote add origin https://github.com/<your-username>/<your-repo>.git
push -u origin main

πŸ“ Important Notes

  • Mode-specific files: Current mode determines what gets added/committed
    • Web β†’ HTML/CSS/JS tabs
    • Python β†’ .py editor content
    • Node β†’ JS/TS file content
  • Verification: Use status and log to verify staged and committed files
  • Command Support: If a command isn't recognized, type help for the supported subset