Architecture Design Principles

Unique Architecture (Todo)

Cross-platform for share code between JetBrains IDE and VSCode.

feature todos:

  • use Kotlin to share code between JetBrains IDE and VSCode.
  • use Rust build for build LSP server to improve performance.

Event-Driven

Since VSCode is an event-driven system, we need to follow the event-driven architecture to handle the events.

So, we have two main parts:

  • VSCode-Editor event handler
  • VSCode-Webview event handler

IoC

We utilize Dependency Injection for provider management across various languages.

For IoC (Inversion of Control) implementation, our current design leverages inversify.

  • ProviderTypes.ts is a list of providers that can be injected into the system.
    • ChatContextProvider,
    • RelatedCodeProvider,
    • BuildToolProvider,
    • TestGenProvider,
    • Structurer,
    • ActionCreator,
  • ProviderContainer.config.ts is a container for all providers, which you can inject into the system.

Prompt Design Principles

All is about Context

Variable and Template

Dynamic context