From a797eec8cba7d21c896ecdc98859b3149ec89f93 Mon Sep 17 00:00:00 2001 From: Colin Jones Date: Mon, 16 Jun 2014 08:33:18 -0500 Subject: [PATCH] Add awful hack to support broken namespaces This works around the fact that `load` (upon which `require` depends) calls `remove-ns` if the first attempt to load an ns fails. --- plugin/fireplace.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugin/fireplace.vim b/plugin/fireplace.vim index 9338d9df..7c61d9b9 100644 --- a/plugin/fireplace.vim +++ b/plugin/fireplace.vim @@ -191,11 +191,12 @@ function! s:repl.preload(lib) dict abort let self.requires[a:lib] = 0 let clone = s:conn_try(self.connection, 'clone') try - let result = clone.eval('(ns '.self.user_ns().' (:require '.a:lib.reload.'))', {'ns': self.user_ns()}) + let result = clone.eval("(#'clojure.core/load-one \"" . a:lib . "\" true true)", {'ns': self.user_ns()}) + let ns_exists = clone.eval("(the-ns '" . a:lib . ")", {'ns': self.user_ns()}) finally call clone.close() endtry - let self.requires[a:lib] = !has_key(result, 'ex') + let self.requires[a:lib] = !has_key(ns_exists, 'ex') if has_key(result, 'ex') return result endif