问题标签 [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.

0 投票
1 回答
296 浏览

clojure - 使用 swank-clojure 破解 Clojure 库的工作流程

在 Clojure 库上进行黑客攻击是否有典型的工作流程?

假设我的应用程序“Foo”依赖于第三方库“Bar”,该库是从存储库获得的,并通过lein deps.

然后,假设我想破解库“Bar”,所以我从 github 克隆它。

现在,我想破解我的本地克隆“Bar”,同时处理依赖它的应用程序“Foo”。我希望使用 swank 的一个实例在 Emacs 中打开“Bar”的所有源文件以及“Foo”中的所有源文件。

是否有捷径可寻?

我想改变我的环境而不是项目。因此,我不想为“Foo”编辑 project.clj 来完成此操作。

这是否需要在启动之前设置类路径lein swank,还是有更好的方法?

0 投票
1 回答
535 浏览

emacs - 如何在 SLIME REPL 中使用项目命名空间

我已经使用 swank 插件、Emacs、SLIME 和 clojure-mode 安装了 lein,并使用 lein new 创建了一个新项目。我已将项目称为 clojure-test。然后我在 Emacs 中打开 clojure_test/src/clojure_test/core.clj,并在这个文件中调用M-x clojure-jack-in. 这会打开一个 SLIME 窗口,它工作正常;我可以使用 加载代码C-c C-l,使用 切换到我的项目命名空间C-c M-p,并使用我添加到项目中的依赖项。

当我尝试从“用户”命名空间中为项目本身使用命名空间时,就会出现问题。从“用户”命名空间调用(use 'clojure-test)SLIME 内部会导致以下错误:

  1. Clojure 为什么要搜索这些文件?命名空间显然已经加载,因为我可以通过 切换到它C-c M-p,但出于某种原因,Clojure 认为这些特定文件对于使用命名空间很重要。

  2. 如何设置我的项目以便可以使用 SLIME 的基本命名空间?既然 lein 应该处理这个问题,我没有提供它需要的哪些信息?

0 投票
3 回答
898 浏览

emacs - Swank服务器启动失败

问题截图

Emacs SLIME 无法连接到 swank,因为显然 swank 无法正确初始化。它说一些后端功能没有实现。但是,我的沼泽后端是支持的 SBCL。我正在使用 windows xp 操作系统。在以下链接中发现了类似的问题,但没有解决方案。链接到类似问题

我是否缺少 Swank 的任何配置文件?或者我使用的 emacs 和 SBCL 版本可能存在兼容性问题?在这种情况下,我在哪里可以获得正确的 Windows 兼容性矩阵?

0 投票
1 回答
68 浏览

emacs - java.exe进程泄露

在 Emacs + clojure-mode/swank-clojure 中,当我退出时,创建的 java.exe 进程实际上并没有被杀死(就像我在被要求时选择“y”一样)。可能是什么原因?

0 投票
1 回答
124 浏览

slime - 将粘液文档的输出作为字符串获取

popup.elpopup-tip非常棒 - 看看吧。我试图让它显示 SLIMEdisplay-documentation方法的输出,使用插入符号指向的当前单词作为参数。

问题是它display-documentation不返回字符串,而是直接在缓冲区上显示 Swank 的输出:

我试图了解 SLIME 的来源,但没有这样做。如何使用 Slime/Swank 获取给定名称的文档字符串?

0 投票
1 回答
217 浏览

emacs - 在 Emacs 中为 Clojure 设置 Uber 开发模式

我知道

Clojure 的 Emacs/Swank/Paredit 教程

我基本上有同样的问题。

我注意到有一个编辑说说明已经过时,并且会有更新(我看不到更新发布在哪里。)

因此,我的问题:

使用 Clojure 设置 Emacs 的“正确方法”是什么?

背景:过去几年我一直在用 VIM 编写 Clojure;但是 Slime/Swank 看起来相当令人印象深刻。

谢谢!

0 投票
4 回答
3104 浏览

java - 在 Java/Clojure 中杀死无限循环

对一些“潜在答案”的回应

  • 你应该在你的线程中加入“中断”

    我编写代码的目的不是为了让它成为一个漫长的过程/无限循环;只是在开发中,我不小心编写了恰好是无限循环的代码,因此我永远无法事先计划将“检查线程是否被中断”放入代码中。

问题:

随着我越来越熟悉 Java/Clojure/Swank 和增量代码开发。我发现我很容易不小心编写了一个最终成为无限循环的 clojure 函数并运行它。然后继续进行,并锁定 JVM,导致我的笔记本电脑上的风扇旋转 - 基本上,我必须杀死整个 JVM 才能摆脱一个失控的线程。

现在,无论如何我可以以某种方式安全地杀死这些 clojure 线程吗?我很清楚 Thread.stop 有各种不安全的后果(比如持有其他线程可能需要的锁,等等......)——但是,这些是无限循环的clojure函数——我在外面做任何 STM——所以我想知道是否有某种方法可以安全地杀死这些线程。

谢谢!

0 投票
4 回答
2580 浏览

emacs - 用 Clojure 编写的 Clojure 编辑器

注意:我不是在寻找 LightTable。我真的在寻找在 Clojure中实现的 Clojure 编辑器。

最近,我一直在研究 slime/swank/elisp。尽管这是一个了不起的系统,但我实际上不明白(除了历史文物的原因)为什么我应该:

(*) 在 Clojure 中编写我的部分代码,但在 elisp 中编写编辑器插件

似乎除了 emacs/swank/elisp 已经存在的事实之外,没有理由更喜欢 elisp 而不是 clojure。

因此,我的问题是:是否有任何可用的项目可以在 clojure 中实现 clojure 编辑器/ide?如果它不如 emacs/slime/swank 发达也没关系——我不介意写更多的 clojure 代码。

谢谢!

0 投票
2 回答
323 浏览

clojure - 带有 swank clojure 和崩溃恢复能力的“热交换”代码

我一直在用 clojure 开发游戏,而我一直非常兴奋的一件事是代码中的热交换。

我一直在使用带有lein-swank插件的 swank clojure 和 emacs。

我的主要问题是错别字。假设我更新了一个函数,犯了一个小错误,然后按 Ctrl-C Ctrl-C 将其发送到 REPL:

(if (> (rand) .5) (println "yay") (println "boo"))

(我应该写0.5,不是.5。)

在那种情况下,整个程序只会崩溃和烧毁,我需要重新启动整个程序。热插拔很棒,但如果我连一个小错误都不能犯,那又有什么意义呢?

那么这里的工作流程到底是什么?我错过了什么吗?或者有没有办法让 swank clojure 对这些小错误更有弹性?(我想最好的办法就是重置到以前的工作状态,尽管这可能有点困难。)

谢谢!

0 投票
2 回答
3570 浏览

clojure - Emacs 中的 Datomic 和 Clojure 入门

我的 project.clj 文件看起来像这样

我的 /src/cljs_template/server.clj 开头如下:

然后我启动 swank,在其中运行 (in-ns 'cljs-template.server),将光标移动到 (ns) 函数调用的末尾,并尝试使用 Ctrl-x Ctrl- 运行 (ns) 方法e. 当我这样做时,我收到以下错误。

然后我按 0 关闭堆栈跟踪,然后在 (ns) 调用上再次按 Ctrl-x Ctrl-e,现在我的错误是:

我究竟做错了什么?如何使用 swank/slime 在我的 emacs 中进行 datomic 工作。