emacs 24+ with built-in semantic-mode with python file - emacs

With emacs 24/25, whenever I enable 'semantic-mode' as long as there is a python file opened in a buffer, I will get following error
error in process filter: Wrong type argument: arrayp, nil
Often, the whole emacs freezes.
For emacs24/25, I googled around, I don't see any good tutorial on CEDET 2.0 settings. Anyone can provide more general guideline will be helpful.

Related

When I edit a file with EMACS I get a strange error. How do I fix this?

This is what I am doing:
Make a file or use an existing file.
Emacs filename.txt.
Type some new text into the file.
Save file.
After step 2, I receive an error after the emacs editor window pops up.
Here is the error:
2022-01-19 22:11:53.935 Emacs-x86_64-10_14[33893:994906] It's not
legal to call -layoutSubtreeIfNeeded on a view which is already being
laid out. If you are implementing the view's -layout method, you can
call -[super layout] instead. Break on void
_NSDetectedLayoutRecursion(void) to debug. This will be logged only once. This may break in the future.
I have already tried updating emacs and that didn't help, and googling didn't give me an answer. Currently, I have GNU Emacs 27.1 version.
How do I fix this error?
As far as I know you shouldn't need to "fix" the error at all and it won't cause any problems while you're actually running Emacs. In fact I'm somewhat surprised you see it at all.
I was only able to see the error (in both Emacs 27 and in pretest-28.0.90) only by running the Emacs binary (eg. ./Emacs-27.app/Contents/MacOS/Emacs) directly from a terminal, which isn't the normal way of starting Emacs on macOS. If you just run Emacs by starting it from Finder, the Dock, or via the "open" utility then you shouldn't see the error at all, and it shouldn't cause any problems.
The whole point of keyboard interaction (and emacs in particular) is that there's no need to touch the mouse. It's possible to log in (using e.g. ssh) and edit remotely, with no gui (so no way to drag and drop), and this is the 'normal' way of invoking emacs. Run 'emacs --help' from the command line to see a bunch of options. In particular see 'emacs --no-window-system' which uses a raw terminal even when a gui is available (no error message appears when it's run this way).
The gui however adds font and image support, which can be useful if you're sitting at the machine. The error message you get when you invoke 'emacs' from the command line in its default mode, with no arguments, is a diagnostic describing a bug in the mac gui implementation.
The error's still there if you start emacs through the finder; you can see that by running (e.g.)
$ open /Applications/Emacs.app/Contents/MacOS/Emacs-x86_64-10_14
which both opens an emacs gui and a terminal window containing the program's text output.
As it says in the message, 'this may break in the future'; it's not helpful to say 'you're using it wrong.'

LESS syntax highlighting for emacs

Does anyone know of a syntax file to get LESS working in emacs?
You are probably looking for a less-css emacs mode, which is an elisp file that can be loaded in your emacs environment. Another version is also available in github.

Ocaml - Emacs tuareg mode

I just started to use the tuareg mode in emacs for ocaml programming. So can someone tell me what are the main advantages of using it? Can someone suggest me any tutorial for that?
Tuareg-mode is good because it can parse code and calculate indentation & font-lock basing on this information. Plus it provides pretty good possibilities to interactive work with code.
Regarding tutorial - I don't think that such exists (although I planned to write it long time ago). All information for installation is in README file, and you can learn about available commands by visiting file with OCaml source code, and pressing C-h m to get description of mode, or by getting description of tuareg-mode function (if tuareg.el is loaded already).
Useful addition to these descriptions is Tuareg mode refcard that lists all (or almost) available commands.
Tuareg is really nice for:
Highlighting your code
Indenting your code correctly
Easily sending portions of code to a REPL
Easily compiling your code
Syntax highlight, indentation, as (almost) all language modes.
Compile or evaluate in a top level from a single buffer (you no longer need to open a ocaml toplevel in a command line to test some crap functions)
Caml-types minor mode : after a successful or partial compilation, you can easily point a variable and get the type the compiler inferred for it.

How do I get SLIME + Emacs set up?

According to this answer, Emacs + Slime already has much advanced functionality. So how can I get syntax coloring, auto-completion, and perhaps even version control management, set up and running in my copy of Lispbox?
If it's of any help, I have installed Lispbox on Mac OS Lion.
Syntax highlighting should already be working as soon as you load a lisp file in Emacs, regardless of whether you've got SLIME installed or not. If it's not, try doing M-x font-lock-mode and see if that turns it on.
Version control isn't provided by Emacs or SLIME, but Emacs can integrate with pretty much any version control system you care to use. I recommend Mercurial or Git. Emacs should start vc-mode automatically when you open a file that is in one of the supported version control systems. The manual includes extensive documentation, do M-: (info "(emacs)Version Control") to jump right to it.
Auto-completion is more complicated. There is more than one way to skin this cat, but for Lisp SLIME's default method should be good enough. Use M-TAB to complete the symbol at point.

"wrong-type-argument stringp nil" error on symbol completion using semantic

When using 'senator-complete-symbol' on C++ source file, some times it works but most of the time I ended up with the error "wrong-type-argument stringp nil, compare-strings("Ins" 0 nil nil 0 3 nil)". I have no idea why semantic is working so inconsistently. I've tried countless of time exiting emacs, deleting the semanticdb directory and reentering emacs to force the semanticdb being recreated but like I said, it sometimes works with no reason but most of the time it doesn't work.
The version of CEDET I'm using is from:
bzr checkout bzr://cedet.bzr.sourceforge.net/bzrroot/cedet/code/trunk cedet
I've tried v1.0 but that gave me compilation error while the version bundled in Emacs 23.2 doesn't have this feature at all. Could anybody give me any idea how I can make this work? Are there better tools I can use in emacs for code completion and code browsing? I'm a little frustrated because I'm approaching deadline and CEDET has wasted me a lot of time, I don't know why CEDET seems to be so problematic.
UPDATE: This is a bug in the CEDET develop version and have been fixed in the latest version. So far I'm happy with it.
As I remember, I had similar problems that went away after I re-compiled ecb and cedet for the particular version of Emacs I was using.
Since this seems to be a bug, please report the error on the CEDET mailing-list with a short recipe how to reproduce this. All I can tell you now is to not use senator but one of the semantic-ia functions for completion, like semantic-ia-complete-symbol, semantic-ia-complete-symbol-menu or semantic-ia-complete-tip.