منصوبے کے بارے میں
jsdiff ایک JavaScript متنی فرق کی لائبریری ہے جو Myers O(ND) فرق الگورتھم پر مبنی ہے۔ یہ متعدد تفصیلات پر متن کا موازنہ کرنے کے لیے ایک جامع API فراہم کرتی ہے:
- **حرف کی سطح پر فرق** (`diffChars`): ہر Unicode کوڈ پوائنٹ کو ایک ٹوکن کے طور پر سمجھتا ہے، اختیاری طور پر کیس سے پاک موازنہ کے ساتھ۔
- **لفظ کی سطح پر فرق** (`diffWords`, `diffWordsWithSpace`): الفاظ اور اوقاف کو ٹوکن کے طور پر سمجھتا ہے، غیر انگریزی الفاظ کی بہتر تقسیم کے لیے اختیاری `Intl.Segmenter` کی حمایت کے ساتھ۔
- **سطر کی سطح پر فرق** (`diffLines`): ہر سطر کو ایک ٹوکن کے طور پر سمجھتا ہے، سفید جگہ کو نظر انداز کرنے، آخری CR حروف کو سنبھالنے، اور نئی سطروں کو الگ وکن کے طور پر سمجھنے کے اختیارات کے ساتھ۔
- **جملے کی سطح پر فرق** (`diffSentences`): جملوں اور جملوں کے درمیان سفید جگہ کو ٹوکن کے طور پر سمجھتا ہے۔
- **CSS فرق** (`diffCss`): CSS وکن کا موازنہ کرتا ہے۔
- **JSON فرق** (`diffJson`): اشیاء کو فارمیٹ شدہ JSON میں سیریلائز کرتا ہے اور سطر بہ سطر فرق کرتا ہے، حروف تہجی کے مطابق خصوصیات کی ترتیب کے ساتھ۔
- **اری فرق** (`diffArrays`): ٹوکن کی اری کا سخت مساوات یا حسب ضرورت موازنہ کنندہ کے ساتھ موازنہ کرتا ہے۔
لائبریری پیچ کے انتظام کی صلاحیتیں بھی فراہم کرتی ہے:
- **پیچ کی تخلیق**: `createPatch` اور `createTwoFilesPatch` متحد فرق فارمیٹ کے پیچ تیار کرتے ہیں، قابل ترتیب سیاق و سباق کی سطروں اور ہیڈر کے اختیارات کے ساتھ۔
- **منظم پیچ**: `structuredPatch` ایک ڈیٹا ڈھانچہ واپس کرتا ہے جس میں hunk اشیاء پروگراماتی پروسیسنگ کے لیے موزوں ہیں۔
- **پیچ کا اطلاق**: `applyPatch` اور `applyPatches` متحد فرق کے پیچ لاگو کرتے ہیں، فز فیکٹر کی حمایت، خودکار لائن اینڈنگ کی تبدیلی، اور حسب ضرورت لائن موازنہ کال بیکس کے ساتھ۔
- **پیچ کا تجزیہ**: `parsePatch` متحد فرق فارمیٹ (بشمول Git کے مخصوص توسیعی ہیڈرز نام تبدیل کرنے، کاپی کرنے، بنانے، حذف کرنے، اور بائنری فائلوں کے لیے) کو منظم اشیاء میں تجزیہ کرتا ہے۔
- **پیچ کا الٹا**: `reversePatch` ایک معکوس پیچ تیار کرتا ہے۔
- **فارمیٹ کی تبدیلی**: `convertChangesToXML` اور `convertChangesToDMP` تبدیلی کی اشیاء کو XML یا Google کے diff-match-patch فارمیٹ میں تبدیل کرتے ہیں۔
عالمی اختیارات میں async کال بیک موڈ، زیادہ سے زیادہ ترمیم کی لمبائی کی حدود، ٹائم آؤٹ کی حمایت، اور فی ٹوکن تبدیلی کی شے کی تفصیل شامل ہیں۔ لائبریری `Diff` کلاس کے ذریعے حسب ضرورت فرق کے رویوں کی بھی حمایت کرتی ہے، جس سے صارفین ان پٹ کاسٹنگ، وکنائزیشن، خالی ٹوکن ہٹانے، مساوات کی جانچ، اور جوڑنے کے افعال کو اوور رائیڈ کر سکتے ہیں۔
لائبریری npm کے ذریعے دستیاب ہے (`npm install diff`) اور ESM اور CommonJS درآمدات کی حمایت کرتی ہے، نیز `dist/diff.js` کے ذریعے براہ راست براؤزر کے استعمال کی بھی۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.