Я наткнулся на это пользовательское свертывание для CSS в Vim и, вдохновившись этим, я пытался создать свой собственный, имея в виду немного другой результат.Мне пришлось сдаться, так как я не мог заставить поисковые шаблоны работать в режиме свертывания.Не удивительно для меня, так как я скорее начинающий Vim:)
Любая помощь в достижении следующего будет высоко оценена.
Я использую пустую строку (и)для разделения для удобочитаемости.Кроме того, он позволяет осуществлять навигацию с помощью Vim } и {.
Я размещаю каждый селектор на отдельной строке.
Я группирую объявления в разделы, которые часто являются вложенными.
Пример ввода:
/* # Globals
===================================== */
...
/* ## Lists
------------------------------------- */
ol,
ul {
margin-top: 1.6154em; /*21px*/
/* Some other comment */
list-style-position: outside;
}
dl,
dl > some .very.long + selector:not-fitting[on=screen] {
...
Я хочу:
Сгибать сечения в зависимости от их уровня.
Уровень сечения обозначается числом #
, поэтому в приведенном выше примере «Глобалы» должны иметь уровень сгиба 1 и «Списки»."- 2. Также может быть третий уровень.
Текст сгиба для раздела не должен содержать #
.
Начать сгиб для объявленияна первом селекторе.
Завершение сгиба на последней пустой строке после закрывающей скобки объявления }
.
Отображение все селекторы в тексте сгиба.
В случае, если они не помещаются в окне, отобразите те, которые соответствуют, и количество не отображаемых.
Я проиллюстрирую это, используя предоставленный образецвыше.
При использовании :set foldmethod=marker
и :set foldmarker={,}
получается сгиб:
ol,
+---- 5 lines: ul -------------------------
dl,
+---- x lines: dl > some .very.long ...----
И я бы хотел, чтобы это было (обратите внимание, что между сгибами нет пустой строки):
+---- ol, ul -------------------------------
+---- dl ---------------------------[1]-----