Пользовательское сворачивание для CSS в Vim - PullRequest
2 голосов
/ 09 июля 2010

Я наткнулся на это пользовательское свертывание для 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. Сгибать сечения в зависимости от их уровня.

    Уровень сечения обозначается числом #, поэтому в приведенном выше примере «Глобалы» должны иметь уровень сгиба 1 и «Списки»."- 2. Также может быть третий уровень.

    Текст сгиба для раздела не должен содержать #.

  2. Начать сгиб для объявленияна первом селекторе.

  3. Завершение сгиба на последней пустой строке после закрывающей скобки объявления }.

  4. Отображение все селекторы в тексте сгиба.

    В случае, если они не помещаются в окне, отобразите те, которые соответствуют, и количество не отображаемых.

Я проиллюстрирую это, используя предоставленный образецвыше.

При использовании :set foldmethod=marker и :set foldmarker={,} получается сгиб:

ol,
+----  5 lines: ul -------------------------

dl,
+----  x lines: dl > some .very.long ...----

И я бы хотел, чтобы это было (обратите внимание, что между сгибами нет пустой строки):

+---- ol, ul -------------------------------
+---- dl ---------------------------[1]-----

1 Ответ

0 голосов
/ 09 июля 2010

Проверьте этот сворачиваемый плагин для CSS Я написал для SO. Должно быть легко улучшить его в соответствии с вашими потребностями. Вам придется проверить строки вокруг текущей строки - может быть более эффективно обнаружить все фигурные скобки и кэшировать их, чтобы узнать, когда искать продолжающиеся строки.

...