From: Haik S. <hai...@ku...> - 2021-01-17 19:53:12
|
Dear Jonathan, I am running Doom Emacs and had the same issue. The problem is that the temporary output should be removed, but the lines in the shell-buffer have a special read-only mode. The work-around is to set `inhibit-read-only`. So what solved it: (defadvice! inhibit-real-only-a (oldfun &rest r) "Temporary remove read-only lines in shell buffer" :around#'matlab-shell-collect-command-output (let ((inhibit-read-only t)) (apply oldfun r))) Best regards, Haik 17.01.2021 20:20 Eric Ludlam <eri...@gm...> kirjutas: > Hi Jonathan, > > I tried using: > > M-x matlab-shell RET > M-x company-mode RET > > then @ matlab prompt: > > >> fo > > M-x company-matlab-shell RET > > to simulate what you have in your stack trace below. I get a > yellow > popup with completions I expect in it. I can pick one and it > then > inserts the completion correctly. > > I tried this in Emacs 26.3 as installed by Ubuntu, and also > 28.0.50 as > downloaded from git yesterday morning. > > I tend to run my Emacs as stock as possible so I don't > accidentally > create dependencies on random tools, so I'm not familiar with a > more > complex company mode setup. > > Due to the nature of using MATLAB Shell, I recommend looking at > the > value of `comint-prompt-read-only' to see if that might be > involved. It > is nil by default in my Emacsen, and matlab-shell doesn't set it > because > I do a lot of fiddling with the buffer in the background. If it > were t, > I would imagine a range of other things not working either > though. > > That's pretty much all I can think of. Sorry I can't be more > helpful. :( > Eric > > On 1/6/21 5:50 AM, Jonathan Sahar wrote: >> Hi, >> I'm still getting the same error message with the updated >> version of >> the repository... >> the stack trace I get is: >> ``` >> Debugger entered--Lisp error: (error "Company: backend >> company-matlab-shell error \"Text is read-only\" with args >> (prefix)") >> signal(error ("Company: backend company-matlab-shell error >> \"Text is >> read-only\" with args (prefix)")) >> error("Company: backend %s error \"%s\" with args %s" >> company-matlab-shell "Text is read-only" (prefix)) >> company-call-backend-raw(prefix) >> apply(company-call-backend-raw prefix) >> company--force-sync(company-call-backend-raw (prefix) >> company-matlab-shell) >> company-call-backend(prefix) >> company--begin-new() >> company--perform() >> company-auto-begin() >> company-manual-begin() >> #f(compiled-function (backend &optional callback) "Start a >> completion at point using BACKEND." (interactive >> #f(compiled-function >> () #<bytecode 0x27b2831>)) #<bytecode >> 0x36c7e49>)(company-matlab-shell) >> apply(#f(compiled-function (backend &optional callback) >> "Start a >> completion at point using BACKEND." (interactive >> #f(compiled-function >> () #<bytecode 0x29caa1d>)) #<bytecode 0x36c7e49>) >> company-matlab-shell) >> company-begin-backend(company-matlab-shell) >> company-matlab-shell(interactive) >> funcall-interactively(company-matlab-shell interactive) >> ``` >> >> and the output in the console is: >> >> ``` >> >> emacsdocomplete('all') >> >> emacs_completions_output = >> >> java.lang.String[]: >> >> 'all' >> 'allchild' >> 'allElectrodes' >> 'allfeasible' >> 'allMuPADNotebooks' >> >> ``` >> >> which is the same output that I get by running M-x >> matlab-complete-symbol, if that helps to make sense of things. >> >> Thanks, >> Jonathan > > > > _______________________________________________ > Matlab-emacs-discuss mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss |