File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -48,6 +48,16 @@ export function getAllAvailableConfigurations(): ModuleInterface[] {
4848 * to parse Ash DSL blocks in a structured way.
4949 */
5050export class ModuleParser implements Parser {
51+ private static instance : ModuleParser ;
52+ private constructor ( ) { }
53+
54+ static getInstance ( ) : ModuleParser {
55+ if ( ! ModuleParser . instance ) {
56+ ModuleParser . instance = new ModuleParser ( ) ;
57+ }
58+ return ModuleParser . instance ;
59+ }
60+
5161 parse ( source : string ) : ParseResult {
5262 const availableConfigs = getAllAvailableConfigurations ( ) ;
5363 // Pass 1: Find all use declarations
@@ -86,7 +96,7 @@ export class ModuleParser implements Parser {
8696 }
8797}
8898
89- export const moduleParser = new ModuleParser ( ) ;
99+ export const moduleParser = ModuleParser . getInstance ( ) ;
90100
91101/**
92102 * Extract code lenses from matched modules and parsed sections.
@@ -162,7 +172,6 @@ export function extractCodeLenses(
162172 * Extract DSL modules and their blocks from source code
163173 * Uses a context-driven approach where all imported modules contribute to parsing
164174 */
165- // For testing only
166175export function extractModules (
167176 source : string ,
168177 matchedModules : ModuleInterface [ ]
You can’t perform that action at this time.
0 commit comments