Подтвердить что ты не робот

Может ли Sublime Text 2 обладать кодом региона, похожим на Visual Studio?

В Visual Studio вы можете свести к минимуму огромные куски кода, используя регионы; они по существу просто окружают код и сводят его к минимуму в окне.

У Sublime есть функция, подобная этой?

4b9b3361

Ответ 1

По умолчанию вы можете выбрать какой-либо код для перехода на Edit > Code Folding > Fold. Существует множество плагинов, которые используют более сложные опции для сгибания кода.

Ответ 2

Там на официальном сайте есть запрос "спросить об особенностях" здесь.

Но, по-видимому:

FYI, Джон заявил, что это невозможно в текущем внедрение редактора. Похоже, мы ждем V3 ребята.

Джон - программист за Sublime Text 2.

Возможно, существует способ подделать его, создав плагин, который ищет маркеры, и удаляет область кода между маркерами, но, вероятно, это будет плохо выглядеть. С текущим API это, вероятно, лучший выбор!

Кстати, в Sublime Text есть некоторый код, если вы наведите указатель мыши рядом с номером строки, вы увидите некоторые стрелки, появляющиеся, когда вы можете складывать/разворачивать.

Ответ 3

Я закончил использование пользовательских тегов комментариев, отступов на один уровень меньше, чем код, который я хочу сбросить. Он не выглядит лучше, хотя он служит своей цели.

class Foobar {
    // ...some code

// <fold
    function foo() {
    }
    function bar() {
    }
// </fold

    // more code...
}

Это (на данный момент) складывается в:

class Foobar {
    // ...some code

// <fold[...]
// </fold

    // more code...
}

Наличие поддержки ST2 для родной было бы неплохо.

Ответ 4

В этом отображается то, что вы ищете. Вы можете определить теги для #region и #endregion для каждого языка или общий тег для всех из них.

Ответ 5

Если вы одержимы намерениями, это решение может сделать вас неудобными, но вот оно, когда-то, когда я писал полукомплексный плагин 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/С++, как привязывают скобки как собственные уникальные кодовые блоки.

Ответ 6

В свернуть код выберите код и нажмите

ctrl + shift + [

Чтобы развернуть код, поместите туда курсор и нажмите

ctrl + shift + ]

Ответ 7

Я думаю, что, как и я, OP оценил малоизвестную функцию в VS, называемую областями, которые во многом равны свертыванию кода, но FAR более мощный и выше, Dio Phung дал ответ, который я хотел, и я подозреваю, что ОП хотел, но он не поделился в качестве ответа, так что вот оно.

Разница между "свертыванием кода", как это предусмотрено в Sublime Text, заключается в том, что он основан на синтаксисе кода/компилятора, в то время как "регионы" и то, что делает этот плагин, предоставляют вам бесконечно большую свободу, хотя это свобода, которая более или менее зависит от код, с которым вы работаете для начала (глубоко вложенный или правильно модульный).

Если вы используете Sublime Text 3, вот плагин, который может это сделать: github.com/jamalsenouci/sublimetext-syntaxfold - Dio Phung

Ответ 8

В языках, которые поддерживают 3 типа комментариев (например, PHP), я использую хештег для комментариев для регионов, как показано в других ответах. Это также хорошо для отслеживания того, что делается

# default options
    $a = 3;
    $b = 'bob';


$old_code = 1;

# bugfix #130
    $result = magic_function($data);
    fix_stuff($result);

$old_code = $result;

В противном случае используйте тройную косую черту /// или //# и т.д.

Ответ 9

В возвышенном тексте он работает так, он затеняет линии, которые вы хотите свернуть, и нажимает (Control + Shift +?)

У меня самая последняя версия sublimetext.