Skip to content

feat(tooling): create VS Code extension #4

Description

@dev-queiroz

Summary

Create an official Visual Studio Code extension for Forge.

The extension should provide a first-class editing experience for .forge files, making contract authoring easier, faster, and less error-prone.

This initiative represents the first step toward a complete Forge developer tooling ecosystem.


Motivation

Language adoption depends not only on language features, but also on the quality of its tooling.

Developers expect modern language support directly inside their editor, including:

  • Syntax highlighting
  • Diagnostics
  • Autocomplete
  • Navigation assistance

Providing an official VS Code extension will significantly improve the experience of writing and maintaining Forge contracts.


Goals

The extension should provide support for .forge files and integrate with the existing Forge language infrastructure whenever possible.


Initial Features

Syntax Highlighting

Provide highlighting for:

  • namespace
  • contract
  • invariant
  • Primitive types
  • Identifiers
  • Comments (if/when supported)

Diagnostics

Display parser and validation errors directly in the editor.

Examples:

  • Invalid syntax
  • Unknown types
  • Invalid declarations
  • Semantic validation failures

Autocomplete

Provide completion suggestions for:

  • Language keywords
  • Primitive types
  • Context-aware contract declarations

Examples:

cont|

contract

and

id: |

string
int
float
decimal
boolean
uuid
datetime
date

File Association

Automatically recognize:

*.forge

files as Forge source files.


Requirements

  • Create a dedicated VS Code extension package.
  • Support .forge files.
  • Provide syntax highlighting.
  • Provide diagnostics.
  • Provide autocomplete suggestions.
  • Reuse existing language infrastructure where practical.
  • Ensure compatibility with current Forge v0.1 syntax.

Acceptance Criteria

  • VS Code extension created
  • .forge files recognized automatically
  • Syntax highlighting implemented
  • Diagnostics displayed inside the editor
  • Autocomplete suggestions available
  • Installation instructions documented
  • Example screenshots added to documentation

Out of Scope

The following features are intentionally excluded from this issue:

  • Formatter
  • Refactoring tools
  • Rename symbol
  • Go to definition
  • Hover documentation
  • Code actions
  • Quick fixes
  • Debugger integration

These features may be explored in future releases.


Notes

Editor tooling is one of the most visible parts of a language ecosystem.

The goal of this issue is not to provide a complete IDE experience immediately, but to establish a solid foundation that makes Forge practical and pleasant to use in real-world projects.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions