是否在任何代码编辑器中实现了克罗克福德风格的上下文着色?

我观看了2012年 YUIConf 上的一个视频,视频中道格拉斯·克罗克福特们谈论了如何在 JavaScript 中实现 monads。在这个演讲中,他给出了一个代码示例,利用他所谓的“上下文着色”,抛出了通过语言语法着色的想法,并为不同的范围引入了不同的颜色。下面是视频中特定部分的链接。

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

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

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

7085 次浏览

据我所知没有。这将是伟大的,但它将需要一个特定于 JavaScript 的词法分析器,它可能不会工作时,有任何语法错误。

BlueJ 拥有它(1)——但它也可能没有。Javascript 中作用域的上下文着色肯定比其他任何语言(比如 java)都要复杂——这个编辑器就是在这种语言上工作的。

写括号的人最终可能会这样做,因为他们崇拜克罗克福德(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年2月13日,克罗克福德已经向 JSLint 添加了一个实验性的上下文着色特性。

Https://plus.google.com/118095276221607585885/posts/fzknhk96m2c

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

JavaScript Scope Context Coloring

现在有一个升华的软件包: https://github.com/mazurov/sublime-levels

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

Vim (GitHub):

enter image description here

返回文章页面

Screenshot of context coloring in Emacs.