
Myśli, porady, tutoriale na temat środowiska Eclipse (i nie tylko)...
wtorek, 21 kwietnia 2009
Domyślne edytory plików

wtorek, 24 lutego 2009
O debugowaniu część II
wtorek, 28 października 2008
Jak korzystać z filtrów?
Pamiętam jak bardzo byłem zdziwiony i zadowolony, gdy po raz pierwszy odkryłem, że widok Package Explorer daje możliwość filtrowania swojej zawartości - niby taka mała rzecz, a ucieszyła mnie niezmiernie. O czym mówię? Kiedy wejdziemy sobie do menu widoku znajdziemy tam opcję Filters...
Gdy wybierzemy właśnie tę opcję pojawi nam się okienko z możliwościami filtrowania zawartości widoku pod różnym kątem:
Jak widzimy mamy sporo elementów, które możemy ukryć, np. zamknięte projekty (ang. Closed projects), puste pakiety (ang. Empty packages), elementy nie-javowe (ang. Non-java elements) i wiele innych. Możemy też stworzyć swój własny filtr, nadając mu nazwę oraz podając pliki o jakich rozszerzeniach powinny być ukryte.
Z filtrów należy jednak korzystać ostrożnie, bo po jakimś czasie możemy zapomnieć, że jakiś element ukryliśmy i będziemy go usilnie szukać nie mając pojęcia, że wystarczy odznaczyć, którąś z opcji w filtrach, aby go zobaczyć ponownie.
Filtrowanie zawartości to domena nie tylko widoku Package Explorer, inne widoki też często dają takie możliwości (np. Outline), jednak czasami kryją się one pod mniej intuicyjną nazwą - np. w widoku Problems znajdziemy opcję Configure Content...:
po wybraniu której pokaże nam się miej więcej takie okno:
W oknie tym możemy:
- określić błędy jakiego typu mają się wyświetlać (np. błędy kompilacji, błędy wtyczek, itp.)
- wskazać jaki tekst mają zawierać opisy błędów, które mają się pojawiać w widoku
- określić jakiego rodzaju informacje mają być wyświetlane (błędy - ang. errors, ostrzeżenia - ang. warnings czy informacje - ang. info)
- wskazać, których elementów problemy mają być brane pod uwagę (np. opcja On selected element and its children pozwala na wyświetlanie błędów z całego jednego konkretnego projektu zaznaczonego w widoku Package Explorer)
- dodawać własne konfiguracje zawartości, zapisywać je i później w łatwy sposób się między nimi przełączać
piątek, 12 września 2008
Kurs podstawowy, część III
Mam dla Was kolejną część cyklu dla początkujących. Co tym razem? Zaczynamy kodować, korzystamy z widoku Problems, rozwiązujemy pierwsze problemy, poznajemy skrót Ctrl+1, zobaczmy do czego służą wzorce kodu, korzystamy z refaktoryzacji:
środa, 27 sierpnia 2008
Ustawienia kompilatora dla projektów Javy.
Zwykle gdy nadzorujemy lub po prostu uczestniczymy w jakimś projekcie zależy nam na wysokiej jakości produktu końcowego, a co za tym idzie chcemy aby kod był napisany nie tylko poprawnie, ale też zgodnie z szeroko rozumianymi dobrymi praktykami. Co jednak zrobić, jeśli w naszym zespole są osoby, które uważają, że kod nie musi być piękny, ważne żeby robił to co do niego należy? Otóż, Eclipse może nam pomóc zdyscyplinować takie osoby i wymusić pewne dobre praktyki. Na czym ta pomoc polega? W łatwy sposób na poziomie całej przestrzeni pracy (ang. workspace) lub też na poziomie projektu możemy ustawić jaki kod kompilator ma uważać za błędny, o jakim ma ostrzegać, a co po prostu ignorować.
Załóżmy, że chcemy ustawić te opcje dla konkretnego projektu. W widoku Package Explorer klikamy prawym przyciskiem myszy na projekcie i wybieramy opcję Properties. Dalej wybieramy Java Compiler - >Errors / Warnings:
Zaznaczamy opcję Enable project specific settings, co pozwoli nam na dostosowanie ustawień wyłącznie dla wybranego przez nas projektu.
Po prawej stronie zobaczymy rozwijane kategorie kryjące różnorakie elementy, którym warto się przyjrzeć i skonfigurować według naszych preferencji. Na przykład jeśli nie chcemy aby programiści tworzyli metody o takiej samej nazwie jak konstruktor to ustawiamy wartość Method with a constructor name na Error, wówczas jeśli programista będzie chciał stworzyć taką metodę to kompilator mu na to nie pozwoli:
Możemy też np. uczulić programistę na różne konstrukcje - i tak jeśli zaznaczymy opcję Redundant null check, to jeśli kompilator wykryje niepotrzebne sprawdzanie wartości null to poinformuje o tym programistę ostrzeżeniem:
Myślę, że warto się przyjrzeć tym opcjom i dostosować je do swoich przyzwyczeń lub też standardów, aby nasz kod stawał się jak najlepszy, bo chyba nikt nie lubi później długimi godzinami zastanawiać się "Co ja wtedy miałem na myśli?", prawda?
Kopiowanie połączeń do repozytorium CVS
Zwykle, gdy pracowałem w nowej wersji Eclipse'a lub gdy pracowałem nad jakimiś błędami w starszych wersjach denerwowało mnie to, że za każdym razem muszę od nowa tworzyć połączenia do repozytoriów CVS'a. Ostatnio jednak odkryłem dość ciekawą funkcjonalność - kopiowanie połączeń do serwera CVS między instancjami Eclipse'a. W widoku CVS Repositories klikamy prawym przyciskiem na wybranym połączeniu i wybieramy Copy to Clipboard.
W drugiej instacji Eclipse'a w tym samym widoku klikamy prawym przysickiem i z menu kontekstowego wybieramy Paste Connection.
Prawda jakie to proste?
środa, 16 lipca 2008
Widok "Display" - po co, jak i dlaczego?
Wczoraj pisałem trochę o warunkowych punktach wstrzymań, zostańmy jeszcze chwilę w tematyce szukania błędów w naszym kodzie. Chciałem Wam dzisiaj pokazać w jaki sposób można wykorzystać mało znany widok Display. Poniżej znajduje się krótki film, w którym staram się zaprezentować możliwości tego widoku. Co prawda jakość nie jest porywająca, ale mam nadzieję, że da się oglądać.
Widok "Display" - po co, jak i dlaczego? from Jakub Jurkiewicz on Vimeo.
wtorek, 15 lipca 2008
Warunkowe punkty wstrzymań
Każdy programista wcześniej, czy później staje przed koniecznością skorzystania z opcji debug w swoim ulubionym narzędziu. Pewnie nie raz już analizowaliście w ten sposób swój kod w Eclipsie, ciekaw jednak jestem, czy jesteście w pełni świadomi jakie możliwości niesie ze sobą mechanizm odpluskwiania (ang. debugging) w Eclipsie? Jedną z najciekawszych opcji jest możliwość tworzenia warunkowych punktów wstrzymań (ang. breakpoint). Wyobraźmy sobie, że w naszym kodzie mamy pętlę,w której przeglądamy 1000 obiektów i wiemy, że błąd występuje tylko dla obiektów o określonej wartości...czy będziemy 900 razy klikali Resume, aby w końcu zatrzymać się w odpowiednim miejscu? czy może chwilowo wstawimy instrukcję warunkową, która pozwoli nam się zatrzymać, znajdziemy błąd, a potem...zapomnimy tę instrukcję usunąć? Na pomoc przychodzi nam Eclipse! Jeśli klikniemy na punkcie wstrzymań prawym klawiszem myszy (na pasku edytora Javy, lub w widoku Breakpoints)
i wybierzemy opcję Breakpoint Properties..., zobaczymy, że ostnieje sekcja Enable Condition.
W polu edycji dostępny jest asystent kodu (ang. code assist), więc bez problemu możemy korzystać ze skrótu Ctrl+Spacja i odwoływać się do obiektów i metod dostępnych w kodzie, w zasięgu danego punktu wstrzymań. Po dodaniu warunku:
zauważymy, że nasz punkt wstrzymać wygląda teraz trochę inaczej:
Jeśli przyjrzymy się uważniej sekcji pozwalającej definiować warunek dla punktu wstrzymać, zauważymy tam dwie opcje:
- condition is 'true' - punkt wstrzymań zatrzyma się, jeśli podany przez nas warunek przyjmie wartość prawdziwą
- value of condition changes - punkt wstrzymań zatrzyma się, jeśli podany przez nas warunek zmieni swoją wartość z "prawda" na "fałsz" lub na odwrót
poniedziałek, 16 czerwca 2008
Co nowego nas czeka w Eclipse Ganymede 3.4?
Jak już pisałem wielkimi krokami zbliża się premiera Eclipse Ganymede, czyli wersji 3.4. Pora chyba przyjrzeć się, czego można się spodziewać, gdy ściągniemy już nową wersję tego środowiska. Poniższy wybór nowej funkcjonalności jest całkowicie subiektywny, więc czekam na Wasze propozycje i opinię w komentarzach.
Java IDE (projekt JDT)
- Pojawił się mechanizm...okruchów (?), czyli po angielsku breadcrumb, który ułatwia nawigowanie po strukturze projektu. Jak zauważycie, gdy macie otwarty edytor Javy to na pasku narzędzi pojawia się taki oto przycisk:
Po wciśnięciu tego przycisku do naszego edytora u góry zostaje dołożony mniej więcej taki pasek:
Co ten pasek nam daje? Otóż po pierwsze pokazuje gdzie w strukturze projektu się znajdujemy. Po drugie bez korzystania z eksploratora projektów (ang. Package Explorer) możemy w prosty sposób przemieszczać się między elementami na różnych poziomach (projektu, folderu, pakietu, klasy oraz elementów klasy):

- Opcja Search->Occurences in File (Ctrl + Shift + U) używa różnych kolorów do oznaczania operacji odczyty i zmiany wartości szukanej zmiennej:

- W podobny sposób jak powyżej oznaczane są wyszukane elementy w edytorze Javy - opcja Mark Occurences (Alt + Shift + O). Kolory możemy zmienić w preferencjach General->Editors->Text Editors->Annotations.
- Quick Assist (dostępny pod skrótem Ctrl+1) ma teraz dodatkowe podpowiedzi:
- Podpowiedzi metod statycznych klas jeszcze niezaimportowanych:

- Liczby mogą być teraz kolorowane tak jak nam się to podoba (preferencje Java->Editor->Syntax Coloring):


- Ostrzeganie o używaniu null'a

- W nieposortowanych widokach, np. w widoku Outline, możliwe jest przesuwanie elementów kodu (pól/metod), a zmiany te zostaną odzwierciedlone w strukturze kodu.
- Jeśli macie komputery z wieloma procesorami, to powinniście zauważyć przyspieszenie czasu kompilacji.
- Dotychczasowy mechanizm aktualizacji oraz instalacji nowych wtyczek (czyli Update Manager) został wymieniony na mechanizm o nazwie P2. Nowe podejście dość znacznie różni się od tego co było wcześniej, więc jeszcze przed premierą Eclipse Ganymede w oddzielnym poście opisać zmiany i pokazać jak korzystać z P2.
- Pełne wsparcie SWT dla Windowsa 64-bitowego
- TextLayout oraz StyledText z SWT dają możliwość zmiany koloru przekreślenia oraz udostępniają rożne style podkreślenia
- Nowe projekty mogą od razu podczas ich tworzenia być dodawane do Zbiorów Roboczych:

- Ulepszone możliwości drukowania:
- Drukowanie numerów linii
- Nie drukuje się już tło
- Każda strona wydruku ma w nagłówku nazwę pliku
- W stopce pojawia się numer strony
- Przy prezentacji wyniku wyszukiwania podawany jest numer linii

- Mamy możliwość eksportu oraz importu konfiguracji uruchomienia (ang. launch configuration), dostępne przez menu File->Export->Run/Debug oraz File->Import->Run/Debug


- Pojawił się nowy widok Markers, który agreguje informacje z widoków Problems, Tasks oraz Bookmarks.
- Widoki można od teraz zamykać klikając na nagłówku środkowym klawiszem myszy.
- Jeśli chcemy zaznaczyć wiele linii w edytorze tekstowym (nie tylko dla plików Java) możemy skorzystać z nowego mechanizmu: klikamy trzymając Shift na numerze linii od której chcemy zacząć zaznaczanie, następnie klikamy z Shiftem na numerze linii, na której chcemy skończyć zaznaczanie.
- Pojawiło się narzędzie o nazwie Plugin Spy. Pisałem już o tym jakiś czas temu, więc chyba nie ma potrzeby żebym się o tym rozpisywał.
- Widok Plug-in Registry pozwala wykonywać dodatkowe operacje na wtyczkach, takie jak:
- Jacek Pospychala wprowadził świetne zmiany do widoku Error Log. Po pierwsze dodał możliwość filtrowania, a po drugie dodał grupowanie informacji według sesji:

- W edytorze punktów rozszerzeń (ang. extension points) można teraz łatwo zmieniać ich nazwy

- Pojawił się specjalny edytor do tworzenia pomocy kontekstowej:


- W konfiguracji uruchomienia (ang. launch configuration) dla aplikacji Eclipse (ang. Eclipse application) na zakładce Plug-ins można teraz w łatwy sposób filtrować dostępne wtyczki:

- Punkty rozszerzeń mogą być oznaczane jako wewnętrzne (ang. internal):
Każdy kto będzie chciał z takiego punktu skorzystać zostanie ostrzeżony, że ten punkt rozszerzeń został oznaczony jako wewnętrzny.
Pełną listę zmian znajdziecie tutaj.
Zatem uwaga - Eclipse Ganymede nadchodzi!
niedziela, 15 czerwca 2008
Eclipse Ganymede nadchodzi!
Eclipse Ganymede zbliża się do nas wielkimi krokami (za 10 dni powinien być gotowy do ściągnięcia)...w związku z tym powstała idea stworzenia plakatu reklamującego najnowsze wydanie Eclipse'a. W ciągu dwóch miesięcy udało się stworzyć już coś takiego (wybór całkowicie subiektywny):

Powstał też pomysł, aby plakaty wzorować na plakatach filmowych. Oto efekty:



I jeden z moich ulubionych...filmów:







