Русское сообщество Sublime Text

Основной раздел => Дополнения => Тема начата: Eugene от Мая 21, 2013, 14:21:53

Название: xmltools из npp
Отправлено: Eugene от Мая 21, 2013, 14:21:53
Приветствую!

Постепенно пытаюсь пересесть с npp на st2. Наверное многим знаком плагин xmltools в npp. Так вот хотелось бы чего-то подобного в st2, а именно, чтобы плагин реализовывал следующий функционал: автозавершение тегов, pretty print (xml), linearize (xml), и самое главное автовалидация xml и выдача ошибки при сохранении с указанием номера строки.
Мне удалось добиться автовалидации, но с подсветкой строки, это очень неудобно, поскольку крутить 1000-строчный xml для того, чтобы найти оранжевый кружок на боковой панели не очень удобно, плюс при сохранении st2 в этом случае не уведомляет об ошибке.
Я думаю, что решения точно есть, также был бы благодарен за советы по работе с xml в st2. Спасибо!
Название: Re: xmltools из npp
Отправлено: Loac от Мая 21, 2013, 14:46:47
Попробуй Tag (https://github.com/SublimeText/Tag). У него есть авторасстановка отступов, подсветка незакрытых тегов, удаление ненужных атрибутов.

Как ты настроил валидацию? Если при помощи SublimeLinter (https://github.com/SublimeLinter/SublimeLinter), то у него есть хоткеи, для перехода к ошибке.

next: Control+Alt+E
prev: Control+Alt+Shift+E
Название: Re: xmltools из npp
Отправлено: Eugene от Мая 21, 2013, 15:01:54
Спасибо за быстрый ответ!
Как раз плагин SublimeLinter осуществляет подсветку строки с ошибкой, но делает он это в скрытом для пользователя режиме. Невозможно понять в любой момент времени валиден ли xml. В npp при сохранении файла идет автоматическая валидация и уведомление о некорректности xml. То есть в sp2 после сохранения я должен нажать для текущего документа Control+Alt+E, чтобы определить есть ошибка или нет?
Tag обязательно попробую.
А что насчет автозавершения, pretty print (xml), linearize (xml)? Никто не использует данный функционал?)
Название: Re: xmltools из npp
Отправлено: Loac от Мая 21, 2013, 16:11:04
Попробуй опцию для SublimeLinter – Preferences > Package Settings > SublimeLinter > Settings - User:

// If true, when the file is saved any errors will appear in a popup list
"sublimelinter_popup_errors_on_save": true,

Если я правильно понял, что нужно:
  Автозавершение тега – Edit > Tag > Close Tag [Alt+.].
  Pretty print – Edit > Tag > Auto-format Tags on Document (нужен плагин Tag).
  Linearize – Edit > Line > Join lines [Ctrl + J].

Советую попробовать Emmet (http://emmet.io/). В целом он для HTML/CSS, но возможно, подойдет и для XML.
Название: Re: xmltools из npp
Отправлено: Eugene от Мая 21, 2013, 17:41:14
Попробуй опцию для SublimeLinter – Preferences > Package Settings > SublimeLinter > Settings - User:

// If true, when the file is saved any errors will appear in a popup list
"sublimelinter_popup_errors_on_save": true,

Если я правильно понял, что нужно:
  Автозавершение тега – Edit > Tag > Close Tag [Alt+.].
  Pretty print – Edit > Tag > Auto-format Tags on Document (нужен плагин Tag).
  Linearize – Edit > Line > Join lines [Ctrl + J].

Советую попробовать Emmet (http://emmet.io/). В целом он для HTML/CSS, но возможно, подойдет и для XML.

Огромное спасибо за участие! Все советы помогли.
При сохранении невалидного xml теперь вываливается лог ошибок.
Автозавершение тега - гораздо лучше, но все равно немного неудобно, так как автозакрытие отсутcвует, но терпимо.
Pretty print отлично работает, правда по дефолту на него отсутствует комбинация клавиш (Auto-format Tags on Document). Как это можно сделать?
Linearize немного кривоват, так как отсутствует функция Auto-linearize Tags on Document, приходится Control+A  и Control+J, но работает.

Попробую Emmet. Возможно он исправит часть задач.
Название: Re: xmltools из npp
Отправлено: Loac от Мая 21, 2013, 19:58:09
Цитировать
Pretty print отлично работает, правда по дефолту на него отсутствует комбинация клавиш (Auto-format Tags on Document). Как это можно сделать?

Добавить бинд на удобное сочетание клавиш.

Preferences > Key Bindings - User:

[
  { "keys": ["ctrl+alt+f"], "command": "tag_indent_document" }
]

Цитировать
Автозавершение тега - гораздо лучше, но все равно немного неудобно, так как автозакрытие отсутcвует, но терпимо

А для чего тебе нужно автозакрытие тега? Ты набираешь код начиная с "<"?

Попробуй с автокомплитом. То есть набираешь имя узла, потом Tab и редактор тебе вставит сразу открывающий и закрывающий теги.

node{Tab} и получишь

<node></node>
А если пользоваться Emmet, то можно сразу строить конструкции вроде:

nodes>node+node{Tab} и на выходе

<nodes>
  <node></node>
  <node></node>
</nodes>

Можно использовать атрибуты nodes[att="1"]>node+node и другие вкусности.
Название: Re: xmltools из npp
Отправлено: Eugene от Мая 21, 2013, 20:45:57
Цитировать
Цитировать
Pretty print отлично работает, правда по дефолту на него отсутствует комбинация клавиш (Auto-format Tags on Document). Как это можно сделать?

Добавить бинд на удобное сочетание клавиш.

Preferences > Key Bindings - User:

[
  { "keys": ["ctrl+alt+f"], "command": "tag_indent_document" }
]
Помогло! А как можно узнать название команды? Это на будущее.

Цитировать
Цитировать
Автозавершение тега - гораздо лучше, но все равно немного неудобно, так как автозакрытие отсутcвует, но терпимо

А для чего тебе нужно автозакрытие тега? Ты набираешь код начиная с "<"?

Попробуй с автокомплитом. То есть набираешь имя узла, потом Tab и редактор тебе вставит сразу открывающий и закрывающий теги.

node{Tab} и получишь

<node></node>

Дело просто в привычке. Например в npp я ввожу <schema>+Enter, автоматически становится следующим образом:
<schema>
     
</schema>
и курсор становится с отступом между тэгами, то есть не нужно жать ни Tab, ни Alt+., чтобы автоматически закрылся тэг и произошел переход на следующую строку с отступом. Удобно) Но это не критично, можно и так привыкнуть.

Во всяком случае сейчас гораздо лучше, чем утром.

Цитировать
А если пользоваться Emmet, то можно сразу строить конструкции вроде:

nodes>node+node{Tab} и на выходе

<nodes>
  <node></node>
  <node></node>
</nodes>

Можно использовать атрибуты nodes[att="1"]>node+node и другие вкусности.

Уже попробовал. Отличный плагин для верстки! Но нужно подпривыкнуть к собственному синтаксису.
Название: Re: xmltools из npp
Отправлено: Loac от Мая 21, 2013, 21:00:44
Цитировать
Помогло! А как можно узнать название команды? Это на будущее.

Из документации или из кода.

Preferences > Browse Packages...

Откроется папка с плагинами. Все команды, доступные из меню, находятся в файле Main.sublime-menu, сочетания клавиш в файлах *.sublime-keymap.
Название: Re: xmltools из npp
Отправлено: Eugene от Мая 21, 2013, 21:50:17
Отлично. Тему можно закрывать.