В ближайшем будущем, как я могу найти переменную из пространства имен? - PullRequest
24 голосов
/ 17 ноября 2010

В ближайшем будущем у меня есть такие строки, которые определяют значения по умолчанию:

(def *http-port* 8080)

Теперь я решил формализовать эти виды значений в единицу конфигурации, и я хотел бы отменить определение значения *http-port*так что я могу найти местоположения, которые все еще ссылаются на это значение, и изменить их, чтобы использовать новое значение.Другими словами, я делаю рефакторинг, перемещая значение в другое место.

То, как я это делаю, - это выход из слизи и попытка перезапустить сеанс слизи.Во время фазы компиляции maven обнаруживаются подобные ошибки, и я могу найти и исправить одну ссылку за раз.Затем я исправляю ошибку, вымываю, ополаскиваю и повторяю.Это явно расстраивает.

Как бы я это сделал, будучи подключенным к сеансу слизи?

1 Ответ

34 голосов
/ 17 ноября 2010

Если я вас правильно понимаю, ns-unmap должен делать то, что вы хотите:

user=> foo
java.lang.Exception: Unable to resolve symbol: foo in this context (NO_SOURCE_FILE:1)
user=> (def foo 1)
#'user/foo
user=> foo
1
user=> (ns-unmap (find-ns 'user) 'foo)
nil
user=> foo
java.lang.Exception: Unable to resolve symbol: foo in this context (NO_SOURCE_FILE:1)
...