From: Henrik G. <hen...@gl...> - 2015-06-14 21:06:02
|
Hi Eric, I have tried the tweaked version, but found that it doesn't work with a line which contains a % as part of the code, e.g. title(sprintf('Q_o(1) %.2e; Q_o(2) %.2e',mean(Q_o))) % test With the original version, M-; jumps to "% test", but with the new version it treats the "%.2e...." as a comment and moves it to the preferred start column. Henrik mat...@li... wrote on 13/06/15 17:53: > > Message: 2 > Date: Sun, 7 Jun 2015 19:47:35 +0000 > From: Eric Ludlam <Eri...@ma...> > Subject: Re: [Matlab-emacs-discuss] recognizing comments > To: "Van Zandt, Jim" <jr...@mi...>, > "mat...@li..." > <mat...@li...> > Message-ID: > <907...@ex...> > Content-Type: text/plain; charset="us-ascii" > > Hi Jim, > > Here is a tweaked version of the Matlab-comment function that should fix the problem you found. If it works for you let me know and I can update it. > > Enjoy > Eric > > (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)))) > > From: Van Zandt, Jim [mailto:jr...@mi...] > Sent: Monday, May 11, 2015 3:37 PM > To: mat...@li... > Subject: [Matlab-emacs-discuss] recognizing comments > > I have noticed a small problem in the recognition of comments. I can use M-; to insert a comment on the current line. I should be able to use the same command to move point to an existing comment on the current line, with the side effect of moving that comment to the preferred start column. Actually that does work if the comment starts with "% ", but fails if the percent is followed by something other than a space. > > Suppose I am editing this file with point anywhere on the third line: > > function foo > a = 3; > b = 4; %first comment > c = 5; > d = 6; > e = 7; % second comment > f = 8; > > If I press M-; I get: > > function foo > a = 3; > b = 4; %first comment > c = 5; > d = 6; > e = 7; % second comment > f = 8; > > With point on any other line, I get the expected result. > > I expect this could be fixed by adjusting a regular expression, but I could not follow the logic well enough to find it. > > > - Jim Van Zandt > |