Works great, thanks! I suggest one additional change. If point is anywhere on a code line with a comment, then matlab-comment moves point to the beginning of the comment. If it's on a comment line, then point gets moved to the beginning of the comment only if it starts after that point. Otherwise it's left unchanged. I suggest an additional "beginning-of-line" for this case. I don't think this interferes with matlab-comm-from-prev.
- Jim Van Zandt (defun matlab-comment () "Add a comment to the current line." (interactive) (cond ((matlab-ltype-empty) ; empty line (matlab-comm-from-prev) (if (matlab-lattr-comm) (skip-chars-forward " \t%") (insert matlab-comment-line-s) (matlab-indent-line))) ((matlab-ltype-comm) ; comment line (matlab-comm-from-prev) (beginning-of-line) (skip-chars-forward " \t%")) ((matlab-lattr-comm) ; code line w/ comment (beginning-of-line) (re-search-forward "[^%]%") (forward-char -1) (if (> (current-column) comment-column) (delete-horizontal-space)) (if (< (current-column) comment-column) (indent-to comment-column)) (skip-chars-forward "% \t")) (t ; code line w/o comment (end-of-line) (re-search-backward "[^ \t\n^]" 0 t) (forward-char) (delete-horizontal-space) (if (< (current-column) comment-column) (indent-to comment-column) (insert " ")) (insert matlab-comment-on-line-s)))) From: Eric Ludlam <eric.lud...@mathworks.com<mailto:eric.lud...@mathworks.com>> Date: Sunday, June 7, 2015 at 3:47 PM To: Jim Van Zandt <j...@mitre.org<mailto:j...@mitre.org>>, "matlab-emacs-discuss@lists.sourceforge.net<mailto:matlab-emacs-discuss@lists.sourceforge.net>" <matlab-emacs-discuss@lists.sourceforge.net<mailto:matlab-emacs-discuss@lists.sourceforge.net>> Subject: RE: recognizing comments (defun matlab-comment () "Add a comment to the current line." (interactive) (cond ((matlab-ltype-empty) ; empty line (matlab-comm-from-prev) (if (matlab-lattr-comm) (skip-chars-forward " \t%") (insert matlab-comment-line-s) (matlab-indent-line))) ((matlab-ltype-comm) ; comment line (matlab-comm-from-prev) (skip-chars-forward " \t%")) ((matlab-lattr-comm) ; code line w/ comment (beginning-of-line) (re-search-forward "[^%]%") (forward-char -1) (if (> (current-column) comment-column) (delete-horizontal-space)) (if (< (current-column) comment-column) (indent-to comment-column)) (skip-chars-forward "% \t")) (t ; code line w/o comment (end-of-line) (re-search-backward "[^ \t\n^]" 0 t) (forward-char) (delete-horizontal-space) (if (< (current-column) comment-column) (indent-to comment-column) (insert " ")) (insert matlab-comment-on-line-s))))
------------------------------------------------------------------------------
_______________________________________________ Matlab-emacs-discuss mailing list Matlab-emacs-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss