c# - 添加长字符串时,语法突出显示停止工作

标签 c# visual-studio-2013 syntax-highlighting

这与这个问题没有任何关系

broken syntax highlight example

我使用的IDE是Visual Studio Ultimate 2013

出于演示目的,长字符串是 44,517 个字符长的 base64 编码图像(太大而无法粘贴到代码块中,因此我将其放在 pastebin here 上)

我之所以将图像直接嵌入到类中是出于懒惰。我不希望将所有图像添加为我希望在内部使用此类的每个项目的资源,并且由于无论如何 Resources 从 base64 编码版本加载图像,这在功能上没有什么不同但是使该类成为嵌入式对象的优势(嵌入,而不是编译为额外的 dll)。

CodeSense 继续工作,但正如您可以想象的那样,缺少语法高亮显示,这让我觉得我的开发环境只是时间倒退了 20 多年。

有关如何纠正此问题并仍然将图像直接嵌入到类(class)中的任何建议。 (是的,我知道,我想吃我的蛋糕——否则为什么要吃蛋糕?)

最佳答案

此问题似乎已在 Visual Studio 2015 中修复。我无法使用您的 pastebin 中的代码重现该问题。然而,我能够在 VS2013 中重现它,所以不仅仅是你。

与此同时,立即想到的一种解决方法是将文字分成 block ,因为如果文字足够短,突出显示效果很好。在我的例子中,即使只有两个 20 KB 的 block 也可以解决问题。 我不确定这个神奇数字是什么,但可能不值得一试。

从头开始 - 正如我所怀疑的那样,神奇的数字是 32,768,是通过大量使用复制和粘贴找到的。此限制专门针对单行代码的总长度,包括空格和标点符号(引号、括号等),因此在对字符串文字进行分块时,请确保每个 block 都在自己的行上。只要语句跨行拆分,就可以将它们连接在一个语句中。

关于c# - 添加长字符串时,语法突出显示停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348999/

相关文章:

c# - 在c#中定义两个带外键的表

c# - 如何将参数传递给 SP 并检索选择字段给中继器

c# - 重新绑定(bind)单排

c++ - Visual Studio 包含 Dll 子项目 header 问题

c - VS2013中输出屏幕突然闪烁并消失?

php - notepad++ 中多行 php echo 语句的语法高亮显示

php - 剥离标签,但不剥离 <code> 内的标签

c# - "Closure over variable gives slightly worse performance"。如何?

visual-studio-2013 - 更改企业库日志记录中的源名称

mysql - mysql 通用和慢速查询日志的 vim 语法高亮显示