Skip to content

Instantly share code, notes, and snippets.

@nanasess
Created October 18, 2011 04:47
Show Gist options
  • Save nanasess/1294627 to your computer and use it in GitHub Desktop.
Save nanasess/1294627 to your computer and use it in GitHub Desktop.
format the sql of region.
(defun sqlf (s end)
"format the sql of region."
(interactive "r")
(let ((case-fold-search t))
(let* ((s (buffer-substring-no-properties s end))
(s (replace-regexp-in-string "\\(select \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(update \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(insert into \\)\\(fuga\\)\\(fuga\\)" "\n\\2\n " s))
(s (replace-regexp-in-string "\\(delete from \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(create table \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(alter table \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(drop constraint \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(from \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(exists \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(where \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(values \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(order by \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(group by \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(having \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(left join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(left outer join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(right join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(right outer join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(inner join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(cross join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(union join \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(and \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(or \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(any \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on update restrict \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on update cascade \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on update set null \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on update no action \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on delete restrict \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on delete cascade \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on delete set null \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(on delete no action \\)" "\n\\1\n " s))
(s (replace-regexp-in-string "\\(,\\)" "\\1\n " s)))
(save-excursion
(insert s)))))
@nanasess
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment