我如何让 Visual Studio 2015 立即突出显示方括号、大括号和引用,没有延迟?
How do i get Visual Studio 2015 to highlight brackets, braces and references instantly, with no delay?
例如,当在 c# 中将光标放在右括号上时,在左括号被突出显示之前会有一个令人讨厌的小延迟,您必须坐下来等待,然后才能使用快捷方式,例如 (ctrl + shift + up/down)。感觉这是出于超出我的原因的预期行为,所以我不认为这是一个错误或因为我的电脑速度很慢(不是),但它让我发疯。
我在一台新安装的 PC 上,所以我只测试了几种编程语言/文件格式,并且只在其中一些语言/文件格式中出现这种行为。
在.cs (c#)
和.css
文件中出现了延迟的高亮行为,但在.js
和.html
文件中没有,这里的代码会像我一样瞬间高亮希望它也包含在 .cs 文件中。
我正在使用 Visual Studio 2015 社区版。
我还没有找到解决您问题的最终方法。
这是 VS2015 审查版中的一个已知错误。
这个 links 讨论了延迟(这个 link 指的是 c# btw,而不是 c):
https://connect.microsoft.com/VisualStudio/feedback/details/1033540/braces-are-not-highlighted-correctly-in-c
部分VS2015社区版用户也存在类似问题
就我个人而言,我认为您遇到了错误,如果我是您,我会尝试以下操作:
- 确保我已经卸载了所有以前版本的 VS。
- 尝试修复。
- 如果运行修复不起作用,请完全卸载并重新安装 VS2015
- VS2013驱动受不了了,等VS2015成熟一点再说吧
我在 VS 中发现的一件事是,当它播放时很痛苦,安装需要很长时间,最糟糕的情况是我最终卸载并下载了 所有东西与安装相关联。它现在工作正常。 (这是在预览 2015 年然后回到 2013 年之后)。您也可以在 VS2015 上尝试这个,也可以尝试新的下载。
我有时会看一些预览,但是在最新的软件版本上匆匆忙忙地跳了太多次,然后慢慢地后悔了。我现在很高兴在升级之前等待新版本发布一段时间。
另一个供您浏览的信息。
这是 link 到 Visual Studio 2015 RC fixed bugs and known issues。有很多问题和黑客建议。 (不是特定于您的问题,但几个月前仍然存在。)。
我假设您知道如何使用这些设置。我已经添加了显而易见的内容,以防它被忽略。
我已经从 VS2013 设置中添加了这个屏幕截图。
确保选中自动分隔符突出显示。
抱歉,我无法提供更多帮助。
关于括号高亮延迟的问题:我认为这与错误无关。我认为这需要一点时间,因为每次更改某些内容时都需要解析代码以突出显示括号。当你在一个文件中有很多行代码时,很明显它会比正常情况下花费更多的时间。
以下提示可能对您有所帮助:
单击括号并按 STRG + ´
这将直接带您到另一个括号。或者你按 ALT + ´
它会在你当前的括号中标记你所有的代码。你可以在工具->选项->环境->键盘中查看Visual Studio的快捷键:
我建议大家在Visual Studio编程是改变匹配括号的高亮颜色。看看这个:
在这里您可以更改用于特定搜索词的所有颜色和形式。我个人使用 Visual Assist 2015 来突出显示我的代码(这就是为什么我没有在此处进行任何更改的原因)。它比 VS 本身快得多,并且具有更多功能,例如括号指南,可以显示括号的缩进级别。看看吧,也许你喜欢:
Its about 500ms in a newly created console project
500 毫秒是 .NET 中的神奇数字。您可以从 Microsoft 程序员在 github 上意外 (?) 公开的 C# 语言服务的源代码中获得一些见解。最相关的文件可能是 this one:
internal interface IBraceMatchingService
{
Task<BraceMatchingResult?> GetMatchingBracesAsync(Document document,
int position, CancellationToken cancellationToken = default(CancellationToken));
}
或者换句话说,大括号匹配服务 运行 作为后台任务。此类任务通常 运行 在线程池线程上进行,并受线程池管理器的调度。这就是神奇的 500 毫秒数字发挥作用的地方。管理器试图将执行的 tp 线程数保持在机器上可用的处理器内核数,这是 运行 线程的最有效方法。但是,如果现有的 tp 线程完成工作的时间太长,那么管理器会认为它们陷入了 I/O 的困境,并允许额外的线程 运行。它每 500 毫秒执行一次。
所以对你的问题的初步估计是 VS 有太多活动的线程池线程,它们没有及时完成。导致大括号匹配任务 运行 太晚了。
确切地找出 是什么 特定任务使它陷入困境在技术上是可行的。我不能保证社区版一定会成功,您需要对如何阅读线程调用堆栈有相当多的了解才能取得成功。启动 Visual Studio 的另一个实例并使用 Debug > Attach to Process。从列表中选择 "devenv.exe"。让它在尝试查找 PDB 文件时停止运行,然后使用“调试”>“全部中断”。
首先要查看的是调试 > Windows > 任务。然而,您不太可能在那里看到任何东西,正常情况下会看到 none。下一个是调试 > Windows > 线程。您应该会在 window 中看到大约 15 个活动线程。将鼠标悬停在他们的位置列上以查看他们的调用堆栈。不幸的是,理解您所看到的内容并不是那么简单,如果您可以将您所看到的内容与另一台没有此问题的机器进行比较,这将有助于 很多。
由于您在不止一台机器上遇到此问题,另一种方法是寻找它们共有的环境因素。要寻找的东西是积极的反恶意软件、太慢或太不可靠的网络连接、你喜欢的性能不佳但 运行 在未经测试的 VS 版本上表现不佳。
考虑到 VS2015 还没有完全准备好迎接黄金时段。在过去 18 年发布的所有最新 VS 版本中,它可能是最不稳定的。它有 很多 的重大内部更改,几个月前实施的关键错误修复的 alpha 和 beta 版本数量空前。更新 1 发布后再试。
这似乎会在未来得到解决 Visual Studio 更新:https://github.com/dotnet/roslyn/issues/1906#issuecomment-145874647
自从第一次安装以来,我也遇到了这个问题。我可以确认更新 1 CTP 解决了这个问题,延迟几乎消失了(现在可能是 1/8 秒。)
这个 UI 延迟实际上被称为更新中包含的错误修复:
例如,当在 c# 中将光标放在右括号上时,在左括号被突出显示之前会有一个令人讨厌的小延迟,您必须坐下来等待,然后才能使用快捷方式,例如 (ctrl + shift + up/down)。感觉这是出于超出我的原因的预期行为,所以我不认为这是一个错误或因为我的电脑速度很慢(不是),但它让我发疯。
我在一台新安装的 PC 上,所以我只测试了几种编程语言/文件格式,并且只在其中一些语言/文件格式中出现这种行为。
在.cs (c#)
和.css
文件中出现了延迟的高亮行为,但在.js
和.html
文件中没有,这里的代码会像我一样瞬间高亮希望它也包含在 .cs 文件中。
我正在使用 Visual Studio 2015 社区版。
我还没有找到解决您问题的最终方法。
这是 VS2015 审查版中的一个已知错误。
这个 links 讨论了延迟(这个 link 指的是 c# btw,而不是 c):
https://connect.microsoft.com/VisualStudio/feedback/details/1033540/braces-are-not-highlighted-correctly-in-c
部分VS2015社区版用户也存在类似问题
就我个人而言,我认为您遇到了错误,如果我是您,我会尝试以下操作:
- 确保我已经卸载了所有以前版本的 VS。
- 尝试修复。
- 如果运行修复不起作用,请完全卸载并重新安装 VS2015
- VS2013驱动受不了了,等VS2015成熟一点再说吧
我在 VS 中发现的一件事是,当它播放时很痛苦,安装需要很长时间,最糟糕的情况是我最终卸载并下载了 所有东西与安装相关联。它现在工作正常。 (这是在预览 2015 年然后回到 2013 年之后)。您也可以在 VS2015 上尝试这个,也可以尝试新的下载。
我有时会看一些预览,但是在最新的软件版本上匆匆忙忙地跳了太多次,然后慢慢地后悔了。我现在很高兴在升级之前等待新版本发布一段时间。
另一个供您浏览的信息。
这是 link 到 Visual Studio 2015 RC fixed bugs and known issues。有很多问题和黑客建议。 (不是特定于您的问题,但几个月前仍然存在。)。
我假设您知道如何使用这些设置。我已经添加了显而易见的内容,以防它被忽略。
我已经从 VS2013 设置中添加了这个屏幕截图。
确保选中自动分隔符突出显示。
抱歉,我无法提供更多帮助。
关于括号高亮延迟的问题:我认为这与错误无关。我认为这需要一点时间,因为每次更改某些内容时都需要解析代码以突出显示括号。当你在一个文件中有很多行代码时,很明显它会比正常情况下花费更多的时间。
以下提示可能对您有所帮助:
单击括号并按 STRG + ´
这将直接带您到另一个括号。或者你按 ALT + ´
它会在你当前的括号中标记你所有的代码。你可以在工具->选项->环境->键盘中查看Visual Studio的快捷键:
我建议大家在Visual Studio编程是改变匹配括号的高亮颜色。看看这个:
在这里您可以更改用于特定搜索词的所有颜色和形式。我个人使用 Visual Assist 2015 来突出显示我的代码(这就是为什么我没有在此处进行任何更改的原因)。它比 VS 本身快得多,并且具有更多功能,例如括号指南,可以显示括号的缩进级别。看看吧,也许你喜欢:
Its about 500ms in a newly created console project
500 毫秒是 .NET 中的神奇数字。您可以从 Microsoft 程序员在 github 上意外 (?) 公开的 C# 语言服务的源代码中获得一些见解。最相关的文件可能是 this one:
internal interface IBraceMatchingService
{
Task<BraceMatchingResult?> GetMatchingBracesAsync(Document document,
int position, CancellationToken cancellationToken = default(CancellationToken));
}
或者换句话说,大括号匹配服务 运行 作为后台任务。此类任务通常 运行 在线程池线程上进行,并受线程池管理器的调度。这就是神奇的 500 毫秒数字发挥作用的地方。管理器试图将执行的 tp 线程数保持在机器上可用的处理器内核数,这是 运行 线程的最有效方法。但是,如果现有的 tp 线程完成工作的时间太长,那么管理器会认为它们陷入了 I/O 的困境,并允许额外的线程 运行。它每 500 毫秒执行一次。
所以对你的问题的初步估计是 VS 有太多活动的线程池线程,它们没有及时完成。导致大括号匹配任务 运行 太晚了。
确切地找出 是什么 特定任务使它陷入困境在技术上是可行的。我不能保证社区版一定会成功,您需要对如何阅读线程调用堆栈有相当多的了解才能取得成功。启动 Visual Studio 的另一个实例并使用 Debug > Attach to Process。从列表中选择 "devenv.exe"。让它在尝试查找 PDB 文件时停止运行,然后使用“调试”>“全部中断”。
首先要查看的是调试 > Windows > 任务。然而,您不太可能在那里看到任何东西,正常情况下会看到 none。下一个是调试 > Windows > 线程。您应该会在 window 中看到大约 15 个活动线程。将鼠标悬停在他们的位置列上以查看他们的调用堆栈。不幸的是,理解您所看到的内容并不是那么简单,如果您可以将您所看到的内容与另一台没有此问题的机器进行比较,这将有助于 很多。
由于您在不止一台机器上遇到此问题,另一种方法是寻找它们共有的环境因素。要寻找的东西是积极的反恶意软件、太慢或太不可靠的网络连接、你喜欢的性能不佳但 运行 在未经测试的 VS 版本上表现不佳。
考虑到 VS2015 还没有完全准备好迎接黄金时段。在过去 18 年发布的所有最新 VS 版本中,它可能是最不稳定的。它有 很多 的重大内部更改,几个月前实施的关键错误修复的 alpha 和 beta 版本数量空前。更新 1 发布后再试。
这似乎会在未来得到解决 Visual Studio 更新:https://github.com/dotnet/roslyn/issues/1906#issuecomment-145874647
自从第一次安装以来,我也遇到了这个问题。我可以确认更新 1 CTP 解决了这个问题,延迟几乎消失了(现在可能是 1/8 秒。)
这个 UI 延迟实际上被称为更新中包含的错误修复: