[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [AUCTeX-devel] feature proposal kill an next item in a enumerate lik
From: |
Arash Esbati |
Subject: |
Re: [AUCTeX-devel] feature proposal kill an next item in a enumerate like environment |
Date: |
Thu, 09 Mar 2017 20:20:30 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 |
Uwe Brauer <address@hidden> writes:
> Please consider.
>
>
> \documentclass[12pt]{article}
> \begin{document}
>
> \begin{enumerate}
> \item First we do blabla
> and so on
> \item the we do
> \end{enumerate}
> \end{document}
>
> I would now set the cursor before the first item and call the function
> (to-be-implemented) and I obtain
>
> \begin{enumerate}
> \item the we do
> \end{enumerate}
> \end{document}
>
> Any idea how to do that?
Hi Uwe,
I'm not sure if AUCTeX has a function to detect and/or mark an item (and
I haven't checked). But you could roll your own function, maybe like
this:
--8<---------------cut here---------------start------------->8---
(defun ub/delete-item ()
(interactive)
(let ((currenv (LaTeX-current-environment))
(beg-pos (save-excursion
(LaTeX-find-matching-begin)
(point)))
(end-pos (save-excursion
(LaTeX-find-matching-end)
(point)))
item-start item-end)
(beginning-of-line)
(if (looking-at "^[ \t]*\\\\item")
;; We are in the same line as in \item
(progn
(setq item-start (point))
(setq item-end (progn (or (re-search-forward "^[ \t]*\\\\item"
end-pos t 2)
(re-search-forward (concat "^[
\t]*\\\\end{" currenv "}")
end-pos t))
(end-of-line 0)
(point))))
;; We are somewhere in \item
(setq item-end (progn (or (re-search-forward "^[ \t]*\\\\item" end-pos t)
(re-search-forward (concat "^[ \t]*\\\\end{"
currenv "}")
end-pos t))
(end-of-line 0)
(point)))
(setq item-start (re-search-backward "^[ \t]*\\\\item" beg-pos t)))
(delete-region item-start item-end)
(when (looking-at "^$")
(kill-line))
(indent-according-to-mode)))
--8<---------------cut here---------------end--------------->8---
Best, Arash