lang/web: refactor +css/toggle-inline-or-block

Remove evil dependency + make more robust.
This commit is contained in:
Henrik Lissner 2018-02-14 20:55:29 -05:00
parent 4321f20b3e
commit 5bee5c95ee
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -10,25 +10,17 @@
(defun +css/toggle-inline-or-block () (defun +css/toggle-inline-or-block ()
"Toggles between a bracketed block and inline block." "Toggles between a bracketed block and inline block."
(interactive) (interactive)
;; TODO Remove evil dependency
(let ((inhibit-modification-hooks t)) (let ((inhibit-modification-hooks t))
(save-excursion (cl-destructuring-bind (&key beg end op cl &allow-other-keys)
(cl-destructuring-bind (beg end &rest _) (sp-get-thing)
(or (ignore-errors (evil-a-curly)) (when (or (string-empty-p op) (string-empty-p cl))
(user-error "No block found")) (user-error "No block found"))
(with-no-warnings
(if (= (line-number-at-pos beg) (line-number-at-pos end)) (if (= (line-number-at-pos beg) (line-number-at-pos end))
(progn (progn
(goto-char end) (insert "\n")
(goto-char (1+ beg)) (insert "\n") (goto-char (1+ beg)) (insert "\n")
(unless (string-match ";[\s\t]*}$" (buffer-substring-no-properties beg (1+ end))) (replace-regexp ";\\s-+" ";\n" nil beg end)
(goto-char end) (insert "\n")) (indent-region beg end))
(while (re-search-forward ";[\s\t]*" (1+ end) t) (replace-regexp "\n" " " nil beg end)
(replace-match ";\n" t t)) (replace-regexp " +" " " nil beg end))))))
(setq end (cadr (evil-a-curly)))
(evil-indent beg end)
(delete-trailing-whitespace beg end))
(goto-char beg)
(evil-join beg end)
(goto-char (1+ beg))
(just-one-space)
(goto-char (cadr (evil-inner-curly)))
(just-one-space))))))