@@ -40,6 +40,10 @@ class UnknownFileTypeError(Exception):
40
40
pass
41
41
42
42
43
+ class _CacheEntry :
44
+ pass
45
+
46
+
43
47
class DocumentsCacheHelper :
44
48
_logger = LoggingDescriptor ()
45
49
@@ -50,6 +54,8 @@ def __init__(
50
54
file_watcher_manager : FileWatcherManagerBase ,
51
55
robot_profile : Optional [RobotBaseProfile ],
52
56
) -> None :
57
+ self .INITIALIZED_NAMESPACE = _CacheEntry ()
58
+
53
59
self .workspace = workspace
54
60
self .documents_manager = documents_manager
55
61
self .file_watcher_manager = file_watcher_manager
@@ -425,6 +431,20 @@ def __invalidate_namespace(self, sender: Namespace) -> None:
425
431
426
432
self .namespace_invalidated (self , sender , callback_filter = language_id_filter (document ))
427
433
434
+ def __namespace_initialized (self , sender : Namespace ) -> None :
435
+ if sender .document is not None :
436
+ self ._logger .critical (
437
+ lambda : f"Save initialized Namespace: { sender .document .uri if sender .document else None } "
438
+ )
439
+ sender .document .set_data (self .INITIALIZED_NAMESPACE , sender )
440
+
441
+ def get_initialized_namespace (self , document : TextDocument ) -> Namespace :
442
+ result : Optional [Namespace ] = document .get_data (self .INITIALIZED_NAMESPACE )
443
+ if result is None :
444
+ self ._logger .critical (lambda : f"There is not initialized Namespace: { document .uri if document else None } " )
445
+ result = self .get_namespace (document )
446
+ return result
447
+
428
448
def __get_namespace_for_document_type (
429
449
self , document : TextDocument , document_type : Optional [DocumentType ]
430
450
) -> Namespace :
@@ -451,6 +471,7 @@ def __get_namespace_for_document_type(
451
471
workspace_languages ,
452
472
)
453
473
result .has_invalidated .add (self .__invalidate_namespace )
474
+ result .has_initialized .add (self .__namespace_initialized )
454
475
455
476
return result
456
477
0 commit comments