Is there a command in emacs to uncomment an entire comment block without having to mark it first?

For instance, let's say the point is inside a comment in the following code:

(setq doing-this t) ;; (progn |<--This is the point ;; (er/expand-region 1) ;; (uncomment-region (region-beginning) (region-end)))

I would like a command that turns that into this:

(setq doing-this t) (progn (er/expand-region 1) (uncomment-region (region-beginning) (region-end)))

It's fairly easy to write a command that (un)comments a single line, but I've yet to find one that uncomments as many lines as possible. Is there one available?