সিনট্যাক্স হাইলাইট কোড হিসাবে সংকীর্ণ পাইথন স্ট্রিং আক্ষরিক

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

যাইহোক, আমি কয়েকবার আমার বাফারকে এই স্ট্রিংগুলিতে সংকীর্ণ করতে সক্ষম হব এবং তারপরে Emacs সিনট্যাক্স তাদের হাইলাইট করে যেমন তারা কোড ছিল, কোডের মধ্যে স্ট্রিংগুলি নয় (যেমন "" "</কোড> আসল বাফারে নেই)

যে কি কোন উপায় আছে, যে elisp প্রচুর জড়িত না?

দ্রষ্টব্য: আমার অবশ্যই সংকীর্ণভাবে সংকোচনের দরকার নেই, ঠিক মত সিনট্যাক্স হাইলাইট পরিবর্তন করা ভালো লাগছে, সম্পূর্ণ বাফারে এটি বিভ্রান্তিকর হবে ...

5
স্ট্রিং শুধুমাত্র বিষয়বস্তু সংকীর্ণ হবে না, উদ্ধৃতি সহ, সমস্যা সমাধান?
যোগ লেখক Louis Salin, উৎস
@ jmlorenzi আপনার সংকীর্ণ হওয়ার পরে আপনি যা চান তা সমর্থন করতে প্রধান মোড পরিবর্তন করতে পারেন। তারপর আপনি widen একবার এটি পরিবর্তন। @ লিন্ডিনড্যান্সার স্ট্রিং-সম্পাদনা প্যাকেজ সম্পর্কে কথা বলছেন, তবে এটি আপনার মত হাইলাইটিং সমর্থন করবে না।
যোগ লেখক Louis Salin, উৎস
কিছুক্ষণ আগে আমি এইচটিএমএল মোডে এমন কিছু দেখছি, কিন্তু এখন আমি মনে করি যেখানে আমি এটি দেখেছি। যাইহোক, মূল ধারণাটি একটি নতুন বাফারে এম্বেডেড কোড অনুলিপি করা এবং সঠিক প্রধান মোড ব্যবহার করে এটি প্রদর্শন করা। একবার সম্পন্ন হলে, একটি ম্যাজিক কী ক্রম (সি-সি সি-সি) এর ফলাফলটি অনুলিপি করবে যেখানে মূলত এটির ক্ষেত্রে। দুর্ভাগ্যবশত, এটা কিছু elisp লেখা প্রয়োজন হবে, আমি ভীত।
যোগ লেখক Daniel McPherson, উৎস
@ জর্ডন বিয়নডো আমার, স্ট্রিংকে সংকীর্ণ করে (উদ্ধৃতি ছাড়াই) হাইলাইটিং পরিবর্তন করে না ... এছাড়াও ফন্ট-লক-ফন্টিফাই-বাফার চলছে না
যোগ লেখক Faito Dayo, উৎস
@ লিনডিন্সসার ধন্যবাদ! আমি এমন কিছু মনে করলাম যে এটি কার্যকর হতে হবে, কিন্তু আমার elisp দক্ষতা সত্যিই কম ... আমি আশা করি আমি চেষ্টা করার জন্য কিছু সময় পেতে এবং এই ...
যোগ লেখক Faito Dayo, উৎস

1 উত্তর

এটি পলিমোড এর সাথে করা যেতে পারে।

(require 'polymode)
(defcustom pm-host/python
  (pm-bchunkmode "python"
                 :mode 'python-mode
                 :font-lock-narrow nil)
  "Python host chunkmode"
  :group 'hostmodes
  :type 'object)

(defcustom pm-inner/python
  (pm-hbtchunkmode "python"
                   :mode 'python-mode
                   :head-reg  "\"\"\""
                   :tail-reg  "\"\"\"")
  "Python typical chunk."
  :group 'innermodes
  :type 'object)

(defcustom pm-poly/python
  (pm-polymode-one "python"
                   :hostmode 'pm-host/python
                   :innermode 'pm-inner/python)
  "Python typical polymode."
  :group 'polymodes
  :type 'object)

(define-polymode poly-python-mode pm-poly/python)
  1. C-x b test.py RET
  2. M-x poly-python-mode RET

এই মোড দিয়ে, ট্রিপল-উদ্ধৃত স্ট্রিংগুলি পাইথন কোড হিসাবে হাইলাইট করা হয়। (সাধারণত একটি ভাল ধারণা নয়, তবে আপনি এটি টগল করতে পারেন)।

enter image description here

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

4
যোগ
@ পাইথনটুট এটা আমার জন্য কাজ করছে না ... আপনি কি ফন্ট লকিংয়ের বিষয় উল্লেখ করতে পারেন? এই বিষয়গুলো কোনটি? আমি Emacs ব্যবহার করছি 24.3.1
যোগ লেখক Faito Dayo, উৎস
আমি এখন দেখি ... প্রকৃতপক্ষে টেক্সট বাহিনীকে আপডেটগুলি পরিবর্তন করে ... এটি একটি দু: খজনক তবে স্বয়ংক্রিয় নয়। যাইহোক, উত্তর জন্য অনেক ধন্যবাদ !!
যোগ লেখক Faito Dayo, উৎস
@ এলেথান, আমি শেষ পর্যন্ত মনে করি, টগল করার সময় ফন্ট-লকিং সম্পর্কিত কিছু সমস্যা দেখা যাচ্ছে। আমি এটি দেখছি, এবং সম্ভবত এটি সমাধান করা যেতে পারে কিনা তা দেখতে একটি সমস্যা তৈরি করবে।
যোগ লেখক PythonNut, উৎস
@elethan আহ, প্রধান মোড টগল করতে না। ;) আপনাকে নন-পলিমোডে ফিরে যেতে পাইথন-মোড ব্যবহার করতে হবে।
যোগ লেখক PythonNut, উৎস
@ jmlorenzi ঠিক কি সমস্যা? সমস্যাটি যদি শুরু হয় তবে শুরুতে টগল হবে না, উদ্ধৃতির ভিতরে পাইথন কোডে একটি পরিবর্তন করার চেষ্টা করুন। এটা হাইলাইট করতে বাধ্য করা উচিত। যে বাগ আমি উল্লেখ ছিল।
যোগ লেখক PythonNut, উৎস
আমি এই অপারেটিং সিস্টেমের জন্য কাজ আশা করি, কিন্তু আমার জন্য এটা মহান কাজ বলে মনে হচ্ছে! আপনি বলতে পারেন যে আপনি এটি টগল করতে পারেন, কিন্তু কিভাবে আপনি তা করবেন? আমি এটি টগল করতে পারি, কিন্তু এটি কিভাবে টগল করতে পারি তা নির্ধারণ করতে পারছি না ...
যোগ লেখক Lord Loh., উৎস
কিন্তু যখন আমি বলি আমি এটি টগল করতে পারছি না, মানে আমি কমান্ডটি বুঝতে পারছি না। সিনট্যাক্স হাইলাইটিং দূরে না গেলে আমি বুঝি, কিন্তু যখন আমি বহু-পাইথন-মোড কল করি, তখনও আমি আমার কোড-লাইনে PM দেখি এটা এখনও সক্রিয়
যোগ লেখক Lord Loh., উৎস
ঠিক আছে, পাইথন-মোড এ ফিরে স্যুইচিং একটি কবজ মত কাজ করে! আমি বুঝতে পারিনি যে আমি কখনও পাইথন মোড রেখে গেছি ... (বিটিডব্লিউ, সাইটটি একবার আমাকে অনুমতি দিলেও আমি পুরষ্কার দেব। উত্তর দেওয়ার জন্য ধন্যবাদ ... যদিও এটা আমার প্রশ্ন নয়, হাঃ!)
যোগ লেখক Lord Loh., উৎস