Welcome to the analyzer-lsp developer documentation! This section contains guides and references for contributors working on the analyzer codebase.
New contributors should read these in order:
- Architecture - Understand the codebase structure and package organization
- Development Setup - Set up your development environment with required tools
- Testing - Learn how to run and write tests
- See the main CONTRIBUTING.md for code style, PR process, and contribution guidelines
-
Architecture - Package overview, architecture diagrams, and data flow
- Top-level package descriptions
- Exposed types and interfaces
- System architecture and component interaction
-
Testing - Comprehensive testing guide
- Running unit tests with
go test - Understanding
make test-alland E2E tests - Writing tests for new rules and providers
- Debugging test failures
- Running unit tests with
-
Development Setup - Setting up your development environment
- Installing Go and dependencies
- Installing LSP servers for testing
- Setting up debugging tools
- IDE configuration
-
Provider Development - Creating new language providers
- Provider architecture and interfaces
- Implementing a new external provider
- Testing and debugging providers
- Best practices
# Building
make build # Build all components
make analyzer # Build main analyzer binary
make build-external # Build all external providers
# Testing
go test ./... # Run all unit tests
make test-all # Run complete E2E test suite
make test-java # Test Java provider
make test-generic # Test Go/Python/Node.js providers
make test-analyzer # Full integration test
# Development
make run-external-providers-pod # Start provider containers for testing
make stop-external-providers-pod # Stop provider containersanalyzer-lsp/
├── cmd/ # CLI entry points
├── engine/ # Rule execution engine
├── provider/ # Provider abstraction and interfaces
├── parser/ # YAML rule parser
├── lsp/ # LSP protocol types and client
├── external-providers/ # Language-specific providers
├── output/ # Output data structures
├── examples/ # Test data and sample projects
└── docs/ # Documentation
└── development/ # You are here!
- Main Documentation - User-facing documentation index
- Rules Documentation - Rule syntax and examples
- Provider Documentation - Provider configuration
- Output Format - Understanding analyzer output
- Versioning - Version policy and releases
- Check existing GitHub Issues
- Review the CONTRIBUTING.md guide
- Join the Konveyor community discussions
Found something missing or unclear? Documentation improvements are always welcome! Please submit a PR or open an issue.