How integrated-application-development/delphilint works
DelphiLint brings SonarDelphi analysis into Delphi workflows; this tree contains its Java analysis server and a VS Code companion. The principal visible workflow is a VS Code command selecting Delphi inputs and project settings, starting the Java server, sending analysis requests, and displaying diagnostics and fixes. The server initializes plugins and an analysis engine, analyzes files, then returns issues. README capabilities include standalone and SonarQube-connected modes, rule retrieval, project-properties support, and quick fixes. Several IDE-side and server details are represented only by documentation or enclosing source directories; their wiring is omitted where excerpts do not establish it.
Main entry points: AnalysisServer.java Request dispatcher · command.ts Analysis commands · AnalysisOrchestrator.java Analysis orchestrator · SonarHost.java Sonar host access
Components 21
VS Code Companion
- Analysis commands
companion/delphilint-vscode/src/command.ts - Project selection
companion/delphilint-vscode/src/delphiProjectUtils.ts - Extension settings
companion/delphilint-vscode/src/settings.ts - Lint client
companion/delphilint-vscode/src/server.ts - Issue display
companion/delphilint-vscode/src/display.ts - Progress status
companion/delphilint-vscode/src/statusBar.ts
Server Protocol
- Server startup
server/delphilint-server/src/main/java/au/com/integradev/delphilint/App.java - TLV connection
server/delphilint-server/src/main/java/au/com/integradev/delphilint/server/TlvConnection.java - Request dispatcher
server/delphilint-server/src/main/java/au/com/integradev/delphilint/server/AnalysisServer.java - Request and response types
server/delphilint-server/src/main/java/au/com/integradev/delphilint/server/message
Analysis Engine
- Analysis orchestrator
server/delphilint-server/src/main/java/au/com/integradev/delphilint/analysis/AnalysisOrchestrator.java - Engine configuration
server/delphilint-server/src/main/java/au/com/integradev/delphilint/analysis/EngineStartupConfiguration.java - Issues and fixes
server/delphilint-server/src/main/java/au/com/integradev/delphilint/analysis/DelphiIssue.java
Analysis Integrations
- Plugin downloads
server/delphilint-server/src/main/java/au/com/integradev/delphilint/server/plugin/CachingPluginDownloader.java - Fallback plugin
server/delphilint-server/src/main/java/au/com/integradev/delphilint/maintenance/FallbackPluginProvider.java - Sonar host access
server/delphilint-server/src/main/java/au/com/integradev/delphilint/remote/SonarHost.java - SonarQube API
server/delphilint-server/src/main/java/au/com/integradev/delphilint/remote/sonarqube/HttpSonarApi.java
Other components
- VS Code user
- Delphi source files
- SonarQube instance
- Local plugin cache
Connections 26
- VS Code user → Analysis commands: runs commands
- Analysis commands → Project selection: selects project
- Analysis commands → Extension settings: reads settings
- Analysis commands → Delphi source files: selects inputs
- Analysis commands → Lint client: requests analysis
- Analysis commands → Progress status: updates progress
- Analysis commands → Issue display: publishes issues
- Lint client → Server startup: starts Java process
- Lint client → TLV connection: exchanges TLV
- Server startup → Request dispatcher: creates server
- Server startup → TLV connection: runs connection
- TLV connection → Request dispatcher: dispatches requests
- Request dispatcher → Request and response types: builds responses
- Request dispatcher → Analysis orchestrator: runs analysis
- Request dispatcher → Plugin downloads: retrieves plugins
- Request dispatcher → Fallback plugin: selects fallback
- Request dispatcher → Sonar host access: creates host
- Request dispatcher → Issues and fixes: returns results
- Analysis orchestrator → Engine configuration: configures engine
- Analysis orchestrator → Sonar host access: loads active rules
- Analysis orchestrator → Issues and fixes: post-processes issues
- Plugin downloads → Sonar host access: fetches remote plugins
- Plugin downloads → Local plugin cache: caches plugins
- Fallback plugin → Local plugin cache: stores fallback
- Sonar host access → SonarQube API: uses HTTP API
- SonarQube API → SonarQube instance: requests rules