Eclipse CDT Indexer: «Не удалось создать область для представления имени» - PullRequest
0 голосов
/ 21 января 2020

У меня есть несколько проектов C ++ среднего размера (10-100 тыс. Строк), и уже:

  • обновил Eclipse до последней версии (заставка показывает 03 2020)
  • в четыре раза eclipse.ini Java Настройки ОЗУ
  • позволили индексатору и всем его настройкам (C / C ++ General => Indexer), проект имеет природу C ++
  • , настроенные пути включения и параметры компилятора (Project = > Индекс C / C ++ => поиск нерешенных включает в себя отчеты, которые не пропущены, современный синтаксис C ++ понятен)

Обычно индексатор работает, кроме двух случаев:

  • I заметил, что когда я открываю много файлов (более 30), индексатор просто перестает работать или случайным образом подчеркивает некоторые символы (похоже, что он выходит из памяти). До сих пор поддержание низкого количества открытых файлов предотвращает эту проблему (если это происходит, закрытие файлов и выбор Project => C / C ++ Index => Rebuild решает проблему)
  • Индексатор просто не делает хочу индексировать некоторые символы. Он корректно индексирует весь буст и весь проект, за исключением нескольких случайных типов (всегда одинаковых). Проект строится правильно, я проверил на наличие проблем с циклическим включением (нет) и отсутствием включений - все правильно. Перестройка индекса не имеет значения - точно такие же символы просто не индексируются. Удивительно, но классы, которые не проиндексированы, только подчеркнуты в других файлах - файл с определениями проблемных c символов (например, layer_element) полностью раскрашен без проблем.

Я использовал Project = > C / C ++ Index => Создать файл журнала анализатора, и он содержит такие записи:

file:[...]/layer.hpp is not indexed
file:[...]/layer.hpp is not indexed
A scope could not be created to represent the name layer_element in file [...]\layer.cpp:15
A scope could not be created to represent the name layer_element in file [...]\layer.cpp:15
A scope could not be created to represent the name layer_element in file [...]\layer.cpp:15
A scope could not be created to represent the name layer_element in file [...]\layer.cpp:15
A scope could not be created to represent the name layer_element in file [...]\layer.cpp:15

Я понятия не имею, что может быть потенциальной причиной этого. Я почти уверен, что это не проблема с памятью, потому что я поднял и конфигеры indexer и Eclipse, и моя машина тоже неплохая.

...