# Prometeu VS Code Extension

VS Code bridge for Prometeu Studio.

This extension does **not** start the language server itself. It connects to the Prometeu Studio LSP server running locally.

```text
VS Code Extension
    -> vscode-languageclient
    -> TCP 127.0.0.1:7777
    -> Prometeu Studio Java/LSP4J
```

## Requirements

* Node.js
* npm
* VS Code
* Prometeu Studio running with the embedded LSP server enabled

The Studio LSP server must be listening on:

```text
127.0.0.1:7777
```

## Install dependencies

From this directory:

```bash
npm install
```

## Compile

```bash
npm run compile
```

This generates:

```text
out/extension.js
```

## Run in development mode

Open this extension folder in VS Code:

```bash
code .
```

Press:

```text
F5
```

This opens a second VS Code window called **Extension Development Host**.

In that second window, open a Prometeu project and create/open a file like:

```text
main.pbs
```

or:

```text
main.barrel
```

Expected output in:

```text
View -> Output -> Prometeu LSP
```

```text
Prometeu VS Code extension activated.
Connecting to Prometeu Studio LSP at 127.0.0.1:7777...
TCP connection established with Prometeu Studio.
Prometeu Studio LSP client started.
[Info] Hello from Prometeu Studio LSP
```

## Run commands manually

In the Extension Development Host window:

```text
Cmd+Shift+P
Prometeu: Connect to Studio LSP
```

To restart the client:

```text
Cmd+Shift+P
Prometeu: Restart Studio LSP
```

## Package as VSIX

```bash
npm run compile
vsce package --allow-missing-repository
```

This creates a file like:

```text
prometeu-vscode-extension-0.0.1.vsix
```

## Install locally

```bash
code --install-extension prometeu-vscode-extension-0.0.1.vsix --force
```

Then open a Prometeu project normally:

```bash
code /path/to/prometeu-project
```

With Prometeu Studio running, opening `.pbs` or `.barrel` files should activate the extension and connect to the Studio LSP server.

## Configuration

Default settings:

```json
{
  "prometeu.studio.host": "127.0.0.1",
  "prometeu.studio.port": 7777
}
```

These can be changed in VS Code settings if needed.

## Current status

The extension currently provides only the minimal LSP client bridge:

* registers `.pbs`
* registers `.barrel`
* connects to Prometeu Studio over TCP
* starts a VS Code `LanguageClient`
* receives LSP messages from the Java/LSP4J server

The Studio remains the source of trut
