在 Smalltalk IDE(Squeak、VisualWorks 等)上,如何离开正在处理的消息代码来检查另一个消息代码?

On Smalltalk IDEs (Squeak, VisualWorks, etc), how can you navigate away from a message's code you're working on to inspect another?

到目前为止,在我尝试过的每个 IDE 中,如果我在编写消息的中途需要查看另一个人的代码,浏览器会询问我是否要保存。但是如果我说我要保存,它实际上会尝试compile/syntax检查代码,如果不通过则拒绝执行保存。查看另一条消息来源的唯一方法似乎是说 "no" 保存并擦除所有内容。我怎样才能顺便看看另一个 class,或者保存我正在处理的代码,但现在可能无法构建?

目前还没有简单的方法可以做到这一点。两个最简单的选择是

  1. 使当前方法语法正确并保存。
  2. 打开另一个浏览器。如果您想查看当前代码中的 class 或方法,您可以通过 cmd+单击它或使用 "browse it"、"implementors of" 快捷方式打开另一个 window .

也在 you can use GTSpotter中快速找到你要找的东西并预览它的源代码

Smalltalk 是一个多浏览器系统。您需要打开许多不同的浏览器。 Smalltalk 是自以为是的。系统浏览器 (Nautilus) 不容易查看长方法,而是引导您编写短方法。在方法中包含非编译代码并不容易,以引导您进行小的更改。

Experimental/prototypical 您可能希望在 Workspace/Playground 中包含的代码。那可以保存到磁盘。

我们知道这是 Smalltalk 新手遇到的问题。我们尝试了一些修复,它们更糟。

当你说“这似乎是一件很重要的事情要丢失时, 它可以通过选择使用来解决 一个普通的编辑”恐怕你完全没有抓住要点。

可以理解,但我们所有人都会遇到这种情况。 或者做过。也许那是很久以前的事了,但我们 都在。

您可能会从以下方面考虑任务 上下滚动一个巨大的文本来找到什么 你要。向上滚动——阅读一点——向后滚动—— 并继续进行更改。

当你说“我无法想象任何情况 在追求任何议程的情况下,扔掉是可以的 编码员违背他们的意愿工作“

你当然是对的。

想象一下——四处滚动,做几十个小改动, 在你拯救它们之前——噗——它们都被扔掉了—— 一个错误,也许,但完全违背你的意愿。 那将是可怕的。我们同意了。

(事实上,我用来输入这个的编辑器
就像那样——我可以滚动浏览整个内容,
几乎没有什么改进,但它可以
都去 --poof-- 然后消失,全部。
在编辑网页时相当常见。 )

那么让我们尝试另一个 运行 来完成同样的任务。

作为 POST 编辑,你变得有点笨拙,
你一次只能看到一件事。
现在你只想滚动到其他地方,
一会儿,马上回来。

这实际上意味着

您正在尝试查找第二种方法,
虽然已经更改了第一种方法
(这将要求浏览器
忘记 第一个方法的上下文,
并转到第二个)。

浏览器不知道你要离开多久 从这个上下文。
你可能会从 放置、停下来阅读电子邮件,
接听电话, 然后去吃午饭。

所以,浏览器警告

 "Hey - want to save this first?" 

好像在说:

"
  Hey - I can't imagine any circumstance where it is OK,
  in pursuit of any agenda, to throw away the coder's work
  against their will.

  So listen up, coder.

  You want to save this first?
"

但是无法保存。
你得先查查。
难题。

啊哈!另一个窗格中有一个方法列表。
其中一个已突出显示。

不是那些——那个。
双击那个。
你已经在的那个。

好像在说

" Thanks.  Good catch.
  Yes, I know - can't though.
  I need to change contexts.
  You stay right here.
  And give me another context
  to go wandering about in.
  please.
"

我预计,他们很快就会真正开始交谈。