@@ -106,7 +106,7 @@ def __init__(self, parent: RobotLanguageServerProtocol) -> None:
106
106
self ._patch ()
107
107
108
108
def _patch (self ) -> None :
109
- from robot .api .parsing import get_model
109
+ from robot .api .parsing import File , get_model
110
110
from robot .running import TestSuite
111
111
from robot .running .builder .builders import RobotParser , TestSuiteBuilder
112
112
@@ -128,12 +128,24 @@ def get_source(self: Any, source: str) -> str:
128
128
orig = RobotParser ._build
129
129
130
130
def my_get_model_v4 (source : str , data_only : bool = False , curdir : Optional [str ] = None ) -> Any :
131
- return get_model (source , data_only , curdir )
131
+ try :
132
+ return get_model (source , data_only , curdir )
133
+ except (SystemExit , KeyboardInterrupt ):
134
+ raise
135
+ except BaseException as e :
136
+ self ._logger .critical (f"Can't parse { source } : { e } " )
137
+ return File (source = source )
132
138
133
139
def my_get_model_v6 (
134
140
source : str , data_only : bool = False , curdir : Optional [str ] = None , lang : Any = None
135
141
) -> Any :
136
- return get_model (source , data_only , curdir , lang )
142
+ try :
143
+ return get_model (source , data_only , curdir , lang )
144
+ except (SystemExit , KeyboardInterrupt ):
145
+ raise
146
+ except BaseException as e :
147
+ self ._logger .critical (f"Can't parse { source } : { e } " )
148
+ return File (source = source )
137
149
138
150
my_get_model = my_get_model_v4 if get_robot_version () < (6 , 0 ) else my_get_model_v6
139
151
0 commit comments