Skip to content

Commit 969575b

Browse files
save
Signed-off-by: Nikola Hristov <Nikola@PlayForm.Cloud>
1 parent 7f14ca3 commit 969575b

1 file changed

Lines changed: 70 additions & 2 deletions

File tree

Documentation/GitHub/Deep Dive.md

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,74 @@ pub fn get_configuration_effect(section: Option<String>) -> ActionEffect<Arc<dyn
394394
}
395395
```
396396

397+
### Concrete VSCode Service Lifting Architecture
398+
399+
```mermaid
400+
graph TD
401+
subgraph "VSCode Service Mapping"
402+
VSCodeServices["VSCode Services<br/>vs/platform/"]
403+
CommonTraits["Common Traits"]
404+
MountainImpl["Mountain Implementation"]
405+
EffectTS["Effect-TS Layer"]
406+
407+
VSCodeServices --> CommonTraits
408+
CommonTraits --> MountainImpl
409+
CommonTraits --> EffectTS
410+
MountainImpl --> EffectTS
411+
end
412+
413+
subgraph "Communication Protocols"
414+
gRPC["gRPC Protocol"]
415+
Tauri["Tauri Events"]
416+
417+
MountainImpl --> gRPC
418+
MountainImpl --> Tauri
419+
EffectTS --> gRPC
420+
EffectTS --> Tauri
421+
end
422+
```
423+
424+
#### Service Migration Table
425+
426+
| VSCode Service | Common Trait | Mountain Implementation | Effect-TS Layer |
427+
| :---------------------- | :--------------------- | :---------------------- | :--------------------- |
428+
| `IFileService` | `FileSystemService` | `MountainFileSystem` | `FileService` |
429+
| `IWorkspaceService` | `WorkspaceService` | `MountainWorkspace` | `WorkspaceService` |
430+
| `IConfigurationService` | `ConfigurationService` | `MountainConfiguration` | `ConfigurationService` |
431+
| `ICommandService` | `CommandService` | `MountainCommand` | `CommandService` |
432+
| `IDocumentService` | `DocumentProvider` | `MountainDocument` | `DocumentService` |
433+
434+
### Component Block Map
435+
436+
```mermaid
437+
graph TB
438+
subgraph "Common Architecture Blocks"
439+
Traits["Traits<br/>Service Contracts"]
440+
Effects["Effects<br/>Operation Descriptions"]
441+
DTOs["DTOs<br/>Data Structures"]
442+
Errors["Errors<br/>Failure Handling"]
443+
end
444+
445+
subgraph "Consumer Implementations"
446+
Mountain["Mountain<br/>Rust Implementation"]
447+
Wind["Wind<br/>Effect-TS Services"]
448+
Cocoon["Cocoon<br/>Extension Host"]
449+
end
450+
451+
Traits --> Mountain
452+
Traits --> Wind
453+
Traits --> Cocoon
454+
Effects --> Mountain
455+
Effects --> Wind
456+
Effects --> Cocoon
457+
DTOs --> Mountain
458+
DTOs --> Wind
459+
DTOs --> Cocoon
460+
Errors --> Mountain
461+
Errors --> Wind
462+
Errors --> Cocoon
463+
```
464+
397465
## Performance Optimization Strategies
398466

399467
### 1. Zero-Cost Abstractions
@@ -419,7 +487,7 @@ pub fn get_configuration_effect(section: Option<String>) -> ActionEffect<Arc<dyn
419487

420488
### Adding New Services
421489

422-
When adding new services to Common, follow these practical patterns:
490+
When adding new services to Common, follow these concrete patterns:
423491

424492
1. **Define Service Interface:** Create Rust trait matching VSCode service
425493
interface
@@ -428,7 +496,7 @@ When adding new services to Common, follow these practical patterns:
428496
3. **Define DTOs:** Create serializable DTOs for cross-language communication
429497
4. **Define Errors:** Add appropriate error variants to CommonError
430498

431-
### Practical Usage Patterns
499+
### Concrete Usage Patterns
432500

433501
#### Custom Effect Creation
434502

0 commit comments

Comments
 (0)