Программирование и работа с кодом
Для этого мы изучим множество средств повышения производительности, имеющихся в интегрированной среде разработки. Многие из этих средств повышения производительности встроены в текстовые редакторы. Другие имеют более общий характер. Но все они преследуют одну общую цель: помочь вам (разработчикам) писать код быстро и правильно.
Если вы помните из главы 6, то в нашем описании редакторов мы использовали очень простой пример кода: это было консольное приложение, которое выводило на консоль текст "Hello, World!" На рис. 8.1 вы видите, как выглядит этот код в окне редактора кода.
Если вы следили за нашим изложением и набрали код приложения "Hello, World!" в Visual Studio, то…
Когда вы редактируете файл исходного кода, то чрезвычайно полезно понимать, какие строки кода уже зафиксированы (т. е. сохранены на диск), а какие — еще нет. Такую возможность дает функция отслеживания изменений: желтая вертикальная полоса в поле выделения текстового редактора будет отмечать те строки, которые были изменены, но еще не были сохранены. Если содержимое было изменено, а затем сохранено, то оно будет помечено зеленой вертикальной полосой в поле выделения.
При помощи наблюдения за желтой и зеленой полосами вы можете быстро отличить:
□ код, который не изменялся с момента загрузки файла (полос нет);
□ код, который изменялся и был сохранен после загрузки…
Компилятор Visual Studio работает вместе с окном редактора кода и отмечает проблемы в исходном коде. Компилятор может даже работать в фоновом режиме, что позволяет окну редактора помечать проблемы по мере набора вами кода (не нужно дожидаться компиляции проекта).
Проблемы в коде помечаются при помощи цветных волнистых линий, которыми подчеркивается проблемное место кода. Эти волнистые линии представляют собой тот же самый механизм, который используется в Microsoft Word для отметки мест, в которых имеются проблемы с правописанием и грамматикой. Цвет волнистой линии указывает конкретный класс проблемы. В табл. 8.1 показано соответствие этих цветов и вызвавших их проблем.
Таблица 8.1. Цвета индикаторов имеющихся…
Текстовые редакторы поддерживают гиперссылки в документах; щелчок по такой ссылке запускает браузер по указанному адресу. Отличным применением для этой функции является встраивание URL для документации или прочей полезной справочной информации внутри комментариев кода.
Текстовый редактор может делать синтаксический разбор и расцвечивать различные конструкции кода для того, чтобы их было легче распознать по виду. Например, в окне редактора кода все комментарии по умолчанию имеют зеленый цвет. Идентификаторы — черные, ключевые слова — синие, строки — красные и т. д.
Число уникальных элементов, которые текстовый редактор может различить и расцветить, фактически огромно: окно текстового редактора распознает более 100 различных элементов. И вы можете каждый элемент настроить и изменить его цвет (при помощи раздела Fonts and Colors в узле Environments диалогового окна Options). Вам нравится работать с более крупными шрифтами? Вам нравится более высокий контраст? Может…
Некоторые документы (такие как файлы исходных кодов и файлы разметки) имеют в своей организации и синтаксисе естественные элементы отношений "родитель-потомок". Например, XML-узлы могут содержать другие узлы. Аналогичным образом и функции (а также и прочие конструкции языков программирования — такие как циклы и блоки try/catch) работают как контейнеры для других строк кода. Структурирование — это концепция визуального представления этих отношений "родитель-потомок".
Структурирование кода используется в редакторе кода; оно позволяет вам сворачивать или разворачивать области кода по границам вышеупомянутых контейнеров. В поле выделения рисуются линии группировки и квадратики для сворачивания/разворачивания. Эти квадратики можно щелкать, что дает возможность отобразить или скрыть строки кода (в соответствии с логическим группированием).
Совет
И Visual Basic, и C# имеют способ создания именованных областей кода вручную (при помощи специального ключевого слова region). Используйте #region/#endregion (#Region и #End Region в Visual Basic) для создания своих искусственных контейнеров кода, которые будут распознаваться средствами структурирования кода. Поскольку каждый region имеет имя, то это очень удобное средство для организации и разделения логических…
В меню Edit | Outlining имеется несколько команд структурирования кода (рис. 8.7):
□ Toggle Outlining Expansion— в зависимости от текущего положения курсора в-окне редактора, скрывает или показывает данную область;
□ Toggle All Outlining — скрывает или показывает все области в редакторе;
□ Stop Outlining — выключает автоматическое структурирование кода (все скрытые области будут развернуты). Эта команда доступна только в том случае, когда автоматическое структурирование включено;
□ Stop Hiding Current — удаляет структурирование текущей выделенной области. Эта команда доступна только в том случае, когда автоматическое структурирование выключено;
□ Collapse to Definitions — скрывает все области процедур. Эта команда полезна для того,…
Проблема с большими или сложными Web-страницами состоит в том, что навигация по HTML может быть очень сложной (с учетом наличия множества уровней и слоев вложения тегов). Представьте себе страницу, содержащую таблицу, которая находится в таблице, содержащейся в другой таблице. Когда вы редактируете HTML (в визуальном конструкторе или редакторе), как вы можете точно определить, где вы находитесь? Иначе говоря: как вы можете сказать, где находится текущий фокус в иерархии разметки?
На вопрос из предыдущего раздела может ответить навигатор тегов Visual Studio. Навигатор выглядит как набор кнопок в нижней части редактора Web-страниц (справа от вкладок визуального конструктора/редактора). В виде кнопок показана цепочка тегов, которая ведет от тега с текущим фокусом до самого внешнего тега. Если эта цепочка слишком длинна для того, чтобы поместиться в границах окна редактора, то она усекается со стороны родительских тегов; дополнительная кнопка позволяет вам отобразить следующие теги со стороны родителей.
На рис. 8.8 показан пример, который мы рассматривали в главе 6: страница регистрации на HTML. Пока вы редактируете кнопку ОК на странице регистрации, навигатор тегов показывает весь…