From: Leo A. <dn...@gm...> - 2010-03-14 00:36:34
|
I am continuing to troubleshoot the issue of errors not turning into anchors by default in matlab-shell. I got the errors to turn into matlab by modifying the following variables: (setq matlab-shell-error-stack-start "^\\?\\?\\?\\s-") (setq matlab-shell-error-stack-end "^\\s-*$") In other words, I simply deleted the closing/opening brace after "^" in the regexp (original definitions were:) (defvar matlab-shell-error-stack-start "^{\\?\\?\\?\\s-") (defvar matlab-shell-error-stack-end "^}\\s-*$") Is this a reasonable fix?.. (I suspect it is not, because now (string-match matlab-shell-error-stack-end str) on line 4542 seems to return t for any output, not just errors). However, I am not sure why the braces were there in the original regular expressions -- it looks like the only difference between "error" output and normal output is an extra blank line that appears between the text and the Matlab command prompt. So perhaps the matlab-shell-error-stack-end regexp should be set up to match a blank line?.. --Leo On Tue, Mar 9, 2010 at 12:22 PM, Leo Alekseyev <dn...@gm...> wrote: > Eric, good catch on comint-prompt-read-only! It was indeed non-nil > (thanks to some code in EmacsWiki related to ESS). That took care of > the tab problem (and also fixed a problem when interacting with R > buffers through ESS). > > However, my errors still don't turn into links -- even running with > emacs -q -- and the behavior where the last actual hyperlink (e.g. > from running help) is assumed to be the last error (when doing M-g n) > still persists. Any ideas?. > > --Leo > > On Tue, Mar 9, 2010 at 11:01 AM, Eric Ludlam <Eri...@ma...> wrote: >> Do you perhaps have the variable `comint-prompt-read-only' set to some non-nil value? >> >> Older Emacs versions used to have this be non-nil, but I was pretty sure I had fixed matlab.el for this, but things may have regressed while I was using newer versions of Emacs. >> >> If this is not the case, you can try starting Emacs with "-q", to not load your init file, and then hand-load in matlab.el, and try your test case. If that works, then there is some configuration issue in your .emacs file. >> >> Eric >> >> -----Original Message----- >> From: leo...@gm... [mailto:leo...@gm...] On Behalf Of Leo Alekseyev >> Sent: Monday, March 08, 2010 7:17 PM >> To: Eric Ludlam >> Cc: mat...@li... >> Subject: Re: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >> >> Eric, >> Thanks for your response. >> >> Regarding matlab-shell-collect-command-output -- it prints the >> following to the messages buffer: save-excursion: Text is read-only. >> So it looks like for some reason it fails to delete the output and >> bails. >> >> I have no idea what's going on with errors not being converted to >> links -- but perhaps something similar is preventing the code from >> modifying the buffer?.. >> >> But the matlab shell buffer itself is not read-only (buffer-read-only >> is nil; using (barf-if-buffer-read-only) has no effect...) >> >> Any ideas on what might be happening? >> >> --Leo >> >> On Mon, Mar 8, 2010 at 8:43 AM, Eric Ludlam <Eri...@ma...> wrote: >>> Hi, >>> >>> I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. >>> >>> When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. >>> >>> It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. >>> >>> It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. >>> >>> I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: >>> >>> If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. >>> >>> If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. >>> >>> Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? >>> >>> Good Luck >>> Eric >>> >>> -----Original Message----- >>> From: Leo Alekseyev [mailto:dn...@gm...] >>> Sent: Friday, March 05, 2010 11:22 PM >>> To: mat...@li... >>> Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >>> >>> Hi all, >>> I recently started using matlab-emacs (with matlab-shell) on a more >>> regular basis, and I am reasonably happy with the workflow -- but I am >>> also seeing some anomalies, in particular with debugging and >>> tab-completion. >>> >>> First, if I encounter an error during execution, the offending file >>> name does not turn into a link (like it does using Matlab GUI), which >>> I believe should also be happening here. This also appears to break >>> the "go to last error" functionality: if there are links anywhere else >>> in the command window (e.g. as a result of "help" command) the "go to >>> last error" will follow the link e.g. to the documentation page, >>> ignoring the error. (If there aren't links, then it will jump to the >>> error line in the offending file, but if I've run "help" on any >>> command, the go-to-last-error is now broken for this session). I >>> would really appreciate pointers on how I might troubleshoot this -- >>> the behavior is clearly broken. >>> >>> Second (minor) issue is that tab completion (e.g. typing test<tab>) >>> dumps the following to the buffer: >>>>> matlabMCRprocess = com.mathworks.jmi.MatlabMCR >>> matlabMCRprocess = >>> com.mathworks.jmi.MatlabMCR@7deb41d6 >>> >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); >>> ans = >>> java.lang.String[]: >>> 'test' >>> 'test_step_by_step' >>> 'test_trainlm_gradient' >>> 'testm' >>> 'testobjectiveinfo' >>> 'testscript >>> >>> It this the intended behavior?.. Would it be possible to just display >>> stuff after java.lang.String[]?.. >>> >>> Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab >>> 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs >>> from CVS. >>> I'd appreciate any pointers regarding the above! >>> Thanks, >>> --Leo >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> Matlab-emacs-discuss mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss >>> >> > |