স্ট্যাটিক সিনট্যাক্স হাইলাইটিং


স্ট্যাটিক সিনট্যাক্স হাইলাইটিং হলো এমন কোডের হাইলাইটিং, যা ব্যবহারকারী পরিবর্তন করতে পারেন না। এর মধ্যে আছে কোড স্নিপেট, ইটারেশন এবং আরও অনেক কিছু।

Note

অনলাইন এডিটর স্ট্যাটিক সিনট্যাক্স হাইলাইটিং ব্যবহার করে না, কারণ ব্যবহারকারী সাথে সাথেই কোড পরিবর্তন করতে পারেন। অনলাইন এডিটরে আমরা কীভাবে সিনট্যাক্স হাইলাইটিং সামলাই সে সম্পর্কে আরও জানতে চাইলে দেখুন ডাইনামিক সিনট্যাক্স হাইলাইটিং ডকুমেন্টেশন।

ইমপ্লিমেন্টেশন

স্ট্যাটিক সিনট্যাক্স হাইলাইটিং করা হয় highlightjs লাইব্রেরি দিয়ে।

আপনার ভাষার জন্য সাপোর্ট যোগ করার সময় তিনটি বিকল্প আছে:

  1. ভাষাটিকে highlightjs সরাসরি সাপোর্ট করে (অর্থাৎ এটি সমর্থিত ভাষা তালিকায় আছে)। সেক্ষেত্রে ট্র্যাক কনফিগার করা অংশে যান।
  2. ভাষাটি সাপোর্ট করে একটি বিদ্যমান highlightjs প্লাগইন। সেক্ষেত্রে বিদ্যমান একটি প্লাগইন ব্যবহার করা অংশে যান।
  3. ভাষাটি সাপোর্ট করে না। এখন তিনটি বিকল্প আছে:
    1. শূন্য থেকে একটি highlightjs প্লাগইন লিখুন, যেমনটা নতুন একটি প্লাগইন তৈরি করা অংশে বর্ণনা করা আছে।
    2. আপনার ভাষার সিনট্যাক্স অন্য একটি ভাষার সিনট্যাক্সের সাথে (কাছাকাছি) মিলে যায় (যেমন Unison-এর সিনট্যাক্স Haskell-এর সাথে মিলে যায়), সেক্ষেত্রে আপনি আপনার ভাষার জন্য ওই ভাষার সিনট্যাক্স হাইলাইটিং ব্যবহার করার কথা ভাবতে পারেন। আরও জানতে ট্র্যাক কনফিগার করা অংশটি দেখুন।
    3. স্ট্যাটিক সিনট্যাক্স হাইলাইটিং না রাখা।

ট্র্যাক কনফিগার করা

আপনার ট্র্যাকের ভাষার জন্য highlightjs সাপোর্ট চালু করতে হলে ট্র্যাকের config.json ফাইল পরিবর্তন করতে হবে। config.json ফাইলের ভেতরে online_editor.highlightjs_language কী (key)-টি উপযুক্ত highlightjs ভাষা আইডেন্টিফায়ারে যোগ বা সেট করুন (এটি ডকুমেন্টেশনে পাওয়া যাবে)।

উদাহরণ

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

বিদ্যমান একটি প্লাগইন ব্যবহার করা

একটি বিদ্যমান প্লাগইন ব্যবহার করতে হলে সেটি NPM-এ পাবলিশ করা থাকতে হবে। প্লাগইনটি যদি NPM-এ পাবলিশ করা না থাকে, তাহলে আপনি যেকোনো একটি করতে পারেন:

  1. প্লাগইনের লেখককে জিজ্ঞেস করুন, তিনি NPM-এ পাবলিশ করতে চান কি না।
  2. রিপোজিটরি ফর্ক করে নিজেই পাবলিশ করুন।
  3. আমরা (Exercism) যেন রিপোজিটরি ফর্ক করি এবং আমরা সেটি পাবলিশ করি, এমন ব্যবস্থা করুন। এর জন্য ফোরামে একটি টপিক খুলে অনুরোধ করুন।

এর পরের ধাপ হলো প্লাগইন চালু করা।

প্লাগইন চালু করা

একটি প্লাগইন চালু করতে (যেটি অবশ্যই NPM-এ পাবলিশ করা থাকতে হবে) ফোরামে একটি টপিক খুলে আমাদের কাছে ওয়েবসাইটে ওই প্লাগইনের সাপোর্ট যোগ করার অনুরোধ করুন। এরপর আমরা (Exercism) একটি Pull Request তৈরি করি, যা প্লাগইনটি ওয়েবসাইটে যোগ করে। PR মার্জ হয়ে গেলে ট্র্যাক কনফিগার করা অংশের নির্দেশনা অনুসরণ করে আপনি highlightjs সাপোর্ট চালু করতে পারেন।

নতুন একটি প্লাগইন তৈরি করা

আপনি যদি প্লাগইন তৈরি করতে চান, তাহলে হোস্ট করার জন্য দুটি বিকল্প আছে:

  1. আপনার নিজের অ্যাকাউন্টে একটি রিপোজিটরি তৈরি করে নিজেই পাবলিশ করুন।
  2. আমরা (Exercism) যেন একটি রিপোজিটরি তৈরি করি এবং পাবলিশ করি, এমন ব্যবস্থা করুন। এর জন্য ফোরামে একটি টপিক খুলে অনুরোধ করুন।

রিপো তৈরি হয়ে গেলে প্লাগইনটি ইমপ্লিমেন্ট করতে ভাষা কনট্রিবিউশনের নির্দেশনা অনুসরণ করুন।

এরপর প্লাগইনটি NPM-এ পাবলিশ করতে হবে। এর পরের ধাপ হলো প্লাগইন চালু করা।

ভিন্ন একটি ভাষা ব্যবহার করা

আপনার ভাষার সিনট্যাক্স অন্য একটি ভাষার সিনট্যাক্সের সাথে (কাছাকাছি) মিলে যায়, সেক্ষেত্রে আপনি আপনার ভাষার জন্য ওই ভাষার সিনট্যাক্স হাইলাইটিং ব্যবহার করার কথা ভাবতে পারেন। এর জন্য ট্র্যাকটি কনফিগার করে ওই অন্য ভাষার highlightjs ভাষা আইডেন্টিফায়ার ব্যবহার করুন। আরও জানতে ট্র্যাক কনফিগার করা অংশটি দেখুন।