Android के लिए एक असली code editor: LSP language servers, semantic autocomplete, TextMate syntax highlighting, multi-cursor editing, code navigation और inline diagnostics — सब कुछ आपके फ़ोन पर।
Android पर ज़्यादातर "code editors" बस दिखावटी text box भर हैं। वे Android के
TextView पर टिके रहते हैं, 2,000 लाइन की फ़ाइल पर अटक जाते हैं, और ऐसा कुछ नहीं देते
जिससे कोई असली developer उन्हें production code के लिए भरोसे लायक समझे। किस्मत अच्छी हुई
तो आपको syntax colors मिल जाते हैं, और बस इतना ही। इसलिए जैसे ही रास्ते में कोई bug ठीक
करना हो, आप फिर भी अपने laptop की तरफ़ ही हाथ बढ़ाते हैं।
Pocket Code इसका बिल्कुल उल्टा रास्ता अपनाता है। इसका Android के लिए code editor
Sora Editor पर बना है — एक high-performance engine जो gap-buffer data structure पर
आधारित है। TextView वाले समाधानों के उलट, Sora हर keystroke पर होने वाली O(n) copy से
बचता है, इसलिए बड़ी फ़ाइलें भी smooth रहती हैं। उस engine के ऊपर Pocket Code वे चीज़ें
जोड़ता है जिनकी उम्मीद आप एक desktop IDE से करते हैं: LSP language servers, semantic
autocomplete, असली syntax highlighting, multi-cursor editing, और गहरी code
navigation। इसे नज़दीक से देखने के लिए
code editor फ़ीचर पेज पर भी जा सकते हैं। यहाँ देखिए यह असल में कैसा दिखता है।
Highlighting को TextMate grammars चलाती हैं (वही .tmLanguage.json format जो VS
Code इस्तेमाल करता है), जिन्हें tm4e engine process करता है। यह बॉक्स से बाहर ही 33
languages को cover करता है — Kotlin, Java, Python, JavaScript, TypeScript (और TSX),
Go, Rust, C, C++, C#, PHP, Ruby, Swift, Scala, SQL, YAML, TOML, Dockerfile, और बहुत
कुछ — हर एक अपने सही TextMate scope और file extensions से mapped।
फ़ोन पर editor को responsive बनाए रखने के लिए, Pocket Code अपना खुद का
IncrementalTokenizer देता है जो पूरे TextMate pass के ख़त्म होने का इंतज़ार किए
बिना tokens को तुरंत paint कर देता है। इसके इर्द-गिर्द आपको वे editor की बुनियादी चीज़ें
मिलती हैं जो code को पढ़ने लायक बनाती हैं: configurable line numbers, matching brace और
parenthesis के indicators, visual indentation guides, और functions, classes, methods,
interfaces, comment blocks, import blocks तथा custom regions के लिए code folding — nested
folds के साथ, और एक fold state जो हर फ़ाइल के लिए अलग से याद रहता है।
Language detection अपने आप होती है, extension से (CodeLanguage.fromExtension()) या
filename से (CodeLanguage.fromFileName(), जो Dockerfile, Makefile, .gitignore
वगैरह को पहचानता है), और कुछ भी match न हो तो plain text पर लौट आता है।
यहीं से Pocket Code एक mobile खिलौना होना बंद कर एक IDE बनना शुरू करता है। Editor में एक
पूरा Language Server Protocol client शामिल है — LspClient, जो LSP 3.17
लागू करता है — जो standard external language servers (clangd, pyright, और दूसरे) से जुड़ता
है। संचार JSON-RPC 2.0 पर चलता है, पूरे language-server lifecycle management के साथ,
और अगर कोई server गिर जाए तो automatic reconnection के साथ।
यही LSP client basic completion को असली IntelliSense में बदल देता है। यह जो आठ क्षमताएँ लागू करता है, वे ये हैं:
| LSP method | फ़ीचर |
|---|---|
textDocument/completion | Semantic autocomplete |
textDocument/hover | Hover पर documentation |
textDocument/definition | Definition पर जाएँ |
textDocument/references | References ढूँढें |
textDocument/signatureHelp | Function parameter के संकेत |
textDocument/formatting | Server-assisted formatting |
textDocument/rename | सुरक्षित semantic rename |
textDocument/publishDiagnostics | Real-time server diagnostics |
Sora engine खुद भी अपना native floating autocomplete window देता है, इसलिए किसी language server को जोड़े बिना भी आपको completion मिल जाती है। और AI की मदद से लिखने के लिए, एक Ghost Text layer suggestions को cursor के बाद semi-transparent inline text के रूप में दिखाता है, और cursor की छोटी-मोटी हलचल उसे हटा दे उससे पहले 150 ms का एक grace window रखता है — किसी suggestion को accept करने पर पूरा text डल जाता है और साथ ही आपकी undo/redo history सुरक्षित रहती है, और यह कभी भी standard autocomplete engine से नहीं भिड़ता। और जानने के लिए editor documentation देखें।
फ़ोन पर code टाइप करना तभी तकलीफ़देह होता है जब editor उसे तकलीफ़देह बनाए। Pocket Code का
MultiCursorEngine आपको मनचाही जगहों पर अतिरिक्त cursors रखने और उन सबको एक साथ edit
करने देता है, साफ़-सुथरे offset ↔ line/column conversion के साथ, और बाकी cursors के active
रहते हुए किसी एक cursor को हटाने की सुविधा के साथ।
Emmet HTML और CSS के लिए पूरी तरह समर्थित है: ul>li*3 एक nested list में फैल जाता है,
div.cls#id बन जाता है <div id="id" class="cls"></div>, और df → display: flex या
w100p → width: 100% जैसे CSS shorthands भी सब काम करते हैं।
चूँकि फ़ोन के keyboards code के लिए नहीं बने थे, system keyboard के ऊपर एक programming
symbol bar बैठती है। एक हिस्सा वे characters डालता है जिनकी आपको सच में ज़रूरत होती है —
{ } [ ] ( ) ; : = और बाकी — और दूसरा हिस्सा कई actions सामने रखता है:
undo/redo, किसी line को ऊपर या नीचे ले जाना, line (//) या block (/* */) comments को
toggle करना, मौजूदा line को duplicate करना, किसी line पर जाना, चुनी हुई lines को sort करना,
और case बदलना (UPPER / lower / Title)। इसमें pinch-to-zoom से font size, सटीक cursor
रखने के लिए long-press पर एक magnifier, और असीमित undo/redo जोड़ दें, तो छोटी screen
अब कोई बहाना नहीं रह जाती।
एक असली editor की परख इसी से होती है कि आप codebase में कितनी तेज़ी से घूम पाते हैं। Pocket Code आपको पूरी navigation kit देता है:
Ctrl+Shift+F से bound।आप हमेशा एक language server चालू नहीं करना चाहते, इसलिए Pocket Code एक local
InlineDiagnostics engine देता है जो per-language rules की मदद से real time में
समस्याएँ पकड़ता है — कोई LSP ज़रूरी नहीं। इसमें Kotlin, Java, JavaScript/TypeScript,
Python, Go, Rust, PHP, CSS, HTML और JSON के rules हैं।
सार्वभौमिक rules trailing whitespace, हद से ज़्यादा लगातार blank lines, और TODO /
FIXME / HACK / NOTE / BUG / WARN comments को flag करते हैं। भाषा-विशेष rules और
आगे जाते हैं — Kotlin में !! का इस्तेमाल, JavaScript में === की जगह == या
let/const की जगह var, Python में असंगत indentation और unused imports, गड़बड़ JSON।
सब कुछ एक VS Code-style Problems panel में सामने आता है, फ़ाइल के हिसाब से grouped और
severity (ERROR, WARNING, INFO, HINT) से filter करने योग्य।
जहाँ मुमकिन हो, editor चीज़ें आपके लिए ठीक कर देता है। Quick fixes diagnostics के बगल में दिखते हैं — trailing whitespace साफ़ करना, blank lines हटाना, और भाषा-विशेष actions लागू करना। और extract refactorings किसी selection के variables का विश्लेषण करके एक method बाहर निकालते हैं (सही parameters और call site के साथ) या किसी expression को एक named variable में लपेट देते हैं, सही level तक auto-indented।
Formatting पूरी तरह device पर ही होती है — कोई external tooling नहीं, कोई network round-trip नहीं। हर भाषा का अपना formatter implementation है:
| Formatter | भाषाएँ |
|---|---|
| C-style | Kotlin, Java, JS, TS, C, C++, C#, Dart, Go, Swift, Rust, PHP, Scala, Gradle |
| Python | Python (PEP-8 indentation) |
| XML/HTML | HTML, XML, SVG |
| JSON | JSON (pretty-print या compact) |
| CSS | CSS, SCSS, Less |
| YAML / SQL / Markdown | YAML, SQL, Markdown |
Per-profile options आपको indentation size, अधिकतम line width, trailing newline जोड़ना है या नहीं, operators के आस-पास की spacing, और brace placement तय करने देते हैं।
Layout अपने आप Phone Portrait, Phone Landscape, Tablet और Foldable form factors के बीच ढल जाता है। एक Zen mode text के सिवा सब कुछ छिपा देता है, एक split editor दो फ़ाइलें साथ-साथ दिखाता है, और contextual toolbar chips Format, Find, Replace और Outline को एक tap की दूरी पर ला देते हैं। लगभग हर action एक व्यवस्थित overflow menu में रहता है, और एक offline mode है ताकि editing, local execution और Git बिना connectivity के भी चलते रहें।
एक ईमानदार बात: real-time collaboration roadmap पर है लेकिन अभी आया नहीं है। Collaboration panel बिना किसी backend के एक UI prototype के रूप में मौजूद है — cursor sync और shared sessions की योजना है, इसलिए हम यह दिखावा नहीं करेंगे कि वे आज काम करते हैं।
फ़ोन अब किसी घटिया tool से code लिखने का बहाना नहीं रहा। Pocket Code का editor वे हिस्से — LSP-समर्थित autocomplete और IntelliSense, 33 languages में TextMate syntax highlighting, multi-cursor editing, और पूरी code navigation — उस device पर ले आता है जो हमेशा आपकी जेब में रहता है। अलग-अलग plans की क्षमताओं के लिए pricing पेज भी देख सकते हैं।
Pocket Code Google Play की ओर बढ़ रहा है। अपने खुद के device पर इसे सबसे पहले आज़माने वालों में शामिल होने के लिए pre-registration में शामिल हों।
कोड एडिटर
ऐप डाउनलोड करें और अपने फ़ोन से कोडिंग शुरू करें।