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

Xcode: код теряет синтаксическую окраску

Я обнаружил, что в различных ситуациях код Objective-C в Xcode 3.1 (Leopard) может не получить соответствующую синтаксическую раскраску после ввода или потери цвета, который у него был.

Это не просто проблема с обновлением с новыми пользовательскими символами, но также влияет на символы фрейма Cocoa.

Иногда CMD-a, чтобы выбрать весь текст на кодовой странице, сделает раскраску (re), иногда двойным щелчком по строке, чтобы выбрать ее, будет работать, иногда мне приходится добавлять/удалять пробел в символе получите этот символ (re). Восстановление или закрытие/повторное открытие проекта могут работать или не работать.

Это известная проблема с Xcode? Для чего-то настолько раздражающего меня, я не нахожу подробных обсуждений этого в SO и в других местах, которые я ожидал бы.

И есть ли какая-либо команда для принудительного повторения глобального синтаксиса?

4b9b3361

Ответ 1

1.) Перейдите в Project → Настройки сборки → Пути поиска заголовков

2.) Добавьте "$ (SRCROOT)/**"

3.) Закройте и перезагрузите проект

4.) Перейти к Xcode → Window → Organizer → Projects → $YourProject → Удалить производные данные

5.) Подождите, пока XCode не перестроит все указатели.


Чтобы получить дополнительную информацию, активируйте подробное ведение журнала:

1.) Увеличьте уровень журнала Xcode в приложении терминала: defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

2.) Приложение Open Console. Поиск "xcode"

3.) Я видел ошибки "файл не найден" для файлов заголовков, упомянутых в файле pch (поэтому исправление выше)

Ответ 2

У меня была такая же проблема с проектом, который был хорошо в Xcode 3, и для которого подсветка синтаксиса и завершение кода сломались в Xcode 4. Мне понадобилось лучше половины дня, чтобы понять это, но я обнаружил, что следующие шаги будут воспроизводить/исправлять проблему на 100% для меня.

После того, как все вышеупомянутые решения оказались безрезультатными, я попытался создать проект с нуля и тщательно перерисовать все файлы и папки. Каждый раз, когда я импортировал пару файлов, которые я проверил, и подсветка синтаксиса все еще работала. Даже после последних нескольких из них это все равно. Затем я ударил сборку, которая потерпела неудачу, потому что я забыл включить пару общих файлов заголовков в файл проекта .pch, которые были там в старом проекте. И вот тогда CodeSense снова сломался.

После дальнейшего исследования мы обнаружили, что если вы импортируете заголовочный файл, который, в свою очередь, импортирует тот же заголовочный файл среды, что и .pch, уже делает, тогда CodeSense будет ломаться. Такая же настройка не вызывала никаких проблем в Xcode 3.

Пример:

project.pch

#import <Foundation/Foundation.h>
#import "projectConfig.h"

projectConfig.h

#import <Foundation/Foundation.h>
#import "one.h"
#import "two.h"

Итак, удалив полностью ненужный

#import <Foundation/Foundation.h>

директива "projectConfig.h" вы можете исправить выделение, а завершение кода вернется и для вас. Если ваша проблема такая же, как у меня.

Ответ 3

Просто выберите файл, который потерял синтаксическую раскраску, нажмите "Редактор" > "Раскраска синтаксиса" > (выберите свой язык (Objective С++ for ex) вместо "Default"

Ответ 4

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

Ответ 5

Я нахожу, что следующее часто будет делать трюк...

"Повторно выберите" и "Base SDK" - и "Architecture" - в "Настройки сборки". (Нажмите на значок голубого проекта в левом верхнем углу, в то время как в "режиме браузера", aka 1, затем выберите настройки проекта и беспорядок там.

Удостоверьтесь, что они все выстроились в линию/не помешает сделать немного toggly-wogglying вверх там, пока вы там... я знаю, просто немного смешайте его. Вы заметите, что xCode имеет миниатюрный мини-штрих - каждый раз, когда вы переключаетесь между 64 и 32 бит... Это обычно, когда я знаю, что подсветка кода мертва на ночь, или если мне хорошо идти.

Часто у меня будет проект, который будет подсвечиваться мгновенно в 32-битном режиме, и просто сидит там в 64... Кто знает.. Ах, Xcode, вы wacky botch.

Ответ 6

Выберите свой проект → вкладка "Настройки сборки" → Язык Apple LLVM 5.0 → Прекомпиляция заголовка префикса в YES. NSLog не выделялся. В настоящее время работает Xcode 5.0.1 Надеюсь, что он помогает =) Спасибо @rebelzach

Ответ 7

Я могу подтвердить исправление 100% для этой проблемы, исходя из вопроса, который я задал (и фактически ответил), как показано на рисунке ниже. Одна вещь, которую я добавлю, заключается в том, что иногда это "странные пробелы", которые также могут способствовать потере выделения. Либо очистите себя, либо используйте Goggle Toolbox для Mac Плагин Xcode 4, который добавляет запись в меню XCode Edit под названием Clean Up Whitespace.

enter image description hereenter image description here

Ответ 8

Это похоже на аналогичную ошибку из question

Мне удалось исправить эту проблему, установив Precompile Prefix Header в No в настройках сборки.

Ответ 9

Недавно у меня была аналогичная проблема, все раскраски и автозаполнение перестали работать для встроенных фреймворков, мои собственные классы все еще работали. Кто-то мне рекомендовал отключить "Запустить статический анализатор" в настройках сборки. Это странно, но это сработало.

Ответ 10

Для меня это было то, что я переименовал свой проект, а Тесты целевой объект все еще указывал на старое местоположение pch, но мой целевой объект приложения указывал на новый.

Если у вашего делегата приложения все еще есть смысл кода, это может быть и для вас. Перейдите в проект, выберите префикс целевого поиска "Тесты" и установите его в эквивалентное значение в целевом приложении.

Ответ 11

Откройте настройки проекта (Проект > Изменить настройки проекта), а затем нажмите кнопку Перестроить индекс кода кода на вкладке Общие. Это воссоздает индекс, который Xcode использует для раскраски синтаксиса.

Этот процесс может занять некоторое время для больших проектов, поэтому вы можете проверить прогресс в окне Activity (Окно > Деятельность).

Ответ 12

Кроме того, в XCode4 нет кнопки для восстановления индекса кода.

Ответ 13

У меня была такая же проблема, и я решил это, обновив мои настройки сборки, чтобы использовать системный компилятор по умолчанию, LLVM GCC 4.2.

Кажется, что есть несколько факторов.

Ответ 14

Я тоже испытываю эту проблему и пробовал решения "перестроить индекс", "перезапустить XCode", "сменить настройку компилятора на LLVM GCC 4.2". Меня это не помогло.

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

#include "header.h"

using namespace cocos2d

Затем код, добавленный ранее в заголовочном файле, раскрашен, и он может распознавать классы и прочее.

Я использовал cocos2d-x, поэтому мой синтаксис основан на С++. Я еще не тестировал его с помощью Objective-c.

Ответ 15

Ибо кто-то еще не знает почему. Пусть open с XCode 8.2, он должен работать