Lepszy pasek przewijania

2009-10-22 14:41

RockScrollZorientowanie się w dużym pliku z kodem (gdzie przez ‘duży’ rozumiem przynajmniej taki, który przekracza tysiąc linii) może niekiedy przysparzać kłopotów. W IDE są oczywiście narzędzia nawigacyjne, pozwalające na przejście do poszczególnych klas, metod czy deklaracji, o ile tylko znamy chociaż ich nazwy. Nie zawsze jednak tak jest. Jeśli o danej metodzie pamiętamy tylko to, że “była długa i skomplikowana”, a o jakiejś właściwości jedynie tyle, iż “jest gdzieś wśród parunastu innych deklaracji”, to najpewniej oznacza, że w ich poszukiwaniu będziemy musieli przeglądnąć cały plik od początku do końca.
Chyba że… No właśnie – chyba że dałoby się spojrzeć na kod z daleka, by zobaczyć jego ogólną strukturę. Wiadomo bowiem, że metoda “długa i skomplikowana” będzie miała najpewniej sporą ilość wcięć, a długi ciąg deklaracji, jedna pod drugą, też były łatwy do odróżnienia od innych kawałków kodu. W książce o wiele mówiącej nazwie Czytanie kodu znalazłem kiedyś radę, że do uzyskania takiego ogólnego spojrzenia można wykorzystać edytor tekstu typu Word, pozwalający na podgląd wydruku wielu stron naraz.

O wiele wygodniej byłoby jednak mieć podobną możliwość wprost w IDE. NetBeans posiada namiastkę czegoś takiego, jednak za jej pomocą można tylko szybko stwierdzić, gdzie w kodzie znajdują się błędy kompilacji (pisałem zresztą o tym trochę ponad rok temu). Porządną, wielkoskalową, a w dodatku całkiem funkcjonalną “mapę kodu” da się za to znaleźć w… Visual Studio.
Mówię tu o darmowym pluginie o nazwie RockScroll, będącym zresztą początkowo wewnętrznym narzędziem Microsoftu. Tym, co wtyczka ta robi, jest zastąpienie standardowego pionowego paska przewijania przez szerszy pionowy pasek, pokazujący podgląd aktualnie edytowanego w postaci długiej “miniaturki” z kolorowaną składnią. RockScroll działa przy tym podobnie jak zwyczajny pasek przewijania, a więc pozwala na przejście kliknięciem do wybranego miejsca w pliku. Ponadto potrafi też zaznaczać breakpointy oraz koloruje wszystkie wystąpienia wskazanego (dwukrotnie klikniętego) słowa w danym pliku – całkiem przydatne. Jedynym mankamentem jest chyba tylko brak wsparcia dla zwijanych i rozwijanych regionów kodu oraz ewentualnie fakt, że w poziomie plugin zajmuje jakieś cztery razy więcej miejsca niż standardowy pasek przewijania. Na szerokoekranowych monitorach ciężko jednak uznać to za wadę :)

Tags: ,
Author: Xion, posted under Applications, Programming »


10 comments for post “Lepszy pasek przewijania”.
  1. Kot:
    October 22nd, 2009 o 14:57

    Jedyną wadą RockScrolla jest to, że po przyzwyczajeniu się do niego szlag cię trafia jak musisz edytować dłuższy dokument w edytorze bez niego :).

  2. Netrix:
    October 22nd, 2009 o 20:00

    True, notka powstałaby wcześniej gdybyś przyjechał na IGK 2009:D

  3. Wladek:
    October 22nd, 2009 o 22:39

    Cytuje “Zorientowanie się w dużym pliku z kodem (gdzie przez ‘duży’ rozumiem przynajmniej taki, który przekracza tysiąc linii) może niekiedy przysparzać kłopotów”

    Można zawsze podzielić plik z kodem na mniejsze pliki , łączone za pomocą plików nagłówkowych . (sam to przecież wiesz)
    Ja osobiście , kiedy bylem ciemny , napisałem grę z ok 11 tysiącami linijek w jednym pliku źródłowym (chodzi o grę z zeszytu) , i naprawdę było ciężko przewijać,ba ciężko było złapać suwak w prawym pasku.

  4. vashpan:
    October 23rd, 2009 o 10:46

    Ciekawe :) Ale IMO w wiekszosci przypadkow, gdy metody nie sa dlugie, lepiej moze sie sprawdzic widok “Outline” z VAX’a ( i innych IDE gdzie takowy istnieje… ) Chociaz… ;)

  5. Liosan:
    October 23rd, 2009 o 14:20

    Zarąbiste… mam niestety brzydki zwyczaj pisać kilkuekranowe switch-case’y – sprawdza się świetnie :)

  6. Bartosz:
    October 23rd, 2009 o 14:57

    Wybaczcie ale ten pasek to jakaś pomyłka, zainstalowałem i jedyny plus to taki, że szybciej się w niego trafia.

    A jeżeli ktoś pisze metody na kilka ekranów to znaczy, że trzeba poprawić sposób programowania. Na co dzień pracuje nad kilkoma systemami, które mają po około 20 000 linii kodu i może jest tam kilka metod, które wypełniają cały ekran, a już na pewno nie ma takich, które mają dwa ekrany.

  7. andrzej:
    October 24th, 2009 o 18:30

    Trochę zabawne narzędzie… Moim zdaniem nie rozwiązuje problemu… Skoro ciężko przewijać plik źródłowy normalnym paskiem przewijania, tzn. że najwyżczy czas zabrać się za porządkowanie kodu i podzielenie go na mniejsze pliki.

  8. Kos:
    October 25th, 2009 o 11:46

    W Eclipse (dla praktycznie każdego języka) problem przez Ciebie wymieniony jest w pełni rozwiązany przez widok Outline. Jest to po prostu lista-drzewo przedstawiająca wszystko, co jest w danym pliku: dla C byłoby to dyrektywy kompilatora, definicje klas, funkcje. Wiersz z np. klasą to gałąź, którą możemy sobie rozwinąć, by obejrzeć jej pola i metody.
    Całość można oglądać w oryginalnej kolejności lub sortować po nazwie.

    Screenshot:
    http://help.eclipse.org/ganymede/topic/org.eclipse.cdt.doc.user/images/outlineView.png

    Bardzo mi tego brakowało w standardzie w VS (a może jest, tylko nie znalazłem?) – Visual Assist X chyba dodaje coś analogicznego.

  9. Xion:
    October 25th, 2009 o 15:13

    W standardowy VS jest Class View – jak nazwa wskazuje, pokaże ci wszystko na temat klas w projekcie, w podobny sposób jak to okienko Outline. Z dyrektywami czy funkcjami ‘wolnymi’ może być tu większy problem, ale jest jeszcze Object Browser (wersja bardziej zaawansowana, zajmuje już całą zakładkę zamiast małego gadżetu z boku).
    Osobiście rzadko z tych narzędzi korzystam, wystarcza mi Solution Explorer + dwa comboboksy (klasa + składniki tej klasy) na górze okna kodu, ostatnio właśnie RockScroll, a od zawsze jeszcze Ctrl+F ;)

  10. kadet:
    January 12th, 2010 o 21:26

    w code::blocks jest taka funkcja wbudowna (irytuje jak ci oddali a piszesz jakiś program ;P)

Comments are disabled.
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.