वह Code Editor जिसका Android हकदार है: LSP, IntelliSense और बहुत कुछ
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 की तरफ़ ही हाथ बढ़ाते हैं।
PocketCode इसका बिल्कुल उल्टा रास्ता अपनाता है। इसका Android के लिए code editor
Sora Editor पर बना है — एक high-performance engine जो बड़ी फ़ाइलों के लिए
बना है। TextView वाले समाधानों के उलट, Sora हर keystroke पर होने वाली O(n) copy से
बचता है, इसलिए बड़ी फ़ाइलें भी smooth रहती हैं। उस engine के ऊपर PocketCode वे चीज़ें
जोड़ता है जिनकी उम्मीद आप एक desktop IDE से करते हैं: LSP language servers, semantic
autocomplete, असली syntax highlighting, multi-cursor editing, और गहरी code
navigation। इसे नज़दीक से देखने के लिए
code editor फ़ीचर पेज पर भी जा सकते हैं। यहाँ देखिए यह असल में कैसा दिखता है।
ऐसी syntax highlighting जो खिलौना नहीं है
Highlighting को TextMate grammars चलाती हैं (वही .tmLanguage.json format जो VS
Code इस्तेमाल करता है), जिन्हें tm4e engine process करता है। यह बॉक्स से बाहर ही 39
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 बनाए रखने के लिए, PocketCode अपना खुद का
IncrementalTokenizer देता है जो पूरे TextMate pass के ख़त्म होने का इंतज़ार किए
बिना tokens को तुरंत paint कर देता है। इसके इर्द-गिर्द आपको वे editor की बुनियादी चीज़ें
मिलती हैं जो code को पढ़ने लायक बनाती हैं: configurable line numbers, matching brace और
parenthesis के indicators, visual indentation guides, और फ़ाइल की संरचना का outline
(classes, functions, comment और import blocks, custom regions), जो breadcrumb को भी
चलाता है। Code folding नहीं है: Sora इंजन लाइनें छिपा नहीं सकता।
Language detection अपने आप होती है, extension से (CodeLanguage.fromExtension()) या
filename से (CodeLanguage.fromFileName(), जो Dockerfile, .gitignore और Gradle build फ़ाइलों को पहचानता है; Makefile plain text के रूप में खुलता है), और कुछ भी match न हो तो plain text पर लौट आता है।
LSP से चलने वाली autocomplete और IntelliSense
यहीं से PocketCode एक mobile खिलौना होना बंद कर एक IDE बनना शुरू करता है। Editor में एक
पूरा Language Server Protocol client शामिल है — LspClient, जो LSP 3.17
लागू करता है — जो standard language servers से बात करता है, हर एक editor से एक tap में install होता है: TypeScript और JavaScript, Python के लिए Pyright, HTML/CSS/JSON servers, Markdown, YAML (Docker Compose और GitHub Actions सहित), Dockerfile, Bash, Vue, Svelte, Astro, GraphQL, MDX, Prisma और Angular, साथ में Emmet, Stylelint या UnoCSS जैसे CSS सहायक। 19 languages के लिए एक-tap language server है। Java, Kotlin, Go, Rust, C, C++, Ruby, Swift और Dart के लिए नहीं है: उनके servers native programs हैं या ऐसा runtime माँगते हैं जो PocketCode में शामिल नहीं। PHP तभी चलता है जब project अपने node_modules में intelephense लाए। सीमाएँ: Bash में ShellCheck नहीं है, YAML remote schemas डाउनलोड नहीं करता, एक समय में अधिकतम 2 सहायक server चलते हैं, और Vue, Svelte, Astro, MDX और Angular TypeScript पैकेज का उपयोग करते हैं। GraphQL के लिए project में graphql-config फ़ाइल और Angular के लिए angular.json चाहिए। संचार JSON-RPC 2.0 पर चलता है, server का lifecycle ऐप संभालता है,
और crash होने पर एक automatic restart होता है।
यही 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 देखें। Ghost Text आपकी सहमति के बाद code को आपके configure किए AI provider को भेजता है।
Editing की ताक़त: multi-cursor, Emmet और एक symbol keyboard
फ़ोन पर code टाइप करना तभी तकलीफ़देह होता है जब editor उसे तकलीफ़देह बनाए। PocketCode का
MultiCursorEngine cursor के नीचे वाले शब्द की हर मौजूदगी पर एक cursor रखता है
(Ctrl+Shift+L, या menu में Add Cursors to All Occurrences) और सबको एक साथ edit करता है —
ऑन-स्क्रीन कीबोर्ड से टाइप किया गया text भी, सिर्फ़ physical कीबोर्ड वाला नहीं।
Emmet HTML और CSS के लिए Expand Emmet Abbreviation कमांड से काम करता है (कोई shortcut नहीं, और Tab इसे चालू नहीं करता): ul>li*3 एक nested list में फैल जाता है, div.cls#id बन जाता है <div id="id" class="cls"></div>, और df → display: flex या w100p → width: 100% जैसे CSS shorthands काम करते हैं। यह एक subset है: ^ और $ numbering नहीं हैं।
चूँकि फ़ोन के keyboards code के लिए नहीं बने थे, system keyboard के ऊपर एक programming
symbol bar बैठती है। एक हिस्सा वे characters डालता है जिनकी आपको सच में ज़रूरत होती है —
{ } [ ] ( ) ; : = और बाकी — और दूसरा हिस्सा कई actions सामने रखता है:
undo/redo, किसी line को ऊपर या नीचे ले जाना, line (//) या block (/* */) comments को
toggle करना, मौजूदा line को duplicate करना, किसी line पर जाना, चुनी हुई lines को sort करना,
और case बदलना (UPPER / lower)। इसमें pinch-to-zoom से font size, सटीक cursor
रखने के लिए long-press पर एक magnifier, और हर tab में 200 steps का undo/redo जोड़ दें, तो छोटी screen
अब कोई बहाना नहीं रह जाती।
Code में यूँ navigate करें जैसे आपका इरादा पक्का हो
एक असली editor की परख इसी से होती है कि आप codebase में कितनी तेज़ी से घूम पाते हैं। Pocket Code आपको पूरी navigation kit देता है:
- Go to symbol — active फ़ाइल पर एक fuzzy-filtered dialog, जो functions, methods, classes, interfaces, properties, variables, constants, imports और regions को cover करता है, हर एक एक context line के साथ दिखता है।
- Outline panel — फ़ाइल की संरचना का एक slide-out tree जो आपके edit करते ही live update होता रहता है।
- Peek definition — एक inline popup जो किसी symbol की definition के इर्द-गिर्द ~10 lines का context दिखाता है, वह भी आपका cursor हिलाए बिना।
- Go to references — language server जो references ढूँढे, संभवतः कई फ़ाइलों में; server न हो तो सिर्फ़ मौजूदा फ़ाइल में text search।
- Rename symbol — लागू करने से पहले एक preview दिखाता है जो code की घटनाओं को strings/comments की घटनाओं (जो rename नहीं होतीं) से अलग करता है। language server के साथ यह दूसरी फ़ाइलें भी बदल सकता है; बिना server के सिर्फ़ मौजूदा फ़ाइल में rename होता है।
- Search in Files — project में text या regex search (Ctrl+Shift+F), palette या Go to menu से। यह बड़ी फ़ाइलें (512 KB या अधिक) छोड़ देता है, 500 results पर रुक जाता है और सिर्फ़ search करता है: फ़ाइलों के पार replace नहीं है।
- Command palette — हर editor action तक पहुँचने का एक VS Code-style fuzzy प्रवेश-बिंदु।
- Auto-import — जो symbols अभी import नहीं हुए उनके लिए जाने-माने symbols की एक बिल्ट-इन तालिका (Kotlin, Java, Python, JavaScript/TypeScript, Go और Rust) से
importसुझाता है; आपके अपने project के symbols नहीं ढूँढता।
बिना किसी server के diagnostics
आप हमेशा एक language server चालू नहीं करना चाहते, इसलिए PocketCode एक 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, बेमेल brackets, और TODO / FIXME / HACK / XXX / BUG comments को flag करते हैं। भाषा-विशेष rules और आगे जाते हैं — Kotlin में !! का इस्तेमाल, JavaScript में === की जगह == या let/const की जगह var, Python में tabs और spaces का मिश्रण और bare except, गड़बड़ 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 पर ही
Formatting पूरी तरह device पर ही होती है — कोई external tooling नहीं, कोई network round-trip नहीं। आठ समर्पित formatters 24 भाषाओं को कवर करते हैं:
| 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 |
Format Document (Shift+Alt+F, इसके लिए Settings में Code formatter चालू होना चाहिए) पहले language server आज़माता है और फिर इन formatters पर लौटता है। Indentation और line width project की .editorconfig से आते हैं (indent_style, indent_size, tab_width, end_of_line, max_line_length)। बाकी भाषाओं को सिर्फ़ सामान्य सफ़ाई मिलती है (trailing spaces, blank lines, अंतिम newline)।
फ़ोन के लिए बना, फ़ोन पर port किया हुआ नहीं
Layout अपने आप Phone Portrait, Phone Landscape, Tablet और Foldable form factors के बीच ढल जाता है। एक Zen mode text के सिवा सब कुछ छिपा देता है, एक split view editor के बगल में एक read-only दूसरा pane दिखाता है, और tabs हमेशा ऊपर रहते हैं, VS Code जैसा explorer एक tap की दूरी पर। हर action sections वाले menu में है, जिसमें Format, Find, Go to Symbol, Source Control और Run के लिए Quick access पंक्ति है, और पहले से शुरू हुए सेशन के साथ editing, local execution और लोकल Git बिना कनेक्शन के डिवाइस पर चलते हैं। 23 built-in editor themes हैं: 4 मुफ़्त (PocketCode Dark, PocketCode Light, VS Code Dark+, GitHub Light) और 19 Pro।
Real-time collaboration आपके local network पर काम करता है: एक ही Wi-Fi पर मौजूद लोग एक ही फ़ाइल को presence, cursors और comments के साथ edit करते हैं, और कुछ भी network से बाहर नहीं जाता।
फ़ोन अब किसी घटिया tool से code लिखने का बहाना नहीं रहा। PocketCode का editor वे हिस्से — LSP-समर्थित autocomplete और IntelliSense, 39 languages में TextMate syntax highlighting, multi-cursor editing, और पूरी code navigation — उस device पर ले आता है जो हमेशा आपकी जेब में रहता है। अलग-अलग plans की क्षमताओं के लिए pricing पेज भी देख सकते हैं।
PocketCode Google Play पर उपलब्ध है। अपने खुद के device पर editor आज़माने के लिए PocketCode पाएँ।
अक्सर पूछे जाने वाले प्रश्न
क्या Android के लिए कोई अच्छा code editor है?
हाँ। PocketCode एक पूर्ण code editor है जिसमें LSP-समर्थित autocomplete, 39 languages के लिए syntax highlighting, multi-cursor editing और बिल्ट-इन Git है — सब कुछ पूरी तरह फ़ोन पर चलता है।
क्या आप बिना कंप्यूटर के Android पर code कर सकते हैं?
हाँ। PocketCode एक संपूर्ण IDE है: आप फ़ोन पर ही code लिख और चला सकते हैं, और Node पर JavaScript debug कर सकते हैं। साइन-इन के लिए कनेक्शन चाहिए; उसके बाद आपका code डिवाइस पर चलता है। किसी laptop या server की ज़रूरत नहीं।
क्या Android के लिए terminal वाला कोई code editor है?
हाँ। PocketCode editor के साथ एक बिल्ट-इन terminal (लोकल shell, SSH और SFTP) और ऑन-डिवाइस code runners जोड़ता है, इसलिए आप एक ही app में edit और run करते हैं।
क्या editor में Git है?
हाँ — बिल्ट-इन Git जिसमें commit, diff, blame और branches हैं, किसी बाहरी client की ज़रूरत नहीं।
क्या यह मुफ़्त और विज्ञापन-रहित है?
पूरा editor मुफ़्त है और उसमें कोई विज्ञापन नहीं। Free प्लान में 1 project और 23 built-in themes में से 4 हैं; Pro projects की सीमा हटाता है और cloud sync तथा Pro themes जोड़ता है।
क्या यह ऑफ़लाइन काम करता है?
साइन-इन के लिए कनेक्शन चाहिए; पहले से शुरू हुए सेशन के साथ ऐप खोलना ऑफ़लाइन भी चलता है। Editor, लोकल Git और on-device runners डिवाइस पर चलते हैं, और language servers व वैकल्पिक runtime packs एक बार डाउनलोड होने पर बिना कनेक्शन भी चलते हैं (उन्हें डाउनलोड करने के लिए नेटवर्क चाहिए)।
कोड एडिटर
इस पर त्वरित जवाब
PocketCode आज़माने के लिए तैयार हैं?
ऐप डाउनलोड करें और अपने फ़ोन से कोडिंग शुरू करें।