DSLs + AI Integration

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

What is a DSL?

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

type Item {
    text ItemNumber;
    text Name;
    number Quantity format "[0-9]+" with "Must specify a number"
};

type Address {
    text Street1;
    text Street2 optional;
    text City;
    text State = "CA";
    text Zip
};

Warp plugin

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

Visual Studio — available VS Code — planned
  • Feature 1

    Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

  • Feature 2

    Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

  • Feature 3

    Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

  • Feature 4

    Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

  • Feature 5

    Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

  • Feature 6

    Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis.

Spec editor with live DSL sync
Spec editor with live DSL sync
Spec types → typed F# models
Spec types → typed F# models
Spec endpoint → typed route
Spec endpoint → typed route

AI code review for WebSharper (VS Code)

Review, explain, and fix code without leaving the editor. Private by default, with optional WebSharper-docs context.

Offline • Local Ollama Privacy-first • No cloud calls WebSharper-docs aware (RAG)
  • Stay in flow

    Get in-editor suggestions as a streamed diff. Accept or reject in one click.

  • Private by design

    Runs locally with Ollama. No cloud calls. Works great offline.

  • WebSharper-aware when needed

    Toggle RAG to enrich reviews with bundled WebSharper context.

  • Shadow Git snapshots

    Keep a private audit trail of accepted edits. Browse and roll back anytime.

  • Model switcher & preferences

    Pick your local coder model and steer tone, naming, and idioms via AI Preferences.

  • Works with huge files

    Large-file safety falls back to selection-only, so you never lose control.

Right-click: WS Code Review → Show Suggestion
Show Suggestion from context menu
Command Palette: Show Suggestion
Run from Command Palette
Diff preview with Accept/Reject
Streamed diff • Accept / Reject
Setup & commands (for developers)

Quick start

  1. Install from Marketplace or run code --install-extension souvanxay.ws-code-review.
  2. Install Ollama, pull a coder model (ollama pull qwen2.5-coder:7b-instruct), then ollama serve.
  3. Open an .fs file. Run WS Code Review: Show Suggestion via shortcut, context menu, or Command Palette.
  4. Accept/Reject the suggestion. Enable Shadow Git to snapshot accepts: "wsCodeReview.git.enable": true.
  5. For WebSharper-docs-aware reviews, toggle the RAG pill or enable "wsCodeReview.rag.enable": true, then Refresh.

Commands

  • WS Code Review: Show Suggestion
  • WS Code Review: Change Ollama Model
  • WS Code Review: Set / Show / Clear AI Preferences
  • WS Code Review: Show / Clear Shadow Git History
Read the guide