Correction: Instead of `LaTeX-newline' use `newline'. In my original message I said to use `TeX-newline'. So the proposal is
(unless (string-match-p "^[[:blank:]]*$" (buffer-substring-no-properties (line-beginning-position) (line-end-position))) (newline))


On Mon, 28 Oct 2024 at 09:40, Vangelis Evangelou <evangelou@gmail.com> wrote:
Hello.

Consider the following latex snippet with the cursor position indicated by |:

\begin{itemize}
\item My 1st item %%% comment |
\end{itemize}

At that point call `LaTeX-insert-item' (M-RET) to get the following:

\begin{itemize}
\item My 1st item %%% comment
  %%% \item |
\end{itemize}

while I would have expected

\begin{itemize}
\item My 1st item %%% comment
\item |
\end{itemize}

I cannot think of a situation where the current version is desirable.

This happens because `LaTeX-insert-item' inserts a new line using `LaTeX-newline' instead of `TeX-newline.

In addition to the above, `LaTeX-insert-item' always inserts a new line unless the cursor is at the beginning of line:

(unless (bolp) (LaTeX-newline))

This is rarely the case. For example, if you enter a new line inside itemize, the line is indented. It would be better to replace the (bolp) check with a check that the line contains only whitespace characters. So my proposal is to replace the above line with

(unless (string-match-p "^[[:blank:]]*$" (buffer-substring-no-properties (line-beginning-position) (line-end-position))) (TeX-newline))