Bir başka kod editörü: Visual Python

icon.ico dosyası ana dizinde mevcut, değil mi? GNU/Linux’te Windows’taki gibi çalışmıyor olabilir. Size zahmet 'icon.ico' yerine './icon.ico' yazarak dener misiniz? O şekilde Ubuntu’da çalışırsa o şekilde değiştiririm, Windows’ta da çalışır çok büyük ihtimalle.

Ubuntu’nun terminali sağ tık menüsünden de kopyala-yapıştıra izin veriyor.

Olmadı hocam yine aynı hatayı aldım.

O zaman o satırı silin, simgesiz oluversin uygulama. :smile:

1 Beğeni

Sileriz de bunun bir nedeni olmalı. Kendi programlarımda da aynı sorunu yaşıyorum?

Full path vermeyi dener misiniz

1 Beğeni

Denemiştim zaten. Yine de teşekkür ederim :slight_smile:

Bence projedeki pencere icon’u normal png olarak ayarlanabilir. Aşağıdaki yöntemi Ubuntu üzerinde denedim ve çalıştı. Tabi öncelikle aşağıdaki png dosyasını indirip programın yanına “Python.png” olarak koymak lazım

img = tkinter.PhotoImage(file='Python.png')
pencere.tk.call('wm', 'iconphoto',pencere._w, img)

Png dosyası

1 Beğeni

Sanırım .ico uzantılı dosyalarda Tkinter sorun yaşıyor UNIX ortamlarında. Öyle bir şeyler okumuştum bir yerlerde.

@coderistan ICO dosyasını PNG dosyası ile değiştireceğim inşallah.

1 Beğeni

Eklediğiniz PNG dosyası görünmüyor. Ayrıca ICO dosyasını PNG ile değiştirip gönderebilirsiniz siz de, eğer katkıda bulunmak isterseniz uygulamaya. Tabii Windows’ta da sorunsuz çalıştığına emin olmalısınız öncelikle.

1 Beğeni

Hocam .png uzantısı ile de denedim, yine aynı hata. :frowning:
Acaba bu metotta mı bir sorun var?

Allah Allah. Windows’ta çalışıyor, bence UNIX ortamı ve Tkinter ile ilgili; araştırmak gerek.

iconbitmap metodunun dökümanları:

Set bitmap for the iconified widget to BITMAP. Return
the bitmap if None is given.
Under Windows, the DEFAULT parameter can be used to set the icon
for the widget and any descendents that don’t have an icon set
explicitly. DEFAULT can be the relative path to a .ico file
(example: root.iconbitmap(default=‘myicon.ico’) ). See Tk
documentation for more information.

Ben şahsen tanımlamada winde olup linux’te olmayan bir şey görmedim.

Evet şimdi Windows üzerinde denedim, çalışıyor. Bir pull request isteği gönderdim.

1 Beğeni

Projedeki icon sorunu giderilmiştir, ilgilenen arkadaşlara duyurulur. İyi forumlar :slight_smile:

2 Beğeni

Merhaba arkadaşlar. Bu projeyle ilgili aklıma bir fikir geldi ve uygulamak istedim, aynı zamanda sizin de burada fikrinizi almak istedim. Python IDLE üzerinde şu özelliği bu editöre uygulamak istedim. Bu özellik şu şekilde çalışıyor. Eğer kod üzerinde belirli bir kısım seçiliyken ALT+3 kombinasyonunu uygularsanız, bu seçili aralıkta bulunan tüm kodları yorum içerisine alıyor.

önce
Untitled-5%20copy

sonra
Untitled-6%20copy

Sadece seçili aralığı değil, sadece cursor’un bulunduğu satırı da yorum satırı haline getirebiliyor.

Bu özelliği editöre ekledim ve test sonucu

önce

sonra

İncelemek için: github
pull-request: github pull request

Edit: Tuhaf bir bir dille anlatmışım aceleden kusura bakmayın :slight_smile:

3 Beğeni

Super. Gercek bir PR oldugu icin de ekstra puan aliyor :slight_smile:

Beraber calistigim bir insana yapacagim yorumlari yapiyorum:

  • Ilk commit mesaji bos, hic bir sey ifade etmiyor. Update edilen dosyalarin listesini zaten show --stat veya ls-tree gibi komutlarla almak mumkun. Commit mesajinda yazmasi gereken __init__.py'nin niye update edildigi.
  • Ikinci commit mesajinin da, benzer sekilde, hangi yanlisligin ve/veya niye duzeltildigini yazmasi lazim.
  • git’in amend ozelligini okumak isteyebilirsin.
  • Un/comment edilecek satirlari belirleyen kod ile belirlenen satirlari un/comment edecek kodu ayirman lazim. Boylelikle hem 223-224 ile 232-233 gibi satirlarin tekrarini onlersin, hem de ## yerine # kullanmaya karar verdiginde 5 yerde degisiklik yapmak zorunda kalmazsin. Secili satirlarla calisan baska bir fonksiyon yazarken de kolaylik olur.

Aslinda code review oldu. O zaman sunlari da ekleyeyim:

  • Her yerde int cast’i kullanmaya gerek yok. Degiskenlere deger yazarken cevirmen yeterli.
  • self.index(bisiy).split(".") son derece okunmaz, ne yaptigi hakkinda en ufak bir fikrim yok. Manali bir fonksiyona mi tasisak?
1 Beğeni

Eleştiriniz için çok teşekkür ederim. Haklısınız biraz düzensiz olmuş ve biraz aceleye geldi diyebilirim(neden bilmiyorum) . Ayrıca commit yazmıştım ancak 50 karakter üstü olduğu için sanırım eklememiş

Burada tam olarak ne demek istediğinizi anlayamadım. Bunu nasıl optimize ederim?

Aslında burada yaptığı şey şu. Seçili metnin son kısmının(seçimin sona erdiği yer) bulunduğu pozisyonu satır.sütun şeklinde elde etmemizi sağlıyor. Ben de bunu . karakterine göre iki kısma ayırıp liste haline getiriyorum ki, satır ve sütun olarak ele alıp işleyebileyim

Önerilerinizi dikkate almaya çalışıyorum, tekrar teşekkürler :slight_smile: O zaman bu pull-request isteğini kapatıp tekrar düzenleyeyim

Comment veya uncomment edilecek satirlari secen kod 200-230 satirlari arasinda.
Secili satirlari comment veya uncomment eden kod 223-224,226,232-233 satirlarinda.
Icice gecmisler. Fazla karisik. Olmasi gereken versiyonu soyle:

yorum_yapilacak_satirlar = secili_satirlar()
yorum_yap(yorum_yapilacak_satirlar)

Hangi parametre icin optimize etmek istiyorsun? Yukarida okunabilirlik/degistirilebilirlik/yazilabilirlik ve programci vakti icin optimize hali var.

Dogru yapiyorsun, ona bir sey demiyorum ama bu isi uc kere yapiyoruz. (Tek bir fonksiyonda, kodun geri kalanina bakmadim bile) index fonksiyonunun tasarimi hatali; satir ve sutunun tuple olarak donmesi lazim, “.” ile ayrilmis string olarak degil. Ben onu yazan takimla goruseyim, duzelene kadar da bu tarafta yardimci bir fonksiyon ile idare edelim.
(Dedim ya, code review oldu bu :​)

1 Beğeni

Tamamdır. Tekrar elden geçireyim, kendi git repomda düzeltilmiş olarak daha sonra buradan paylaşırım .

Editör güncellendi:

  1. Arama bölümü iyileştirildi. Artık arama yapılan dosyada ilgili satırlar gösteriliyor ve bu satırlara tıklandığında dosya açılıyor ve ilgili satır ve sütuna odaklanılıyor.
  2. Söz dizimi renklendirme iyileştirildi. Maalesef halen Python dışındaki diller için renklendirme desteği yok.
  3. Editöre sekme desteği geldi. Sekmeleri orta fare tuşu ile kapatabilirsiniz. Henüz sürükleyip yer değiştirme desteği yok.
  4. Simgeler Font Awesome simgeleri ile yenilendi.
  5. Birçok sorun giderildi.
  6. Genel olarak kodda refactor’ler yapıldı, böylece kodun geliştirilmesi kolaylaştırıldı.

Bu süreçte editörü kendisi ile geliştirmeye özen gösterdim; başka hiçbir editör kullanmadım. Editör bu haliyle Python projeleriniz için basit bir editör olmaya aday; kullanışlı pek çok editör özelliği gerçeklendi.

Bundan sonra yapmayı düşündüklerim:

  1. Tekrar bir refactor.
  2. Arama bölümündeki satırlara tıklandığında odaklanılan sözcüklerin renklendirilmesi.
  3. Dosyada bulma ile ilgili sorunların giderilmesi.
  4. Python dışındaki diller için de renklendirme desteği.
  5. Python kodu renklendirmesi için tokenize modülü yerine ast modülünün kullanılması, böylece daha iyi bir renklendirme sağlanması.
  6. Performanslı bir renklendirme için editördeki kodun bir veri yapısında tutulması ve sadece ilgili kısmın renklendirilmesi.

Eğer siz de bu eğlenceli projede bana katılmak isterseniz PR’larınızı bekliyorum: https://github.com/ismailarilik/visual-python Bu editörü deneyip karşılaştığınız sorunları ya da önerilerinizi paylaşırsanız da çok memnun olurum: https://github.com/ismailarilik/visual-python/issues Editörü şu sıralar Ubuntu üzerinde geliştiriyorum; Windows ve Mac OS X ile ilgili geri dönüşlere özellikle ihtiyacım var.

2 Beğeni