34 docs complete readme#39
Conversation
There was a problem hiding this comment.
Pull request overview
Expands project documentation to make AL2DBML easier to install/configure and to document key architecture/parsing behavior, closing issue #34.
Changes:
- Replaces the minimal README with installation steps, command usage, configuration, and pre-commit hook docs.
- Extends
docs/ARCHITECTURE.mdwith CLI-layer details (strategies, services, DI integration). - Adds
docs/AL_PARSING.mddescribing supported AL object types and parsing rules/edge cases.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| README.md | Adds end-user documentation (install/usage/config/hook). |
| docs/ARCHITECTURE.md | Documents clean architecture layout + CLI internals and DI story. |
| docs/AL_PARSING.md | New parsing reference for AL → DBML behavior and constraints. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| To remove the hook, run: | ||
|
|
||
| ```bash | ||
| al2dbml remove-hook |
There was a problem hiding this comment.
al2dbml remove-hook is documented here, but the CLI currently only registers generate and init commands (no remove-hook). Either add a remove-hook command, or update the README to describe manual removal (delete the section between # [al2dbml-start] / # [al2dbml-end] in .git/hooks/pre-commit).
| To remove the hook, run: | |
| ```bash | |
| al2dbml remove-hook | |
| To remove the hook, open `.git/hooks/pre-commit` in a text editor and delete the section between: | |
| ```sh | |
| # [al2dbml-start] | |
| ... | |
| # [al2dbml-end] |
|
|
||
| ### DI integration | ||
|
|
||
| Spectre.Console.Cli is integrated with `Microsoft.Extensions.DependencyInjection` via a custom `TypeRegistrar`/`TypeResolver`. A new DI scope is created per command execution so scoped services (parser state, tracker) are properly isolated. |
There was a problem hiding this comment.
This states a new DI scope is created per command execution, but TypeRegistrar.Build() creates a single scope once and reuses that scoped ServiceProvider for the app lifetime. Please align the documentation with the actual behavior, or adjust the DI integration to truly create/dispose a scope per command if isolation is required.
| Spectre.Console.Cli is integrated with `Microsoft.Extensions.DependencyInjection` via a custom `TypeRegistrar`/`TypeResolver`. A new DI scope is created per command execution so scoped services (parser state, tracker) are properly isolated. | |
| Spectre.Console.Cli is integrated with `Microsoft.Extensions.DependencyInjection` via a custom `TypeRegistrar`/`TypeResolver`. The DI container is built once and a single scope is reused for the application lifetime, so services registered as scoped (such as parser state and trackers) are shared across command executions rather than isolated per command. |
Description
Closes
closes #34