修复了google-code-prettify w / c#

时间:2009-12-05 00:54:22

标签: c# javascript

Prettify在对c#进行标记时为类型和方法提供相同的类,因此它们的颜色相同。这是因为方法在c#中是pascal case而不是java中的camel case。这会影响我的博客和所有stackoverflow c#代码,因为它们也使用了美化。

是否有人对此有解决方法?

如果没有,你至少可以在2009年3月报道star/vote the official bug,以便作者再看看。

4 个答案:

答案 0 :(得分:8)

相同的语法可能具有不同的含义。没有足够的信息来正确地突出显示所有内容。

看一下这个例子:

static class Program
{
    class Foo { public class Bar { public static void Func() { } } }
    class Foo2 { public static Baz Bar2 { get; set; } }
    class Baz { public void Func2() { } }

    static void Main()
    {
        Foo.Bar.Func();
        Foo2.Bar2.Func2();
    }
}

在第一行中,Bar是一个内部类,应该以绿色突出显示。在第二行中,Bar2是Foo2类型的属性,应突出显示为黑色。 Func和Func2都是函数,应突出显示为黑色。

以下是Visual Studio突出显示该代码的方式。

alt text

答案 1 :(得分:7)

我实际上编写了自己的语法高亮库来解决这样的问题。它非常类似于美化,但你必须明确指定语言。

答案 2 :(得分:3)

问题是如果没有上下文,就无法确定它是方法还是类型。

采用以下示例:

var value = new Test();

Test();

此示例实例化新的Test,然后调用方法Test。找出哪个是类,哪个是类型的唯一方法是使用1.整个代码库和2.编译器。

然后我甚至没有触及无效代码。

话虽如此,我认为SO所使用的当前美化剂在突出代码样本方面做得非常好,没有任何上下文。

答案 3 :(得分:2)

TextMate(OS X)或E-TextEditor(Windows)

TextMate / E-TextEditor将生成HTML&语法高亮显示的CSS,适用于多种语言。

以下是您的工作:

  1. 在TextMate / E-TextEditor
  2. 中打开文件
  3. 如果没有自动选择语言,请从屏幕底部的菜单中选择语言
  4. 转到Bundles-> TextMate->从文档创建HTML
    • 这将在新文档中创建所有HTMl / CSS。
    • 注意:Windows用户也选择“TextMate”包(不是“E-TextEditor”)
  5. 利润!
  6. 注意:您必须为C#语法安装C#包(包含所有其他通用语言)。为此,请安装“Get Bundles”软件包,并使用它来安装C#软件包。

    编辑:阅读评论我意识到TextMate只是Mac用户的解决方案。有时我会忘记Windows。

    您还可以将E-TextEditor用于Windows。步骤是一样的。