Как мне жить код в Clojure, используя Emacs / nrepl / Quil?

У меня есть довольно стандартный файл Quil, который я редактирую с помощью Emacs и nrepl.

(defn setup []
  (qc/smooth)
  (qc/frame-rate 24)
  (qc/background 200))

(defn draw []
  (draw-world))

(qc/defsketch run
  :title "Circles!"
  :setup setup
  :draw draw
  :size [800 600]
  :renderer :opengl)

Для начала я использую C-c C-l загрузить файл; это создает окно эскиза. Затем я редактирую draw-world функция, скажем, рисовать другим цветом. Мой вопрос:

Как мне обновить текущее окно Quil с помощью этой новой функции?

*C-x C-e не похоже на работу.

2 ответа

Решение

Попробуйте CMx (это исключает текущую форму верхнего уровня) в функции, которую вы хотите изменить, или Cc Ck (это исключает текущий буфер) в исходном буфере. Кстати, Cx Ce должен работать тоже (это, конечно, работает для меня, но я редко использую его). Может быть, вы не используете последнюю версию nrepl.el?

Я просто настроил пример проекта для обработки моего рабочего процесса для live-кодирования в Quil. Я скопировал некоторые основы из нескольких мест, таких как Quil wiki и форумы.

Если вы посмотрите на основной файл core.clj проекта, то увидите, что для него требуются отдельные пространства имен "draw" и "setup":

(ns basic-metronome.core
  (:use [basic-metronome.setup :only [HEIGHT WIDTH]])
  (:require [basic-metronome.draw :as dynamic-draw]
            [basic-metronome.setup :as dynamic-setup]
            [quil.core :as qc]))

(defn run-sketch []
  (qc/defsketch the-sketch
    :title "Hello Metronome"
    :setup dynamic-setup/setup
    :draw dynamic-draw/draw
    :size [WIDTH HEIGHT]))

От: https://github.com/mudphone/basic_quil_metronome/blob/master/src/basic_metronome/core.clj

Таким образом, я могу переоценить C-c C-k файл draw.clj без необходимости переоценки основного пространства имен верхнего уровня (которое может вызвать проблемы, такие как описанное вами, где вы видите новое окно).

Другие вопросы по тегам