A Language Server Protocol (LSP) implementation for Shopware development.
- Service ID completion in PHP, XML, and YAML files
- Navigation to service definitions from PHP, XML, and YAML
- Service code lens in PHP files showing service usage
- Parameter reference completion and navigation in XML files
- Service tag completion in XML files
- Service class completion in XML and YAML files
- Tag-based service lookup and navigation
- YAML service configuration support for class completion and service references
- Template path completion in Twig files (
extends,include,sw_extends,sw_includetags) - Template path completion in PHP files (
renderStorefrontmethod calls) - Go-to-definition for template paths in Twig and PHP files
- Twig block indexing and tracking
- Support for Shopware-specific Twig extensions and tags
- Icon name completion for
sw_icontags - Icon preview on hover for
sw_icontags (shows SVG preview inline)
- Snippet indexing and validation in Twig files
- Snippet completion in Twig files
- Diagnostics for missing snippets in Twig templates
- Quick Fix to add missing snippets
- Go-to-definition for snippet keys
- Hover support showing all available translations for a snippet key
- Route name completion in PHP (
redirectToRoutemethod) and Twig files (seoUrl,url,pathfunctions) - Go-to-definition for route names
- Route parameter completion
- Feature flag indexing and validation
- Go-to-definition for feature flags
- Feature flag completion in PHP files
- Snippet validation in Twig templates
- Theme icon validation in Twig templates (checks if referenced icons exist)
- Go 1.24 or higher
go buildRun the tests with:
go test ./...Or run tests with race condition detection:
go test -race ./...This project uses GitHub Actions for continuous integration:
- Tests are run on every push and pull request
- Code linting is performed using golangci-lint
- Builds are created for verification