VS Code eklentisi
Komutlar, kenar çubuğu görünümleri, pano, satır içi tanılar
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:
ReportStore(son raporu bellekte tutar) veDiagnosticsManagernesnelerini oluşturur;- üç kenar çubuğu görünümünü ve dört komutu kaydeder;
- canlı tanıları başlatır: yapılandırmayı yükler,
.clean-code-tracker.json/.clean-code-tracker.local.jsondeğ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
| Komut | Başlık | Ne yapar |
|---|---|---|
cleanlens.initializeProject | CleanLens: Initialize Project | Kö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.configureRules | CleanLens: Configure Rules | .clean-code-tracker.json dosyasını açar; yoksa oluşturmayı önerir. |
cleanlens.runAnalysis | CleanLens: Run Analysis | Tü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.openDashboard | CleanLens: Open Dashboard | Son 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ı
- VS Code ayarlarını okur (
readSettings()), bkz. 10 — Yapılandırma başvurusu. analyzeRepository()fonksiyonunu ayarlarla, önbellek diziniyle (globalStorageUri) ve Cancel düğmesine bağlı birAbortSignalile çağırır.- Bildirimde aşamaları gösterir: Reading rules → Reading Git history → Scanning files (n/N) → Analyzing commits (n/N).
- Uyarılar (örn. "No config found; using default rules") uyarı mesajı olarak görünür.
- Beklenen hatalar (depo değil, commit yok, geçersiz yapılandırma) hata mesajı olarak görünür.
- 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.
Kenar çubuğu görünümleri
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: trueile 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 önemi | VS Code tanısı |
|---|---|
| critical, high | Error |
| medium | Warning |
| low | Information |
Alt çizgi bulgunun tüm satır aralığını kapsar (örn. uzun fonksiyonun tamamı).
İki besleme
| Besleme | Ne zaman | Kurallar | Kapsam |
|---|---|---|---|
| Tam rapor | Run Analysis sonrasında | Dosyalar 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
| Veri | Konum |
|---|---|
| Son rapor | Yalnızca bellek |
| Commit başına önbellek | context.globalStorageUri → commits-<hash>.json |
| Yapılandırma | Depoda .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.