Eclipse - как расширить HTML-редактор для добавления пользовательских тегов?
Я пишу приложение и внутри HTML-кода. У меня есть пользовательские теги (разумеется, эти теги разбираются на стороне сервера, а конечный пользователь получает их как допустимый HTML-код). Пример использования пользовательских тегов:
<html>
<body>
...
<Gallery type="grid" title="My Gallery" />
...
</body>
</html>
1.) Как я могу заставить eclipse распознать мои пользовательские теги внутри HTML-кода и добавить к ним подсветку синтаксиса?
2.) Как добавить автоматические предложения в свои собственные теги? Например, если я набираю "< Галерея", нажмите "Ctrl + Space" - в списке доступных атрибутов он показывает мне "тип" и "название", и если я нахожу "< Галерея type =", нажмите "Ctrl + Space" Я бы увидел список доступных значений только для тега "Галерея" и его атрибута "Тип".
Спасибо заранее!
Ответы
Ответ 1
К сожалению, нет простого способа: для этого вам нужно развернуть свой собственный синтаксический анализатор, а затем добавить к нему как свои дополнительные элементы, так и базовую грамматику (HTML).
Если у вас есть ваш синтаксический анализатор, вы можете использовать его для выделения синтаксиса (строго говоря, для этого простого лексинга достаточно); и хороший синтаксический анализатор может поддерживать поддержку контента (авто-предложения в вашей терминологии).
Предостережения:
- Создание парсера для HTML - непростая задача. Возможно, возможно, нацеливаясь на более часто используемое подмножество.
- Если существует синтаксический анализатор, части редактора по-прежнему трудно получить.
Некоторая помощь с другой стороны: вы можете использовать некоторые генераторы текстовых редакторов, чтобы облегчить вашу работу:
- Eclipse IMP http://www.eclipse.org/imp/ может теоретически обрабатывать любой тип синтаксического анализатора, но в настоящее время он наиболее оптимизирован для LPG. Документация скудна, но разработчики полезны на форумах.
- Xtext http://www.eclipse.org/Xtext/ получил довольно шумиху для создания текстовых редакторов для DSL. Сгенерированные редакторы довольно хороши из коробки, но это не лучшее решение для больших файлов. Имеет действительно полезное сообщество разработчиков.
- EMFText http://www.emftext.org/index.php/EMFText - это менее известный объект - я не знаю его подробно, но, я думаю, он похож на Xtext.
Ответ 2
Не то, что вы хотите, но, может быть, это вам поможет:
-
Вы можете попробовать Aptana Plug-in для Eclipse. Это позволяет написать собственное регулярное выражение для проверки HTML, поэтому пользовательский тег будет проигнорирован валидатором.
Например:.
.gallery.
-
Eclipse позволяет добавлять простые автоматические предложения с помощью Шаблонов. На
Eclipse 3.7.1 (Indigo) + PHP Dev Tools (PDT) 3.0.0: Окно > Настройки > Веб > HTML файлы > Редактоp > Шаблоны
Ответ 3
Я нахожу, что шаблоны являются альтернативой ok, но давайте посмотрим, можем ли мы поощрять более надежное решение; пожалуйста, уделите время и проголосуйте за это: https://bugs.eclipse.org/bugs/show_bug.cgi?id=422584
Ответ 4
Я знаю, что прошло много времени с тех пор, как этот вопрос был задан,
но я надеюсь, что это поможет другим, таким как я, достичь этого в поисках решения.
Итак, при использовании Eclipse (выпуск Mars.1 (4.5.1) - и, возможно, раньше - я не проверял).
Перейдите к Window
- Prefrences
Затем в открывшемся диалоговом окне перейдите к Web
- HTML Files
- Editor
- Validation
.
Справа:
- под
Ignore specified element names in validation
и введите список пользовательских элементов, которые вы используете. (например, Gallery,tab,tabset,my-element-directives-*
)
- вы также можете перейти в
Ignore specified attribute names in validation
сделать то же самое для своих пользовательских атрибутов (например, ng-*,my-attr-directives-*
)
Следует отметить две вещи:
- После того, как eclipse выполнит полную проверку, вы также должны закрыть файл и снова открыть его, чтобы удалить предупреждения из исходного кода.
- Использование этого метода будет игнорировать эти атрибуты под любым элементом. Я не думаю, что есть простой способ сказать ему игнорировать
some-attribute
только если его дочерний элемент some-element
.
Ответ 5
Вам нужно добавить новый HTML-шаблон. Чтобы добавить новый шаблон, выполните следующие действия:
1) В меню "Окно" выберите "Настройки".
2) На странице настроек выберите Веб и XML > HTML файлы > Шаблоны HTML.
3) Нажмите "Создать".
4) Введите новое имя шаблона и краткое описание шаблона.
5) В раскрывающемся списке "Контекст" укажите контекст, в котором доступен шаблон.
6) В поле "Шаблон" введите соответствующие теги, атрибуты или значения атрибутов (содержимое шаблона), которые нужно вставить с помощью поддержки содержимого.
7) Если вы хотите вставить переменную, нажмите кнопку "Переменная" и выберите переменную, которую нужно вставить. Например, переменная word_selection указывает слово, которое выбрано в начале вставки шаблона, а переменная курсора определяет, где будет курсор после того, как шаблон будет вставлен в документ HTML.
8) Нажмите "ОК", чтобы сохранить новый шаблон.
Вы можете редактировать, удалять, импортировать или экспортировать шаблон, используя ту же страницу настроек.
Ссылка: http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.wst.sse.doc.user%2Ftopics%2Ftsrcedt024.html