<p>cider-switch-to-repl-buffer harus beralih ke buffer yang relevan (bukan yang terbaru)</p>

Dibuat pada 8 Sep 2017  ·  3Komentar  ·  Sumber: clojure-emacs/cider

Beberapa orang ( @magnars @dpsutton jumar?) berbicara di Clojurians kemarin tentang masalah yang saya perhatikan. Saya tidak memiliki semua detailnya, tetapi saya meminjam dari deskripsi mereka, tetapi akan mencoba membantu melaporkan.

Dokumentasi mengatakan "Untuk beralih ke buffer REPL yang relevan berdasarkan ruang nama Clojure di buffer Clojure saat ini, gunakan: C-c C-z ." Dari cljs-mode, itu harus beralih ke cljs-repl proyek; dari clojure-mode itu harus beralih ke clj-repl proyek.

Sebagai gantinya, ia beralih ke REPL terbaru.

@dpsutton mengatakan ini terkait dengan: https://github.com/clojure-emacs/cider/commit/746e4d694104c0c3e0493d84b091a4fd2d54f626

Untuk mereproduksi masalah:

  • Buat proyek dengan CLJ dan CLJS.
  • Arahkan ke file dalam proyek itu, dan jalankan sari-jack-in-clojurescript.
  • Beralih ke buffer CLJ REPL.
  • Arahkan ke buffer file CLJS.
  • Tekan Cc Cz (switch-switch-to-repl-buffer). Ini akan beralih ke buffer CLJ REPL, bukan buffer CLJS REPL.

Leiningen 2.7.1

Emacs: 25.2.1

Arch/Antergos Linux

bug

Komentar yang paling membantu

Ini adalah PR #2085 yang menyelesaikan setidaknya kasus CLJS.
Bagi saya tidak jelas ke mana harus beralih ketika berada di file CLJC.

Semua 3 komentar

Pemikiran saya adalah bahwa resolusi repl itulah masalahnya. Dalam cider-current-connection , ketika ada lebih dari satu koneksi, itu hanya bank pada koneksi terbaru, yang menurut saya salah. Ini terdengar seperti strategi resolusi yang harus lebih jauh ke bawah. Saya memiliki contoh buffer cljs yang dimuat di clj repl, dan file clj dimuat di repl proyek lain.

  (cond
   ((not connections) nil)
   ;; if you're in a REPL buffer, it's the connection buffer
   ((and (derived-mode-p 'cider-repl-mode) (right-type-p (current-buffer) type)))
   ((eq cider-request-dispatch 'static) (car connections))
   ((= 1 (length connections)) (right-type-p (car connections) type))
   (t (let ((project-connections (cider-find-connection-buffer-for-project-directory
                                  nil :all-connections))
            (guessed-type (or type (cider-connection-type-for-buffer))))
        (or
         ;; cljc
         (and (equal guessed-type "multi")
              (most-recent-buf project-connections nil))
         ;; clj or cljs
         (and guessed-type
              (or (most-recent-buf project-connections guessed-type)
                  (most-recent-buf connections guessed-type)))
         ;; when type was not specified or guessed
         (most-recent-buf project-connections type)
         (most-recent-buf connections type)))))

Masalahnya langsung dengan cider-switch-to-repl-buffer . BTW, masalah yang sama muncul dengan cider-switch-to-last-clojure-buffer . Akan melihat-lihat.

Ini adalah PR #2085 yang menyelesaikan setidaknya kasus CLJS.
Bagi saya tidak jelas ke mana harus beralih ketika berada di file CLJC.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat