Как я могу заставить Visual Studio проверять мой код на ошибки (показывать загадки) без явной компиляции? - PullRequest
4 голосов
/ 20 января 2010

Иногда я использую Visual Studio (C # Express 2008) для работы с кодом C #, предоставленным поставщиком. Я хочу сделать мой опыт работы с VS более похожим на мой опыт работы с Eclipse. Я привык к тому, как Eclipse обрабатывает подчеркивание ошибок (в исходном коде Java). Когда я делаю ошибку в своем коде в Eclipse, он сразу подчеркивается, и, если я исправлю это, подчеркивание исчезнет почти сразу или, в худшем случае, при сохранении файла. Однако в Visual Studio подчеркивание сохраняется до следующего построения проекта.

Есть ли где-нибудь настройка, которую я могу изменить, чтобы VS создавал каждый раз, когда я сохраняю, или даже когда я печатаю? Сложно ли это сделать с C #, потому что он более сложен, чем Java? Нужно ли мне найти кого-то, чтобы купить мне полную (не экспресс) версию? Кроме того, как называется волнистое подчеркивание? Боюсь, этот вопрос уже задавался раньше, но я не знаю волшебного слова, которое нужно искать.

Ответы [ 4 ]

17 голосов
/ 20 января 2010

Ответ Джейсона в порядке, но пара дополнительных очков:

это сложно сделать с C #, потому что он более сложен в некотором смысле, чем Java?

Да, но это не актуально. Да, это сложная задача - на лету анализировать любой язык за 100 миллисекунд между нажатиями клавиш. Делать это для C #, вероятно, сложнее, чем Java, поскольку он поддерживает гораздо больше языковых функций, чем Java.

Но наша команда IDE - это куча хороших кодеров, которые великолепны, поэтому они могут справиться с этим для C #.

Реальная проблема заключалась в том, что архитектура компилятора C # изначально не была предназначена для такого рода анализа в реальном времени; компилятор VB был. И поэтому потребовалось гораздо больше времени, чтобы исправить механизм семантического анализа компилятора C #, чтобы сделать эту функцию осуществимой.

Мы продолжаем исследовать вопрос о том, как реорганизовать компилятор, чтобы предоставлять все больше и больше этих сервисов анализа на лету богатым, расширяемым и убедительным способом, но это займет некоторое время. Это большой компилятор.

как называется волнистое подчеркивание?

В команде компиляторов мы называем это «волнистым красным подчеркиванием», или, если коротко, «загогулинами».

Я не знаю, есть ли у маркетинга название для этого или нет. Если они это сделают, это, вероятно, что-то вроде «Microsoft SquiggleSense .NET для Microsoft Visual Studio Suite System 2008»; Кажется, им нравятся эти длинные имена, в которых дважды встречается «Microsoft».

13 голосов
/ 20 января 2010

Есть ли у вас Visual C # 2008 Express Edition с пакетом обновления 1?SP1 добавил именно эту функцию в Visual Studio 2008 Professional и Visual C # 2008 Express Edition.

Из примечаний к выпуску :

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

Из замечаний к выпуску Скотта Гатри :

Редактор кода C # теперь идентифицируети отображает красные ошибки заговора для многих проблем семантического кода, которые ранее требовали явной компиляции для идентификации.Например, если вы попытаетесь объявить и использовать неизвестный тип в редакторе кода C # сегодня, вы не увидите ошибку компиляции, пока не выполните сборку.Теперь с пакетом обновления 1 (SP1) вы сразу увидите живые красные ошибки приседаний (явной компиляции не требуется):

alt text

7 голосов
/ 19 ноября 2012

Чтобы включить эту опцию в VS 2010, используйте Сервис> Параметры> Текстовый редактор> C #> Дополнительно> Показать живые семантические ошибки и

VS 2010 используйте Инструменты> Параметры> Текстовый редактор> C #> Дополнительно> Вход в режим выделения при открытии файлов

1 голос
/ 27 сентября 2011

Чтобы включить эту опцию в VS 2010 , используйте Tools> Options> Text Editor> C#> Advanced> Show live semantic errors

...