האזינו באפליקציית Podli 🎧
עקבו אחרי הפודקאסטים האהובים עליכם, האזינו לא מקוון וברכב עם CarPlay ו-Android Auto, ותמיד המשיכו מאיפה שהפסקתם. אפשר לנסות בחינם.
פרק מספר 487 של רברס עם פלטפורמה - באמפרס מספר 85:
רן,
דותן ו
אלון באולפן הוירטואלי עם סדרה של קצרצרים שתפסו את תשומת הלב בתקופה האחרונה - בלוגים מעניינים, דברים מ- GitHub, וכל מיני פרויקטים מעניינים או דברים יפים שראינו באינטרנט וחשבנו לאסוף ולהביא אליכם.וכמיטב המסורת לאחרונה - גם לא מעט AI, כי על זה הצעירים מדברים בזמן האחרון.🎗️
00:53
דותן- (דותן) כן, אז האייטם הראשון - למי שמכיר LSP, אז זה פרוטוקול של VS Code, נראה לי ששם זה הומצא, והוא בא להגיד...
- (רן) אני חשבתי שב-Vi, האמת . . . חשבתי שב-Vim המציאו את זה. שם לפחות נתקלתי בזה בפעם הראשונה . . .
- (דותן) לדעתי . . . האמת, אני לא יודע.
- וזה אומר, שאם אתה רוצה לייצר Plug-in לעורך שלך - כדי, נגיד, לעשות Refactoring, לעשות דברים חכמים בקוד.
- אז אתה יכול לכתוב בעצמך LSP Server, שיש לו Instance אחד במערכת שלך בדרך כלל - וה-Editor שלך מדבר איתו בפרוטוקול מסודר, בפרוטוקול LSP.
- וככה אתה מקבל את הפונקציונליות הזאת, בלי לכתוב משהו ספציפי ל-IDE.
- כי אם אתם זוכרים, אז נגיד JetBrains, יש להם את ה-SDK שלהם, ואם נלך אחורה ל-NetBeans גם כן, וכו' וכו'.
- זאת התקופה שהיית כותב Plug-in לכל Editor בנפרד.
- (רן) זאת אומרת, יש הפרדה בין ה-Frontend -שזה בעצם ה-IDE, וזה יכול להיות JetBrains, זה יכול להיות VS Code, זה יכול להיות Vim - לבין ה-Backend, שמממש את הלוגיקה של השפה עצמה.
- (דותן) נכון, כן.
- אז סתם כאילו לפתוח רגע את הנושא - כל אחד יכול להוריד LSP לשפה שלו.
- אגב, יש LSP טובים, ויש פחות טובים.
- בדרך כלל, אם לשפה יש LSP Server - נגיד ל-Lua או ל-Python וכו' - זה אומר שההשקיעו שם די הרבה בצורה טובה.
- אז פה יש LSP Server שהוא בעצם מעניין - הוא LSP AI, וגם ככה נקרא הפרויקט.
- שזה אומר שאפשר לקחת את הפרויקט הזה ולחקור, להתעמק בו - ולהוסיף לו AI,
- או לקחת חלק מה-Provider-ים שלו, ואז ליצור איזשהו “Copilot משלכם” [עם בלאק-ג’ק?]
- הוא בא ארוז עם כמה וכמה Extension-ים.
- נגיד, אם רוצים לעשות “Local AI Copilot” כזה, אז אפשר להתחיל מהפרויקט הזה.
- כלומר, משלכם - או להשתמש בפרויקט הזה בתור איזשהו Driver ל-AI מקומי.
- (רן) כן, שאלה - אני לא יודע אם צריך לבדוק את זה, אבל בדרך כלל, הכלים האלה שעושים Code Completion, או בכלל שעוזרים לך לכתוב קוד, הם צריכים לקבל Context. כ-Context לא רק, נגיד, איפה ה-Cursor שלך כרגע נמצא וכמה שורות לפני ואחרי, אלא הרבה דברים נוספים, כמו נגיד איזה קבצים כרגע פתוחים, לפעמים אפילו מסתכלים על יותר מזה - על הפרויקט, לפעמים גם על תיעוד וכו'.
- השאלה אם כל זה קיים בתוך ה-Language-Server-Protocol? כי כשהוא הוגדר, אני מניח שלא חשבו על Use Case כזה . . . השאלה אם זה קיים פה ויודע לעבוד עם זה?
- (דותן) האמת שהשאלה טובה . . . מה שאני התעסקתי עם LSP זה רק Per-Document, זאת אומרת - מה שאתה עובד עליו כרגע.
- לא דווקא השורה, אלא כל המסמך.
- אני רוצה להאמין שיש יכולת לדחוף לו עוד Context, אבל לא בדקתי את זה ספציפית.
- כן, זה כנראה אלמנט חשוב לדברים כאלה.
- מה שאני יכול להגיד - אחד מה-LSPs שאני מכיר לעומק זה ה-LSP של Rust.
- שם יש פרויקט שנקרא Rust Analyzer, וזה סוג של “מוח” כזה מאוד מאוד מורכב, שנוצר כדי לנתח את הקוד שלך ב-Rust.
- על “המוח” הזה הרכיבו LSP, ואז בעצם נולד איזשהו Server, שמשתמש ב-Rust Analyzer כדי לנתח את הקוד שלך
- וכל הפרויקט הזה מנתח את כל הקוד, בשלמותו.
- אז אני מניח שיש דרך לעשות את מה שאתה מתכוון אליו.
- (רן) אוקיי, אחלה.
- (אלון) סתם בדיקת עובדות - VS Code אכן התחילו עם זה ראשונים, ל-LSP.
- (דותן) כן, זה מעניין - יש הרבה דברים טובים ב-VS Code.
- (אלון) יצא ל-Microsoft משהו טוב בסוף . . .
- (רן) הסטה קצרה, בערך באותו נושא - אתמול בערב קיבלתי אימייל ש-<a href="https://github.blog/news-insights/product-news/github-copilo