Skip to content

Commit 52a67ff

Browse files
committed
feat: add ai guides
1 parent 521f5ae commit 52a67ff

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

CONTRIBUTING.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Contains language-agnostic logic, base classes, and Extension Points (EPs).
2121
Contains language-specific implementations (adapters).
2222
- **Location**: `src/main/kotlin/com/github/xepozz/temporal/languages/<lang>`
2323
- **Purpose**: Adapt language-specific PSI (Program Structure Interface) to the common Temporal features.
24+
- **Current Status**: Currently, the focus is exclusively on **PHP**. Support for other languages (Go, Java, TypeScript, etc.) will be added in the future.
2425
- **Example**: `com.github.xepozz.temporal.languages.php`
2526

2627
## Extension Point Pattern
@@ -72,10 +73,12 @@ When implementing a feature that should work across multiple languages (e.g., Ac
7273

7374
- **Kotlin First**: All new code should be written in Kotlin.
7475
- **Performance**: Use `CachedValue` and `DumbService.isDumb()` checks where appropriate.
75-
- **Consistency**: Follow the existing package structure. If a feature exists for PHP in `languages.php.navigation`, its Java counterpart should be in `languages.java.navigation`.
76+
- **Consistency**: Follow the existing package structure. For example, if a feature is implemented for PHP in `languages.php.navigation`, any future language implementations should follow the same sub-package structure (e.g., `languages.go.navigation`).
7677
- **Naming**:
7778
- Extension Points should end with `EP`.
78-
- Language-specific implementations should be prefixed with the language name (e.g., `Php...`, `Java...`).
79+
- Language-specific implementations should be prefixed with the language name (e.g., `Php...`).
80+
- **Namespaces**:
81+
- All Extension Point names and IDs **must** start with `com.github.xepozz.temporal`.
7982

8083
## AI Agent Instructions
8184

@@ -85,3 +88,4 @@ When tasked with adding a new feature:
8588
3. **Use existing patterns**: Look at `languages/php` for reference on how to interact with language-specific PSI.
8689
4. **Update XML**: Don't forget to register new classes in `plugin.xml` or language-specific XML files.
8790
5. **Be Minimal**: Implement the smallest possible change to achieve the goal while maintaining architectural integrity.
91+
6. **Namespace Compliance**: Ensure all new extension points and IDs start with `com.github.xepozz.temporal`.

0 commit comments

Comments
 (0)