суббота, 10 января 2009 г.

Технологии интеллектуального редактирования (Часть II)

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

Как обычно начнем с более простых возможностей, первой из которых рассмотрим быструю декларацию переменной и поля. В заметке посвященной LiveTemplates я уже рассказывал как можно быстро объявить переменную. Но есть еще один вариант. Представим себе ситуацию, когда вы уже пытаетесь скомпилировать проект с не объявленной переменной, естественно компилятор выдаст ошибку:

[DCC Error] Unit2.pas(94): E2003 Undeclared identifier: 's'

Так вот, если теперь встать на эту ошибку и из контекстного меню выбрать пункт Declare Variable то в диалоговом окне можно выбрать тип определяемой переменной и при необходимости даже инициализировать ее:

Этим средством удобно пользоваться когда необходимо быстро задействовать новые локальные переменны - например при добавлении циклов.

Аналогично можно поступить если требуется не локальная переменная, а поле класса - Declare Field. Единственное отличие заключается в том, что для поля класса можно дополнительно выбрать область видимости.

Следующая замечательная возможность называется визуальное создание метода (Extract Method). Она позволяет выделить в редакторе кода произвольную часть кода, и организовать ее в виде метода. На рисунке я выделил код, отвечающий за удаление временных файлов в отдельный метод:

При выделении более сложного участка кода в процессе рефакторинга автоматически создадутся параметры метода и его локальные переменные.

Пожалуй самая используемая мной возможность рефакторинга - это визуальное изменение параметров (Change Parameters). Очень удобно при большом количестве параметров, часть из которых задана со значениями по умолчанию. Вызывается из контекстного меню редактора кода, если предварительно выделить имя необходимой процедуры или метода.

Ну и в завершение еще одна из часто используемых и полезных функций рефакторинга - глобальное переименование идентификатора (Rename). Сколько хлопот раньше приносило переименование какого-либо визуального контрола (скажем TLabel) если он использовался коде. Все вхождения можно было отловить только с помощью компилятора и спотыкания на каждом вхождении. Но теперь с этим покончено. Необходимо всего лишь встать на необходимый идентификатор и дать команду Refactor -> Rename. Данная операция применима к названиям переменных, методов, полей, классов, структуур, интерфейсов и параметров.

Перед переименованием можно просмотреть все идентификаторы которые будут изменены.

В следующей части речь пойдет перемещениях частей кода. Не переключайтесь. :)

Комментариев нет:

Отправить комментарий