12

VS Code eklentisi

Komutlar, kenar çubuğu görünümleri, pano, satır içi tanılar

4 dk okuma7 bölüm

Eklenti, ortak motorun etrafındaki vscode'a özgü katmandır. Kod: src/extension.ts ve src/views/.

Etkinleştirme

  • Etkinleştirme olayı: onStartupFinished. Eklenti VS Code başladıktan sonra, açılışı yavaşlatmadan yüklenir.
  • Çalışma alanı güveni: güvenilmeyen çalışma alanları desteklenmez, çünkü eklenti projede git çalıştırır.
  • Çok köklü çalışma alanları: yalnızca ilk çalışma alanı klasörü kullanılır.

Etkinleştirildiğinde:

  1. ReportStore (son raporu bellekte tutar) ve DiagnosticsManager nesnelerini oluşturur;
  2. üç kenar çubuğu görünümünü ve dört komutu kaydeder;
  3. canlı tanıları başlatır: yapılandırmayı yükler, .clean-code-tracker.json / .clean-code-tracker.local.json değişikliklerini izler ve editör olaylarını dinler.

Raporlar yalnızca bellekte tutulur. VS Code'u kapatmak onları siler; diskteki commit başına önbellek bir sonraki çalıştırmayı hızlı yapar.

Komutlar

KomutBaşlıkNe yapar
cleanlens.initializeProjectCleanLens: Initialize ProjectKök dosyalarına göre bir ön ayar önerir, önizleme gösterir ve Create sonrasında .clean-code-tracker.json dosyasını yazıp açar. Var olan bir dosyanın üzerine asla yazmaz.
cleanlens.configureRulesCleanLens: Configure Rules.clean-code-tracker.json dosyasını açar; yoksa oluşturmayı önerir.
cleanlens.runAnalysisCleanLens: Run AnalysisTüm işlem hattını iptal edilebilir bir ilerleme bildirimiyle çalıştırır, ardından görünümleri, tanıları ve panoyu günceller.
cleanlens.openDashboardCleanLens: Open DashboardSon raporla pano panelini açar (veya öne getirir).

Run Analysis ve Open Dashboard, kenar çubuğundaki Dashboard görünümünün başlık çubuğunda ▶ ve pano simgeleri olarak da görünür.

Run Analysis ayrıntılı

  1. VS Code ayarlarını okur (readSettings()), bkz. 10 — Yapılandırma başvurusu.
  2. analyzeRepository() fonksiyonunu ayarlarla, önbellek diziniyle (globalStorageUri) ve Cancel düğmesine bağlı bir AbortSignal ile çağırır.
  3. Bildirimde aşamaları gösterir: Reading rules → Reading Git history → Scanning files (n/N) → Analyzing commits (n/N).
  4. Uyarılar (örn. "No config found; using default rules") uyarı mesajı olarak görünür.
  5. Beklenen hatalar (depo değil, commit yok, geçersiz yapılandırma) hata mesajı olarak görünür.
  6. Başarılı olursa: raporu saklar, tüm tanıları değiştirir, panoyu açar ve bir özet gösterir: N developers · M violations (U unattributed) · F files.

Etkinlik çubuğundaki CleanLens simgesi üç görünüm açar (treeProviders.ts):

Dashboard

Bir özet listesi: geliştiriciler, toplam ihlaller, atanamayanlar, analiz edilen dosyalar, analiz edilen commit'ler, son analizin zamanı. İlk çalıştırmadan önce "No analysis yet" gösterir.

Developers

Her geliştirici için bir düğüm:

  • Etiket: görünen ad.
  • Açıklama: score/100 · N new · X% contrib, sıralama eşiğinin altındaysa ayrıca · not ranked.
  • İpucu: alt puanlar, analiz edilen satırlar, güven, yeni/düzeltilen/mevcut/atanamayan sayıları, ağırlıklı puanlar, net kalite etkisi, katkı, ilk/son katkı, e-postalar.
  • Alt öğeler: o geliştiriciye yazılan ihlaller, en ciddiden başlayarak (500'e kadar). Birine tıklayınca dosya o satırda açılır.
  • Bazı ihlaller atanamadığında ek bir Unattributed düğümü görünür.

Violations

Rapordaki her ihlal (1.000'e kadar), önem derecesine göre sıralı, [severity] Rule title — path:line biçiminde. İpucu mesajı gösterir; tıklamak konumu açar.

Pano paneli

Bir webview (dashboardPanel.ts, dashboardHtml.ts).

İçerik:

  • İstatistik kutucukları: geliştiriciler, ihlaller, atanamayanlar, dosyalar, commit'ler, son analiz.
  • Geliştirici kartları, puana göre en düşükten başlayarak, sıralanamayanlar en sonda. Her kartta bir puan çubuğu (yeşil ≥ 80, kehribar 50–79, kırmızı < 50), üç alt puan, gerektiğinde "Not ranked" notu ve analiz edilen satırlar, güven, katkı, yeni/düzeltilen, mevcut/atanamayan, ağırlıklı ihlaller, net kalite etkisi, aktif günler bulunur.
  • "How the Clean Code Score is measured": formülün kısa bir açıklaması.
  • İhlal tablosu: önem, kural, durum/güven, "ekleyen", konum.
    • Bir arama kutusu dosya, kural ve geliştirici adına göre filtreler.
    • Önem onay kutuları önem derecesine göre filtreler.
    • Sayfalama: sayfa başına 10 satır.
    • Bir konuma tıklamak dosyayı o satırda açar.
  • Re-run analysis düğmesi.

Teknik notlar:

  • Aynı anda tek panel; tekrar açmak mevcut paneli öne getirir.
  • retainContextWhenHidden, sekme değiştirdiğinizde filtreleri ve sayfayı korur.
  • Katı bir İçerik Güvenliği Politikası (CSP): harici kaynak yok, satır içi stiller ve yalnızca nonce etiketli satır içi betik.
  • VS Code tema değişkenlerini kullanır; açık, koyu ve yüksek kontrast temalarla uyumludur.
  • HTML oluşturucu saf bir fonksiyondur (renderDashboardDocument(report, { nonce, standalone })). standalone: true ile sayfanın VS Code dışında görüntülenebilmesi için yedek renkler ekler (ekran görüntüleri için kullanılır).
  • Webview'dan gelen mesajlar: { type: "run" } ve { type: "open", file, line }.

Satır içi tanılar

diagnostics.ts, cleanlens tanı koleksiyonunun sahibidir. Tanılar editörde (altı çizili) ve Problems panelinde, kaynak CleanLens ve kod olarak kural kimliğiyle görünür.

Önem eşlemesi:

Kural önemiVS Code tanısı
critical, highError
mediumWarning
lowInformation

Alt çizgi bulgunun tüm satır aralığını kapsar (örn. uzun fonksiyonun tamamı).

İki besleme

BeslemeNe zamanKurallarKapsam
Tam raporRun Analysis sonrasındaDosyalar arası tekrarlar dahil 14 kuralın tümüAnaliz edilen her dosya
CanlıBir dosyayı açarken, kaydederken veya yazarken (400 ms gecikme)Dosya düzeyindeki kurallar (dosyalar arası tekrar tespiti yok)Yalnızca o dosya

Nasıl etkileşirler:

  • Canlı tanılar açıksa ve bir yapılandırma yüklüyse, açık bir dosya canlı sonuçlarını gösterir. Dosya açık kaldığı sürece bunlar o dosyanın tam rapor sonuçlarının yerini alır.
  • Dosyayı kapattığınızda, canlı tanıları kapattığınızda veya yapılandırma yüklenemediğinde dosya son tam rapor sonuçlarına (veya hiçbir şeye) döner.
  • İçerik düzenleme sırasında ayrıştırılamazsa önceki tanılar kalır.
  • Yalnızca çalışma alanı klasöründeki, desteklenen uzantıya ve file: URI'sine sahip dosyalar denetlenir.
  • Canlı besleme hariç tutma listesini uygulamaz ve atama yapmaz. Hızlı bir geri bildirim döngüsüdür, bir rapor değildir.
  • Yapılandırma veya yerel geçersiz kılma dosyasını düzenlemek kuralları yeniden yükler ve tüm açık dosyaları hemen yeniden denetler.

Ayar: cleanlens.liveDiagnostics (varsayılan true). Eski cleanCodeTracker.liveDiagnostics açıkça ayarlanmışsa hâlâ okunur.

Eklentinin verileri sakladığı yer

VeriKonum
Son raporYalnızca bellek
Commit başına önbellekcontext.globalStorageUri → commits-<hash>.json
YapılandırmaDepoda .clean-code-tracker.json (yalnızca onayınızla yazılır)

Eklentide hata ayıklama

Bu depoda F5 tuşuna basın. Run Extension başlatma yapılandırması önce derler (npm: build) ve bir Extension Development Host açar. Bkz. 15 — Geliştirme kılavuzu.