@@ -106,13 +106,21 @@ class VbaListener extends vbaListener {
106106 ) ;
107107 } ;
108108
109+ exitEnumDeclaration = ( _ : EnumDeclarationContext ) => {
110+ this . document . deregisterScopedElement ( ) ;
111+ } ;
112+
109113 enterClassModule = ( ctx : ClassModuleContext ) => {
110114 const element = new ClassElement ( ctx , this . document . textDocument ) ;
111115 this . document . registerSymbolInformation ( element )
112116 . registerDiagnosticElement ( element )
113117 . registerScopedElement ( element ) ;
114118 } ;
115119
120+ exitClassModule = ( ctx : ClassModuleContext ) => {
121+ this . document . deregisterScopedElement ( ) ;
122+ } ;
123+
116124 enterIgnoredAttr = ( ctx : IgnoredAttrContext ) => {
117125 const element = new IgnoredAttributeElement ( ctx , this . document . textDocument ) ;
118126 this . document . registerDiagnosticElement ( element ) ;
@@ -125,6 +133,10 @@ class VbaListener extends vbaListener {
125133 . registerScopedElement ( element ) ;
126134 } ;
127135
136+ exitProceduralModule = ( ctx : ProceduralModuleContext ) => {
137+ this . document . deregisterScopedElement ( ) ;
138+ } ;
139+
128140 enterProcedureDeclaration = ( ctx : ProcedureDeclarationContext ) => {
129141 // TODO: figure out how to handle scope for properties.
130142 const element = DeclarationElement . create ( ctx , this . document ) ;
@@ -134,6 +146,10 @@ class VbaListener extends vbaListener {
134146 . registerScopedElement ( element ) ;
135147 } ;
136148
149+ exitProcedureDeclaration = ( ctx : ProcedureDeclarationContext ) => {
150+ this . document . deregisterScopedElement ( ) ;
151+ } ;
152+
137153 enterWhileStatement = ( ctx : WhileStatementContext ) => {
138154 const element = new WhileLoopElement ( ctx , this . document . textDocument ) ;
139155 this . document . registerDiagnosticElement ( element ) ;
0 commit comments