Add Solidity language support#563
Conversation
PR Overview: Add Solidity Language SupportSummaryThis PR adds first-class Solidity language support to Probe, enabling full parsing, symbol extraction, search, query, and LSP indexing capabilities for Files Changed AnalysisCore Changes (30 files, +165/-15 lines): Dependencies & Build
Documentation Updates (9 files)
CLI & Language Detection
LSP Daemon Integration (11 files)
Symbol & Language Support
Architecture & Impact AssessmentWhat This PR Accomplishes
Key Technical Changes1. Tree-Sitter Integration
2. Symbol Kind Mapping "function_definition" | "fallback_receive_definition" => SymbolKind::Function
"constructor_definition" | "modifier_definition" => SymbolKind::Method
"contract_declaration" | "library_declaration" => SymbolKind::Class
"interface_declaration" => SymbolKind::Interface
"struct_declaration" => SymbolKind::Struct
"enum_declaration" => SymbolKind::Enum
"event_definition" | "error_definition" => SymbolKind::Type
"state_variable_declaration" => SymbolKind::Variable
"user_defined_type_definition" => SymbolKind::Type3. Language Rules
4. Test Detection
5. Project Detection
Affected System Componentsgraph TD
A[CLI Commands] --> B[Language Factory]
B --> C[Solidity Language Impl]
C --> D[Tree-Sitter Parser]
D --> E[Symbol Extraction]
E --> F[Query/Search]
G[LSP Daemon] --> H[Language Detector]
H --> I[Parser Pool]
I --> D
D --> J[AST Extractor]
J --> K[Symbol Database]
K --> L[FQN Generator]
L --> M[Language Rules]
M --> N[UID Generator]
O[Workspace Resolver] --> P[Project Detection]
P --> Q[Marker Files]
Q --> R[foundry.toml]
Q --> S[hardhat.config.*]
Component Impact:
Scope Discovery & Context ExpansionImmediate Impact
Related Files to Verify
Cross-Module Integration
Testing StrategyBased on the PR description, the author verified:
Potential Edge Cases
Verification StepsThe author performed comprehensive verification:
Recommendations for Reviewers
Metadata
Powered by Visor from Probelabs Last updated: 2026-05-20T07:07:07.584Z | Triggered by: pr_opened | Commit: 671818a 💡 TIP: You can chat with Visor using |
✅ Security Check PassedNo security issues found – changes LGTM. ✅ Security Check PassedNo security issues found – changes LGTM. \n\nArchitecture Issues (6)
Quality Issues (1)
Powered by Visor from Probelabs Last updated: 2026-05-20T06:47:44.307Z | Triggered by: pr_opened | Commit: 671818a 💡 TIP: You can chat with Visor using |
Summary
.solthrough search, extract, symbols, query, parser pools, docs, and LSP/indexing helperslatest()are not marked as testsVerification
Dogfood
masteratcd05883078060e0cd8a7bd36636944570dbe1722probe symbolsacrosscontracts/governance: 23.solfiles, 869 lines of outline outputprobe search quorum ... --language solidity --format jsonprobe extract .../Governor.sol#castVote --format plainand got the expectedcastVotefunction blockprobe querywith a Solidity function pattern againstGovernor.soland matched public virtual functions