Переменная только выделена в объявлении?(Emacs c ++ - режим) - PullRequest
3 голосов
/ 19 января 2012

В emacs (23.3.1, GNU) я установил тему (не имеет значения, какую проблему я использую, проблема сохраняется).В то время как в режиме C ++, когда я объявляю переменную, переменная подсвечивается (в данном случае белым), но при повторном вызове этой переменной в моей программе она не будет выделена белым, как при объявлении.Есть идеи, почему это происходит и как это исправить?Заранее спасибо.Вот пример, хотя цвета явно нет:

int num; <------- would be white

 cout << "The number is: " << num << endl; <-------- here it would not be white, 

 just regular foreground color?

1 Ответ

2 голосов
/ 20 января 2012

Это потому, что Emacs довольно сложно сказать, что num во втором выражении является переменной без полного синтаксического анализа буфера.Теоретически, Emacs способен сделать это (см., Например, здесь ), но большинство режимов используют регулярные выражения для выделения ключевых слов.Это подразумевает некоторые ограничения на то, что может быть достигнуто, но часто программисты режима предпочитают его простоту (ну, все относительно).

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

Если вы хотите углубиться в Emacsвыделение синтаксиса, проверьте Font Lock и, в частности, font-lock-Keywords , но имейте в виду, что это сложный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...