Add Future
parent
729e583748
commit
fdc025525c
|
|
@ -0,0 +1,38 @@
|
||||||
|
# 🗺️ Future of the Project (Roadmap)
|
||||||
|
|
||||||
|
To turn the **BMC TPL Code All around** plugin into a true, professional IDE tool, future development is divided into three clear phases.
|
||||||
|
|
||||||
|
Before implementing new features, the project will first focus on a clean, maintainable architecture.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Phase 1: Architecture & Refactoring (Clean-up)
|
||||||
|
The current codebase needs to be structured to enable future growth without ending up in "spaghetti code".
|
||||||
|
|
||||||
|
- [x] **Establish folder structure:** Break down the main files into logical modules (e.g., `src/providers/`, `src/linter/`, `src/utils/`, `src/core/`).
|
||||||
|
- [x] **Modularize Linter:** Split the monolithic `validateTplDocument` function into separate, testable sub-functions (e.g., `checkSyntax.ts`, `checkBlocks.ts`, `checkAssignments.ts`).
|
||||||
|
- [in progress] **Modularize Providers:** Split up other functional areas (the providers) alongside the linter.
|
||||||
|
- [ ] **Data Separation:** Move static snippets and BMC functions into their own configuration or data folders.
|
||||||
|
- [ ] **Context Categorization:** Separate snippets and helper functions by scope (General, Pattern, Syncmapping).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Phase 2: Context-Sensitive Intelligence (UX Improvement)
|
||||||
|
Auto-completion and hover information should understand where the user currently is within the code.
|
||||||
|
|
||||||
|
- [X] **Context Awareness:** Auto-completion only offers logically sensible snippets (e.g., no `metadata` suggestion in the middle of a `body` block, no `tpl_skeleton` if a module definition already exists).
|
||||||
|
- [ ] **Hover Categorization:** Visual distinction in the tooltip between local (`define`), externally imported, and native BMC functions (e.g., via small badges or labels in the Markdown).
|
||||||
|
- [X] **Smart Semicolons:** Snippets for function calls automatically generate the closing semicolon if the context requires it.
|
||||||
|
- [ ] **Dynamic Triggers:** Optimize auto-completion for specific blocks like triggers and conditions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 Phase 3: Deep Code Analysis (Smarter Linter)
|
||||||
|
Extending the linter from a pure syntax checker to an intelligent code reviewer (refactoring aids).
|
||||||
|
|
||||||
|
- [ ] **DRY Detection (Don't Repeat Yourself):** An algorithm that detects identical or nearly identical code blocks and marks them as "Info" (Suggestion: "This code repeats, consider a `define` function").
|
||||||
|
- [ ] **Log Consolidation:** Detecting multiple consecutive `log.*` lines of the same type and offering a Quick Fix to combine them into a single line/list.
|
||||||
|
- [ ] **Fine-grained Syntax Checks:**
|
||||||
|
- [ ] Check for missing commas in lists and tables.
|
||||||
|
- [ ] Detection of missing keywords like `then` after an `if`.
|
||||||
|
- [ ] Validation of operator combinations.
|
||||||
Loading…
Reference in New Issue