בעיות
לכל פרויקט כבר יש כלי שיגיד לכם מה לא בסדר בו — tsc, dart analyze, ESLint,
Clippy, go vet, Ruff. מה שאף אחד מהם לא יגיד הוא אם הדיף שלכם הוא זה
שהכניס את ארבעים האזהרות שהוא בדיוק הדפיס. Gitcito יודע אילו קבצים מלוכלכים, ולכן
אותה רשימה עונה על השאלה הזאת בעזרת מתג אחד.

שורת המצב נושאת את הספירה — שגיאות, אזהרות, הודעות מידע: שלושת המספרים ש‑VS Code לימד את כולם לקרוא. לחיצה (או בעיות בלוח הפקודות) פותחת את הלוח בתחתית, מקובץ לפי קובץ. לחיצה על שורה פותחת את הקובץ בדיוק שם. לפני הסריקה הראשונה הוא מציג מקפים ולא אפסים: עוד לא הסתכלו, ושלושה אפסים היו טוענים אחרת.
מה מורץ
| אם במאגר יש | Gitcito מריץ |
|---|---|
pubspec.yaml |
dart analyze --format=machine |
tsconfig.json |
tsc --noEmit |
| הגדרות ESLint | eslint -f json |
Cargo.toml |
cargo clippy --message-format=short |
go.mod |
go vet ./... |
pyproject.toml או ruff.toml |
ruff check --output-format=json |
Flutter מכוסה בשורת Dart: אפליקציית Flutter היא פרויקט Dart, ו‑
flutter analyze קורא לאותו מנתח ש‑dart analyze קורא לו.
הפרויקט לא חייב לשבת בשורש. הסימנים האלה נבדקים גם כמה רמות למטה, כך
שאפליקציית Flutter תחת mobile/ או חבילה תחת apps/web יימצאו, וכל מנתח ירוץ
בתיקיית הפרויקט שלו. פרויקט מקונן מאותו סוג מדולג כשאב־קדמון כבר מכסה אותו — זה
בדיוק מה ש‑tsconfig.json בשורש אומר — וסריקה נעצרת בשנים־עשר פרויקטים, כי
מונו־ריפו לא אמור להרים חמישים מהדרים.
קובץ הרצה ב‑node_modules/.bin מנצח את זה שב‑PATH, בדיוק כפי שהסקריפטים של
הפרויקט פותרים אותו. הכול רץ במקביל, והפלט של כל כלי מוּבא לצורה אחת, ללא כפילויות
וממוין: שני מנתחים שמדווחים על אותה שורה מפיקים שורה אחת.
שום דבר לא רץ מעצמו. tsc --noEmit על מאגר גדול הוא עשרות שניות, והפקודות
האלה הן שרשרת הכלים של המאגר, לא של Gitcito. הן מתחילות כשאתם פותחים את הלוח או
לוחצים רענון, ולעולם לא מעצמן. גם בגלל זה הרשימה היא תצלום רגע: ערכו קובץ, והיא
מיושנת עד ההרצה הבאה.
הגדרות ← כללי ← מנתחי קוד קובעות כמה הוא נמרץ: סריקה כשהלוח נפתח (ברירת המחדל), רק בלחיצה על רענון, או כבוי — מה שמסתיר לגמרי את חצי המנתחים של הלוח, את המונה בשורת המצב ואת הפקודה שלו.
פלט מיוצר נזרק. כלי שמכוון לשורש הפרויקט בודק כל מה שהוא מוצא, ומה שהוא מוצא
כולל את .next/build/chunks, dist ארוז, עותק שהוכנס לריפו — מאות תלונות על קוד
שמכונה כתבה, שקוברות את הקומץ שמדבר על שלכם. Gitcito שואל את git אילו קבצים
מותעלמים וזורק אותם, ולעולם לא זורק קובץ במעקב: להכניס פלט מיוצר לקומיט זו בחירה,
ו‑git check-ignore מכבד אותה. node_modules יוצא בכל מקרה.
רק מה ששיניתם
המתג בכותרת זורק כל בעיה בקובץ שלא נגעתם בו. זו התצוגה ששווה להשאיר פתוחה: רשימה שטוחה של כל האזהרות בבסיס קוד הופכת לטפט תוך שבוע, בעוד ש"האם הדיף הזה הוסיף אותן" היא שאלה ששווה לענות עליה לפני קומיט.
גם תגי החומרה מסננים. כבויים פירושם להציג הכול; הדלקת אחד מצמצמת אליו.
המגבלות
- אין שרת שפה. זו סריקה, לא תהליך רקע: אין קווים גליים בזמן הקלדה, ואין תוצאות לפני שביקשתם.
- כלי שאינו מותקן מוזכר בשמו ולא מוסתר. הכותרת התחתונה אומרת מה לא הצליח לרוץ, כי רשימה ריקה בלי הסבר גרועה מרשימה קצרה עם סיבה.
- מובן רק פלט קריא‑למכונה. כל מנתח נקרא מתבנית המכונה המתועדת שלו; כלי שהוגדר להדפיס משהו אחר אינו נראה כאן.
- התקרה היא חמשת אלפים בעיות. מעבר לזה הלוח אומר זאת ועוצר — למאגר במצב כזה יש בעיה גדולה יותר מפס גלילה.
ראו גם: CI מקומי · טרמינל משולב