From: Eric L. <eri...@gm...> - 2020-11-28 20:08:51
|
Hi, The existing matlab completion stuff should work with company .. or at least there is code in there referencing company completion engine. I was never a fan so I don't use that particular package. In the MATLAB menu, you will find a "Locate MATLAB function" option which is similar to jump-to functionality like etags. Newer emacsen now how 'xref' as a bit of infrastructure and keybinding but matlab mode doesn't plug into it yet. In theory matlab mode could hook matlab-shell-locate-fcn into xref but I haven't researched how to do that yet. Eric On 11/27/20 12:44 AM, Jonathan Sahar wrote: > Hi Eric, > > Thanks so much for taking the time to test it! > It's not unique to that sturct. > Is there anything that I need/can configure on terms of the completion > engine? I'm using company for most other things, maybe there's some > conflict, or some missing configuration? > > Thank you for the patch! I'll try it out, and I'll using Matlab mode > from the git source as well. > > Do you have a pointers for setting up jump-to-function functionally? > > Thanks again for all the help and information, it's really appreciated. > > Jonathan > > On Thu, 26 Nov 2020, 19:01 Eric Ludlam, <eri...@gm... > <mailto:eri...@gm...>> wrote: > > Hi Jonathan, > > I happened to have MATLAB 18a installed and was able to test using > matlab.el, and matlab-shell.el from git, but could not replicate a > completion problem. Sorry. Is it special to the "EEG" data > structure, > or does this occur everywhere? > > You had some other questions too. > > Matlab mode does support CEDET, but you do not need to use CEDET in > order to use matlab mode. MATLAB mode without support packages > supports > a bunch of different completion features, but most are pretty > simple. > If you enable CEDET with the data base and have matlab-shell > running, it > will try to use the shell to find files on your path, but it > doesn't use > the shell for completions. That code is pretty old and I don't think > those bits were every plugged together. > > I did a little hacking and put together the attached patch that > enables > completion via MATLAB shell in MATLAB buffers. It is rather > primitive > as it only does global symbols and knows nothing about the local > context, but perhaps it can serve as inspiration for putting > something > more complete together. > > Lastly, in a MATLAB buffer, you can type: > > M-x matlab-shell-describe-command RET > > on a symbol and it should do vaguely what you were asking for below. > > Eric > > On 11/25/20 11:41 AM, Jonathan Sahar wrote: > > Hi Eric, thanks for your reply! > > > > I'm running version '9.4.0.949201 (R2018a) Update 6'. > > I've installed matlab-mode through Doom emacs' (package! ...) > > directive, but I've looked at the changelog locally and on > > sourceforge, and the latest commit is the same one... > > > > Best, > > Jonathan > > > > > > > > > > On Wed, 25 Nov 2020 at 18:03, Eric Ludlam <eri...@gm... > <mailto:eri...@gm...> > > <mailto:eri...@gm... <mailto:eri...@gm...>>> wrote: > > > > Hi Jonathan, > > > > As new version of MATLAB come out, the text that comes out for > > errors, > > completions, and all sorts of things change which can break > the shell. > > > > What version of MATLAB are you using, and which version of > the matlab > > mode code are you using? > > > > We made a bunch of updates last winter to ML shell which you > can get > > from the git repository: > > > > https://sourceforge.net/p/matlab-emacs/src/ci/master/tree/ > > > > There are also a few extra fixes on the 'usage1' branch > which haven't > > been merged into the main branch yet. > > > > That all said, I don't recall big changes needed for completion > > lately. :( > > > > Eric > > > > > > On 11/18/20 10:03 AM, Jonathan Sahar wrote: > > > > > > I've been working with matlab-mode and matlab-shell for > the last > > few > > > days, and I'm really digging it so far. The only two > things I can't > > > get to work properly are completion - neither in shell, > nor in .m > > > files - and jumping to function definitions, and I would > really > > > appreciate some help with these. when I hit TAB in shell, > my text > > > turns into > > > > > > |>> emacsdocomplete('EEG.(cond') | > > > > > > and when I hit RETURN I get (the appropriate): > > > > > > |emacs_completions_output = java.lang.String[]: 'cond' > 'condeig' | > > > > > > but it's not integrated into the shell properly, i.e. I can't > > choose > > > which of the above I want, I have to re-type the command > along with > > > the chosen completion. In .m files I just get nothing > except for > > the > > > word completion for words already in the buffer - which I've > > > configured myself. > > > > > > I've read somewhere that the completion is meant to be > related to > > > CEDET somehow but I couldn't make out much more (I'm > working on > > Doom > > > Emacs, and I seen to have CEDET installed, and can run > > > matlab-cedet-setup, which does nothing as far as I can tell). > > > > > > As to function definitions - I don't even know where to > start.. > > I've > > > read that ctags now supports matlab, but I don't know > where (if) > > the > > > actual .m files for the built-in functions reside in the > install > > dir. > > > > > > Ideally I'd love to be able to stand on a function name and be > > able to > > > get the "help funcName" output in another buffer or > something (this > > > works from the shell). > > > > > > Thanks a lot! > > > > > > |