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

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

有人有解决方法吗?

如果没有,你至少可以对2009年3月报道的官方错误进行星级/投票,以便作者再看看。

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

  • 网站
  • 演示

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

看看这个例子:

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突出显示该代码的方式。

替代文字

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

采用以下示例:

 var value = new Test(); Test(); 

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

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

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

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

TextMate / E-TextEditor将通过语法高亮显示为许多语言生成HTML和CSS。

这是你做的:

  1. 在TextMate / E-TextEditor中打开文件
  2. 如果没有自动选择语言,请从屏幕底部的菜单中选择语言
  3. 转到Bundles-> TextMate->从文档创建HTML
    • 这将在新文档中创建所有HTMl / CSS。
    • 注意:Windows用户也选择’TextMate’包(不是’E-TextEditor’)
  4. 利润!

注意:您必须为C#语法安装C#包(包含所有其他通用语言)。 为此,请安装“Get Bundles”软件包,并使用它来安装C#软件包。

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

您也可以使用E-TextEditor for Windows。 步骤是一样的。