Skip to content

IDE Overview

The XPyCode IDE is a full-featured development environment built specifically for Python-in-Excel workflows. It provides everything you need to write, debug, and manage Python code within your Excel workbooks.

Main Window Layout

The IDE uses a flexible dock-based layout with these main components:

IDE Main Layout

XPyCode IDE main window with all panels visible

Left Dock: Navigation

The left side houses on panel:

  • Project Explorer - Navigate workbooks, sheets, and modules

Right Dock: Utilities

The right side houses multiple tabbed panels:

  • Functions - Publish Python functions to Excel
  • Packages - Install and manage Python packages
  • Events - Configure Excel event handlers
  • Objects - View and manage Python objects in memory

Center: Code Editor

The central area displays:

  • Welcome Tab - Quick start guide and recent files
  • Monaco Editor Tabs - One tab per open Python module
  • Powered by Microsoft's Monaco Editor (same as VS Code)
  • Full syntax highlighting, IntelliSense, and diagnostics

Bottom Dock: Console and Debug

The bottom section contains:

  • Console - Output, errors, and execution logs
  • Debug Panel - Variables, call stack, watch expressions, and debug console (visible during debugging)

Top: Menu Bar and Toolbar

  • File - Settings, exit
  • Run - Run functions
  • Debug - Start debugging, step controls, breakpoint management
  • View - Views setup
  • Advanced - Advanced functions (Restart Kernel, ...)
  • Help - About, documentation links

Key Features

1. Workbook-Centric Organization

Each Excel workbook has its own:

  • Python kernel (isolated execution environment)
  • Set of Python modules
  • Package installation
  • Published functions and events
  • Objects keeper (save and reuse python objects)

This prevents conflicts between different Excel projects and allows each workbook to have different dependencies.

2. Auto-Save

XPyCode automatically saves your code changes with no action required from you, except saving the Excel workbook itself.

Auto-Save Behavior

Changes are saved to the kernel for immediate use and also saved immediately in Excel. Your code will be persisted when you save the workbook.

3. Smart Code Execution

The IDE intelligently determines which function to run based on your cursor position:

  • If the cursor is within a function definition, that function is executed
  • If not, a warning is displayed in the console

Mandatory Arguments

If the selected function has mandatory arguments, an error will be raised. Ensure all required parameters are provided or use default values.

4. Integrated Debugging

Full debugging support with:

  • Breakpoints (F9 to toggle)
  • Step over (F10), step into (F11), step out (Shift+F11)
  • Variable inspection
  • Watch expressions
  • Call stack navigation

5. Real-Time Feedback

As you type, you get:

  • Syntax errors - Underlined in red
  • Warnings - Underlined in yellow
  • Code completion - Suggests functions, variables, methods
  • Hover information - Shows documentation and type info
  • Signature help - Parameter hints for functions

Themes and Appearance

XPyCode supports full theming:

IDE Themes

  • XPC Dark (default) - Dark theme optimized for long coding sessions
  • XPC Light - Light theme for bright environments
  • Midnight blue - Dark theme using dark blue instead of black
  • High Contrast - Maximum contrast for accessibility

Editor Themes

  • VS Dark - Visual Studio Code dark theme
  • VS Light - Visual Studio Code light theme
  • High Contrast Black - Maximum contrast for accessibility
  • High Contrast Light - Light high contrast theme
  • XPC Midnight blue - Dark theme using dark blue instead of black

Change themes in File → Settings → View → Themes & Appearance.

Theme Settings

Theme selection in Settings dialog

Window Management

Dock Panels

All panels can be:

  • Resized - Drag the splitters between panels
  • Closed - Click the X button (reopen from View menu)
  • Moved - Drag the title bar to dock elsewhere
  • Floated - Undock to create floating windows
  • Tabbed - Combine multiple panels in one dock area

Tab Management

Editor tabs support:

  • Multiple files open - Switch between modules with Ctrl+Tab

Quick Actions

The toolbar provides one-click access to common operations:

Icon Action Shortcut Description
▶️ Run F5 / Ctrl+R Execute current code
🐛 Debug Shift+F5 Start debugging

Project Structure

XPyCode organizes code hierarchically:

 📗 WorkbookName.xlsx
  ├── 🐍 module1.
  ├── 🐍 module2.
  └── 🐍 helpers.
  • Workbooks - Top-level items (one per open Excel file)
  • Modules - Python in-memory modules containing your code

Keyboard Shortcuts

Essential shortcuts for efficient coding:

Action Shortcut
Run code F5 or Ctrl+R
Debug code Shift+F5
Toggle breakpoint F9
Step over F10
Step into F11
Step out Shift+F11
Continue Shift+F5
Find Ctrl+F
Replace Ctrl+H
Go to line Ctrl+G

See the complete Keyboard Shortcuts Reference for all shortcuts.

Extensions and Integrations

Language Server Protocol

XPyCode includes a Python Language Server for:

  • Real-time linting with pyflakes
  • Advanced code completion with Jedi
  • Go to definition
  • Find references
  • Symbol search

Monaco Editor

The code editor is powered by Monaco Editor (from VS Code):

  • Multi-cursor editing
  • Column selection
  • Rich IntelliSense
  • Bracket matching
  • Code folding
  • Minimap (optional)

Performance Tips

For Large Modules

  • Use code folding to collapse functions
  • Disable minimap if it slows rendering: Settings → Editor → Minimap
  • Split large modules into smaller, focused files

For Many Workbooks

  • Close workbooks you're not actively using
  • Each workbook has its own kernel, which uses memory
  • The IDE shows only open workbooks

Next Steps

Explore each IDE component in detail:

  • Code Editor


    Deep dive into Monaco Editor features and capabilities.

    Editor Guide

  • Project Explorer


    Learn to navigate and organize your Python modules.

    Project Explorer

  • Console


    Understanding console output and log filtering.

    Console Guide

  • Debugging


    Master the debugger with breakpoints and inspection.

    Debugging Guide


Need Help?

If you encounter issues, check the Troubleshooting Guide or consult the specific component guides above.