Сокрытие кода. Топовый code folding. VSCode Расширение Explicit Folding


Зачем использовать folding (скрывать код)?

Чтобы во время работы:

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

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


Обычные fold-ы

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

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


Пары #region / #endregion

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


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

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

✅ Можно указать человеческий summary

✅ Можно скрывать все кастомные fold-ы keyboard shortcut-ом


Демонстрирую









Мне так намного проще навигироваться в коде


Мои настройки 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}}}" }
    ]
  },
  // ...
}


Также я использую vscodevim и биндю (1) Space+0 для сокрытия этих кастомных fold-ов, (2) j — на gj, k — на gk, (3) l — l+editor.unfold, 0 — 0+editor.unfold, ^ — ^+editor.unfold, $ — $+editor.unfold


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


Ссылки



Hulvdan