1 Future
kuro edited this page 2026-10-15 20:54:31 +00:00

🗺️ 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".

  • Establish folder structure: Break down the main files into logical modules (e.g., src/providers/, src/linter/, src/utils/, src/core/).
  • 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.

  • 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).
  • 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.