Заставить Flymake работать с Джанго? - PullRequest
3 голосов
/ 22 февраля 2012

Как отключить flymake при работе с шаблонами Django?

Flymake отлично подходит для редактирования файлов Python, но действительно доставляет мне проблемы с шаблонами django. Например, следующий шаблон не выдает ошибок, хотя подсветка синтаксиса не работает для тегов шаблона:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>{% block title %}Page title{% endblock %}</title>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>

<body>
{% block content %}
  <p>… Your HTML content here …</p>
{% endblock %}
</body>
</html>

Однако следующий шаблон изобилует font-lock для ошибок flymake:

{% extends base.html %}

{% block content %}
<h1>Welcome!</h1>
{% endblock %}

При наведении указателя мыши на ошибки выявляется, что flymake жалуется на «Текст не разрешен».

Я следовал за каждым решением в этом связанном вопросе , но ни один из них не отключил flymake для html-буферов. Я даже попытался переименовать все мои файлы шаблонов, чтобы они заканчивались на .djhtml вместо .html, но flymake все еще был активен после повторного посещения файлов. Я изменил список авторежимов, чтобы применить файлы django-html-mode к .djhtml, поэтому, возможно, проблема в этом.

ОБНОВЛЕНИЕ: Я обнаружил, что переключение на html-mode не имеет этой проблемы, так как я реализовал ранее упомянутые решения. Однако, если я переключусь на nxml-mode или django-html-mode (что я хотел бы использовать), flymake запустится снова и скажет мне, что это:

Using schema /usr/local/Cellar/emacs/HEAD/share/emacs/24.0.93/etc/schema/xhtml.rnc

Emacs24 Углерод на снежном барсе.

GNU Emacs 24.0.93.1 (i386-apple-darwin10.8.0, NS apple-appkit-1038.36) of 2012-02-21 on hook

1 Ответ

0 голосов
/ 24 февраля 2012

В django wiki перечислены несколько опций для работы с emacs, но нет подробного руководства по конкретным сильным и слабым сторонам каждого режима.

Обходной путь, который я сейчас использую, включает использование django-html-mumamo-mode вместо django-mode. Вот что я понял в своем стремлении настроить emacs с помощью django.

Имейте в виду, что некоторые из этих наблюдений могут измениться при разработке этих пакетов.

пони-режим

Выглядит многообещающе , но документация не завершена, и подсветка синтаксиса в шаблонах не работает для меня. Это то, к чему я действительно стремился, но другим могут понравиться другие функции, которые включены.

Джанго-HTML-mumamo режим

В комплекте nXhtml . Фрагменты не включены, но фрагменты можно найти с помощью Google или , импортированные из пакета Textmate с помощью yasnippet. Кстати, этот режим конфликтует с yasnippet-bundle , предоставляемым через ELPA , поэтому обязательно следуйте за стволом разработки, чтобы избежать необходимости перезапускать emacs каждый раз, когда вы запускаете фрагмент . Кстати, подсветка синтаксиса отличная, и вам могут понравиться общие функции веб-разработки, которые являются частью nXhtml.

Джанго режим

Подсветка синтаксиса и переход к тегам, включая некоторые фрагменты кода; однако, django-mode не очень хорошо работает с flymake , что, я думаю, связано с тем, что он получен из nxml-mode. django-mode больше не находится в разработке, и nxml-mode не из того, что я могу собрать. django-html-mumamo-mode не страдает от этой проблемы с мухой, так как nXhtml включает действительно хорошую поддержку мухи из коробки.

...