Class Peek
ส่วนเสริม VSCode — กด ⌘/Ctrl + คลิกชื่อ class ใน clsx/cva/Tailwind หรือ hover เพื่อดู CSS แบบ inline ขึ้นอยู่บน Marketplace แล้ว
ส่วนเสริม VSCode เล็ก ๆ ให้กด ⌘ + คลิก (หรือ Ctrl + คลิกบน Windows/Linux)
ที่ชื่อ class ในไฟล์ JSX/TSX แล้วกระโดดไปยังจุดที่มันถูกประกาศได้เลย —
ถึงแม้ class จะอยู่ใน helper function อย่าง clsx / cn / classnames /
cva / tv ก็ยังใช้ได้ หรือถ้าไม่อยากกระโดด — แค่ hover ก็เห็น CSS
แบบ inline ตรงนั้นเลย
ตอนนี้อยู่บน VS Code Marketplace
ในชื่อ aritoton.class-peek แล้วครับ
ทำไมถึงมีสิ่งนี้
CSS Peek ตัวเดิมก็ดีนะครับ แต่ issue #82
("add support for clsx/classnames") เปิดค้างมาตั้งแต่กรกฎา 2020 —
นั่นแหละจุดเจ็บ ทุกโปรเจกต์ที่ผมแตะต้องที่ทำงานใช้ helper พวกนี้กันหมด
พอ class หลุดออกจาก string literal ปุ๊บ peek-definition ก็เงียบทันที
ที่ ship แล้วตอนนี้
- เดินผ่าน AST ของ helper ทำงานได้เหมือนกันไม่ว่าจะเขียน
className="p-4"หรือclassName={cn("p-4", isActive && "bg-accent")}รายการ helper config ได้ ถ้า codebase ของคุณมี wrapper ของตัวเองก็ใส่ เข้ามาร่วมวงได้ - Reverse lookup สำหรับ Tailwind v4 ผ่าน
@theme—bg-accentresolve กลับไปที่--color-accent;text-lgไปที่--text-lg; utility ของ spacing fall back ไปที่--spacingcalc base ถ้าไม่มี ค่า specific ไว้ sub-prefix แบบ hyphenated (gap-x-4,space-y-2) และ utility แบบติดลบ (-mt-4) ก็ resolve ไปที่ token ที่ถูกต้อง - Peek
@applychain —⌘+ คลิกที่btnแล้วจะเห็นทั้ง rule.btnเอง และ rule อื่น ๆ ที่ใช้@applyประกอบมัน อยู่ใน peek panel เดียวกัน - Hover preview (v0.2) — hover ที่ class ไหนก็ได้เพื่อดู CSS ที่
resolve แล้วแบบ inline — rule body สำหรับ class ธรรมดา, declaration
ของ
@themeสำหรับ Tailwind token, rule ที่ประกอบกันสำหรับ@applyไม่ต้องกระโดดไปไหน
ตั้งใจให้เล็ก
หนึ่งคีย์ลัด หนึ่งหน้าที่ ถ้ามันแทน CSS Peek ในเคสที่ CSS Peek ทำได้อยู่แล้ว
ไม่ได้ ก็ไม่เป็นไร — wedge ของมันคือเคสที่ CSS Peek ทำไม่ได้ ต่างหาก
สิ่งที่ตัดออกอย่างจงใจ: find-references, rename, SCSS &-nesting,
styled-components, monorepo path resolution แต่ละอันก็คือมี project ของ
ตัวมันเองอยู่แล้ว