สวัสดีชาวโลก!
บทช่วยสอนนี้จะอธิบายโครงสร้างขั้นต่ำของปลั๊กอิน Scheme บางบรรทัดถือเป็น “แผ่นสำเร็จรูป”: Lumi จำเป็นต้องโหลดไฟล์ แม้ว่าคุณจะยังไม่เข้าใจบรรทัดเหล่านั้นอย่างถ่องแท้ก็ตาม
# !/usr/bin/env lumi-scheme-interpreter-0.1ในระดับสูง คุณจะ:
- กำหนดฟังก์ชัน
- ลงทะเบียนเพื่อให้ปรากฏในฐานข้อมูลขั้นตอน
- (ไม่บังคับ) เพิ่มรายการเมนู
- ติดตั้งไฟล์ในโฟลเดอร์ปลั๊กอิน
กำหนดฟังก์ชัน
ฟังก์ชันหรือที่เรียกว่า procedure คือกลุ่มของโค้ดที่มีชื่อและวัตถุประสงค์ โดยรับอินพุตและสร้างเอาต์พุต
อินพุต > ฟังก์ชัน > เอาต์พุต
ลงทะเบียนฟังก์ชั่น
การลงทะเบียนคือการใส่ชื่อฟังก์ชันลงในรายการเพื่อให้ Lumi ทราบ
(scheme-register-procedure "scheme-hello-world"...ลิงค์ไปยังเมนู
สิ่งนี้จะบอก Lumi ว่าจะค้นหาฟังก์ชั่นของคุณได้จากที่ไหนในระบบเมนู
(scheme-menu-register "scheme-hello-world" "<Image>/Funky")ซึ่งจะแสดงเมนู “Funky” ในแถบเมนูหลัก เปลี่ยนเส้นทางเพื่อวางปลั๊กอินไว้ที่อื่น เส้นทาง <Image>/Funky หมายความว่าปลั๊กอินจะปรากฏใต้หมวดหมู่เมนู รูปภาพ คุณสามารถเปลี่ยน <Image> เป็น <Tools>, <Filters> ฯลฯ ขึ้นอยู่กับตำแหน่งที่คุณต้องการให้ปลั๊กอินปรากฏ
ความคิดเห็น
ใน Scheme ซึ่งเป็นภาษาพื้นฐานของ Scheme โดยทั่วไปความคิดเห็นจะดำเนินการโดยนำหน้าบรรทัดข้อความที่มีประโยชน์ที่มี ;; การใช้ความคิดเห็นของคุณจะขึ้นอยู่กับความคล่องแคล่วของคุณในฐานะผู้เขียนโค้ด หากคุณเขียนโค้ดเป็นครั้งคราว ความคิดเห็นเพิ่มเติมจะช่วยได้ หากคุณเขียนโค้ดตลอดเวลา โค้ดจะอ่านง่ายพอๆ กับความคิดเห็น นอกจากนี้ เมื่อเขียนโปรแกรมตามฟังก์ชัน โค้ดมีแนวโน้มที่จะมีคำอธิบายเพียงพอที่จะอ่านได้เหมือนสคริปต์
ไวยากรณ์
โค้ดมักจะมีกฎเล็กๆ น้อยๆ เกี่ยวกับวิธีการวางรายการต่างๆ ในบรรทัด เพื่อให้เราสามารถอ่านบรรทัดได้อย่างง่ายดาย ตัวอย่างเช่น ประโยคอาจมีช่องว่างหลังเครื่องหมายจุลภาคหรือจุด มันช่วยให้อ่านง่าย
Code อาจจัดเรียงสิ่งต่าง ๆ ในลักษณะเดียวกัน ซึ่งอาจดูแปลก ๆ ในตอนแรก:
(define (function-name input-a
input-b
input-c))รหัสตัวอย่าง
นี่คือตัวอย่างที่สมบูรณ์ ขั้นตอนของ Lumi ส่วนใหญ่ขึ้นต้นด้วย lumi- ตัวอย่างเช่น lumi-message พิมพ์สตริงไปยังตัวจัดการข้อความที่กำหนดค่าไว้
# !/usr/bin/env lumi-scheme-interpreter-0.1
(define (scheme-hello-world)
;; Set the message handler to output the message to a GUI dialog box
(lumi-message-set-handler 0)
(lumi-message "Hello world!\n")
;; Set the message handler to output the message to the Error Console
(lumi-message-set-handler 2)
(lumi-message "Hello world!\n")
;; Send the message to the terminal, the OS window that launched Lumi
(display "Hello world!\n"))
(scheme-register-procedure "scheme-hello-world"
"Hello world!"
"A Scheme procedure plug-in"
"Mark Sweeney"
"Under GNU GENERAL PUBLIC LICENSE Version 3"
"2024")
(scheme-menu-register
"scheme-hello-world"
"<Image>/Funky")ติดตั้งปลั๊กอิน
- ไปที่ Lumi -> แก้ไข -> การตั้งค่า -> โฟลเดอร์ -> ปลั๊กอิน
- เพิ่มโฟลเดอร์ปลั๊กอิน repo ของคุณลงในรายการ
- สร้างโฟลเดอร์สำหรับปลั๊กอินและบันทึกโค้ดตัวอย่างด้านบนเป็น
hello-world.scm:
your-plug-ins-repo/hello-world/hello-world.scm
- คลิกขวาที่ไฟล์
hello-world.scm - ไปที่ คุณสมบัติ -> สิทธิ์ -> อนุญาตให้เรียกใช้ไฟล์ในรูปแบบโปรแกรม
- รีสตาร์ท Lumi
ลองใช้ปลั๊กอิน
ตอนนี้ปลั๊กอินควรปรากฏใต้เมนู “Funky” ในหน้าต่างหลักของ Lumi คลิกที่มัน และควรแสดงข้อความ “Hello world!” ข้อความ. ลองแก้ไขโค้ด เช่น เปลี่ยนข้อความ และบันทึกไฟล์ เมื่อคุณเรียกใช้ปลั๊กอินอีกครั้ง การเปลี่ยนแปลงของคุณจะมีผลโดยไม่ต้องรีสตาร์ท Lumi
ลองทดลองโดยเปลี่ยนเส้นทางเมนู ตัวอย่างเช่น "<Image>/File" จะวางไว้ในเมนูไฟล์ และ "<Image>/File/Funky" จะสร้างส่วนใหม่ในเมนูไฟล์ นี่เป็นวิธีที่ยอดเยี่ยมในการปรับแต่งตำแหน่งที่ปลั๊กอินของคุณปรากฏและจัดระเบียบเครื่องมือของคุณ