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

When adding a long string, syntax highlighting stops working

这与此问题没有任何关系

我用的IDE是Visual StudioUltimate 2013

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

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

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

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

您尝试过声明静态变量并从 TXT 文件加载它吗?并将字节值放入 TXT 文件中。 或者您可以将字符串拆分为 more than variable!

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

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

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