LINUX.ORG.RU

Emacs. Как настроить web-mode чтоб было и автозакрытие html тегов и автокомплит после style=«»

 ,


0

7

У меня есть простой конфиг для web-mode

(require 'web-mode)

; с какими файлами ассоциировать web-mode
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.html\\'" . web-mode))

; настройка отступов
(setq web-mode-markup-indent-offset 2)
(setq web-mode-css-indent-offset 2)
(setq web-mode-code-indent-offset 2)

; сниппеты и автозакрытие парных скобок
(setq web-mode-extra-snippets '(("erb" . (("name" . ("beg" . "end"))))
                                ))
(setq web-mode-extra-auto-pairs '(("erb" . (("open" "close")))
                                  ))

; подсвечивать текущий элемент
(setq web-mode-enable-current-element-highlight t)

В принципе, меня устраивает как он работает. НО! когда пишу, например, так:
<div style=""></div>

то emacs не врубается, что надо переходить в css mode и у меня нет autocomplete. Есть еще одна шткука (multi-web-mode), там это работает, но если я использую вместе multi-web-mode и web-mode, то отпадают закрювающися теги в web-mode. Что делать?


Последнее исправление: morowind777 (всего исправлений: 2)

Подписался, сейчас подобное настраиваю. Только сейчас в приоритете подсветка и автодополнение JS. Желательно прямо посреди HTML.

deterok ★★★★★
()
Ответ на: комментарий от deterok

Покапалась я ещё. В принципе, web-mode - не нужен совсем. Закрыть тег можно очень легко 'С-с /' - это стандартный sgml пакет делает. Осталось только допилить multi-mode. У меня есть такое:

   (setq mweb-tags '((php-mode "<\\?php\\|<\\? \\|<\\?=" "\\?>")
                      (espresso-mode "<script +\\(type=\"text/javascript\"\\|language=\"javascript\"\\)[^>]*>" "</script>")
                      
             (css-mode "<style +type=\"text/css\"[^>]*>" "</style>" "style=\"[^>]*>"  )))
врубается автокомплит, когда пишем <style type="text/css"> - дальше автокомплит работает. Мне вот только регулярку осталось написать, чтоб и на, например, <div style=""> - тоже сработывало, пишу так:
(css-mode "<style +type=\"text/css\"[^>]*>" "</style>" "style=\"[^>]*>" )

не срабатывает.
morowind777
() автор топика
Ответ на: >< от morowind777

Кхм, работа, некогда было ковырять.

deterok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.