Skip to content

Commit eedf25c

Browse files
authored
Fix AttributeError: 'Project' object has no attribute 'datafile_controller' (#3012)
- Add datafile_controller property to Project class that returns self.controller - Add null checks in _ImportSuggester to handle when datafile_controller is None This fixes the crash when using Library Finder on a clean install without an open project. Closes #2989
1 parent 2d1ae90 commit eedf25c

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/robotide/controller/project.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ def data(self):
152152
def suite(self):
153153
return self.controller.data if self.controller else None
154154

155+
@property
156+
def datafile_controller(self):
157+
return self.controller
158+
155159
@property
156160
def datafiles(self):
157161
return self._suites() + self.resources

src/robotide/namespace/suggesters.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,16 @@ def __init__(self, controller):
110110

111111
def get_suggestions(self, name, *args):
112112
_ = args
113+
if self._df_controller is None:
114+
return []
113115
already_imported = self.get_already_imported()
114116
all_resources = self.get_all_available()
115117
suggestion_names = all_resources - already_imported
116118
return [self._suggestion(n) for n in sorted(suggestion_names) if name in n]
117119

118120
def get_already_imported(self):
121+
if self._df_controller is None:
122+
return set()
119123
return set(imp.name for imp in self._df_controller.imports)
120124

121125
def get_all_available(self):

0 commit comments

Comments
 (0)