تحديث الكلمات الرئيسية الخط قفل في ايماكس دون تحديث الوسيلة الرئيسية

StackOverflow https://stackoverflow.com/questions/1431843

سؤال

وأنا أفعل تعديل صغير في الوحل، بحيث يمكنني الحصول على كل الرموز التي تم تحميلها حاليا من اللثغة وتحليلها وجعل الخط قفل fontify لهم.

وتمكنت من القيام بكل هذه الخطوات، ولكن لدي مشكلة صغيرة - عندما تتغير قائمة الكلمات الرئيسية في الخط قفل لا يتم تحديث المخزن المؤقت إلا إذا كنت إعادة تشغيل رئيسي ثغة الوضع. أنا لا أريد أن أعد لثغة الوضع في كل مرة أقوم بتحديث الكلمات الرئيسية، وذلك لأن لدي العديد من السنانير على ثغة الوضع الذي أريد لتشغيل فقط عندما كنت تحميل الملف لأول مرة.

هل هناك طريقة أخرى لتحديث الخط قفل بحيث يقرأ كل ذلك كلمات رئيسية جديدة وfontifies المخزن المؤقت وفقا لذلك؟ إطفاء الخط قفل واستخدام font-lock-fontify-buffer لا تفعل خدعة.

وUPD: أضيفت فضله - والسؤال لا يزال مرتفعا. أنا بحاجة إلى وسيلة لإعادة تحميل الخط قفل الكلمة دون إعادة وضع رئيسي.

هل كانت مفيدة؟

المحلول

وطيب، ماذا عن هذا بدلا من ذلك:

(defun my-font-lock-restart ()
  (interactive)
  (setq font-lock-mode-major-mode nil)
  (font-lock-fontify-buffer))

نصائح أخرى

وتحريك ووضع رئيسيا ليس هو ما يجعل الخط قفل يفعل لها شيئا. أنا لست على دراية بشكل وثيق مع الأجزاء الداخلية من الوحل أو ثغة واسطة، ولكن فقط تعيين متغير يجب العمل على انجاحه. سوف تبديل الخط قفل الوضع جعل الخط قفل تبدأ refontifying مع كلمات رئيسية جديدة في الاعتبار، كما يجب font-lock-fontify-buffer.

وأنا الإختراق على cperl الوضع، في الغالب، وأنها مسألة بسيطة من cperl-init-faces (الذي يحدد المتغيرات الخط قفل الداخلية) وإعادة تشغيل الخط قفل. ثغة الوضع لا ينبغي أن تكون مختلفة كثيرا، باستثناء لا تحتاج دعوة لcperl-init-faces؛)

وتحرير: بعض التجارب مع ثغة تفاعل الوضع يكشف أنه حتى إعادة تشغيل الخط قفل الوضع ليس من الضروري بدقة. مجرد تغيير الخط قفل الكلمات ما يكفي، طالما أنك إعادة الزناد fontification بطريقة أو بأخرى. (تحرير النص، الخط قفل fontify عازلة، الخ.)

هل يمكن مسح مؤقتا المتغير وضع هوك وإعادة تشغيله:

(defun my-restart-lisp-mode ()
  (interactive)
  (let ((lisp-mode-hook nil))
    (normal-mode)))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top