I've written an Eclipse plugin which adds an .ll file editor to Eclipse. It elevates the language support to nearly the same level that other programming languages enjoy under the Eclipse IDE, so it can be useful for anyone who manually reads or writes IR. Primary features are:
* Syntax coloring which can deal with arbitrarily complex types (unlike what most other editors offer)
* Context-aware content completion
* Hovering over values, basic blocks and user-defined types shows their definition
* ... and more, see attached PDF for a full feature list with screenshots
It still has some bugs and there's a lot of room for improvement (e.g. adding type checking), but it is already usable and - in my opinion - a decent option if you want to edit IR by hand. I plan on releasing it to open-source, and I was wondering whether it's appropriate to commit it under utils/, next to other editor plugins. Thoughts?
LLVM IR Editor Plugin for Eclipse.pdf (310 KB)
Wow, this is very impressive. I am now aware of any other editor that can do that. Very nice.
How big is your plugin ? Is it one or two Java/XML files or is it a whole eclipse project ?
Great work! Please, release it.
2012/12/19 Mishne, Alon <firstname.lastname@example.org>
It's an entire Eclipse plugin - multiple files across multiple folders, and it requires its own build process. At first I thought about releasing it independently (e.g. to github), because:
1. It's relatively complex
2. It requires its own build process
3. If it will indeed be used by people, then it is more likely than other editor plugins to change frequently and more likely to have bugs (and maybe even feature requests) associated with it
But on the other hand,
1. At the end of the day, it's just another editor plugin, and there are already a lot of these under utils/
2. Since we can be certain anyone who edits it will be using Eclipse anyway, it can be ignored in the regular build process
3. The IR is ultimately not something end users are supposed to care about, this plugin will probably only be useful for people working on LLVM itself, so maybe it belongs under the project as well
So I want to ask whether it belongs under LLVM or is better off outside.
There are plenty of specific plugins in the Eclipse ecosystem, I don't
think yours would be that different. Also, using Github for the code
is not a problem, since you should only release the packages on the
Eclipse plugins website.