Редактор MS Visual Studio выделяет некоторые идентификаторы без ключевых слов в качестве ключевых слов в файлах С++. В частности, "событие" и "массив" рассматриваются как ключевые слова. Это очень раздражает меня, потому что они не являются ключевыми словами на С++. Я знаю, как добавить свои собственные ключевые слова в список выделенных синтаксисом идентификаторов, но как удалить существующие встроенные? Я знаю, что это может потребовать исправления некоторых исполняемых файлов. Так кто-нибудь знает, как это сделать?
Есть ли способ предотвратить "ключевое слово" от синтаксиса highlited в MS Visual Studio
Ответ 1
Не похоже, что функция отключения-синтаксиса раскрашивается удобным для пользователя способом.
Единственный способ, я могу думать о выборочном отключении синтаксической раскраски, - создать новый синтаксический плагин для раскладки для IDE и перечислить все ключевые слова, которые вы хотите покрасить. Microsoft предоставляет информацию в этой статье о том, как выполнить эту задачу.
Недостатком этого подхода является то, что в вашей среде IDE теперь будут два языка С++, и я не уверен, как он выберет, какой плагин выбрать, когда он загружает файл .h или .cpp. Однако в этой статье предлагается, что вы можете переопределить существующие плагины С++, переписав некоторые разделы реестра.
Ответ 2
Благодаря статье, упомянутой Стивом Гуиди, мне удалось найти исполняемый файл, содержащий классы Colorizer и IScanner. Он называется vcpkg.dll и находится в /Microsoft Visual Studio 8/VC/vcpackages. (Я использую Visual С++ 2005 Express Edition, все может быть другим в других версиях.)
В файле vcpkg.dll содержатся закодированные в UTF-16 строки с нулевым завершением. Я открыл его с помощью шестнадцатеричного редактора и искал "массив". В файле есть только одна такая строка, поэтому я заменил ее "arrry". (Важно поддерживать относительный алфавитный порядок по отношению к другим ключевым словам.) Затем я искал "событие", он отображается в нескольких местах, но есть только один, который не является частью какой-либо более длинной строки, поэтому я Вместо этого он заменил "evvvt". После запуска Visual Studio выяснилось, что "массив" и "событие" больше не выделяются, но "arrry" и "evvvt" были!
Конечно, это уродливый взлом, и он аннулирует вашу гарантию, и, вероятно, идет против Microsoft EULA, но какое облегчение для глаз! В любом случае, если вы хотите это сделать, будьте осторожны и не забудьте сделать резервную копию файла.
Ответ 3
Я думаю, что единственный "полу-практический" способ сделать это для создания пакета Visual Studio, который использует Текстовые маркеры, чтобы выборочно закрывать ключевые слова, которые вы не хотите покрасить. Даже это не однодневная задача. Изменить: Вероятно, даже не полная задача недели для кого-то, не слишком знакомого с API Visual Studio и всех его причуд, особенно не получая его без ошибок.
Другими словами, вы, вероятно, хотите просто игнорировать их.