---
# System prepended metadata

title: LSP - VSCode extension
tags: [implemented]

---

# LSP - VSCode extension
**Author**: FTL Team
**Status**: ==draft== / in-review / accepted / rejected

## Description

FTL build errors will be shown inline in vscode to improve the developer/debug experience.

## Goals

- Propagate FTL schema validation and build errors to VScode via an LSP 

## Non-Goals (optional)

- Implementing a full featured VSCode extension with custom UI

## Design

```mermaid
graph LR
    go-runtime -- STDERR --> FTL
    kotlin-runtime -- STDERR --> FTL
    FTL --> STDERR
    FTL --> Language-Server
    Language-Server --> VSCode
```

Link to quick sketches:
https://excalidraw.com/#room=a2a7fb95e8afb032e0bc,SNfXkJvgCBfyGpYqFrCZyQ

## Rejected Alternatives (optional)

Injecting language server into `buildengine` causes tight coupling between the two.

Using a custom error struct in go-runtime and sending custom errors to the LSP. This solution works for `go` but will not work for other runtimes.

