תגית: ruby

vim omnicomplete

לאחרונה אני מוצא את עצמי חוזר לתכנת בעיקר עם vim במקום kate, היות והאחרון, אוהב לקרוס לי, והרבה.

אחד הדברים הכי מעצבנים שקורים לי בכל שפת תכנות, הוא שאני כותב פקודה בשגיאת כתיב. למשל שגיאה מאוד נפוצה שיש לי היא המילה include אשר לרוב אני איכשהו מגלה כי אני לא מוסיף d למתודה/פונקציה, וזו נראת כ inclue במקום, ורובי צועק עלי (בצדק, למרות שלא יפה שהוא לא מבין שזו בסה"כ שגיאת כתיב).

אז החלטתי להפעיל את התמיכה של omnicomplete אשר נכנסה ב VIM 7. אממה, מסתבר שזה לא כזה פשוט, ויש מספר צעדים שצריך להקפיד עליהם, לפני בכלל שזה יעבוד.

בראש ובראשונה, חשוב להקפיד כי vim מגיע עם Ruby. אנחנו נעשה את זה בצורה הבאה כאשר אנחנו בתוך vim: להמשיך לקרוא

The Ruby Refresher

במידה ואתם אינכם יודעים או זוכרים כיצד התחביר של רובי מתקיים, או כלים מאוד בסיסיים שלו צריכים להגיע לידי ביטוי, אז הדף The Ruby Refresher נבנה גם עבורכם.

הדף מציג ביטויי רובי, הנועדו לעזור לנו לזכור כיצד ניתן לבצע דברים. בנוסף הוא גם מכיל מעט פונקציות המגיעות בברירת מחדל עם רובי (כדוגמת FileUtils או open-uri).

WAT I have learned about …

בשבוע האחרון יצא לי לעשות הרבה דברים שונים.

למשל לכתוב קצת קוד פיתון, ולגלות כי Tuple זו הגדרה מוזרה במקצת:

a = (1)  # an Integer
a = (1,) # a Tuple
a = 1    # an integer
a = 1,   # a Tuple

על זה נאמר WAT ?

אבל זה לא הכל.
המרתי תוכנה שלי מרובי 1.8.7, שרצה כבר מספר שנים ב production לגרסה 1.9.3.
החדשות הטובות הן כי כמעט כל הקוד שלי עובד בלי שינוי. החדשות הרעות הן, שרק דבר אחד לא באמת עבד בתחביר:

case a
 when 1 : something # 1.9.3 raises syntax error
 when 1
          something # Both 1.8.7 and 1.9.3 accept it
end

ואם זה לא מספיק בעייתי, גיליתי על מספר תחבירי פסקל מונחה עצמים שהייתי בטוח שאני יודע ומכיר, ומסתבר כי אני לא משתמש בהם נכון, ועבדתי סתם קשה איתם (ועוד יש אנשים שלא יודעים בכלל, ויש להם רעיונות כמה שהם כן יודעים לגבי השפה). להמשיך לקרוא