Я собираюсь потратить некоторое время на работу с Habenero Java, второстепенным вариантом обычной Java, и чтобы облегчить свою жизнь, я пытаюсь определить режим Emacs для работы с ним.
Сейчас все, что я пытаюсь сделать, это определить новый основной режим, который наследуется от Java и добавляет три новых ключевых слова: finish
, async
и forall
. Это то, что я до сих пор:
(define-derived-mode hj-mode java-mode "Habanero Java"
"Major mode for Habanero Java."
(font-lock-add-keywords nil `((,(regexp-opt '("finish" "async" "forall")) .
font-lock-keyword-face))))
Проблема, с которой я столкнулся, заключается в том, что Emacs, очевидно, не может различить эти новые ключевые слова и объявление переменной. Если я напишу async { x(); }
, тогда Emacs выделит это правильно. Но если я напишу эквивалент async x();
, тогда Emacs отформатирует его так, как если бы я объявлял переменную с именем async
.
Кто-нибудь знает, как решить эту проблему? Разочарование по этому поводу убивает меня.