Porady odnośnie ubarwiania kodu

2010-08-24 20:01

Wszyscy wiemy, że Notatnik to bardzo dobry edytor kodu. Wystarcza w zupełności, o ile tylko jesteśmy w stanie zorientować się w gąszczu liter, cyfr i symboli bez żadnych wizualnych wskazówek w postaci ich kolorowania. Jakoś dziwnym trafem miażdżąca większość programistów preferuje jednak edytować kod odpowiednio “odmalowany” przez IDE. Widać nie potrafią docenić piękna kodowania na monochromatycznym monitorze ;-)
A nieco poważniej mówiąc: kolorowanie kodu to istotna sprawa, gdyż jest to kwestia komfortu naszych drogocennych narządów wzroku. Ponieważ miałem do czynienia z wieloma edytorami kodu i środowiskami programistycznymi, wydaje mi się, że mogę dość sensownie wypowiedzieć się na temat tego, jak należy ustawić kolory dla poszczególnych składników kodu, by były one komfortowe.


Kolory idealne dla Perla ;>

Najważniejszy jest tu prawdopodobnie odpowiedni kontrast, który nie wyraża się wyłącznie różnicą jasności między tłem a tekstem – zwłaszcza w systemie RGB. Powiedziałbym zresztą, że dla każdego jest to kwestia raczej subiektywna. Znam osoby, które świetnie czują się w kolorystyce rodem niemal z Matriksa: czarne tło i biały tekst, który miejscami przechodzi w jaskrawe kolory, wyraźnie odcinające się na ciemnym ekranie (jak zielony lub purpurowy). Pozwolę sobie jednak zaryzykować stwierdzenie, że takich osób nie ma zbyt wiele :) Powszechniejsza zdaje się konfiguracja z jasnym tłem; ma ona też tę zaletę, że po przełączeniu się do innego okna raczej nie doznamy żadnego “szoku świetlnego”, jako że dokumentacje i większość stron internetowych trzymają się raczej jasnych barw.
Zaznaczam jednak, że ‘jasne’ tło nie musi wcale znaczyć ‘białe’. Dopasowując kontrast, dobrze jest poeksperymentować z tłem lekko żółtym, zielonym czy niebieskim. Nie należy aczkolwiek przesadzać i ustawiać mniej niż ~80-procentową intensywność w którymś z kanałów RGB – w efekcie tło będzie najprawdopodobniej zbyt ciemne.
Analogicznie warto też przyjrzeć się domyślnemu kolorowi kodu (zazwyczaj jest to ten stosowany do identyfikatorów w rodzaju zmiennych lokalnych). Nie musi on wcale być absolutnie czarny; zamiast tego można wypróbować coś w rodzaju RGB(30, 30, 30).


Coraz bliżej święta ;)

Oczywiście ów domyślny kolor kodu to zazwyczaj tylko jedna z wielu barw używanych przez IDE. Obecnie środowiska wyróżniają mnóstwo osobnych elementów kodu, pozwalając każdemu z nich mieć przypisany inny kolor. Nie zalecałbym jednak przesady w korzystaniu z tej funkcjonalności, bo przy odrobinie źle pojętej kreatywności możemy otrzymać schemat kolorów świecący niczym choinka, gdzie dodatkowo najdłuższy ciąg o tej samej barwie nie liczy więcej niż dwa wyrazy. Pamiętajmy, że tutaj ważna jest użyteczność. To, jak bardzo dany element jest wyróżniony i wygląda inaczej niż inne, powinno odpowiadać jego ważności. Typowa kolejność, począwszy od najbardziej istotnych tokenów, wygląda mniej więcej tak:

  1. słowa kluczowe
  2. nazwy własnych typów
  3. wartości stałe (liczbowe, znakowe i tekstowe)
  4. nazwy funkcji i metod
  5. pozostałe identyfikatory
  6. komentarze

Ta lista może rzecz jasna podlegać dostosowaniu pod własne upodobania, a także pod możliwości używanego IDE (część nie obsługuje niestety kolorowania semantycznego, które rozróżnia np. typy od innych nazw). Każdy język dodałby tu też specyficzne dla siebie elementy, sytuujące się zazwyczaj gdzieś w drugiej połowie stawki. W końcu, wewnątrz każdej z tych grup możliwe są też dodatkowe rozróżnienia – lecz, jak już wspomniałem, należy korzystać z nich ostrożnie.

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


6 comments for post “Porady odnośnie ubarwiania kodu”.
  1. TeMPOraL:
    August 24th, 2010 o 23:15

    Co do Matrixowych kolorów, to zauważyłem po sobie i po innych, że kolor czarny jako tło jest dość “ciężki” dla oczu – natomiast jeżeli się go lekko podsyci (np. #121212), to staje się dużo znośniejszy. Choinka czasem się przydaje, zwłaszcza w połączeniu z “kolorowaniem semantycznym” – pamiętam swoje zdziwienie jak odkryłem, że kod, z którym musiałem pracować, używa (dokładnie) takiej samej nazwy dla klasy i jakiegoś property w jej środku. Jedyną rzeczą, po której można było szybko rozróżnić do czego autor odwoływał się w metodach, była lekka różnica w odcieniu koloru…

  2. Fn:
    August 25th, 2010 o 0:04

    Czy w Visual C++ ’08 EE da się ustawić kilka schematów koloru? Tzn. chciałbym abym w dzień miał schemat kolorów z białym tłem, zaś w nocy z czarnym. I teraz nie znalazłem opcji aby przełączać pomiędzy tymi schematami – bo ręczne ustawianie tego wszystkiego to… odpada.

  3. Tomasz Dąbrowski:
    August 25th, 2010 o 9:26

    Nie należy aczkolwiek przesadzać i ustawiać więcej niż kilkunastoprocentowej intensywności w którymś z kanałów RGB – w efekcie tło będzie najprawdopodobniej zbyt ciemne.

    Chyba na odwrót, biały to 100% intensywności :)

  4. Xion:
    August 25th, 2010 o 13:50

    Słusznie! Dzięki za poprawkę.

  5. TeMPOraL:
    August 29th, 2010 o 1:40

    @Fn: Możesz ustawić sobie schemat kolorystyczny, a następnie wyeksportować opcje VS’u do plików (da się zaznaczyć eksport tylko konkretnych fragmentów, np. właśnie ustawień kolorów i czcionek edytora). Późniejsze ładowanie takiego zestawu kolorów z pliku jest bardzo proste. Schemat, którego obecnie używam ściągnąłem z Internetu właśnie w postaci wyeksportowanych opcji VSa :).

  6. KubaD:
    October 6th, 2010 o 12:59

    Osobiście nie mogę patrzeć na kod na białym tle (zawsze mam kolor navy albo czarny) a dokumentacje na białym tle to faktycznie zmora :/ Największym problemem dowolnego tła poza białym i czarnym są jednak monitory LCD na matrycach o małych kątach widoczności które tworzą bardzo denerwujące gradienty.

Comments are disabled.
 


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