You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: language plugin architecture for multi-language support
Replace hardcoded per-language logic scattered across ~10 files with
a source-level plugin system. Each language (Go, Python, Java,
TypeScript) registers itself via init() and implements the
LanguagePlugin interface. The core framework iterates plugins for
derivation, display, unlink hints, scaffolding, and link operations.
Key changes:
- New internal/language/ package with plugin registry and interfaces
- Optional interfaces via type assertion: Scaffolder, PostGenHook,
Linker, DocContributor
- Manifest/record schema: flat per-language fields replaced with
Languages map[string]config.LanguageCoords
- Commands (unlink, gen, link, inspect, show, release) now iterate
plugins instead of hardcoding per-language if-blocks
- Doc contribution system: plugins embed markdown fragments assembled
by cmd/docgen into docs/_generated/ includes
- Developer guide (internal/language/CONTRIBUTING.md) for adding
new language plugins
0 commit comments