You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Shopware LSP is a Language Server Protocol implementation for Shopware and Symfony development. It provides IDE features (completion, go-to-definition, hover, diagnostics) for PHP, Twig, XML, and YAML files.
4
+
5
+
**Tech Stack:** Go backend with tree-sitter parsing, BBolt embedded database for indexes, TypeScript VSCode extension.
6
+
7
+
## Build & Test Commands
8
+
9
+
```bash
10
+
# Build
11
+
go build # Build LSP server binary
12
+
go build ./... # Build all packages
13
+
14
+
# Test
15
+
go test ./... # Run all tests
16
+
go test -race ./internal/... # Race detection (used in CI)
17
+
go test ./internal/php/... -v # Test specific package
18
+
go test -run TestFeatureIndexer # Run specific test
19
+
20
+
# Lint
21
+
golangci-lint run # Lint check (run before committing)
22
+
23
+
# VSCode extension
24
+
cd vscode-extension
25
+
npm install && npm run compile # Build extension
26
+
npm run check-types # Type check only
27
+
```
28
+
29
+
## Architecture
30
+
31
+
### Entry Point
32
+
`main.go` initializes the LSP server, registers all indexers and providers, then starts on stdin/stdout (JSON-RPC).
33
+
34
+
### Key Packages (`internal/`)
35
+
36
+
| Package | Purpose |
37
+
|---------|---------|
38
+
|`lsp/`| LSP protocol, server.go is the main handler |
0 commit comments