কেবলমাত্র একটি প্রদত্ত মোডের জন্য সিনট্যাক্স হাইলাইট কীভাবে কাস্টমাইজ করা যায়


10

আমি lua-mode.elঅন্যান্য বড় মোডগুলিকে প্রভাবিত না করে আমার সিনট্যাক্স হাইলাইট পরিবর্তন করতে চাই ।

শুধু একটি উদাহরণ হিসাবে, আমি "কী শব্দের" পছন্দ চাই if, then, elseযখন সাহসী এবং নীল টাইপফেস করা lua-modeএকটি সম্পাদনা করার সময় একই হাইলাইট শৈলী করেও (ডিফল্ট গোলাপী পরিবর্তে) .texAUCTeX সঙ্গে ফাইল।

এখনও অবধি আমি নিম্নলিখিত কোডটি আমার .emacsএবং তারপরে আমার মধ্যে রাখার চেষ্টা করেছি lua-mode.el:

(custom-set-faces
  '(font-lock-builtin-face ((t (:foreground "maroon3"))))
  '(font-lock-comment-face ((t (:foreground "green4"))))
  '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold))))
  '(font-lock-string-face ((t (:foreground "dark cyan")))))

তবে এইভাবে আমি প্রতিটা মোডের সাথে একই সাথে কাজ করি synt

এই প্রশ্নটি সম্পর্কিত হতে পারে: প্রধান মোড পরিবর্তন না করে সিনট্যাক্স হাইলাইট পরিবর্তন করুন?

এটি করার কোনও (আশাবাদী সহজ এবং সাধারণ) উপায় আছে?

উত্তর:


8

মুখগুলি বিশ্বব্যাপী তাই এর বৈশিষ্ট্যগুলি পরিবর্তন করে যে কোনও জায়গায় এটি যে কোনও জায়গায় পরিবর্তিত করা হয়েছে, যেমন আপনি লক্ষ্য করেছেন। এটি স্থানীয়ভাবে পরিবর্তন করতে, মুখের একটি অনুলিপি তৈরি করুন, অনুলিপিটিতে থাকা বৈশিষ্ট্যগুলি পরিবর্তন করুন এবং তারপরে স্থানীয়ভাবে পুরানো মুখটিকে প্রতি-বাফার ভিত্তিতে অনুলিপিতে সেট করতে মোড হুক ব্যবহার করুন। নীচের নমুনাটি এটির জন্য করে font-lock-comment-faceতবে একই জ্বলনটি কোনও মুখের জন্য কাজ করবে।

(make-variable-buffer-local 'font-lock-comment-face)
(copy-face 'font-lock-comment-face 'lua-comment-face)
(set-face-foreground 'lua-comment-face "green4")

(add-hook 'lua-mode-hook
          (lambda ()
            (setq font-lock-comment-face 'lua-comment-face)            
            ))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.