Не подсвечивается синтаксис unity в visual studio
В настоящее время я пытаюсь написать расширение для нового типа файла (ANTLR) и задаюсь вопросом, как изменить цвета, используемые для выделения синтаксиса в Visual Studio Code. Мне кажется, что это определено не в расширении, а где-то еще. Нет записи в настройках для цветов, и я не нашел файл CSS, который это определяет (чего я ожидал, поскольку vscode использует Electron). Я также просмотрел файл настроек, сгенерированный vscode, и файлы, которые были с ним, но тоже не поняли. Не помог и поиск в Интернете. Итак, я немного потерялся.
Может ли кто-нибудь дать мне несколько советов или указать на соответствующую документацию?
3 ответа
Нет необходимости обновлять тему, из официальной документации:
Чтобы настроить цвета подсветки синтаксиса редактора, используйте editor.tokenColorCustomizations в файле настроек пользователя settings.json.
Помимо простой настройки токенов, вы можете полностью переопределить правила TextMate с помощью немного более сложных настроек, например:
Правила выделения синтаксиса хранятся в файлах .plist (или, альтернативно, в файлах .tmLanguage ). В этих файлах для выделения синтаксиса объявлены разные типы токенов:
- Что такое ключевое слово?
- Что такое строковый литерал?
- Что за комментарий?
- и т.п.
Вы не определяете цвета в файлах .plist !
Связь между типами токенов и цветами устанавливается в объявлениях цветовой темы.
Вы можете рассмотреть возможность использования цветовой темы
Поддержка тем для семантических токенов
Цветовые темы теперь могут записывать правила для цветных семантических токенов, сообщаемых языковыми расширениями, такими как TypeScript.
Приведенное выше правило определяет, что все объявления переменных, доступных только для чтения, в Java должны быть окрашены жадным шрифтом и жирным шрифтом.
Дополнительную информацию см. На странице семантического выделения вики.
В этом разделе рассмотрены решения по устранению проблем, типичных для набора средств Visual Studio для Unity, приведено описание известных проблем и показано, как улучшить функционирование набора средств Visual Studio для Unity с помощью отчетов об ошибках.
Устранение неполадок соединения между Unity и Visual Studio
Параметр Confirm Editor Attaching включен или Code Optimization On Startup установлен в значение Debug
В меню Unity выберите Edit / Preferences .
В зависимости от используемой версии Unity:
- Убедитесь, что Code Optimization On Startup для параметра задано значение Debug .
- Или выберите External Tools вкладку. Убедитесь, что Editor Attaching флажок включен.
Не удается подключить
- Попробуйте временно отключить антивирусную программу или создать правила исключения для VS и Unity.
- Попробуйте временно отключить брандмауэр или создать правила, разрешающие сетевое взаимодействие между VS и Unity по протоколам TCP/UDP.
- Некоторые программы, например Team Viewer могут препятствовать обнаружению процессов. Попробуйте временно остановить все лишнее программное обеспечение, чтобы выяснить, повлияет ли это на что-либо.
- Не переименовывайте основной исполняемый файл Unity, так как VSTU отслеживают только процессы "Unity.exe".
Сбои Visual Studio
Эта проблема может быть вызвана повреждением кэша MEF в Visual Studio.
Попробуйте удалить следующую папку, чтобы сбросить кэш MEF (перед этим закройте Visual Studio):
Visual Studio не отвечает
Некоторые подключаемые модули Unity, такие как Parse, FMOD, UMP (Universal Media Player), ZFBrowser или Embedded Browser, используют собственные потоки. Эта проблема возникает, когда подключаемый модуль подключает собственный поток к среде выполнения, что блокирует вызовы ОС. Это означает, что Unity не может прервать этот поток для отладчика (или перезагрузки домена) и перестает отвечать на запросы.
Для FMOD существует обходной путь. Вы можете передать флаг инициализации FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE , чтобы отключить асинхронную обработку и выполнять всю обработку в основном потоке.
Несовместимый проект в Visual Studio
очень важно помнить, что Visual Studio сохраняет "несовместимое" состояние в параметрах проекта и не пытается перезагрузить проект до тех пор, пока не будет явно использован Reload Project . Поэтому после каждого шага устранения неполадок убедитесь, что вы пытаетесь повторно открыть решение, и попробуйте щелкнуть правой кнопкой мыши все несовместимые проекты и выбрать Reload Project .
Дополнительные перезагрузки или закрытие всех открытых окон в Visual Studio
Никогда не работайте с файлами проектов непосредственно из обработчика ресурсов или иного средства. Если вам действительно необходимо совершить операции с файлом проекта, мы предоставляем для этого интерфейс API. См. раздел Проблемы со ссылками на сборку.
В случае исключений не происходит останов отладчика
В ОС Windows система Visual Studio предлагает скачать целевую платформу Unity
Проблемы со ссылкой на сборку или свойством проекта
в случае последних версий Visual Studio и Unity лучшим подходом будет использование пользовательского Directory.Build.props файла вместе с созданными проектами. После этого вы сможете участвовать в структуре проекта, не мешая процессу создания.
Точки останова с предупреждением
Если Visual Studio не удается найти исходное расположение для определенной точки останова, рядом с ней отображается предупреждение. Убедитесь, что используемый вами скрипт правильно загружен и используется в текущей сцене Unity.
Точки останова не срабатывают
Не удается выполнить отладку проигрывателей Android
Мы используем для обнаружения проигрывателей многоадресную рассылку (это стандартный механизм, применяемый в Unity), но затем применяется простое соединение TCP для подключения отладчика. Этап обнаружения — основная проблема для устройств Android.
Связь через Wi-Fi универсальна, однако она слишком медленная по сравнению с USB из-за задержки. Мы наблюдали отсутствие должной поддержки многоадресной рассылки у некоторых маршрутизаторов или устройств (этим известна серия Nexus).
Связь по USB обладает отличной скоростью для отладки. Инструменты Visual Studio для Unity теперь могут обнаруживать устройства USB и согласовывать с сервером ADB правильную переадресацию портов для отладки.
Проблемы с IntelliSense или разметка кода
попробуйте обновить Visual Studio до последней версии. Выполните те же действия по устранению неполадок, что и для несовместимых проектов.
Известные проблемы
При отладке Unity иногда аварийно завершает работу.
При отладке Unity иногда зависает.
Пошаговая отладка с заходом и выходом из методов иногда ведет себя некорректно, особенно в итераторах или внутри инструкций switch.
Отчеты об ошибках
Помогите нам улучшить качество набора средств Visual Studio для Unity: отправляйте нам отчеты об ошибках при аварийном выходе, зависании или в случае других ошибок. Эти сведения помогают нам определять причину и устранять проблемы в наборе средств Visual Studio для Unity. Спасибо!
Как сообщить об ошибке в случае зависания Visual Studio
Существуют отчеты о том, что иногда Visual Studio зависает при отладке с помощью набора средств Visual Studio для Unity, но чтобы разобраться в проблеме, нам требуется больше данных. Вы можете помочь нам разобраться с проблемой, если выполните следующие действия.
Создание отчета о зависании Visual Studio во время отладки с помощью набора средств Visual Studio для Unity
Откройте новый экземпляр Visual Studio.
Откройте диалоговое окно "Присоединение к процессу". В новом экземпляре Visual Studio в главном меню выберите Отладка, Присоединение к процессу.
Присоедините отладчик к замороженному экземпляру Visual Studio. В диалоговом окне Присоединение к процессу выберите замороженный экземпляр Visual Studio в таблице Доступные процессы , а затем нажмите кнопку Присоединить .
Приостановите отладчик. В новом экземпляре Visual Studio в главном меню выберите Отладка, Прервать все или просто нажмите CTRL+ALT+BREAK.
Создайте дамп потока. В окне командной строки введите следующую команду и нажмите клавишу ВВОД:
Возможно, сначала будет нужно отобразить окно Команда . В Visual Studio в главном меню выберите Представление, Другие окна, Командное окно.
Откройте терминал и получите идентификатор процесса Visual Studio для Mac:
Запустите отладчик lldb.
Подключитесь к экземпляру Visual Studio для Mac, используя идентификатор процесса:
Приветствую всех друзья! В прошлой статье я рассказал о настройках времени, настройки очереди выполнения скриптов и настройки тегов и слоев. Сегодня речь пойдет об интеграции Visual Studio и Unity.
Картинка для привлечения внимания из открытых источников Картинка для привлечения внимания из открытых источниковПреимущества использования Visual Studio.
Visual Studio - это комплексная среда разработки кода. Подумайте о плюсах умного автозавершения кода, умной подсветки синтаксиса и многом другом.
Разница между лицензиями Visual Studio.
Visual Studio - это инструмент интегрированной среды разработки (IDE ) от Microsoft . Visual Studio выпускается в трех версиях: Community (бесплатное использование) Professional (платное) и Enterprise (платное). Сравнение различий функций между версиями доступно на веб-сайте Visual Studio .
Использование Visual Studio с Unity.
Выполните следующие действия, чтобы настроить редактор Unity для использования Visual Studio в качестве среды IDE по умолчанию:
В Unity перейдите в меню Edit/Preferences и убедитесь, что Visual Studio выбран в качестве предпочтительного внешнего редактора.
Вы можете отредактировать файл, сохранить его и переключиться обратно в Unity, чтобы проверить свои изменения.
Несколько вещей, которые нужно остерегаться
Unity автоматически создает и поддерживает Visual Studio .sln и .csproj файлы. Всякий раз, когда кто-то добавляет/переименовывает/перемещает/удаляет файл из Unity, Unity восстанавливает его .sln и .csproj файлы. Вы также можете добавлять файлы в свое решение из Visual Studio . Затем Unity импортирует эти новые файлы, и в следующий раз, когда Unity снова создаст файлы проекта, он будет создавать их вместе с этим новым файлом.
На сегодня это все. Следующая статья будет посвящена интеграции между RenderDoc и Unity. Спасибо всем, кто дочитал эту статью до конца, подписывайтесь на канал, ставьте лайки, а для тех, у кого появились вопросы - спрашивайте в комментариях! А если вы хотите помочь данному каналу в развитии – делитесь этой статьей с друзьями в социальных сетях!
Здесь вы можете увидеть недостающий функционал:
Как видно, у transform объекта не открывается меню автозаполнения.
Я бы сказал, что вы спрашиваете об автозаполнении, а не о всплывающих подсказках. Версия Unity: 5.5.2f1 / Visual studio 2015 / Visual Studio Tools для Unity установленыВерсия Unity: 5.5.2f1
Visual Studio 2015
Visual Studio Tools for Unity установлен
Автоматического завершения нет, потому что в сценарии вместо имени проекта написано « Разные файлы ». Взгляните на изображение ниже, которое было взято из видео по вашему вопросу:
Это также может произойти из-за того, что Unity аварийно завершила работу, пока Visual Studio все еще открыта, что привело к повреждению некоторых файлов.
Это может произойти из-за того, что Unity был закрыт, а затем снова открыт, но больше не подключен к Visual Studio. При открытии Visual Studio вы получаете « Разные файлы » без автозаполнения.
Это может произойти, если Visual Studio Tools for unity не установлен.
Когда вы создаете скрипт из Unity, быстро откройте его до того, как Unity завершит его обработку или до того, как анимация круглых значков завершится.
Загрузите и установите Visual Studio Tools for unity по этой ссылке. Сделайте это, пока Unity и Visual Studio закрыты.
В редакторе Unity перейдите в Edit → Preferences . → External Tools . В раскрывающемся меню редактора внешних сценариев измените его на Visual Studio 2015 .
В Visual Studio перейдите в Инструменты → Параметры . → Инструменты для Unity → Разное . В разделе Показать значок подключения установите для него true перезапуск Visual Studio.
Все еще не исправлено?
Закройте Visual Studio.
Из Unity повторно импортируйте проект, выбрав Assets → Reimport All .
Все еще не исправлено?
Щелкните значок Показать все файлы .
Выберите сценарий, который не выполняет автозаполнение, затем щелкните правой кнопкой мыши и выберите « Включить в проект» .
Еще не исправлено?
Заслуга chrisvarnz для этого конкретного решения , которое , кажется, работает для нескольких людей.
Закройте Visual Studio
Перейдите в каталог своего проекта и удалите все сгенерированные файлы Visual Studio.
Это расширения файлов, которые нужно удалить:
Допустим, имя вашего проекта называется Target_Shoot , вот как должны выглядеть удаляемые файлы:
Больше ничего не удаляйте.
- Снова дважды щелкните сценарий в Unity, который должен создать новый файл Visual Studio, затем откройте Visual Studio. Это может решить вашу проблему.
Если не работает, проверьте, не возникает ли у вас эта ошибка:
Задача GetReferenceNearestTargetFrameworkTask не найдена.
Установите NuGet PackageManager из здесь .
Перезапустите Visual Visual.
См. Этот ответ для получения дополнительной информации.
Спасибо за указатель на разные файлы! Закрытие VS, удаление проектов VS и sln, а затем двойной щелчок по сценарию в Unity (в результате чего регенерируют файлы проекта и повторно открывают VS) исправили это для меня. Я бы рекомендовал попробовать это перед кнопкой «повторно импортировать все», так как это обед / ночь для нетривиальных проектов. Это хороший совет. Надеюсь, что кто-нибудь, читающий это, увидит этот комментарий В большинстве случаев это вызвано созданием новых скриптов или перемещением их в разные папки в Unity. Всякий раз , когда перезапуск Unity и VS не решает, я simoly также удалять *.csproj и *.sln файлы и запустить Unity , чем. Обычно это срабатывает Решение @chrisvarnz сработало для меня после попытки всех этих других предложений. @gollumullog Хорошо. Поскольку это сработало для нескольких людей, я обновил свой ответ, включив это.Теперь, если Visual Studio уже запущена, перейдите в Visual Studio, он попросит перезагрузить проект. Перезагрузите проект. Проверьте, работает ли он, если не закройте Visual Studio. Теперь откройте файл cs из редактора Unity, и теперь он должен работать.
То же и со мной, спасибо! Пробовал все, но только это исправило. У меня это тоже сработало. Кроме того, еще одна вещь, которую я сделал в Unity 2020.2.0a13, - это снятие флажка и еще раз отметка в Edit / Project Settings / Player / Other Settings: Auto Graphics API. После перезапуска Visual Studio автозаполнение вернулось: DЯ нашел другой способ решить эту проблему более удобным способом:
- Выберите поврежденный файл в обозревателе решений.
- Откройте его свойства.
- Переключите поле «Build Action» с «Compile» на «None».
- Затем переключите его обратно на «Компилировать».
Это каким-то образом убьет синхронизацию между Unity и Visual Studio.
В следующий раз, когда Visual Studio перезагрузит проект, появится предупреждение. Просто нажмите «Отменить».
Выгрузите и перезагрузите проект в Visual Studio:
- щелкните правой кнопкой мыши свой проект в обозревателе решений
- выберите " Выгрузить проект"
- выберите Reload Project
Я обнаружил, что это решение работает лучше всего (проще всего), столкнувшись с проблемой несколько раз.
Спасибо за помощь! Это сработало, но я чувствую, что мы вернулись в 90-е и нам нужно перезапустить Windows, только на этот раз это VS 2017.Если вы выполнили все вышеперечисленное, но по-прежнему не работает, просто попробуйте следующее: Примечание: вы должны были обновить VS.
Надеюсь, тебе это тоже поможет.
Сегодня я столкнулся с теми же проблемами, используя Visual Studio 2017 15.4.5 с Unity 2017.
Мне удалось решить эту проблему, щелкнув правой кнопкой мыши проект в Visual Studio и изменив целевую структуру с 3.5 на 4.5.
Надеюсь, это поможет кому-нибудь еще в подобном сценарии.
Два альтернативных варианта:
@singleton указал мне в этом направлении. Вместо изменения целевого объекта в Visual Studio вы должны изменить его в Unity, поскольку проект создается автоматически.
Затем из Unity перейдите в PlayerSettings и в разделе «Other Settings» измените «Scripting Runtime Version» со «Stable 3.5» на «Experimental 4.6».
Однако это не помогло мне.
Я заметил, что все ссылки на код, связанный с Unity, были отмечены желтым предупреждением. Проверьте свои журналы ошибок и посмотрите, так ли это. В частности, проверьте, появляется ли следующая ошибка: getreferenceNearestTargetframeworkTask
Если да, попробуйте: снова запустите установщик Visual Studio.
В Build Tools 2017 нажмите Modify,
Убедитесь, что отмечены флажки «Цели Nuget и задачи сборки». Это должно быть отмечено, если вы нажмете на разработку универсальной платформы Windows.
Читайте также: