-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask_plan_tree.txt
More file actions
141 lines (118 loc) · 3.64 KB
/
task_plan_tree.txt
File metadata and controls
141 lines (118 loc) · 3.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
- Core Features (Completed)
- Symbol Management
- Outline view for code blocks
- Symbol search implementation
- VS Code integration
- Code Navigation
- Definition/Reference providers
- Cross-file navigation
- Hover information
- Entity Decoration
- Entity highlighting
- Style customization
- Enhanced Features (In Progress)
- Error Detection
- Missing definition detection
- Unused definition detection
- LSP integration
- Error reporting improvements
- Infrastructure
- Performance Optimization
- Reduce load time to < 1s
- Memory usage < 30MB
- Large file optimization
- Testing
- Core functionality tests
- Navigation tests
- Error handling tests
- Future Considerations
- Advanced Features
- Custom language support
- Enhanced error detection
- Additional markup syntax support
- Codebase Restructuring Plan
## Phase 1: Setup New Structure
- Create new directory structure
1. Create /src/core directory
2. Create /src/editor directory
3. Create /src/config directory
4. Create /src/utils directory
## Phase 2: Move Utilities (Minimal Dependencies)
- Move and refactor logging
1. Move logger.ts to /src/utils/
2. Update imports in affected files
3. Test compilation
- Setup centralized config
1. Create /src/config/defaults.ts
2. Create /src/config/settings.ts
3. Move configuration from various files
4. Update imports
5. Test compilation
## Phase 3: Core Domain Logic
- Setup core literate programming types
1. Create /src/core/literate/entities.ts
2. Move types from document/types.ts
3. Update imports
4. Test compilation
- Move Pandoc integration
1. Move pandoc directory to /src/core/pandoc/
2. Update imports
3. Test compilation
- Setup parser interface
1. Create /src/core/literate/parser.ts
2. Extract parser logic from document/processor.ts
3. Update imports
4. Test compilation
- Move core management logic
1. Create /src/core/literate/manager.ts
2. Move core logic from document/manager.ts
3. Move dependency management from dependency-manager.ts
4. Update imports
5. Test compilation
## Phase 4: Editor Integration
- Setup editor providers
1. Create /src/editor/providers/navigation.ts
2. Move navigation providers from navigation/providers.ts
3. Update imports
4. Test compilation
- Move decoration provider
1. Create /src/editor/providers/decoration.ts
2. Move from services/decoration-provider.ts
3. Update imports
4. Test compilation
- Setup editor commands
1. Create /src/editor/commands.ts
2. Extract command handlers from extension.ts
3. Update imports
4. Test compilation
- Setup activation logic
1. Create /src/editor/activation.ts
2. Extract activation logic from extension.ts
3. Update imports
4. Test compilation
## Phase 5: Clean Up
- Update extension entry point
1. Refactor extension.ts to use new structure
2. Test compilation
3. Verify all features still work
- Remove old directories
1. Remove /src/document after verifying all code moved
2. Remove /src/navigation after verifying all code moved
3. Remove /src/services after verifying all code moved
4. Test compilation
## Phase 6: Documentation Update
- Update documentation to reflect new structure
1. Update README.md
2. Update DESIGN.md
3. Update comments in key files
## Testing Checkpoints
After each step:
1. Run `npm run compile`
2. Fix any compilation errors
3. Verify no functionality is broken
4. Commit working changes
## Rollback Plan
For each phase:
1. Keep old files until new structure is verified
2. Maintain git commits per logical change
3. Ready to rollback to last working state if needed