Kendi meşrebinde hem blog, hem Türkçe dökümantasyon

Etiketler

21 Kasım 2008 Cuma

Textmate ve php.ini

Textmate kullanıyormusunuz? Eğer hayır ise cevabınız çok şey kaçırıyorsunuz. Gerçekten de adını hak eden bir yazılım : TextMate — The Missing Editor for Mac OS X yani MacOS'daki büyük bir eksikliği tamamlayan muhteşem bir text editörü. Textmate ile ilgili detaylara daha sonraki yazılarımda değinmeye çalışacağım. Pek çok farklı iş yapabildiğiniz, tonlarca dil desteği olan, ultra customize edilebilen ( Türkçesini çıkaramadım ) bir editör. Plugin ve Bundle desteği harika. Php'den Python'a, OpenGL'den Objective-C'ye, aklınıza gelen neredeyse her tür yazılım diline destek veriyor.

Bu yazımda Textmate kullanıcıları için minik bir bundle örneği vermek istiyorum. Php konfigürasyon dosyası olan php.ini'yi Textmate'de açınca renkli ve anlaşılır bir şekilde görmek için, "comment out" edilen satırların "comment out" olduğunu, direktif isimlerini farklı, değerlerini farklı görmek ve ini dosyasını bir bakışta anlayabilmek için Bundle Editor'e girip yeni bir dil ekleyin.



Textmate otomatik olarak size "default" bir dil şablonu çıkarır. Bu alana aşağıdaki kodu yapıştırın :
{
scopeName = 'php-ini';
comment = 'by vigo/bronx';
fileTypes = ( 'ini' );
foldingStartMarker = '';
foldingStopMarker = '';
patterns = (
{
name = 'comment.line';
match = '(;).*$\n?';
},
{
name = 'constant';
match = '^[\w\.]+';
},
);
}
Daha sonra Bundle menüsünden, Reload Bundles yapın ( Bundles > Bundle Editor > Reload Bundles ). Şimdi "php.ini" dosyasını açtığınızda aşağıdaki gibi bir görüntü alırsınız:



Yaptığımız iş kısaca şu;
  • önce bu yeni dile bir isim verdik ( scopeName )
  • dosya türünü seçtik yani .ini ler için dedik. ( sonu ini olan başka bir dosya açarsanız da aynan bu şablon geçerli olur, eğer bunu önlemek isterseniz 'ini' yerine direk 'php.ini' de yazabilirsiniz )
  • comment'ler ve değişkenler için kural tanımladık.
name = 'comment.line'; dediğimiz şey aslında



preferences'daki fonts & colors ile alakalı bir tanımlama. Textmate içinde "default" olarak tanımlı stiller bulunmakta. Bunlar;
  • comment
  • comment.line
  • comment.block
  • comment.documentation
  • ...
  • ...
gibi uzayıp gidiyor. Hani php yada javascript'te :
// line comment
/*
block comment
bu bölümler derleyici tarafından
yorumlanmıyor
*/
durumu!

match'e yazdığımız şey ise Regular Expression. Yani diyoruz ki;
satır başındaki ilk karakter ; ile başlayan ve takiben her ne karakter olursa olsun yakala, satır sonunda da \n ( new line ) olabilir. ( (;).*$\n? )
Eğer bu kriter varsa direk "comment.line" renk stilini uygula...

Diğer pattern ise değişkenleri yakalamak için. Aslında üşenmeden tek tek tüm php.ini de tanımlı direktifleri yazarak bir RegPattern de yapılabilir ama ben işin kolayına kaçtım. Dedim ki;
satır başında bir word yani kelime ve içinde nokta geçen leri kaale al ve en az bir tane yakala... ( ^[\w\.]+ )
Tabi umarım bu yazıyı okuyan kişilerin Regular Expression konusundan haberi vardır.

Aynen "comment.line" da olduğu gibi, uygun kriter gelince "constant" için tanımlı renk stili aktif olacak.

Dikkat ettiyseniz Textmate'in içinde renk temaları/şablonları var. Sizde kendinize uygun bir tema oluşturup, tek tek iligi durumları tanımlayabilirsiniz.

Hiç yorum yok:

Yorum Gönder

İzleyiciler

Blog Listem

Yazılacak Yazılar

  • Snow Leopard için service yazıyoruz!
  • MacPorts nedir?
  • Virtualbox , Ubuntu ve Host'da duran web folder'ı
  • Django'ya giriş?
  • Dashcode ile MobileSafari uygulaması
  • Quicklook için Plug-in yazalım?
View blog authority