Refaktoryzacja


Refakoryzacja - opis

W jDesignerze jest mechanizm refaktoryzacji kodu. W obecnej wersji jest dostępna refaktoryzacja lokalna. Najlepszym sposobem na korzystanie z refaktoryzacji jest zapoznanie się ze skrótami klawiszowymi. Refaktoryzacja dostępna jest również z menu głównego, jak i w menu kontekstowym po kliknięciu prawego przycisku myszy.

Zmiana nazwy zmiennej lokalnej

Aby zmienić nazwę zmiennej lokalnej (zaczynającej się od @), należy kursorem najechać na zmienianą wartość, a następnie użyć skrótu klawiszowego (standardowo Ctrl + Shift + R), a następnie wpisać nową nazwę i zatwierdzić klawiszem Enter. W celu poprawnej refaktoryzacji dokument nie powinien zawierać żadnych błędów kompilacji lokalnej. Nie ma znaczenia czy zostanie zaznaczona deklaracja czy wywołanie zmiennej lokalnej, zmiana zostanie dokonana w całym dokumencie. Nie zostaną zmienione zakomentowane zmienne lokalne o tej samej nazwie.
Aby anulować zmianę wystarczy wcisnąć Esc lub skrót związany z cofnięciem (Standardowo Ctrl + Z). Po refaktoryzacji możliwe jest również cofnięcie zmian w tym celu wystarczy użyć standardowego cofnięcia, a cała refaktoryzacja zostanie cofnięta za jednym zamachem.

Wyciąganie zmiennej lokalnej

W jDesignerze jest możliwość wydzielenia części kodu do zmiennej lokalnej. W tym celu należy zaznaczyć kod, który chcemy wydzielić do zmiennej lokalnej, a następnie użyć refaktoryzacji Wydziel zmienną lokalną (standardowy skrót Alt + Shif + L).
Gdy wyciągamy kilka napisów zostaną one zagregowane przez konkatenację w jeden string:

<label for="use_lead">$toUpperFirst((String)$*jpalio.cms.i18n.get("label.uses_lead"))</label>

zostanie zamienione na:

$=(@temp_name, $+(["<label for=\"use_lead\">", 
$toUpperFirst((String)$*jpalio.cms.i18n.get("label.uses_lead")), "</label>"])) $@temp_name

Po wyciągnięciu zmiennej lokalnej zostaje utworzone przypisanie do zmiennej, a następnie wywołanie jej w miejscu gdzie wcześniej występował wydzielany kod.

Wyciąganie kodu do nowego obiektu

Podobnie jak wyciąganie kodu do zmiennej lokalnej, można wydzielić kod do nowego obiektu. W tym celu należy skorzystać z refaktoryzacji Wyciągnij obiekt (standardowo Ctrl + M).
Po zaznaczeniu tekstu i wybraniu opcji wyciągnięcia do obiektu zostanie wyświetlone okienko, w którym należy wpisać kod i nazwę nowotworzonego obiektu. Po zaakceptowaniu zostanie utworzony obiekt z kodem, który zaznaczyliśmy, a kod ten w refaktoryzowanym obiekcie zostanie zamieniony na wywołanie nowego obiektu.

Inline zmiennej lokalnej

W celu zastąpienia wywołań zmiennej lokalnej treścią jaka została przypisana do zmiennej lokalnej należy skorzystać z refaktoryzacji Inline zmiennej lokalnej (standardowo Alt + Shift + I).
Po zaznaczeniu zmiennej i wybraniu refaktoryzacji zostanie wyświetlony komunikat o ilości wystąpień zmiennej, w którym możemy potwierdzić nasz wybór lub wycofać zmiany.
Jak wszystkie inne refaktoryzacje możliwe jest cofnięcie zmian poprzez mechanizm cofania (standardowo Ctrl + Z).

Przykład:

$@=(@val, "Text")
${
	@temp = @val;
}
This is some $@val.

po inline @val kod zostanie zamieniony na

${
	@temp = "Text";
}
This is some Text.