The simple approach would be to just use rgrep.
use M-xrgrep
and specify searching for "function" in the current file in the current directory. You can wrap this up in a command so you don't have to specify the options each time. like this:
(defun rgrep-lua-functions ()
"run `rgrep` searching for 'function' in the current file."
(interactive)
(rgrep "function" (file-name-nondirectory (buffer-file-name)) "."))
This will yield a searchable buffer with the function signatures and you can jump to the definitions if you want.