diff options
Diffstat (limited to 'CONTRIBUTING.md')
| -rw-r--r-- | CONTRIBUTING.md | 43 |
1 files changed, 8 insertions, 35 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e5db99..4b3c939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,6 +37,14 @@ cd VersionControl +#### Related Articles + +- [Command Dev Guide](./src/cmds/README_en.md) +- [Helpdoc Translation or Contribution Guide](./resources/CONTRIBUTE_HELPDOC_en.md) +- [I18n Guide](./resources/CONTRIBUTE_LOCALES_en.md) + + + ### Building and Testing Use `scripts/dev/dev_deploy.sh` (or `.ps1`) for test builds. The build artifacts are located in the `.temp/deploy/` directory. @@ -86,41 +94,6 @@ source ~/.../JustEnoughVCS/CommandLine/.temp/deploy/jv_cli.sh -## Standards - -### Code Structure - -A complete command consists of the following components, organized by module: - -| Module | Path | Description | -|--------|------|-------------| -| **Command Definition** | `src/cmds/cmd/` | The main logic implementation of the command. | -| **Argument Definition** | `src/cmds/arg/` | Defines command-line inputs using `clap`. | -| **Input Data** | `src/cmds/in/` | User input data during command execution. | -| **Collected Data** | `src/cmds/collect/` | Data collected locally during command execution. | -| **Converter** | `src/cmds/converter/` | Converter between core library types and command-line types. | -| **Output Data** | `src/cmds/out/` | The command's output data. | -| **Renderer** | `src/cmds/renderer/` | The default presentation method for data. | -| **Override Renderer** | `src/cmds/override/renderer/` | Customizable data presentation methods. | - - - -### Naming Conventions - -- **File Naming**: Refer to the implementation of `src/cmds/cmd/sheetdump.rs`, i.e., use the command name as the filename. -- **Multi-level Subcommands**: In the `cmds` directory, use the `sub_subsub.rs` format for filenames (e.g., `sheet_drop.rs`). -- **Struct Naming**: - - Command Struct: `JV{Subcmd}{Subsubcmd}Command` (e.g., `JVSheetDropCommand`). - - Other component structs follow the same pattern: - - `JV{XXX}Argument` - - `JV{XXX}Input` - - `JV{XXX}Output` - - `JV{XXX}Collect` - - `JV{XXX}Converter` - - `JV{XXX}Renderer` - - - ### Other Development Conventions - **Utility Functions**: Reusable functionality should be placed in the `utils/` directory (e.g., `utils/feat.rs`). Test code should be written directly within the corresponding feature file. - **Special Files**: `.rs` files starting with an underscore `_` are excluded by the `.gitignore` rule and will not be tracked by Git. |
