The merge tool that understands your code

External merge tool and diff tool should be persistent and easily configurable from the GUI

Passing the right parameters and properly escaping for a external tools is tedious and prone to shell expansion.

The integration of external merge/diff tools with Semanticmerge should be done via the GUI and should be persistent across sessions.

The GUI should have hints (tooltip or a contextual help button) about the possible names and titles placeholders (i.e.: describe what #sourcefile, #destinationfile, #basesymbolic etc. expand to) so it's easy for users to configure third party tools based on their documentation.

Extra bonus points if there is a preview text box where the commands entered by the user is expanded to show what would be called for a method merge/diff.