Hatırlarsanız bir süre önce "
AmigaOS için güncel çapraz derleme ortamı"nın nasıl kurulacağına dair bir paylaşım yapmıştım
(bakim ne kadar olmuş, 5 ay olmuş).
Daha sonra
emarti rumuzlu üyemiz pratik katılımsız kurulum hazırlamıştı. Kurmayı düşünüyorsanız tavsiye ederim:
Kolay Kurulum Scripti.
Bundan daha önce
Simon (Özay Turay)'ın şu yorumu beni biraz düşündürmüştü:
Bir sürü farklı IDE denedikten sonra en sonunda CubicIDE'yi satın aldım, rahatladım ben.

Çok paraymış, PC'de CrossPlatform geliştirsek daha ucuza gelmez mi?

Evet
CubicIDE Amiga ortamında geliştiriyorsanız pek çok derde deva oluyor ama şimdi çapraz geliştirme ortamımız var ve orada ihtiyaçları karşılayacak AmigaOS API'sine uygun bir IDE yok (ayrıca genellikle hobi projelerinde kullanmak için satın alacağımız CubicIDE'nin fiyatı da gerçekten yabana atılır değil, hele de TL'nin son değer kayıplarından sonra).
(bakayım ne kadar olmuş hmmm neredeyse 1 yıl olmuş)Ardından
emarti'nin şu mesajı geldi:
...
İlk etapta Amiga fonksiyon sembollerini tanıyan bir IDE edinmen çok daha önemli.
StormV3deki GoldED bu fonksiyonları tanıyıp highlight yapmakta. Popüler IDElerdeki CTRL+SPACE gibi birşey aramıyor değilim elim hep gidiyor ama nafile

Hmm... GoldED'nin de (ki CubicIDE'nin öncüsüdür) karşılayamadığı ihtiyaçlar mevcut. Güncel IDE'ler işi çok pratikleştiren çok güçlü özelliklere sahip (mesela benim favorim
auto-complete snippets). Bu yorumdan sonra bu konuda ciddi bir ihtiyaç olduğu fikrim kesinleşti ve konu üzerinde araştırma yapmaya başladım.
(bakim ne kadar olmuş... hmm 6 ay olmuş)Çözüm yolu ucuz olmalıydı o yüzden ücretsiz IDE'leri araştırmaya başladım ve
Atom ile tanıştım. Atom
GitHub'ın bizzat kendi metin editörü. Tüm programlama dillerini tanıdığı için çok güçlü bir IDE de aynı zamanda. Git ile entegre olması da bambaşka bir muhteşemlik. Yetmezmiş gibi açık kaynak kodlu ve 3ncü parti eklentileri de destekleyen çok esnek bir yapısı var.
Kararımı verdim. Atom'a AmigaOS API'sini destekleyecek bir
paket yazacaktım. Tabi bunu yapmak için JavaScript, CoffeeScript ve regex öğrenmem gerekiyordu. Bunlar çok uzun sürmedi. Bu kadar vakit almasının temel nedeni Atom'un C/C++ gramerinin halihazırda gerçekten çok kötü durumda olmasıydı.
Yazacağım paketin düzgün çalışması için önce Atom'un C gramerini düzeltmem gerekiyordu. Aslında o da çok uzun sürmedi fakat, Atom'un kaynak kod
maintainer'ları gerçekten çok yoğun çalışıyorlar ve yaptığım katkıları değerlendirmeleri ve onaylamaları çok uzun sürüyor (yaptığım son rötuşları değerlendirmeyi hala {15 gündür} tamamlayamadılar o nedenle sizlere özel bir gayrı resmi paylaşım yapacağım şimdilik. İlerleyen zamanda tamamı resmi bir Atom paketi olacak).
Bir diğer zaman alıcı şey de API sembollerini toparlamaktı, yani veriyi oluşturmak.
AutoDoc yığınlarından 30bin'den fazla makro 2bin'den fazla da fonksiyon tanımlayıcısını eksiksiz toparlamak için özel programcıklar yazmak zorunda kaldım.
AutoDoc'lardaki imla hataları da sağ olsunlar bayağı bir başımı ağrıttılar.
Neyse ki sonunda bitirmeyi başardım. Halen regex'lerde bayağı bir optimizasyon yapmam gerekiyor ancak v1.0'a ulaştığımı düşünüyorum.
Paket kurulduğunda CubicIDE'ninkinden çok daha gelişmiş ve güncel bir
syntax-highlighting sağlıyor. Örneğin aşağıdaki örnek MUI kodunu nasıl boyadığına bir bakın:

Ayrıca
OS3 ve
OS4 SDK'sındaki tüm fonksiyonlar (ve ek olarak tüm
MUI fonksiyon ve makroları) için
auto-complete snippet'ler de sağlıyor. Bir örnek:
Şimdi gelelim kurulum aşamasına:
Biraz zahmetli ama elimden geldiğince kolay anlatmaya çalışacağım:
1) Öncelikle Atom'u kuruyoruz:
atom.io/ sitesine gidin, indirip kurun (32bit linux'taysanız işiniz zor, kaynak kodlarından derlemeniz gerekiyor).
NOT: AmigaOS paketim Atom'un 1.14.0 ve üzeri sürümlerinde düzgün çalışıyor, eğer daha eski bir sürüm kullanıyorsanız güncelleme yapmalısınız.2) Atom için yazdığım düzeltilmiş C/C++ grammer paketini kurun. Bu kurulumu elle yapacağız çünkü Atom
maintainer'ları hala yaptığım katkıları
review etmeyi bitiremedi. Çok basit, ekteki arşivi indirin ve
- Linux'ta : ~/.atom/packages/
- Windows'ta : C:\Users\{kullanıcı_adı}\.atom\packages\
dizinine açın.
NOT: Düzeltilmiş C/C++ gramerim onaylanıp Atom kaynak kodlarına
merge edildiğinde Atom size bir güncelleme bildirecektir. Bu olduğunda bu arşivi açtığınız dizine gidin, language-c klasörünü silin. Atom'u yeniden başlatın ve güncellemeyi yapın.
3) Şimdi de AmigaOS API paketini kuruyoruz. Bu paketi henüz yayınlamadım, çünkü bağımlı olduğu C/C++ grameri özellikleri henüz onaylanmadı. Yayınlanmadığından bunu da elle kuruyoruz:
-
https://github.com/alpyre/language-amigaos-c adresine gidin, sağdaki "
Clone or download" düğmesine tıklayın ve "
Download ZIP" yapın. İnen arşivi, bir önceki arşivi açtığınız aynı dizine açın.
Şimdi Atom'u açabilirsiniz (zaten açıksa yeniden başlatın).
4) GoldED ve CubicIDE'de Amiga'ya özel bir kod katlama özelliği vardır. İki
"///" ibaresi arasında kalan kısmı
F12 ile katlayabilirsiniz. Atom'da bu özellik olmadığı için bunu sağlayacak bir paket de yazdım. Dilerseniz bunu da bu aşamada kurun.
Neyse ki bunu yayınladım. Yani kurulumu daha kolay olacak. Şöyle ki :
Atom'un
File menüsünden
Settings (bazı sürümlerde
Edit menüsünde
Preferences) kısmına geçin. Burada soldaki listeden
Install seçin ve arama kısmına "
cubic-folds" yazın. Avatarımın göründüğü paketi kurun. Atom yeniden başlayacaktır.
Şimdi hazır buradayken AmigaOS API'nda nelerin
highlight edilmesini seçebilmenizi sağlayan ayar sayfasına bir uğrayın. Soldaki listeden
Packages'a geçin,
language-amigaos-c paketine tıklayın ve sayfanın
Settings kısmında gerekli ayarlamaları yapın.
Not: Highlight ile ilgili ayar değişiklikleri Atom'un yeniden başlatılmasını gerektirir.
Umarım bu katkılarım Atom yetkilierince bir an önce onaylanır ve bu paket tüm dünyanın kullanımına açılır. Ve yine umarım ki Amiga için yazılım geliştirme sürecinde bir hızlanma sağlar.
O zamana kadar paketi kullanan arkadaşlardan olumlu olumsuz geri dönüş ve varsa bug raporları bekliyorum.
Haydi tüm ilgilenenlere başarılar ve
hayırlı kodlamalar!