İçeriğe geç
Muslu Yüksektepe

geany-csv

Geany editörü için CSV eklentisi: açık .csv veya .tsv dosyasını düzenlenebilir bir tablo olarak gösterir.

geany-csv, Geany metin düzenleyicisi için yazdığım bir eklenti. Geany'de açık olan .csv veya .tsv dosyasını alt panelde düzenlenebilir bir tablo olarak gösteriyor. Tabloda bir hücreyi değiştirdiğimde değişiklik doğrudan düzenleyicideki metne yazılıyor, metni düzenleyiciden değiştirdiğimde ise tablo kendiliğinden yenileniyor.

Amaç

Geany hafif ve hızlı bir düzenleyici olduğu için günlük işlerimde sık kullanırım. Ancak CSV dosyalarını düz metin olarak düzenlemek, özellikle sütun sayısı arttığında zorlaşıyor. Hangi değerin hangi sütuna ait olduğunu takip etmek, ayraç içeren alanları doğru tırnaklamak ve satırları karşılaştırmak zaman alıyor. Bunun için ayrı bir tablolama programı açmak da dosyanın biçimini değiştirebiliyor.

Bu eklentiyi, CSV dosyasını Geany'den çıkmadan tablo görünümünde düzenleyebilmek ve bunu yaparken dosyanın geri kalanına hiç dokunmamak için geliştirdim.

Nasıl çalışır

Eklenti etkinleştirildiğinde Geany'nin ileti penceresine "CSV Tablo" adında bir sekme ekleniyor. Açık belge bir CSV veya TSV dosyasıysa içeriği ayrıştırılıp bu sekmede tablo olarak gösteriliyor.

Ayracı eklenti kendisi buluyor. Virgül, noktalı virgül, sekme ve dikey çizgi arasından, her satırdaki alan sayısının en tutarlı olduğu karakteri seçiyor. İstenirse ayraç araç çubuğundan elle de belirlenebiliyor. Ayrıştırma RFC 4180 standardına uygun yapılıyor; bu standart, CSV dosyalarında tırnak içindeki ayraçların, iki tırnakla kaçırılmış tırnak karakterlerinin ve tırnak içindeki satır sonlarının nasıl okunacağını tanımlıyor.

Bir hücre değiştirildiğinde eklenti dosyanın tamamını yeniden yazmıyor. Yalnızca o kaydın bayt aralığını, Geany'nin kullandığı metin bileşeni Scintilla'nın hedef değiştirme özelliğiyle değiştiriyor. Bu sayede dosyanın geri kalanı, imlecin konumu ve geri alma geçmişi olduğu gibi kalıyor. Dokunulmayan satırların tırnaklama biçimi de bozulmuyor. Yazılan değer ayraç, tırnak veya satır sonu içeriyorsa dosyaya yazılırken otomatik olarak tırnak içine alınıyor.

Düzenleyicide yazmaya devam edildiğinde tablo kısa bir gecikmeyle yenileniyor. Tabloda bir satır seçildiğinde de düzenleyicide o satıra gidiliyor.

Öne çıkan özellikler

  • Ayraç, dosyanın içeriğine bakılarak otomatik olarak tespit ediliyor.
  • Hücreye çift tıklayıp yeni değeri yazmak ve Enter'a basmak hücreyi düzenlemek için yeterli.
  • Satır eklenip silinebiliyor; yeni satır tablonun genişliğinde boş alanlarla açılıyor.
  • Arama kutusu satırları süzüyor ve süzme belgenin tamamında yapılıyor.
  • Sütun başlığına tıklandığında tablo sıralanıyor; sayıya benzeyen değerler sayısal olarak sıralanıyor.
  • Her değişiklik Geany'nin geri alma geçmişine yazıldığı için Ctrl+Z ile geri alınabiliyor.
  • Ayraç ve ilk satırın başlık olup olmadığı seçimi kalıcı olarak saklanıyor.
  • Tabloyu göstermek ve yenilemek için klavye kısayolu atanabiliyor.
  • Salt okunur belgelerde düzenleme yapılmıyor ve durum çubuğunda uyarı gösteriliyor.

Teknik altyapı

Eklenti C ile yazıldı ve GTK 3 arayüz kütüphanesini kullanıyor. Geany 1.26 ve sonraki sürümlerle çalışıyor; 1.38 sürümüyle geliştirdim ve test ettim. Kod iki parçaya ayrılıyor. CSV ayrıştırıcısı Geany'den bağımsız ve yalnızca GLib kullanıyor, bu yüzden birim testleri grafik arayüz olmadan çalışabiliyor. Arayüz ve Geany ile bağlantı ise ayrı bir dosyada duruyor.

Derleme, test, kurulum ve kaldırma işleri bir Makefile ile yapılıyor. Bazı sistemlerde GTK 3 geliştirme paketi başka depolardan gelen kütüphanelerle çakıştığı için kurulamıyor. Bu durum için Makefile'a, gerekli başlık dosyalarını sistem paketlerine dokunmadan kullanıcının kendi dizinine açan bir seçenek ekledim. Tabloda gösterilen satır sayısı varsayılan olarak 50.000 ile sınırlı; bu yalnızca bir gösterim sınırı ve belgenin tamamı düzenlenebiliyor. Geany'nin eklenti arayüzü GPL lisanslı olduğu için eklenti de GPL-2.0 veya sonraki sürümleriyle lisanslanıyor.

Kullanım alanları

  • Veri dışa aktarımları, ayar tabloları veya küçük veri kümeleri gibi CSV dosyalarını tablo görünümünde hızlıca düzeltmek için kullanılabilir.
  • Dosyanın biçimini bozmadan tek tek hücre değiştirmek gereken durumlarda, ayrı bir tablolama programına göre daha güvenli bir yol sunar.
  • Hem ham metni hem de tablo görünümünü aynı anda görmek isteyenler için işe yarar.
  • Sekmeyle ayrılmış TSV dosyalarını düzenlemek için de kullanılabilir.

Durum

Eklenti şu anda sütun ekleme ve silmeyi desteklemiyor, çünkü bu işlem her satırın yeniden yazılmasını gerektiriyor. Tablo, Geany'nin UTF-8 arabelleğini okuyor; dosya Geany'de hangi kodlamayla açıldıysa o kodlamayla kaydediliyor.

Kategori
Geliştirici araçları
Yıl
2026

Teknolojiler

  • C
  • Geany
  • CSV
  • Open Source

Bağlantılar

  • GitHub https://github.com/muslu/geany-csv

Tüm projelere dön