GitHub Copilot: yorumlu milyon satırlık diff'i sanallaştırmak

GitHub Copilot uygulamasının PR görünümü kod satırı yüksekliklerini hesaplıyor, review yorumlarını viewport yakınında tek toplu geçişte ölçüyor.

GitHub Copilot uygulamasının yeni PR görünümü kartı: 2.000+ dosya, 1M satırlık test PR'ı ve yayına çıkanlar.

Milyon satırlık bir diff'i sanallaştırmak çözülmüş kısım. Onu bozan şey review yorumları.

GitHub, Copilot uygulamasının PR görünümünü yeniden yazdı ve 2.000'den fazla dosya, bir milyon değişen satır ve 400 inline yorum içeren açık kaynak bir PR üzerinde test etti.

Kod satırları aritmetik. Satır yükseklikleri biliniyor, offset'ler önceden hesaplanıyor, DOM'da yaklaşık 100 satır var.

Bir yorumun yüksekliği render edilene kadar bilinmiyor: satır kaydıran markdown, açık bir details bloğu, bir cevap kutusu, geç yüklenen bir görsel.

İlk tasarım: blok başına bir ResizeObserver, yükseklikleri geri yazıyor. Kendi kendini yeniden tetikledi.

Yayına çıkan:

  • İki geometri: kesin kod satırları, ayrıca ölçülen yorum blokları
  • Viewport yakınında toplu tek bir ölçüm geçişi, asla scroll ortasında değil
  • Observer'lar bir bloğu bir sonraki geçiş için işaretliyor
  • Scroll düzeltmeleri okuduğunuz satıra sabitleniyor

Bir bug, "kullanıcı scroll ediyor mu?" kontrollerinde saklanıyordu. Uygulamanın kendi scroll'ları da onu tetikliyordu.

Bildiğiniz yüksekliklere güvenin. Gerisini tek bir yerde ölçün.

Bu yazı İngilizce aslından Türkçeye çevrilmiştir.

Videoyu LinkedIn'de izle ↗