Я столкнулся с такими проблемами, когда класс находится в папке по умолчанию, то есть когда класс не объявляет пакет.
Поэтому я предполагаю, что с помощью оператора пакета (например, package org.me.mypackage;
) сверху класса должен исправить это.
Этот ответ дает вам решение для обертывания области (после того, как вы измените ее для использования угловых скобок).
Эта процедура предложит вам использовать тег и должен пометьте каждую строку в регионе тегом открытия / закрытия этого типа:
(defun my-tag-lines (b e tag)
"'tag' every line in the region with a tag"
(interactive "r\nMTag for line: ")
(save-restriction
(narrow-to-region b e)
(save-excursion
(goto-char (point-min))
(while (< (point) (point-max))
(beginning-of-line)
(insert (format "<%s>" tag))
(end-of-line)
(insert (format "</%s>" tag))
(forward-line 1)))))
* Примечание: * Если вы хотите, чтобы тег
всегда был li
, удалите аргумент тега удалите текст \ nMTag для строки:
из вызова в интерактивный и обновите вызовы вставки, чтобы просто вставить «
, как и следовало ожидать.
yasnippet - это особенно хорошая реализация синтаксиса фрагмента Textmate для Emacs. С его помощью вы можете импортировать все фрагменты Textmate. Если вы установите его тогда, этот фрагмент, который я написал, должен делать то, что вы хотите:
(defun wrap-region-or-point-with-html-tag (start end)
"Wraps the selected text or the point with a tag"
(interactive "r")
(let (string)
(if mark-active
(list (setq string (buffer-substring start end))
(delete-region start end)))
(yas/expand-snippet (point)
(point)
(concat "<${1:p}>" string "$0</${1:$(replace-regexp-in-string \" .*\" \"\" text)}>"))))
(global-set-key (kbd "C-W") 'wrap-region-or-point-with-html-tag)
EDIT: (Хорошо, это моя последняя попытка исправить это. Это точно так же, как версия Textmate. Он даже игнорирует символы после пробела в конце tag)
Извините, я неправильно понял ваш вопрос. Эта функция должна редактировать каждую строку в регионе.
(defun wrap-lines-in-region-with-html-tag (start end)
"Wraps the selected text or the point with a tag"
(interactive "r")
(let (string)
(if mark-active
(list (setq string (buffer-substring start end))
(delete-region start end)))
(yas/expand-snippet
(replace-regexp-in-string "\\(<$1>\\).*\\'" "<${1:p}>"
(mapconcat
(lambda (line) (format "%s" line))
(mapcar
(lambda (match) (concat "<$1>" match "</${1:$(replace-regexp-in-string \" .*\" \"\" text)}>"))
(split-string string "[\r\n]")) "\n") t nil 1) (point) (point))))
Для sgml-mode
деративов , отметьте область для тегирования, введите Mx sgml-tag
и введите имя тега, которое вы хотите использовать (нажмите TAB
, чтобы получить список доступных элементов HTML). Хотя,