73

我观看了 YUIConf 2012 的一段视频,Douglas Crockford 在其中发表了关于在 JavaScript 中实现 monad 的演讲。在这次演讲中,他给出了一个代码示例,该示例利用了他所谓的“上下文着色”,它摒弃了通过语言语法着色的想法,并为不同级别的范围引入了不同的颜色。这是视频特定部分的链接。

http://www.youtube.com/watch?feature=player_embedded&v=dkZFtimgAcM#t=15m58s

这个上下文着色方案是由 JavaScript 或任何语言的任何代码编辑器实现的吗?

我使用 Sublime Text,这个编辑器就像我遇到的所有其他代码编辑器一样允许将颜色应用于语法。我不确定插件是否可以解决这个问题,或者是否必须从头开始设计编辑器以允许这种上下文着色方案。

4

6 回答 6

25

我刚刚看了他的视频,很棒的东西。必须试一试,或者在 GitHub https://github.com/daniellmb/JavaScript-Scope-Context-Coloring上查看项目。

JavaScript 范围上下文着色

于 2013-04-06T00:31:52.510 回答
11

维姆(GitHub)

在此处输入图像描述

Emacs (GitHub)

Emacs 中上下文着色的屏幕截图。

于 2014-02-13T06:35:14.733 回答
9

截至 2013 年 2 月 13 日,Crockford 已向 JSLint 添加了实验性的上下文着色功能。

https://plus.google.com/118095276221607585885/posts/FzKnHk96m2C

于 2013-03-15T14:16:14.623 回答
8

现在有一个 sublime 包:https ://github.com/mazurov/sublime-levels

它还在http://mazurov.github.io/eslevels-demo/有一个在线现场演示

于 2013-07-13T16:51:39.160 回答
3

BlueJ 有它 (1) - 但它也可能没有。javascript 中范围的上下文着色肯定会比任何其他语言(例如 java )更复杂 - 这个编辑器可以使用它。

写括号的人可能最终会这样做,因为他们崇拜 Crockford (2,3)

为什么不和他们一起帮助编写它,或者至少告诉他们这样做呢?

资料来源:

1) http://blogs.kent.ac.uk/mik/2010/05/bluej-3-0-whats-new/

2) https://github.com/adobe/brackets/issues/search?q=Crockford

3) http://www.adobe.com/devnet/html5/articles/bracket-code-architecture.html

于 2013-01-18T17:16:08.867 回答
-1

从来没听说过。这会很棒,但它需要一个特定于 JavaScript 的词法分析器,并且在出现任何语法错误时它可能无法工作。

于 2012-12-19T08:38:53.110 回答