gobo-vscode

Gobo Eiffel for Visual Studio Code

Bring the power of the Gobo Eiffel toolchain directly into Visual Studio Code, providing full language support for the Eiffel programming language. This extension lets you edit, navigate, compile and run Eiffel programs seamlessly — ideal for both beginners discovering Eiffel and experienced developers who want an efficient workflow.

🚀 Quick Start

Start coding in Eiffel instantly — from a single file to full multi-library projects.
Gobo Eiffel supports both a simple Beginner workflow and an advanced Workspace + ECF workflow.

1️⃣ Beginner: Hello World

New to Eiffel? Start with a minimal project in seconds:

  1. Open an empty folder in VS Code.

  2. Create a new Eiffel project:
    • Open the Command Palette with Ctrl+Shift+P (or Cmd+Shift+P on MacOS).
    • Type Gobo Eiffel and select Gobo Eiffel: Create Eiffel Project….
    • Enter a project name such as hello_world and press Enter.
  3. If this is your first time using the extension, VS Code will guide you through installing Gobo Eiffel.

  4. A ready-to-run Eiffel project is created automatically, including its ECF configuration file.

You can now edit, customize, compile and run your Eiffel program directly from VS Code.

2️⃣ Advanced: Workspace with ECF File

For larger Eiffel projects with multiple classes, libraries, or targets:

  1. Open your Eiffel project folder in VS Code.

  2. When prompted, select the workspace ECF file, target, and optional environment variables used by the project.

  3. The extension automatically enables advanced Eiffel tooling across the workspace, including:

    • Code navigation (definitions, implementations, type definitions)
    • Feature callers/callees exploration
    • Client/supplier relationship analysis
    • Inheritance hierarchy exploration
    • Context-aware code completion
    • Inline error reporting
    • Compilation and execution

🧩 At a Glance

Capability Description
Syntax highlighting Full Eiffel syntax grammar with modern highlighting
Code completion Context-aware completion for classes and features
Navigation Jump to definitions, implementations and types
Hierarchy exploration Call hierarchy, client/supplier relationships and inheritance trees
Compilation Compile and run Eiffel programs directly from VS Code
Error reporting Inline errors and integration with the Problems panel
Execution Launch configurations
Integrated terminal Preconfigured Gobo Eiffel command-line environment

✨ Features

🧭 Code Navigation

The Gobo Eiffel extension provides rich navigation features that are fully integrated with standard VS Code commands and tailored to the Eiffel language.

You can quickly explore classes, features, inheritance hierarchies, and type relationships across your entire workspace, including library code.

Symbol Navigation

Hierarchy Exploration

Understand relationships between features and classes through call hierarchies, dependency relationships, and inheritance trees.

⚙️ User Settings

You can customize the extension in VS Code’s Settings (File → Preferences → Settings → Extensions → Gobo Eiffel) or via settings.json.

Setting Description Default
gobo-eiffel.automaticUpdateCheck Automatically checks for new Gobo Eiffel releases. true
gobo-eiffel.useNightlyBuild Use Gobo Eiffel nightly build instead of the latest release. false
gobo-eiffel.workspaceEcfFile ECF file to analyze Eiffel classes in current workspace. null
gobo-eiffel.workspaceEcfTarget Target in ECF file to analyze Eiffel classes in current workspace. null
gobo-eiffel.workspaceEnvironmentVariables Environment variables used when resolving ECF files. {}

The last three settings are workspace-specific settings used to specify the workspace ECF file, which allows the Eiffel analyzer to discover and analyze the classes used in the current project.

You can also create multiple launch configurations in .vscode/launch.json with different arguments or environment variables for each program.

📦 Commands

All commands are available from the Command Palette or contextual menus:

📚 More Information


Happy Eiffel coding in VS Code! 🚀