[PATCH] D12216: Cleaning up LLVM IR mode for Emacs

Wilfred Hughes via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 14:55:19 PDT 2015


Wilfred created this revision.
Wilfred added a reviewer: rafael.
Wilfred added a subscriber: llvm-commits.
Wilfred set the repository for this revision to rL LLVM.

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

Repository:
  rL LLVM

http://reviews.llvm.org/D12216

Files:
  utils/emacs/llvm-mode.el

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12216.32752.patch
Type: text/x-patch
Size: 4724 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150820/77836225/attachment.bin>


More information about the llvm-commits mailing list