repl: List kernelspecs of the current worktree (#40154)

Abdelhakim Qbaich created

Closes #25564

Release Notes:

- Fix virtual env REPLs not showing up

Change summary

crates/repl/src/repl_store.rs | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

Detailed changes

crates/repl/src/repl_store.rs 🔗

@@ -214,8 +214,9 @@ impl ReplStore {
         let selected_kernelspec = self.selected_kernel_for_worktree.get(&worktree_id).cloned();
 
         if let Some(language_at_cursor) = language_at_cursor {
-            selected_kernelspec
-                .or_else(|| self.kernelspec_legacy_by_lang_only(language_at_cursor, cx))
+            selected_kernelspec.or_else(|| {
+                self.kernelspec_legacy_by_lang_only(worktree_id, language_at_cursor, cx)
+            })
         } else {
             selected_kernelspec
         }
@@ -223,6 +224,7 @@ impl ReplStore {
 
     fn kernelspec_legacy_by_lang_only(
         &self,
+        worktree_id: WorktreeId,
         language_at_cursor: Arc<Language>,
         cx: &App,
     ) -> Option<KernelSpecification> {
@@ -232,8 +234,7 @@ impl ReplStore {
             .get(language_at_cursor.code_fence_block_name().as_ref());
 
         let found_by_name = self
-            .kernel_specifications
-            .iter()
+            .kernel_specifications_for_worktree(worktree_id)
             .find(|runtime_specification| {
                 if let (Some(selected), KernelSpecification::Jupyter(runtime_specification)) =
                     (selected_kernel, runtime_specification)
@@ -249,8 +250,7 @@ impl ReplStore {
             return Some(found_by_name);
         }
 
-        self.kernel_specifications
-            .iter()
+        self.kernel_specifications_for_worktree(worktree_id)
             .find(|kernel_option| match kernel_option {
                 KernelSpecification::Jupyter(runtime_specification) => {
                     runtime_specification.kernelspec.language.to_lowercase()