Подтвердить что ты не робот

Как заставить Visual Studio 2015 мгновенно отображать скобки, фигурные скобки и ссылки без задержки?

При размещении курсора на закрывающей скобке в С#, например, есть небольшая раздражающая задержка до того, как открывающая скобка будет подсвечена, и вам придется сидеть и ждать, прежде чем вы сможете использовать ярлыки, такие как (ctrl + shift + up/вниз). Похоже, что это поведенческое поведение по причинам, не зависящим от меня, поэтому я не думаю, что это ошибка или потому, что мой компьютер медленный (это не так), но это сводит меня с ума.

Я на недавно установленном ПК, поэтому у меня есть только тестовый файл в нескольких языках программирования/форматах файлов, и в некоторых из них поведение наблюдается только.

Отложенное поведение highligh происходит в файлах .cs (c#) и .css, но не в файлах .js и .html, здесь код становится высокопоставленным мгновенно точно так же, как я хочу его в .cs файлах.

Я использую Visual Studio 2015 Community Edition.

4b9b3361

Ответ 1

У меня возникла и эта проблема, начиная с первой установки. Я могу подтвердить, что Update 1 CTP решает эту проблему, и задержка почти ушла (возможно, через 1/8 секунды.)

Эта задержка пользовательского интерфейса была вызвана как исправление, включенное в обновление:

https://support.microsoft.com/en-us/kb/3025135

Ответ 2

К проблеме, что есть задержка, выделяющая скобки: По-моему, это не имеет никакого отношения к ошибке. Я думаю, что это займет немного времени, потому что ваш код нужно анализировать каждый раз, когда вы что-то меняете, чтобы выделить скобки. Когда у вас много строк кода в одном файле, очевидно, что требуется немного больше времени, чем обычно.

Вот несколько советов, которые могут вам помочь:

Нажмите на кронштейн и нажмите STRG + ´, что приведет вас непосредственно к другому кронштейну. Или вы нажимаете ALT + ´, и он будет отмечать весь ваш код между вашими текущими скобками. Вы можете найти ярлыки Visual Studio в Инструменты → Параметры → Среда → Клавиатура:

Здесь перечислены все ярлыки, и вы можете их модифицировать по своему усмотрению

Я бы рекомендовал всем программировать в Visual Studio, чтобы изменить цвет подсветки соответствующего скобки. Посмотрите на это:

Инструменты - > Параметры - > Окружающая среда > Шрифты и цвета

Здесь вы можете изменить все цвета и формы, используемые для определенных поисковых запросов. Я лично использую Visual Assist 2015, чтобы выделить мой код (вот почему я ничего здесь не менял). Это намного быстрее, чем сам VS, и поставляется с гораздо большим количеством функций, таких как рекомендации для скобок, которые покажут вам уровень отступа ваших скобок. Посмотрите, может вам понравится:

введите описание изображения здесь

Ответ 3

Около 500 мс в новом проекте консоли

500 мс - это волшебное число в .NET. Вы можете получить некоторое представление из исходного кода для С# Language Service, случайно (?), Выставленного программистом Microsoft на github. Наиболее подходящий файл, вероятно, этот:

internal interface IBraceMatchingService
{
    Task<BraceMatchingResult?> GetMatchingBracesAsync(Document document,
        int position, CancellationToken cancellationToken = default(CancellationToken));
}

Или, другими словами, служба сопоставления скобок работает как фоновая задача. Такие задачи обычно выполняются в потоке потока пула и подлежат планированию диспетчером threadpool. То, что вступает в игру волшебный номер 500 мс. Менеджер пытается сохранить количество выполняемых потоков tp до количества процессорных ядер, доступных на машине, наиболее эффективный способ запуска потоков. Однако, если существующие потоки tp занимают слишком много времени, чтобы закончить свое задание, тогда менеджер предполагает, что они увязли с помощью ввода-вывода и позволяют запускать дополнительный. Он делает это каждые 500 мсек.

Итак, оценка первого порядка вашей проблемы заключается в том, что у VS слишком много активных потоков потоков потоков, и они не завершаются своевременно. Устранение задачи сопоставления скобок выполняется слишком поздно.


Определить, какие конкретно задачи боятся, технически возможно. Я не могу гарантировать успех в издании Community, и вам нужно будет получить достаточное количество информации о том, как читать стеки вызовов потоков, чтобы продвигаться вперед. Запустите еще один экземпляр Visual Studio и используйте Debug > Attach to Process. Выберите "devenv.exe" из списка. Пусть он катится, когда он пытается найти файлы PDB, а затем используйте Debug > Break All.

Первое место - Debug > Windows > Tasks. Довольно маловероятно, что вы увидите что-нибудь там, нормальное - не видеть. Следующий - Debug > Windows > Threads. В этом окне вы должны увидеть около 15 активных потоков. Наведите указатель мыши на столбец "Местоположение", чтобы заглянуть в их стоп-колл. Понимание того, что вы видите, не так просто, к сожалению, это очень поможет, если вы можете сравнить то, что видите на другой машине, у которой нет этой проблемы.


Поскольку у вас есть эта проблема на нескольких машинах, другой подход заключается в поиске экологического фактора, который у них есть общего. Вещи, которые нужно искать, - это агрессивная защита от вредоносных программ, сетевое соединение, которое слишком медленное или слишком ненадежное, малоэффективная надстройка, которая вам нравится, но плохо работает на версии VS, на которой она не тестировалась.

И подумайте, что VS2015 не совсем готов к прайм-тайму. Из всех последних версий VS, выпущенных за последние 18 лет, он, вероятно, является наименее стабильным. У этого есть много тяжелых внутренних изменений, и было беспрецедентное количество альфа-и бета-версий с критическими исправлениями ошибок, реализованными всего несколько месяцев назад. Повторите попытку после выпуска обновления 1.

Ответ 5

Я не нашел окончательного решения вашей проблемы.
Это была известная ошибка в обзоре VS2015.

В этих ссылках обсуждается задержка (эта ссылка относится к С# btw, а не c):
https://connect.microsoft.com/VisualStudio/feedback/details/1033540/braces-are-not-highlighted-correctly-in-c

И для некоторых пользователей VS2015 Community Edition все еще есть аналогичные проблемы.

http://www.developerteacher.com/msdn/bracket-matching-highlights-not-working-like-i-had-in-2013-express-4227

Лично я думаю, что вы застряли с ошибкой, и если бы я был вами, я бы попробовал следующее:

  • Удостоверьтесь, что я не знал всех предыдущих выпусков VS.
  • Попробуйте выполнить ремонт.
  • Полностью удалить и переустановить VS2015, если работающий ремонт не работает.
  • Вернитесь к VS2013, если вы его не выдержите, и подождите, пока VS2015 немного созреет на лозе.

Одна вещь, которую я нашел с VS, - это когда она играет в нее болезненно, она занимает очень много времени, и в худшем случае я удалил и загрузил все, что было связано с установкой. Теперь он отлично работает. (это было после предварительного просмотра 2015 года, а затем и возврата к 2013 году). Вы также можете попробовать это для VS2015, а также попробовать новую загрузку.

Я иногда буду смотреть на некоторые предварительные просмотры, но после того, как вы слишком быстро поспешили с последними версиями программного обеспечения, а затем раскаивались с досугом. Теперь я рад дождаться появления новых выпусков на некоторое время перед обновлением.

Еще один FYI для просмотра.

Это ссылка на исправленные ошибки Visual Studio 2015 RC и известные проблемы. Предлагается немало проблем и хаков. (не конкретный для вашей проблемы, но все еще там несколько месяцев назад.).

Я предполагаю, что вы знаете, как играть с настройками. Я добавил очевидное, на случай, если это будет упущено.

Я добавил этот снимок экрана из настроек VS2013.

Убедитесь, что выделена автоматическая подсветка.

screen shot

Извините, я не могу больше помочь.