问题标签 [swank]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - node.js - 评估实时进程
是否有人使用现有的 node.js REPL 为自己设置了类似的东西?我没有想到一个快速的方法来做到这一点。
我今天这样做的方式是使用 emacs,这个: https ://github.com/ivan4th/swank-js
该模块由以下部分组成:
Emacs 的 SLIME-js 插件,与 js2-mode 结合使用,您可以简单地在函数 def 的某处发出 CMx - 然后关闭函数的字符串到 ..
用 Node.js 编写的 Swank-js 服务器(是的,您可以从本地计算机直接评估到远程进程) - 它接收您评估过的函数的字符串并实际评估它
一个完整的部分,可让您使用 BROWSER 连接到该服务器上的另一个端口,然后让您在该浏览器上操作 DOM(这非常棒但不相关)
我的解决方案在 emacs 端使用 SLIME-js,并且我在 app.js 文件中需要('swank-js')
现在..关于我的解决方案或其他可能的问题,我有几个问题和疑问:
Q1:这是不是太过分了?有人有什么秘密方法可以将 nano 中的东西评估到他的实时过程中吗?
Q2:我不得不改变 swank-js 的 EVALing 方式。它使用了某种黑魔法,如下所示:
据我了解,它只是将全局变量复制到新的上下文中,并且在 eval 时,不会更改原始函数定义 - SOOO .. 我只是使用普通的“eval”并且它可以工作。
您对此有何评论?
Q3:为了重新评估一个函数,它需要是一个 GLOBAL 函数 - 将所有函数定义为全局(类似clojure)是不好的做法吗?你认为还有另一种方法可以做到这一点吗?
emacs - 在使用 leiningen 和 swank/slime 在 emacs 中运行 clojure 测试时停止无限循环
在某些类型的代码中,相对容易导致无限循环而不会破坏堆栈。当使用 clojure-test 测试这种性质的代码时,有没有办法在不重新启动 swank 服务器的情况下中止当前正在运行的测试?
目前我的工作流程涉及
使用 emacs 连接到 swank slime-connect
,然后切换到测试,使用 执行C-c C-,
,测试运行直到无限循环,然后返回,但一个 cpu 仍在测试中运行。我发现阻止这种情况的唯一方法是重新启动 lein swank,但这似乎是一个相对常见的问题?有人有更好的解决方案吗?
clojure - 如何在 SLIME 中捕获代理的标准输出/日志输出?
我向代理发送任务,但看不到我放入函数的任何打印语句的输出。如何跟踪代理上的代码执行?
编辑:原来我确实在控制台中得到了输出,但在 SLIME 中没有。现在的问题是,如何在 SLIME 中查看输出?
google-app-engine - 如何自动启动 jetty/appengine-magic 和 swank?
在我的 Clojure/appengine-magic 项目中,我目前是这样启动的:
tlog.core 有:
或者,我可以使用,而不是 ae/start,我认为:
我想把所有这些放在一个命令后面。
由于命名空间/路径问题,所有通过-main
使用或编写 leiningen 插件来处理此问题的尝试都失败了。lein run
那么怎么做呢?
macros - 为什么我在新的 slime 会话中看不到我的宏创建函数?(clojure)
在我的 clojure 代码中,我有一些通过调用自定义宏创建的函数。通常,宏会采用某种数据结构并从中创建一个方法。
这是一个人为的例子:
这将创建一个名为view-data
. (我的数据库查询是数据驱动的,所以我可以创建一个具有指示性名称的函数来调用特定查询)
我的问题是,当我运行mvn clojure:swank
目标并从 emacs 连接到 slime 会话时,这些功能不可见。我必须访问该文件并自己编译它C-c C-k
才能创建函数。
maven 输出表明文件本身编译得很好,但是 slime 会话不知道这些函数。
任何想法为什么会发生这种情况?
lisp - #+# 是什么意思。在 lisp 中是什么意思?
谷歌几乎是不可能的,因此我的理解仅限于阅读粘液源代码的上下文线索:也许它是普通 lisp 中对象系统的一部分?像“自我”这样的东西?
片段:
也许这会让它更容易被谷歌搜索:磅加磅//哈希加哈希符号//octothorp plus octothorp
lisp - 如何定义 swank 服务器应该监听的地址?
启动 swank 服务器时没有设置绑定地址的参数:
我该怎么做?
clojure - 将 lein 项目从 clojure 1.2.1 升级到 1.3.0-beta1
我有一个使用 clojure 1.2.1 的 leiningen 项目。我想向需要 clojure 1.3.0-beta1 的包添加依赖项。所以我决定将我的项目升级到较新的版本。
老实说,我不确定这涉及到什么,但我做了以下事情。
在我的 project.clj 中,我将依赖项从 [org.clojure/clojure "1.2.1] 更改为 [org.clojure/clojure "1.3.0"]
我使用 swank 所以我将我的 swank clojure 依赖项更改为 [swank-clojure "1.3.2"]。
然后我跑了
莱因部门
最后,我手动编辑了我的 /usr/bin/lein 文件以更改 CLOJURE_JAR 变量以指向较新的 clojure jar。
当我开始用'lein swank' swank 时。它开始正常,我现在收到以下警告消息,如下所示..
警告:default-javac-options未声明为动态的,因此不可动态重新绑定,> 但其名称暗示了其他方式。请注明 ^:dynamic default-javac-options或 >更改名称。
我认为这与clojure 1.3.0有关。
然后我启动 Aquamacs 并运行 slime-connect。REPL 开始正常,但是当调用 clojure-version 如果得到“1.2.1”。
; SLIME 20100404 用户>(clojure 版本)“1.2.1”
还有什么我需要做的吗?
emacs - 如何将 swank 服务器输出重定向到 emacs 缓冲区?
我想将我的 swank 服务器输出重定向到 emacs 缓冲区。我把它放在 ~/.swank.lisp 中,但这不起作用-
(setf swank:*globally-redirect-io* t)
我使用 Clojure 盒子。
谢谢。