You may be interested in difftastic for doing diffs based on the AST. One problem with this approach is that when you have a lot of changes (tens of lines, maybe hundreds), it gets slow.
The tool is great thou, and is my default diffing tool.
The tool is great thou, and is my default diffing tool.