Visual Studio 2012: подсветка синтаксиса выключена и включена

Я использую VS2012, и я доволен этим. Но проблема в том, что я кодирую на С++, что подсветка синтаксиса отключается снова. Иногда подсветка выключена, и я должен перезагрузить файл. Кроме того, он выделяется довольно медленно.

Кто-нибудь знает, как это исправить?

Ответ 1

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

Он отключится, если последняя строка в файле является комментарием одной строки. (//бла-бла). Как только я удалил, подсветка текста снова работала!

Ответ 2

Изменить: В этом ответе я предполагаю, что ваше описание проблемы верное. Другими словами, я предполагаю, что иногда выделяется подсветка С++, а в других случаях текст отображается как обычный текст: полностью черно-белый.

Я предполагаю, что вы используете расширение, которое изменяет или заменяет способ Visual Studio выделяет код на С++. Попробуйте временно отключить все свои расширения и снова проверить, работает ли редактор. В некоторых расширениях может быть отключена кнопка "Отключено"; в этом случае вам нужно будет удалить расширение для этого теста (возможно, через "Панель управления" и "Программы и компоненты" ).

В качестве примера одного общего расширения, которое полностью заменяет ярлык С++, является Visual Assist. Тем не менее, я лично не использую этот продукт, и я не слышал о каких-либо конкретных проблемах с ним такого рода. Я просто упоминаю его как пример расширения, полностью изменяющего поведение Visual Studio в отношении подсветки синтаксиса кода С++.

Ответ 4

Для меня подсветка всегда перестает работать, когда первая видимая строка в редакторе начинается с символов "//", и я вызываю репарацию каким-то образом (например, CTRL + S).

Выделение всегда отлично работает, когда первая видимая строка в редакторе начинается с чего-либо еще, даже с пробелом, и я вызываю как-то перерисовываться.

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

Ответ 5

Если вы используете только Intellisense, вы можете перейти в Edit- > Intellisense- > Toggle Completion Mode (или нажать Ctrl + Alt + Space), поиграть с ним и посмотреть, работает ли он (возможно, вы нажали эту комбинацию из ключей случайно).

Я также установил Update 3 и с тех пор не имел никаких проблем. Кто знает..

Ответ 6

У меня была та же проблема. Отказ от масштаба, к сожалению, не сработал у меня.
После поиска и понимания того, что это произошло только в больших файлах,
Я получил его, чтобы работать, отключив ускорение прикрытия.

Инструменты- > Параметры...- > Окружающая среда- > Общие
* Автоматическая настройка [...] (выкл.)
* Используйте ускорение аппаратной графики (выключено)

Ответ 7

Лично я обнаружил, что такие вещи, как:

#if 0// bla-bla

бесполезно выделяет синтаксис. Решением, которое работает, является помещение пробела перед комментарием, например:

#if 0 // bla-bla

Ответ 8

Я установил Visual Studio 2012 Update 3 вчера и начал испытывать то же самое поведение, описанное в исходном сообщении. Основываясь на некоторых предложениях в этой теме, я просмотрел мои расширения и отключил AllMargins исправил проблему. С тех пор я снова включил AllMargins, и все работает так, как должно.

Попробуйте отключить и повторно включить любые ваши расширения; надеюсь, что это исправит проблему для вас.

Ответ 9

В моем случае оказалось, что большой блок кода (метод 200+ строк) был закомментирован с //, начиная с первого столбца, и это приводило к тому, что синтаксическая раскраска не работала. Я изменил разметку комментариев на /* ... */ для этого метода, и вся синтаксическая раскраска была исправлена.