منصوبے کے بارے میں
99 ایک Neovim پلگ ان ہے جو ایجنٹک AI ورک فلو کو براہ راست ایڈیٹر میں مربوط کرتا ہے۔ اسے Neovim کے لیے AI کلائنٹ کے طور پر بیان کیا گیا ہے جس کا مقصد پروگرامر کو تبدیل کرنے کے بجائے بڑھانا ہے، اور اسے واضح طور پر بیٹا پروڈکٹ کے طور پر لیبل کیا گیا ہے جس کے APIs اب بھی تبدیل ہو سکتے ہیں۔
بنیادی خیال: مخصوص کوڈ کے ٹکڑوں کو تبدیل کرنے پر توجہ دینے کے بجائے، پروجیکٹ کی وضاحت ایجنٹک پروگرامنگ اور معلومات کی نمائش کی طرف ہے، جہاں `search` اور `work` زیادہ مفید داخلہ پوائنٹس کے طور پر پیش کیے گئے ہیں۔ مصنف ریپوزٹری کو AI کو روایتی ہینڈ کوڈنگ کے ساتھ ملانے کے لیے ایک ایکسپلوریشن گراؤنڈ کے طور پر پیش کرتا ہے۔
سیٹ اپ: کنفیگریشن پلگ ان مینیجر اسپیک میں Lua کے `setup` کال کے ذریعے کی جاتی ہے۔ اختیارات میں لاگر (لیول، پاتھ، پرنٹ آن ایرر)، ایک `tmp_dir، کمپلیشن سیٹنگز، اور `AGENT.md` جیسی `md_files` شامل ہیں جو اصل درخواست کے نسب سے خود بخود دریافت ہوتی ہیں اور سیاق و سباق کے طور پر داخل کی جاتی ہیں۔ کی میپس صارف کے ذریعے بیان کی جاتی ہیں؛ README بصری سلیکشن، درخواستوں کو روکنے اور سرچ کی مثالیں دکھاتا ہے۔
مین API:
- `setup(opts)` - ضروری ابتدائی کاری، اسپنرز، ڈیفالٹس اور کمپلیشن کو کنفیگر کرتا ہے۔
- `search(opts)` - پرامپٹ کے ساتھ پروجیکٹ وائڈ سرچ چلاتا ہے اور کوئیک فکس لسٹ میں نوٹس کے ساتھ مقامات لوٹاتا ہے۔
- `visual(opts)` - موجودہ بصری سلیکشن کو پرامپٹ کے ساتھ بھیجتا ہے اور سلیکشن کو نتیجے سے تبدیل کرتا ہے۔
- `vibe(opts)` - بغیر وضاحت کے درج ہے۔
- `open()` - آخری تعامل کے لیے سلیکشن ونڈو کھولتا ہے، نتیجے کو قسم کے مطابق ویو میں دکھاتا ہے (سرچ/وائب کے لیے کوئیک فکس، ٹیوٹوریل کے لیے ٹیوٹوریل ونڈو)۔
- `view_logs()` - حالیہ لاگز دیکھتا ہے اور پرانے اور نئے لاگز کے نیویگیشن کے لیے تیار کرتا ہے۔
- `stop_all_requests()` - ان فلائٹ درخواستوں کو ختم کرتا ہے اور نتائج کو ضائع کرتا ہے۔
- `clear_previous_requests()` - پہلے کی سرچ اور بصری آپریشنز کو صاف کرتا ہے۔
- `Extensions` - ورکر ایبسٹریکشن کو ظاہر کرتا ہے۔
اختیارات اور اقسام: README کئی آپشن ٹیبلز کو دستاویز کرتا ہے: `_99.Options` (لاگر، ماڈل، in_flight_options، md_files، پروائیڈر، display_errors، auto_add_skills، کمپلیشن، tmp_dir)، `_99.ops.Opts` (additional_prompt، additional_rules)، `_99.ops.SearchOpts`، `_99.WorkOpts` (وضاحت)، `_99.Completion` (ماخذ، custom_rules، فائلیں)، `_99.InFlight.Opts` (throbber_opts، in_flight_interval، enable)، `_99.Logger.Options`، اور `_99.Agents.Rule` (نام، پاتھ، absolute_path)۔
`additional_prompt` ان ریمپس کی وضاحت کی اجازت دیتا ہے جو انٹرایکٹو ان پٹ کے بغیر چلتے ہیں، مثلاً ایک سرچ جو `make test` چلاتی ہے اور ناکامیوں کو کوئیک فکس لسٹ میں تشخیص کرتی ہے۔ `additional_rules` اضافی ہنر کے سیاق و سباق کو داخل کرتا ہے، جیسے "cloudflare" کا قاعدہ۔
کمپلیشنز: پرامپٹ بفر میں، `#` کنفیگرڈ رول ڈائریکٹریز سے رول فائلوں کو آٹو کمپلیٹ کرتا ہے، اور `@` گٹ ان گنو کردہ اندراجات کو خارج کرتے ہوئے پروجیکٹ فائلوں کو فزی سرچ کرتا ہے۔ حوالہ شدہ مواد کو حل کیا جاتا ہے اور AI سیاق و سباق میں داخل کیا جاتا ہے۔ مقامی کمپلیشن ڈیفالٹ ہے؛ nvim-cmp اور blink.cmp کو `source = "cmp"` یا `"blink"` کے ذریعے سپورٹ کیا جاتا ہے۔
پروائیڈرز: متعدد AI CLI بیک اینڈز سپورٹ ہیں اور `provider` کے ذریعے منتخب کیے جاتے ہیں: OpenCodeProvider (ڈیفالٹ، `opencode`، ڈیفالٹ ماڈل `opencode/claude-sonnet-4-5`)، ClaudeCodeProvider (`claude`، `claude-sonnet-4-5`)، CursorAgentProvider (`cursor-agent`، `sonnet-4.5`)، اور GeminiCLIProvider (`gemini`، `auto`)۔ ایک `model` آپشن پروائیڈر کے ڈیفالٹ کو اوور رائیڈ کر سکتا ہے۔ README نوٹ کرتا ہے کہ `tmp_dir` کو ورکنگ ڈائریکٹری سے باہر پوائنٹ کرنے سے Claude Code یا OpenCode جیسے ٹولز کے ساتھ پرمیشن کے مسائل ہو سکتے ہیں۔
ایکسٹینشنز: ایک ورکر ایکسٹینشن کام کو ٹریک کرنے کا مستقل طریقہ فراہم کرتا ہے: `set_work` کام کی وضاحت ریکارڈ کرتا ہے اور `search` باقی کام کو تلاش کرنے کے لیے `_99.search` کا استعمال کرتا ہے۔ مصنف کا اشارہ ہے کہ اس علاقے میں زیادہ تر تبدیلیاں آئیں گی، ممکنہ مستقبل میں ورک ٹری سپورٹ کے ساتھ۔
Telescope اور fzf-lua ایکسٹینشنز رن ٹائم پر ماڈل یا پروائیڈر کو سوئچ کرنے کے لیے پیکر فراہم کرتے ہیں؛ پروائیڈر سوئچ کرنا ماڈل کو اس پروائیڈر کے ڈیفالٹ پر ری سیٹ کرتا ہے۔
بگ رپورٹنگ: README بگ رپورٹ کرتے وقت مکمل ڈیبگ لاگز کی درخواست کرتا ہے، جو `:lua require("99").view_logs()` کے ذریعے حاصل کیے جا سکتے ہیں، اور وارننگ دیتا ہے کہ لاگز میں پرنٹ شدہ کوئری میں خفیہ معلومات ہو سکتی ہیں۔ فیچر کی درخواستیں عوامی مباحثوں کے حق میں واضح طور پر مایوس کی جاتی ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.