diff --git a/Future.md b/Future.md new file mode 100644 index 0000000..865faf8 --- /dev/null +++ b/Future.md @@ -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. \ No newline at end of file