Is it possible to write a function with completion that act on region?
A mix of:
(defun function-style (style)
(interactive
(list
(completing-read "Style: " styles-list)))
...
And
(defun function-style (beg end)
(interactive "r")
....
completion-at-point-functions
.