sync-function-names with imalison:js-sync-function-names

This commit is contained in:
Ivan Malison 2015-08-13 21:33:11 -07:00
parent 59f5c472cc
commit 9c274c29f5

View File

@ -0,0 +1,35 @@
(defun imalison:get-args-location-or-eol ()
(save-excursion
(end-of-line)
(let ((bound (point)))
(beginning-of-line)
(or (let ((value (re-search-forward "\(" bound t)))
(when value (- value 1))) (progn (end-of-line) (point))))))
(defun imalison:js-get-params-string ()
(save-excursion
(end-of-line)
(let ((bound (point)))
(beginning-of-line)
(if (re-search-forward "\(" bound t)
(let ((start (progn (backward-char) (point)))
(end (progn (forward-sexp) (point))))
(buffer-substring (+ start 1) (- end 1)))
""))))
(defun imalison:js-get-left-name ()
(save-excursion
(beginning-of-line)
(re-search-forward "\.?\\(\[^ .:\]*\\)\[ =:\n\]")
(match-string-no-properties 1)))
(defun imalison:js-sync-function-names ()
(interactive)
(save-excursion
(let ((params-start (imalison:get-args-location-or-eol))
(end (progn (end-of-line) (point))))
(beginning-of-line)
(or (re-search-forward "\[ =:\]+" end t)
(end-of-line))
(delete-region (point) params-start)
(insert (format "function %s" (imalison:js-get-left-name))))))