diff --git a/modules/lang/web/autoload/css.el b/modules/lang/web/autoload/css.el index 0888b858d..d2032d261 100644 --- a/modules/lang/web/autoload/css.el +++ b/modules/lang/web/autoload/css.el @@ -10,25 +10,17 @@ (defun +css/toggle-inline-or-block () "Toggles between a bracketed block and inline block." (interactive) - ;; TODO Remove evil dependency (let ((inhibit-modification-hooks t)) - (save-excursion - (cl-destructuring-bind (beg end &rest _) - (or (ignore-errors (evil-a-curly)) - (user-error "No block found")) + (cl-destructuring-bind (&key beg end op cl &allow-other-keys) + (sp-get-thing) + (when (or (string-empty-p op) (string-empty-p cl)) + (user-error "No block found")) + (with-no-warnings (if (= (line-number-at-pos beg) (line-number-at-pos end)) (progn + (goto-char end) (insert "\n") (goto-char (1+ beg)) (insert "\n") - (unless (string-match ";[\s\t]*}$" (buffer-substring-no-properties beg (1+ end))) - (goto-char end) (insert "\n")) - (while (re-search-forward ";[\s\t]*" (1+ end) t) - (replace-match ";\n" t t)) - (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)))))) + (replace-regexp ";\\s-+" ";\n" nil beg end) + (indent-region beg end)) + (replace-regexp "\n" " " nil beg end) + (replace-regexp " +" " " nil beg end))))))