llvm/utils/emacs
Rafael Espindola 7ad3ef048d Cleaning up LLVM IR mode for Emacs.
I've made a range of improvements to the Emacs mode for LLVM IR.

Most importantly, it changes llvm-mode to inherit from prog-mode. This
means llvm-mode will be treated as a normal programming mode in Emacs,
so many Emacs features will just work. prog-mode is new to Emacs 24,
so I've added an alias to ensure compatibility with Emacs 23 too.

I've changed the mode definition to use define-derived-mode. This
saves us needing to set up local variables ourselves, and saves us
needing to define llvm-mode-map, llvm-mode-abbrev-table,
llvm-mode-map.

I've removed the keybindings to tab-to-tab-stop, center-line and
center-paragraph. This shouldn't be llvm-mode's responsibility, and
the code didn't actually work anyway (since `(not llvm-mode-map)`
always evaluated to `t`, the keybindings were never executed).

I've simplified the syntax-table definition, it's equivalent (e.g. `"`
is treated as string delimiter by default in Emacs). I've added `.` as
a symbol constituent, so functions like `llvm.memset.p0i8.i32` are
recognised as a single symbol. I've also changed `%` to be a symbol
constituent, so users can move between words or symbols at their
choice, rather than conflating the two.

I've fixed regexp for types, which incorrect used `symbol` instead of
`symbols` as an argument to `regexp-opt`. This was causing incorrect
highlighting on lines like `call void @foovoid`.

I've removed string and comment highlighting from
`llvm-font-lock-keywords`. This is already handled by the
syntax-table.

Finally, I've removed the reference to jasmin. That project is long
abandoned and the link 404s. For reference, I've found an old copy of
the project here:
https://github.com/stevej/emacs/blob/master/vendor/jasmin/jasmin.el

Patch by Wilfred Hughes!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247281 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 13:44:28 +00:00
..
emacs.el
llvm-mode.el Cleaning up LLVM IR mode for Emacs. 2015-09-10 13:44:28 +00:00
README
tablegen-mode.el

-*- llvm/utils/emacs/README -*-

These are syntax highlighting files for the Emacs and XEmacs editors. Included
are:

* llvm-mode.el

  Syntax highlighting mode for LLVM assembly files. To use, add this code to
  your ~/.emacs :

  (setq load-path
    (cons (expand-file-name "path-to-llvm/utils/emacs") load-path))
  (require 'llvm-mode)
  
* tablegen-mode.el

  Syntax highlighting mode for TableGen description files. To use, add this code
  to your ~/.emacs:

  (setq load-path
    (cons (expand-file-name "path-to-llvm/utils/emacs") load-path))
  (require 'tablegen-mode)


Note: If you notice missing or incorrect syntax highlighting, please contact
<llvm-bugs [at] lists.llvm.org>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.