What elisp or macro magic can make this text transformation?

elisp, emacs, macros, text-formatting

Solution

Select the region you'd like to align, and type C-u C-x \ (that is a shortcut for `align-regexp`). Choose `\(,\)` as regex pattern and repeat it throughout line.

For more on text align, see chapter AlignCommands in EmacsWiki.

Problem

I have a set of SQL statements formatted like so: ``` INSERT INTO reports.workload (workload_id,event_time,event_type_id,agent_id) VALUES (-42000,'2010-02-23 07:30:38.941436',1,NULL); ``` Right now, the VALUES tuple is aligned at the start with the column name tuple. However, what I want is to have the tuple's elements aligned as well, like so: ``` INSERT INTO reports.workload (workload_id,event_time, event_type_id,agent_id) VALUES (-42000, '2010-02-23 07:30:38.941436',1 ,NULL); ``` My elisp-fu and regexp-fu are moderate, but not sufficient to this task. How can I do this?

Original source