برجسته‌سازی پویای نحوه‌ی نگارش


برجسته‌سازی پویای نحوه‌ی نگارش، برجسته‌سازی کدی است که کاربر می‌تواند آن را تغییر دهد. تنها یک جا این اتفاق می‌افتد و آن ویرایشگر آنلاین است.

Note

قطعه‌کدها، تکرارها و مواردی از این دست ایستا هستند، چون کاربر نمی‌تواند کدش را در لحظه تغییر دهد. اگر می‌خواهید بیشتر بدانید که ما برجسته‌سازی ایستای نحوه‌ی نگارش را چطور انجام می‌دهیم، مستندات برجسته‌سازی ایستای نحوه‌ی نگارش را ببینید.

پیاده‌سازی

برجسته‌سازی پویای نحوه‌ی نگارش با استفاده از کتابخانه‌ی CodeMirror انجام می‌شود.

هنگام افزودن پشتیبانی برای زبانتان، سه گزینه وجود دارد:

  1. زبان به‌صورت آماده توسط CodeMirror پشتیبانی می‌شود (یعنی در فهرست زبان‌های پشتیبانی‌شده آمده است). اگر چنین است، به بخش فعال‌سازی زبان بروید.
  2. زبان از طریق یک افزونه‌ی موجود CodeMirror پشتیبانی می‌شود. اگر چنین است، به بخش استفاده از یک افزونه‌ی موجود بروید.
  3. زبان پشتیبانی نمی‌شود. حالا سه گزینه دارید:
    1. نوشتن یک افزونه‌ی CodeMirror از صفر، همان‌طور که در بخش ساخت افزونه‌ی جدید توضیح داده شده است.
    2. نحوه‌ی نگارش زبان شما (به‌شکل نزدیکی) به نحوه‌ی نگارش زبان دیگری شبیه است (مثلاً نحوه‌ی نگارش Unison شبیه Haskell است)، که در این صورت می‌توانید در نظر بگیرید از برجسته‌سازی نحوه‌ی نگارش آن زبان برای زبان خودتان استفاده کنید. برای اطلاعات بیشتر بخش فعال‌سازی زبان را ببینید.
    3. برجسته‌سازی پویای نحوه‌ی نگارش نداشته باشید.

فعال‌سازی زبان

برای فعال کردن پشتیبانی CodeMirror برای زبانتان، موضوعی در انجمن باز کنید. ما (Exercism) سپس یک Pull Request می‌سازیم که پشتیبانی CodeMirror را برای زبان شما در وب‌سایت فعال می‌کند.

استفاده از یک افزونه‌ی موجود

برای استفاده از یک افزونه‌ی موجود، باید در NPM منتشر شده باشد.

اگر افزونه در NPM منتشر نشده است، می‌توانید یکی از این کارها را بکنید:

  1. از نویسنده‌ی افزونه بپرسید که آیا می‌خواهد در NPM منتشر کند.
  2. مخزن را فورک کنید و خودتان منتشرش کنید.
  3. از ما (Exercism) بخواهید مخزن را فورک کنیم و ما آن را منتشر کنیم. برای این کار، موضوعی در انجمن باز کنید و این درخواست را مطرح کنید.

گام بعدی فعال‌سازی زبان است.

ساخت افزونه‌ی جدید

این‌ها گام‌هایی هستند که باید برای شروع بردارید:

  1. فهرست مخزن‌های ما را برای codemirror-lang-... موجود بررسی کنید تا مطمئن شوید یکی از قبل وجود ندارد.
  2. موضوعی تازه در انجمن Exercism باز کنید و به ما بگویید برای کدام زبان می‌خواهید افزونه‌ی CodeMirror بسازید.
  3. وقتی مخزن افزونه‌ی CodeMirror برایتان ساخته شد، گرامر مسیر خود را پیاده‌سازی کنید.
Note

برای اینکه در شروع کار کمکتان کنیم، مخزنی که برایتان ساخته می‌شود شامل یک گرامر نمونه‌ی حداقلی است که می‌توانید روی آن بسازید یا آن را تغییر دهید.

جامعه‌ی ما به‌شدت دوستانه و حمایت‌گر است و خوشحال می‌شود هنگام کار در این مسیر کمکتان کند! اگر گیر کردید، لطفاً موضوعی تازه در انجمن Exercism باز کنید یا در صورت نیاز در exercism/exercism ایشوهای جدید بسازید 🙂

سپس باید افزونه را در NPM منتشر کنید. گام بعدی فعال‌سازی زبان است.

استفاده از زبان دیگر

نحوه‌ی نگارش زبان شما (به‌شکل نزدیکی) به نحوه‌ی نگارش زبان دیگری شبیه است، که در این صورت می‌توانید در نظر بگیرید از برجسته‌سازی نحوه‌ی نگارش آن زبان برای زبان خودتان استفاده کنید. برای این کار، مسیر را با افزونه‌ی CodeMirror آن زبان دیگر پیکربندی کنید. برای اطلاعات بیشتر بخش فعال‌سازی زبان را ببینید.