سب کو ہیلو پیارے دوستو! GitHub پر نئی خصوصیات کے عاشق ہونے کے ناطے، مجھے یہ جاننے میں بہت دلچسپی تھی کہ جلد ہی ہم سب GitHub کوڈ بیس کو تیزی سے اور مؤثر طریقے سے تلاش کرنے کے قابل ہو جائیں گے۔ یہ بہت آسان ہو سکتا ہے، خاص طور پر اگر آپ کو کسی آلے کو استعمال کرنے کے لیے کوئی نفیس طریقہ تلاش کرنے کی ضرورت ہو۔ یہ خاص طور پر اس حقیقت کے ساتھ گونجتا ہے کہ روس میں GitHub کے مستقبل کے مدمقابل کو کھولا گیا تھا۔ لہذا، GitHub کو یقینی طور پر اپنے اعزاز پر آرام نہیں کرنا چاہئے، اس حقیقت کے باوجود کہ وہ بلاشبہ مارکیٹ میں رہنما ہیں۔ ہمیں آگے بڑھنے اور ترقی کرنے کی ضرورت ہے، ورنہ یہ ایک گھنٹہ بھی نہیں ہے اور حریف پکڑے جائیں گے اور جھاڑو ماریں گے۔ اور اسے اتنا ناقابل یقین نہ لگنے دیں۔ مثال کے طور پر: کتنے لوگ اب بھی نوکیا فون استعمال کرتے ہیں؟ کون جانتا ہے کہ انہوں نے فون بنائے ہیں؟ ایک وقت میں وہ محض ناقابلِ حصول، غیر متنازعہ مارکیٹ لیڈر تھے... اور اب وہ شماریاتی غلطی کے دائرے میں کہیں نظر آتے ہیں۔
پہلا تاثر
GitHub نے ایک پروجیکٹ بنایا ہے جہاں آپ اپنے کوڈ اور GitHub پر شائع کردہ کوڈ کی اربوں لائنوں کو تلاش، نیویگیٹ اور تجزیہ کر سکتے ہیں۔ یہ نوٹ کرنا ضروری ہے کہ تلاش قابل توسیع، تیز اور درست ہے۔ یہ خاص طور پر کوڈ کی تلاش کے لیے شروع سے بنایا گیا تھا۔ نیویگیشن سیٹنگ کے بغیر 10 بڑی پروگرامنگ زبانوں کے لیے کام کرتی ہے (ہمیں امید ہے کہ فہرست مستقبل میں بڑھے گی)۔ آپ ریگولر ایکسپریشن کا استعمال کر کے تلاش کر سکتے ہیں، جو بہت اچھا ہے۔ دیگر فلٹرز بھی دستیاب ہیں:- تنظیم کی طرف سے؛
- پروگرامنگ زبانوں پر؛
- مخصوص مالک کی طرف سے؛
- فائل کی توسیع کے ذریعے؛
- باقاعدہ اظہار کے ذریعہ۔
آئیے تلاش کے بارے میں مزید تفصیل سے بات کرتے ہیں۔
ایک نظر ڈالنا اور اپنے آپ کو تلاش کرنے کی کوشش کرنا بہت دلچسپ ہے: کیا یہ اتنا ہی آسان ہے جتنا وہ کہتے ہیں؟ ابھی کے لیے، یہ خصوصیت عوامی طور پر دستیاب نہیں ہے اور آپ لنک کا استعمال کرکے اپنے آپ کو انتظار کی فہرست میں شامل کر سکتے ہیں ۔ ہم وہاں تمام نکات کو پُر کرتے ہیں، سوالات آسان ہیں، میں انہیں یہاں بیان نہیں کروں گا۔ نتیجے کے طور پر، ہمیں انتظار کی فہرست میں شامل کیا جاتا ہے اور آگے بڑھتے ہیں۔ نتیجے کے طور پر، جواب یہ ہوگا: آپ کو صرف انتظار کرنا ہوگا. جیسے ہی مجھے شامل کیا جائے گا، میں آپ کو سب کچھ ضرور دکھاؤں گا۔ تاخیر نہ کریں، اپنے آپ کو شامل کریں تاکہ آپ بعد میں اس کا پتہ لگا سکیں اور اسے اپنی خوشی کے لیے استعمال کر سکیں) اور یقیناً، یہ شرم کی بات ہے کہ آپ ابھی نئے ٹول کو آزما نہیں سکتے، تو آئیے ان کی دستاویزات کا تجزیہ کریں اور اس میں بیان کریں۔ مزید تفصیل سے کہ ہم اس ٹول کو اپنے کام کے لیے کیسے استعمال کر سکتے ہیں۔ اب تلاش کے بارے میں۔ اس میں کلاسز اور تعمیرات کا استعمال کیا جائے گا جو لائبریری میں اس بات کو سمجھیں کہ میں لکھ رہا ہوں۔ یہ میرے لیے آسان اور واضح ہو جائے گا، اور مجھے امید ہے کہ یہ آپ کے لیے بھی آسان ہو گا۔بنیادی تلاش
Image Comparison سب سے آسان تلاش ہے جو فائل کے ناموں اور ان کے مواد میں سوال کے ساتھ بالکل تلاش کرتی ہے۔ یہاں سب کچھ بہت آسان لگتا ہے۔ اگر ہم کلاس کے نام سے واضح طور پر تلاش کرنا چاہتے ہیں، یہ کہاں بتایا گیا ہے اور کہاں استعمال کیا گیا ہے، تو اس طرح کی تلاش ہماری مدد کرے گی۔ جب آپ خالی جگہوں سے الگ کیے گئے متعدد الفاظ داخل کرتے ہیں، تو نتیجہ ان سب کے لیے الگ الگ تلاش ہوگا: Image Comparison ، یعنی یہ Image اور Comparison دونوں کے لیے فائلیں اور کوڈ تلاش کرے گا ۔ اگر آپ کو خالی جگہوں پر مشتمل سٹرنگ تلاش کرنے کی ضرورت ہے، تو آپ کو صرف اقتباسات استعمال کرنے کی ضرورت ہے۔ مثال کے طور پر: "ImageComparison comparison = new Image Comparison()" اور پھر تلاش پوری سٹرنگ سے مماثل ہوگی۔ فرار ہونے کے لیے، ہم ہمیشہ کی طرح "\" استعمال کرتے ہیں۔ اب تک، سب کچھ بدیہی ہے اور اکثر ایسا ہی ہوتا ہے۔ مزید، ہم اس بنیادی تلاش میں فلٹرز شامل کر سکتے ہیں۔ لہذا، ان میں سے ہر ایک کے بارے میں بات کرتے ہیں. یہ ہمارے پہلے سے بنائے گئے فلٹر کے لیے منطقی "ANDs" ہوں گے۔ذخیرہ کے لحاظ سے فلٹر کریں۔
ایک بار جب ہمارا بنیادی فلٹر تیار ہو جائے تو، ہم اپنی تلاش کو محدود کر سکتے ہیں اور مخصوص ذخیرہ کے ذریعے تلاش کر سکتے ہیں، جو کہ بہت آسان ہے۔ آپ کو یہ دیکھنے کی ضرورت نہیں ہے کہ کلاس کس فولڈر میں واقع ہے، آپ صرف لکھ سکتے ہیں:
repo:romankh3/image-comparison Image ComparisonResult
جہاں ہمیں repo:${user_name}/${repo_name} کی وضاحت کرنے کی ضرورت ہے ۔ آپ صرف ایک OR شامل کرکے متعدد ذخیروں میں بھی تلاش کرسکتے ہیں:
repo:romankh3/image-comparison OR repo:romankh3/usage-image-comparison Image ComparisonResult
جیسا کہ GitHub پر بتایا گیا ہے، اس وقت وہ ایسے ذخیروں میں تلاش کرنے کی حمایت نہیں کرتے جہاں نام کو باقاعدہ اظہار کے طور پر بیان کیا گیا ہے... اس کا مطلب ہے کہ وہ ایسی خصوصیت شامل کرنے کا ارادہ کر رہے ہیں اور اس کا مطلب ہے کہ پروجیکٹ اعلان کردہ وقت پر نہیں رکے گا۔ فعالیت اور مزید ترقی کرے گی۔
تنظیم کے لحاظ سے فلٹر کریں۔
تنظیم یا صارف کی طرف سے تلاش بالکل اسی طرح کی جاتی ہے جس طرح مخزن کے ذریعہ تلاش کی جاتی ہے، صرف کلیدی لفظ نہیں ہوگا repo ، بلکہ org :
org:romankh3 تصویری موازنہ
اور پھر تلاش صارف/تنظیم کے تمام ذخیروں سے گزرے گی۔
پروگرامنگ زبانوں کے ذریعہ فلٹر کریں۔
آپ مخصوص پروگرامنگ زبان میں فائلوں کی تلاش بھی بتا سکتے ہیں۔ یہاں تعمیر وہی ہے جو مخزن اور تنظیم کے لیے ہے، صرف کلیدی لفظ ہے زبان :
زبان:جاوا امیج کا موازنہ
بالکل اسی طرح جیسے ریپوزٹری کے لیے، یہ OR کلیدی لفظ کا استعمال کرتے ہوئے ایک ساتھ کئی زبانوں میں تلاش کرنے کی حمایت کرتا ہے:
زبان:جاوا یا زبان:روبی امیج کا موازنہ
GitHub کے ذریعہ تعاون یافتہ زبانوں کی مکمل فہرست یہاں مل سکتی ہے ۔ مجھے حیرت ہے کہ کیا وہاں BrainFuck ہے؟ 😂
فائل پاتھ کے لحاظ سے فلٹر کریں۔
پروجیکٹ میں ہر فائل کا اپنا راستہ ہوتا ہے اور آپ فلٹر شامل کرکے بھی اس میں تلاش کرسکتے ہیں۔ مثال کے طور پر، ایک فائل ہے ImageComparisonResult ، اس کا راستہ ہے:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
لہذا، ان تمام کلاسوں کو تلاش کرنے کے لیے جن کا راستہ src/main/java/com/github/romankh3/image سے شروع ہوتا ہے ، آپ کو ضرورت ہے:
راستہ: src/main/java/com/github/romankh3/image
ان صورتوں میں کارآمد ہو سکتا ہے جہاں ہم نہیں چاہتے کہ ٹیسٹ کلاسز کو ہمارے تلاش کے نتائج سے باہر رکھا جائے۔ یا اس کے برعکس، صرف ٹیسٹ۔ یہ آپ کی تلاش کو مزید لچکدار بناتا ہے۔ ریگولر ایکسپریشن کا استعمال کرتے ہوئے فائل پاتھ کے لحاظ سے ایک فلٹر کی وضاحت کی جا سکتی ہے۔ مثال کے طور پر، ہمیں تلاش کرنے کی ضرورت ہے
پاتھ: src/*/*.js
بولین آپریشنز
اور بلاشبہ، تمام فلٹر بلڈنگ کا خاتمہ بولین آپریشنز کا استعمال کرتے ہوئے اس معاملے کو یکجا کر رہا ہے۔ اس کے لیے ہمارے پاس اور، یا، اور نہیں ہے۔ میرے خیال میں یہ ہمارے لیے کافی ہونا چاہیے۔ مثال کے طور پر، آئیے ایک پیچیدہ تلاش کا استفسار بنائیں: کسی مخصوص صارف/تنظیم کے لیے جاوا یا کوٹلن پروڈکشن سے کوڈ:
repo:romankh3 اور (زبان:جاوا یا زبان:کوٹلن) اور راستہ نہیں:*/test/*
اور یہ، میں آپ کو بتاتا ہوں، صرف ناقابل یقین ہے۔ تلاش کی درخواست اتنی سادہ، جلدی، مختصر اور واضح طور پر لکھی گئی ہے کہ درخواست کو تلاش کرنے اور پڑھنے میں کوئی پریشانی نہیں ہوگی۔
GO TO FULL VERSION