Сокрытие кода. Folding. VSCode Расширение Explicit Folding


Показываю

















Мне так намного проще бегать по коду


Зачем использовать folding / скрывать блоки кода

  1. Проще удерживать важные куски кода в голове

  2. Отображать только важное, а неважное — не отображать (= забрать у всякой чуши в коде возможность отвлекать / тратить энергию на распознавание того, что она делает)

  3. Повысить лимит размера файла перед тем, как сочтем, что его пора разбивать на более мелкие, специализированные

  4. Сократить количество функций, что вызываются лишь 1 раз (вместо функции ➜ inline-им её там, где вызывается ➜ оборачиваем в fold регион)


Обычные fold-ы

❌ Не позволяют задать область сокрытия кастомной области кода

❌ Команды «Fold level 1» скрывают все на 1-ом уровне. Но есть более сложные функции, которым я бы хотел описать области сокрытия + задать им summary того, что они делают


Пары #region / #endregion

❌ Слишком много букв


Big Brain Giga Chad VSCode Расширение Explicit Folding

✅ Позволяют задать кастомные области сокрытия кода

✅ Можно прописать им человеческий summary

✅ Можно скрывать все кастомные fold-ы keyboard shortcut-ом (я по-умолчанию гоняю с скрытыми fold-ами)


Мои настройки VSCode

// VSCode Preferences: Open User Settings (JSON)
{
  // ...
  "editor.defaultFoldingRangeProvider": "zokugun.explicit-folding",
  "explicitFolding.rules": {
    "*": { "begin": "##", "end": "##" }
  },
  "[python]": {
    "explicitFolding.rules": [
      { "begin": "##", "end": "##" },
      { "begin": "cog}}}", "end": "{{{end}}}" }
    ]
  },
  "[proto]": {
    "explicitFolding.rules": [
      { "begin": "message", "end": "}" },
      { "begin": "cog}}}", "end": "{{{end}}}" }
    ]
  },
  // ...
}

для cog тут заменил [[[]]] на {{{}}}, чтобы у меня кодогенерация не отрабатывал


Настроил с vscodevim

Биндю

  1. Space+0 для сокрытия этих кастомных fold-ов

  2. j — на gj, k — на gk (при нажатии вверх/вниз я fold перескакиваю, а не раскрываю его)

  3. ctrl+d — на 12j, ctrl+u + на 12k (чтобы тоже перескакивали fold-ы)

  4. ll+editor.unfold, 00+editor.unfold, ^^+editor.unfold, $$+editor.unfold

см settings.json


На подумать


Hulvdan