สวัสดีชาวโลก!

บทช่วยสอนนี้จะอธิบายโครงสร้างขั้นต่ำของปลั๊กอิน Scheme บางบรรทัดถือเป็น “แผ่นสำเร็จรูป”: Lumi จำเป็นต้องโหลดไฟล์ แม้ว่าคุณจะยังไม่เข้าใจบรรทัดเหล่านั้นอย่างถ่องแท้ก็ตาม

# !/usr/bin/env lumi-scheme-interpreter-0.1

ในระดับสูง คุณจะ:

  1. กำหนดฟังก์ชัน
  2. ลงทะเบียนเพื่อให้ปรากฏในฐานข้อมูลขั้นตอน
  3. (ไม่บังคับ) เพิ่มรายการเมนู
  4. ติดตั้งไฟล์ในโฟลเดอร์ปลั๊กอิน

กำหนดฟังก์ชัน

ฟังก์ชันหรือที่เรียกว่า 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")

ติดตั้งปลั๊กอิน

  1. ไปที่ Lumi -> แก้ไข -> การตั้งค่า -> โฟลเดอร์ -> ปลั๊กอิน
  2. เพิ่มโฟลเดอร์ปลั๊กอิน repo ของคุณลงในรายการ
  3. สร้างโฟลเดอร์สำหรับปลั๊กอินและบันทึกโค้ดตัวอย่างด้านบนเป็น hello-world.scm:
  • your-plug-ins-repo/hello-world/hello-world.scm
  1. คลิกขวาที่ไฟล์ hello-world.scm
  2. ไปที่ คุณสมบัติ -> สิทธิ์ -> อนุญาตให้เรียกใช้ไฟล์ในรูปแบบโปรแกรม
  3. รีสตาร์ท Lumi

ลองใช้ปลั๊กอิน

ตอนนี้ปลั๊กอินควรปรากฏใต้เมนู “Funky” ในหน้าต่างหลักของ Lumi คลิกที่มัน และควรแสดงข้อความ “Hello world!” ข้อความ. ลองแก้ไขโค้ด เช่น เปลี่ยนข้อความ และบันทึกไฟล์ เมื่อคุณเรียกใช้ปลั๊กอินอีกครั้ง การเปลี่ยนแปลงของคุณจะมีผลโดยไม่ต้องรีสตาร์ท Lumi

ลองทดลองโดยเปลี่ยนเส้นทางเมนู ตัวอย่างเช่น "<Image>/File" จะวางไว้ในเมนูไฟล์ และ "<Image>/File/Funky" จะสร้างส่วนใหม่ในเมนูไฟล์ นี่เป็นวิธีที่ยอดเยี่ยมในการปรับแต่งตำแหน่งที่ปลั๊กอินของคุณปรากฏและจัดระเบียบเครื่องมือของคุณ