gnn-lsp-server · git:20260907.1811930 · 2026-09-07 · sha256 aec53351f84c7b67

gnn-lsp-server git:20260907.1811930A

Immutable. This exact content is served forever at /api/v1/blob/aec53351f84c7b67.

---
name: gnn-lsp-server
description: GNN Language Server Protocol integration. Use when starting editor diagnostics, checking hover behavior, or validating LSP support for GNN files.
---

# Core Skill: `lsp_server`

**Function**: Language Server Protocol implementation providing real-time GNN file diagnostics and hover information for LSP-compatible editors.

## Example Flow

```bash
# Start the GNN Language Server via CLI
gnn lsp

# Or directly via Python module
python -m gnn.lsp
```

## Programmatic Usage

```python
from gnn.lsp import create_server, start_server

# Create and configure the LSP server
server = create_server()

# Start on stdio (standard usage for editor integration)
start_server()
```

## Features

- **Diagnostic Publishing**: Validates GNN sections, state-space variables, and connections on file open and save
- **Hover Information**: Displays variable name, dimensions, type, and default values at cursor position
- **Error Extraction**: Maps parse errors to line numbers for inline display in editors
- **Graceful Fallback**: Works without `pygls` by providing a clear installation message
- **VS Code Integration**: Compatible with any LSP client via stdio transport


## MCP Tools

This module registers tools with the GNN MCP server (see `mcp.py`):

- None