В Visual Studio вы можете минимизировать огромные куски кода, используя регионы; по сути, они просто окружают код и минимизируют его в окне.
Есть ли в Sublime аналогичная функция?
В Visual Studio вы можете минимизировать огромные куски кода, используя регионы; по сути, они просто окружают код и минимизируют его в окне.
Есть ли в Sublime аналогичная функция?
По умолчанию вы можете выбрать некоторый код, чтобы перейти к Edit > Code Folding > Fold.
. Существует множество плагинов, которые используют API для свертывания кода для получения дополнительных опций.
regions
похоже на Visual Studio? Пожалуйста, укажите плагин, который это делает, спасибо.
- person emartel; 14.12.2012
regions
в VS? Я не слишком знаком, особенно потому, что regions
означает что-то другое в ST.
- person BoundinCode; 14.12.2012
#region RegionName
/#endregion
, которые сворачиваются в одну строку с надписью RegionName
. Я много использовал ST2 и еще не видел плагина, который бы это делал.
- person emartel; 14.12.2012
API
нет возможности вручную вызвать складывающиеся стрелки, чтобы обеспечить хорошую интеграцию, поэтому я сказал, что это, вероятно, не будет выглядеть слишком хорошо.
- person emartel; 14.12.2012
На официальном сайте есть запрос «запросить функции» здесь.
Но видимо:
К вашему сведению, Джон заявил, что это невозможно в текущей реализации элемента управления редактором. Похоже, мы ждем V3, ребята.
Джон — программист Sublime Text 2.
Может быть способ подделать его, создав плагин, который ищет маркеры и удаляет область кода между маркерами, но это, вероятно, будет выглядеть не очень хорошо. С текущим API это, вероятно, ваш лучший выбор!
Кстати, в Sublime Text есть некоторое свертывание кода, если вы наведете указатель мыши рядом с номером строки, вы увидите несколько стрелок, появляющихся, когда вы можете свернуть/развернуть.
В итоге я использовал пользовательские теги комментариев с отступом на один уровень меньше, чем код, который я хочу свернуть. Выглядит не лучшим образом, хотя служит своей цели.
class Foobar {
// ...some code
// <fold
function foo() {
}
function bar() {
}
// </fold
// more code...
}
Это (на данный момент) складывается до:
class Foobar {
// ...some code
// <fold[...]
// </fold
// more code...
}
Было бы неплохо иметь встроенную поддержку ST2 для этого.
Это похоже на то, что вы ищете. Вы можете определить теги #region и #endregion для каждого языка или общий тег для всех языков.
Если вы одержимы намерением, это решение может вызвать у вас дискомфорт, но вот оно, когда-то давно, когда я писал полусложный плагин jQuery, у меня были константы, переменные, разделы частных и общедоступных функций и такие складки. ;
;(function($, undefined, window) {...
/* Consts */
var FOO = "BAR";
/* Variables */
var m_Foo = "bar";
/* Functions */
/* Public Functions */
function foo() {...}
function bar() {...}
/* Private Functions */
function _foo() {...}
function _bar() {...}
})(jQuery, window);
Как видите, все дело в намерении. Секции можно складывать; Consts
, Variables
, Functions
. А также внутри секции Functions
можно сложить Public Functions
и Private Functions
.
Вы также можете использовать однострочный комментарий (//), чтобы назвать свою складку. Итак, основная идея проста; ST2 считает, что более предназначенные строки принадлежат первому менее преднамеренному комментарию над ними, например, компиляторы C/C++ обрабатывают скобки как собственные уникальные блоки кода.
Чтобы свернуть код, выберите код и нажмите
ctrl + shift + [
Чтобы развернуть код, поместите туда курсор и нажмите
ctrl + shift + ]
Я думаю, что, как и я, ОП оценил малоизвестную функцию в VS под названием регионы, которые многие приравнивают к сворачиванию кода, но НАМНОГО мощнее и выше, Дио Фунг дал ответ то, что я хотел, и я подозреваю, что хотел ОП, но он не поделился ответом, так что вот он.
Разница между «свертыванием кода», как это предусмотрено в Sublime Text, заключается в том, что оно основано на синтаксисе кода/компилятора, в то время как «регионы» и то, что делает этот плагин, дают вам бесконечно больше свободы, хотя эта свобода более или менее зависит от код, с которым вы работаете для начала (глубоко вложенный или правильно модульный).
Если вы используете Sublime Text 3, вот плагин, который может это сделать: github.com/jamalsenouci/sublimetext -syntaxfold — Дио Фунг
В языках, которые поддерживают 3 типа комментариев (например, PHP), я использую комментарий хэштега для регионов, как показано в других ответах. Это также хорошо для отслеживания того, что делается
# default options
$a = 3;
$b = 'bob';
$old_code = 1;
# bugfix #130
$result = magic_function($data);
fix_stuff($result);
$old_code = $result;
В противном случае используйте тройную косую черту ///
или //#
и т. д.
В возвышенном тексте это работает так, он затеняет строки, которые вы хотите свернуть, и нажимает (Control + Shift +?)
У меня самая последняя версия сублимтекста.