Отступ CSS в Emacs - PullRequest
       21

Отступ CSS в Emacs

6 голосов
/ 05 августа 2009

Так что авто-отступ emacs для CSS сводит меня с ума. Вот как мне нравится выглядеть CSS:

#foo ul.bar {
    ....
}

    #foo ul.bar li {
        ....
    }

        #foo ul.bar li a {
            ....
        }

Это то, что emacs дает мне с автоматическим отступом:

#foo ul.bar {
    ....
}

#foo ul.bar li {
    ....
}

#foo ul.bar li a {
    ....
}

Мне нравится сохранять свои стили постепенно отступающими, если они используют каскад. Тем не менее, emacs будет автоматически делать отступы на одном уровне.

Что я могу сделать?

Ответы [ 4 ]

3 голосов
/ 11 сентября 2010

Я бы посоветовал вам начать компилировать свой CSS с помощью «Sass» - файлы .scss выглядят так же, как CSS, но позволяют вам вложить правила именно так, как вы хотите в своем примере, создает действительно симпатичный вывод, который выглядит как CSS, созданный вручную, поэтому, во-первых, ваш CSS все еще будет понятен; и, во-вторых, если вы когда-нибудь захотите отказаться от Sass, вы можете просто удалить свои .scss файлы и отредактировать файлы .css с этого момента.

И Emacs уже делает отступ Sass идеально, так как Emacs просто подчиняется обычным правилам подсчета количества фигурных скобок и соответственно отступа. Приведенный выше исходный код в случае преобразования в Sass будет выглядеть следующим образом:

#foo ul.bar {
    ...

    li {
        ...

        a {
            ...
        }
    }
}

Очевидно, это удаляет повторы и облегчает чтение и поддержку вашего CSS. Проект Sass находится здесь: http://sass -lang.com /

3 голосов
/ 06 августа 2009

Я не думаю, что какой-либо из режимов CSS, которые я использовал с Emacs, будет поддерживать этот стиль отступа из коробки - они не смотрят на содержимое селекторов, просто независимо от того является селектором (без отступа) или правилом внутри селектора (отступ на один шаг).

Если вы хотите изменить это, вам нужно переопределить функцию, делающую отступ для вашего режима CSS.

1 голос
/ 22 марта 2013

Я знаю, что это хак, но я видел, что java-режим более или менее хорошо работает с css.

0 голосов
/ 14 августа 2017

Вы можете использовать встроенную идентификацию emacs. Я работаю в любом режиме и неплохо справляюсь с CSS-файлами.

(defun cesco/indent () (interactive) (mark-whole-buffer) (indent-region (point-min) (point-max) nil) (pop-global-mark) )

...