Komodo Edit 5.2 Ошибка синтаксиса шаблона Django - Информация: <head>ранее упоминалось - PullRequest
8 голосов
/ 10 января 2010

Я использую Komodo Edit 5.2 для редактирования файлов шаблонов HTML и Django. Он всегда показывает одну синтаксическую ошибку внутри первой области {% block%} первого тега моего шаблона.

Например:

{% extends "base.html" %}
{% load i18n %}

{% block title %}Hello{% endblock %}

{% block content %}
    <p>Hello</p> <-- Syntax error on this single line
    <p>Other lines have no errors</p>
{% endblock %}

{% block footer %}
    <p>No errors here</p>
{% endblock %}

Синтаксическая ошибка:

Info: <head> previously mentioned

Я точно знаю, что ошибка не имеет ничего общего с моим тегом <head>, поскольку она возникает в базовом шаблоне и в дочерних шаблонах (а среда IDE недостаточно умна для обработки базовых шаблонов в дочернем процессе и т. д.) Все мои HTML-теги закрыты должным образом, и все проверяется на строгий XHTML.

В этом сообщении на форуме упоминается аналогичная проблема, но не предлагается решение (и может быть характерно для подсветки синтаксиса Smarty).

Есть идеи, как решить эту ошибку (или отключить ее отображение)?

Ответы [ 5 ]

6 голосов
/ 11 января 2010

Да, это можно исправить, но это действительно довольно уродливый метод.

Я должен отметить, что это ошибка в трекере # 77251 ( edit : это исправлено в Komodo 6.1.0). Вы можете посмотреть эту ошибку, чтобы узнать, когда она действительно исправлена.

Что касается остановки красных волнистых линий - Вы можете сделать это, отредактировав файл языка Python для шаблона HTML Django вручную. Файл, который вы хотите отредактировать, - koDjango_URL_Language.py, его можно найти в ..ActiveState Komodo Edit 5\lib\mozilla\extensions\django_language@ActiveState.com\components.

Добавьте следующий метод переопределения к class KoDjangoLanguage:

def get_linter(self):
    return None

Обратите внимание, что это предполагает, что вы сохраняете свои файлы шаблонов django как .django.html (что, если вы не сделали этого, при этом обеспечивает окрашивание синтаксиса тегов шаблонов, что довольно приятно). После редактирования файла сохраните и перезагрузите Komodo, и проблема должна исчезнуть.

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

2 голосов
/ 18 марта 2010

Если вы ищете способ просто скрыть волнистые линии, а не возиться с конфигурацией HTML Tidy, попробуйте следующее. В «Предпочтения»> «Шрифты и цвета» выберите вкладку «Индикаторы». В селекторе индикатора есть запись с именем «Ошибка Linter». Присвойте ему стиль «скрытый», и волнистые линии будут скрыты. Строка состояния будет по-прежнему отображать информацию о подкладке. Это проверено на Komodo Edit 5.2.4 в Linux.

2 голосов
/ 17 января 2010

Если вы работаете преимущественно над проектами Django, вы можете изменить стандартную обработку Komodo файлов * .html, отредактировав «Настройки»> «Ассоциации файлов» и изменив ассоциацию для * .html на «Django» (например, как это обычно делается для * .django.html). Это избавит вас от необходимости переименовывать все ваши файлы шаблонов.

Чтобы избавиться от волнистой красной линии, я использую пользовательский файл конфигурации Tidy, который можно указать в разделе «Предпочтения»> «Языки»> «HTML» в окне выбора файла конфигурации. Содержимое этого файла просто:

шоу-предупреждения: n

Это что-то вроде хака, поскольку оно также будет подавлять законные HTML-предупреждения. До тех пор, пока Komodo / Tidy изначально не поддерживает теги шаблонов Django, он работает для меня.

1 голос
/ 27 апреля 2010

Как и при переименовании файлов шаблонов в * .django.html и использовании общих представлений, вы можете столкнуться с исключениями TemplateDoesNotExist, так как django ищет только * _list.html и такие, насколько мне известно.

edit: Кроме того, при переименовании всех шаблонов не забудьте переименовать все {% extends *.html %} до {% extends *.django.html %} соответственно.

0 голосов
/ 11 января 2010

Я всегда отключаю проверку ошибок HTML при редактировании шаблонов Django, так как они не совсем корректные HTML, как вы, наверное, поняли. Я не уверен, что это можно сделать для Komodo Edit, но я знаю, что это можно сделать для Komodo IDE, поэтому можно предположить, что они похожи в этом отношении. В любом случае, боюсь, решение немного раздражает; вам нужно будет отключить его для каждого редактируемого файла (я не знаю, как это сделать глобально) ...

Я сейчас не на своем рабочем ПК, но если мне не изменяет память, в нижней части рамки окна есть значок, который можно щелкнуть правой кнопкой мыши, чтобы изменить свойства. Глубоко там должна быть опция отключения проверки синтаксиса HTML.

Если вы не можете найти вариант, дайте мне знать, и я постараюсь заполнить пробелы.

...