VS Code
आपके कोड के बगल में कंसोल फ़्रेम का लाइव प्रीव्यू, App Router स्कैफ़ोल्डिंग, स्निपेट और TX एरर लिंक।
VS Code के लिए Text.js एक्सटेंशन आपके कोड के पास कंसोल फ़्रेम दिखाता है। यह text dev से चल रहे ऐप को मिरर करता है, या कुछ न चलने पर खुली फ़ाइल को ख़ुद रेंडर करता है। यह App Router स्कैफ़ोल्डिंग, स्निपेट और TX### एरर कोड के लिंक भी जोड़ता है।
इंस्टॉलेशन
Visual Studio Marketplace से Text.js इंस्टॉल करें। VS Code में Extensions व्यू (⌘⇧X) खोलें और textjs.vscode-textjs खोजें, या यह कमांड चलाएं:
code --install-extension textjs.vscode-textjsयह ऐसे किसी भी फ़ोल्डर में सक्रिय होता है जिसमें Text.js ऐप हो: text.config.ts फ़ाइल, या ऐसा पैकेज जो @textjs/app पर निर्भर हो और जिसमें app/ डायरेक्टरी हो। कई ऐप वाले मोनोरेपो भी काम करते हैं।
लाइव प्रीव्यू
page.tsx, layout.tsx फ़ाइल या कंपोनेंट खोलें और Text.js: Open Preview (⌘K V) चलाएं, या एडिटर के टाइटल बार में प्रीव्यू बटन पर क्लिक करें। पैनल आपके ब्राउज़र कंसोल जैसे ही DevTools क्रोम और Menlo सेल में फ़्रेम बनाता है।
प्रीव्यू को अपने फ़्रेम दो में से किसी एक स्रोत से मिलते हैं। टूलबार का बैज दिखाता है कि कौन-सा स्रोत सक्रिय है:
| स्रोत | कब | आपको क्या दिखता है |
|---|---|---|
| लाइव | text dev चल रहा हो और किसी ब्राउज़र टैब में ऐप खुला हो | असली ऐप, उसकी स्टेट, डेटा और ग्रिड साइज़ के साथ |
| हेडलेस | कोई डेव सर्वर न हो, या कोई टैब खुला न हो | खुली फ़ाइल, जिसे एक्सटेंशन पैनल के साइज़ में रेंडर करता है |
auto (डिफ़ॉल्ट) उपलब्ध होने पर लाइव और अन्यथा हेडलेस का इस्तेमाल करता है। बैज से या textjs.preview.mode सेटिंग से किसी एक को पिन करें।
कीबोर्ड
ऐप को की इनपुट भेजने के लिए कंसोल पर क्लिक करें: ऐरो की, Tab, शॉर्टकट, टाइपिंग और पेस्ट, सभी ब्राउज़र की तरह काम करते हैं। रोकने के लिए कंसोल के बाहर क्लिक करें। ⌘P और ⌘⇧P जैसे एडिटर शॉर्टकट अब भी VS Code को मिलते हैं। कंसोल पर स्क्रॉल करने से व्हील इवेंट भेजे जाते हैं।
किसी भी स्रोत में नेविगेट करने के लिए आप एड्रेस फ़ील्ड में /deployments/dpl_a1 जैसा रूट टाइप कर सकते हैं।
लाइव मोड
प्रीव्यू खुला होने पर डेव सर्वर कनेक्ट किए गए टैब से उनके फ़्रेम स्ट्रीम करने को कहता है। टैब सिर्फ़ बदली हुई पंक्तियां भेजते हैं और प्रीव्यू बंद होने पर भेजना रोक देते हैं, इसलिए बिना खुले प्रीव्यू वाले ऐप पर कोई अतिरिक्त लागत नहीं आती। फ़ाइल सेव करने पर Fast Refresh चलता है और टैब के साथ प्रीव्यू भी अपडेट होता है।
ब्राउज़र टैब को उस page.tsx फ़ाइल के रूट पर ले जाने के लिए जिसे आप एडिट कर रहे हैं, Follow (textjs.preview.followEditor) चालू करें।
बैकग्राउंड टैब को ऐनिमेशन फ़्रेम नहीं मिलते, इसलिए वे आम तौर पर दोबारा दिखने तक अपने फ़्रेम रोके रखते हैं। जब प्रीव्यू देख रहा हो, तो बैकग्राउंड टैब इनपुट आते ही फ़्रेम बनाता है, इसलिए प्रीव्यू में टाइप करने पर भी अपडेट होता है। बैकग्राउंड टैब में ऐनिमेशन लगभग हर सेकंड एक बार अपडेट होते हैं। उन्हें सुचारु रखने के लिए ऐप को अलग विंडो में रखें।
हेडलेस मोड
एक्सटेंशन आपके प्रोजेक्ट में एक छोटा रनर शुरू करता है। यह प्रोजेक्ट के अपने Vite और @textjs/app के ज़रिए रूट फ़ाइलें लोड करता है, इसलिए एलियस, TypeScript और JSX वैसे ही काम करते हैं जैसे text dev में करते हैं। यह इन-मेमोरी हिस्ट्री का इस्तेमाल करके खुली फ़ाइल के रूट पर, उसके लेआउट के साथ, App Router माउंट करता है:
| फ़ाइल | प्रीव्यू |
|---|---|
app/page.tsx | / |
app/(shop)/items/[id]/page.tsx | /items/id (डायनामिक सेगमेंट अपने नाम का इस्तेमाल करते हैं) |
app/blog/[[...slug]]/layout.tsx | /blog |
components/Card.tsx | डिफ़ॉल्ट एक्सपोर्ट, या पहला PascalCase एक्सपोर्ट, बिना प्रॉप्स के |
समान ओरिजिन वाली fetch("/api/...") कॉल आपके route.ts हैंडलर उसी प्रोसेस में चलाती हैं, जैसे text run में होता है। ग्रिड पैनल के साइज़ के अनुसार बदलता है और ऐप की कोई भी फ़ाइल सेव करने पर वह दोबारा रेंडर होता है। एरर फ़्रेम के ऊपर दिखते हैं, उनके TX### पेज के लिंक के साथ।
कमांड
| कमांड | विवरण |
|---|---|
| Text.js: Start Dev Server | आपकी dev स्क्रिप्ट (या text dev) टर्मिनल में चलाता है |
| Text.js: Stop Dev Server | VS Code से शुरू किए गए डेव सर्वर को रोकता है |
| Text.js: Open Preview | सक्रिय फ़ाइल के लिए लाइव प्रीव्यू खोलता है |
| Text.js: Open in Browser Console | डेव सर्वर पर मौजूदा रूट खोलता है। फिर ब्राउज़र कंसोल खोलें |
| Text.js: New Page | मेटाडेटा और टाइप किए गए params के साथ app/<route>/page.tsx |
| Text.js: New Layout | app/<route>/layout.tsx |
| Text.js: New Route Handler | GET और POST के साथ app/<route>/route.ts |
| Text.js: New Loading UI / Error Boundary / Not Found Page | loading.tsx, error.tsx, not-found.tsx |
स्कैफ़ोल्डिंग कमांड फ़ोल्डर के Explorer कॉन्टेक्स्ट मेन्यू में भी हैं। वे settings, blog/[slug], docs/[...path] और (marketing)/about जैसे App Router सेगमेंट स्वीकार करते हैं और एक ही सेगमेंट में page और route.ts रखने से मना करते हैं। JavaScript प्रोजेक्ट (जिनमें tsconfig.json नहीं है) को .jsx और .js फ़ाइलें मिलती हैं।
स्निपेट
| प्रीफ़िक्स | क्या जोड़ता है |
|---|---|
txpage, txlayout, txloading, txerror | अपने फ़ोल्डर के नाम वाली रूट फ़ाइलें |
txc | फ़ाइल के नाम वाला कंसोल कंपोनेंट |
txroute, txroutep | पैरामीटर वाले या बिना पैरामीटर वाले रूट हैंडलर |
box, boxb, text, scrollbox, link, spinner | कंपोनेंट |
input, select, tabs | इंटरैक्टिव कंपोनेंट |
useInput, useKeymap, useFocus, useTheme, useViewport, useRouter, useInterval | हुक |
metadata, txconfig | रूट मेटाडेटा और text.config.ts |
एरर कोड
कहीं भी TX### कोड पर होवर करें: सोर्स, लॉग, Output पैनल या पेस्ट किए गए स्टैक ट्रेस में। होवर पर उसका शीर्षक, मैसेज और पैकेज दिखता है, साथ में textjs.org पर उसके पेज का लिंक भी। हर कोड एक लिंक भी है (⌘-क्लिक)।
स्टेटस बार
▼ आइटम डेव सर्वर की स्टेट और कंसोल ग्रिड का साइज़ दिखाता है, उदाहरण के लिए ▼ :3000 120×36। टैब का साइज़ बदलने पर वे डेव सर्वर को इसकी जानकारी देते हैं, भले ही कोई प्रीव्यू खुला न हो। मुख्य कमांड के लिए आइटम पर क्लिक करें।
सेटिंग
| सेटिंग | डिफ़ॉल्ट | विवरण |
|---|---|---|
textjs.preview.mode | auto | auto, live या headless |
textjs.preview.followEditor | false | लाइव मोड: एडिट किए गए रूट को फ़ॉलो करना |
textjs.preview.fontSize | 12 | सेल का फ़ॉन्ट साइज़ (DevTools में 12 है) |
textjs.preview.runtime | हेडलेस प्रीव्यू के लिए Node.js बाइनरी (डिफ़ॉल्ट: VS Code के साथ बंडल की गई बाइनरी) | |
textjs.devServer.url | डेव सर्वर URL (डिफ़ॉल्ट: पोर्ट 3000–3010 पर खोजना)। सिर्फ़ http:// लूपबैक एड्रेस इस्तेमाल होते हैं | |
textjs.devServer.command | Start Dev Server के लिए कमांड |
वर्कस्पेस पर भरोसा
प्रीव्यू और डेव सर्वर आपके प्रोजेक्ट का कोड (उसका Vite कॉन्फ़िग, text.config.* और कंपोनेंट) चलाते हैं। Restricted Mode में एक्सटेंशन सिर्फ़ स्निपेट, स्कैफ़ोल्डिंग और एरर लिंक देता है, और वर्कस्पेस सेटिंग से textjs.preview.runtime, textjs.devServer.command और textjs.devServer.url को अनदेखा करता है। प्रीव्यू चालू करने के लिए वर्कस्पेस पर भरोसा करें। आपके वर्कस्पेस फ़ोल्डर से बाहर की फ़ाइलों का प्रीव्यू कभी नहीं दिखाया जाता।
काम करने का तरीका
text dev एडिटर के लिए तीन एंडपॉइंट उपलब्ध कराता है। वे सिर्फ़ लूपबैक होस्ट (localhost, 127.0.0.1, [::1]) को संबोधित लूपबैक कनेक्शन का जवाब देते हैं, और सिर्फ़ उन रिक्वेस्ट का जिनमें Origin न हो या डेव सर्वर का अपना ओरिजिन हो। ब्राउज़र की क्रॉस-साइट और no-cors रिक्वेस्ट अस्वीकार होती हैं:
| एंडपॉइंट | |
|---|---|
GET /__textjs/status | प्रोजेक्ट रूट, कनेक्ट किए गए टैब, ग्रिड साइज़ और मौजूदा रूट |
GET /__textjs/frames | सर्वर से भेजे गए इवेंट: हर बदलाव पर एक frame इवेंट, पंक्तियों के डेल्टा के रूप में एन्कोड किया हुआ |
POST /__textjs/input | टैब के लिए की, पेस्ट, IME या डेड-की टेक्स्ट (text), व्हील या नेविगेशन। JSON और x-textjs-mirror: 1 हेडर ज़रूरी हैं, ताकि दूसरी साइट कीस्ट्रोक न भेज सकें |
टैब Vite के HMR सॉकेट से डेव सर्वर को फ़्रेम भेजते हैं, जिसके लिए हर सर्वर का अलग टोकन ज़रूरी है। अगर आप अपना व्यूअर बनाना चाहते हैं, तो वायर फ़ॉर्मैट @textjs/app/frame-protocol (FrameEncoder, FrameDecoder, parseInputMessage) से एक्सपोर्ट होता है। इनमें से कुछ भी text build के आउटपुट में नहीं होता।