Автоматическая подстановка префиксов на весь файл CSS Emacs lisp

В продолжении своего обучения по использвоанию elisp, я доделал функцию подстановки префиксов так, чтобы она подставляла префиксы на весь файл css.
Вот исхоник:

;; Функция для автоматического подставления
;; Префиксов на весь файл стилей
(defun auto-prefixy (p)
  (interactive "p")
  (save-excursion
    (let ((string (buffer-substring-no-properties (point-min) (point-max)))
          (list-strings)
          (value)
          (result-string))
      (setq list-strings (split-string string "\n"))
      (dolist (element list-strings value)
        (setq element (trim-string element))
        (if (resolve-css-name element)
            (setq result-string (concat result-string (add-prefixies element) "\n"))
          (setq result-string (concat result-string element "\n"))))
      (delete-region (point-min) (point-max))
      (insert result-string)
      (indent-region (point-min) (point-max))
      )))

;; Функция добавления префиксов
(defun add-prefixies (inp-element)
  (let ((prefixies '("-moz-" "-o-" "-webkit-" "-ms-"))
        (it-value)
        (to-return))
    (dolist (element prefixies it-value)
      (setq to-return (concat to-return element inp-element "\n")))
    (trim-string to-return)
    ))

;; Парсинг css строки
;; Если было найдено свойство
;; Требующее префиксов, то вернется
;; t в противном случае nil
(defun resolve-css-name (name)
  (let ((parts (split-string name ":"))
        (available-props '("border-radius"))
        (type)
        (value)
        (it-value)
        (message "success")
        (to-return))
    (setq type (car parts))    ;; Первое значение списка
    (setq value (nth 1 parts)) ;; Получаем второе значение списка
    (setq to-return nil)
    (dolist (element available-props it-value)
      (setq element (trim-string element))
      (if (equal type element)
          (if (equal to-return nil)
              (setq to-return t))))
    to-return))

;; Тримминг строки
(defun trim-string (string)
  (replace-regexp-in-string "\\`[ \t\n]*" "" (replace-regexp-in-string "[ \t\n]*\\'" "" string)))

Комментарии

Популярные сообщения из этого блога

Установка утилиты yandex disk для ubuntu

Отправка пост запроса AngularJS