Skip to content

Latest commit

 

History

History
95 lines (72 loc) · 3.47 KB

File metadata and controls

95 lines (72 loc) · 3.47 KB

Developer Documentation

Welcome to the analyzer-lsp developer documentation! This section contains guides and references for contributors working on the analyzer codebase.

Getting Started

New contributors should read these in order:

  1. Architecture - Understand the codebase structure and package organization
  2. Development Setup - Set up your development environment with required tools
  3. Testing - Learn how to run and write tests
  4. See the main CONTRIBUTING.md for code style, PR process, and contribution guidelines

Documentation Index

Core Guides

  • 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-all and E2E tests
    • Writing tests for new rules and providers
    • Debugging test failures
  • 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

Quick Reference

Common Commands

# 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 containers

Project Structure

analyzer-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!

Additional Resources

Getting Help

Contributing to Documentation

Found something missing or unclear? Documentation improvements are always welcome! Please submit a PR or open an issue.