通过nailgun服务器运行REPL时,某些功能不会显示

时间:2010-12-28 02:04:15

标签: clojure vimclojure

我正在尝试使用VimClojure(2.2.0)和Clojure 1.2.0进行appengine-magic (0.3.1)设置。

通过vanilla REPL(lein repl)使用时看起来正确。

user=> (require '[clojure.contrib.ns-utils :as nsu])
nil
user=> (require '[appengine-magic.core :as ae])
nil
user=> (nsu/ns-vars 'appengine-magic.core)
(appengine-environment-type def-appengine-app
 default-war-root in-appengine-interactive-mode? open-resource-stream
 start start* stop stop* wrap-war-static)

但是当从VimClojure向nailgun服务器发送相同的代码时:

java -cp "`lein classpath`" vimclojure.nailgun.NGServer 127.0.0.1

某些功能和宏消失。

user=> (require '[clojure.contrib.ns-utils :as nsu])
nil
user=> (require '[appengine-magic.core :as ae])
nil
user=> (nsu/ns-vars 'appengine-magic.core)
(appengine-environment-type def-appengine-app
 in-appengine-interactive-mode? open-resource-stream)

相同版本的appengine-magic jar肯定在类路径中。

那么,这是一个错误还是错误配置?

1 个答案:

答案 0 :(得分:2)

它看起来更像是我的一个功能。

查看https://github.com/gcv/appengine-magic/blob/master/src/appengine_magic/core.clj中的最后一个表单。在该命名空间中加载的fns完全取决于您是运行Swank还是正常的REPL。

我不能说出原因,但显然是appengine-magic的预期行为。