SublimeText не позволит мне ввести фигурную скобку для условного оператора if-else с одним оператором - PullRequest
0 голосов
/ 07 сентября 2018

Фон

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

Мой рабочий процесс

Я загружаю пример кода из книги и запускаю его через cpplint. Я переформатировал пример кода, чтобы по большей части cpplint был доволен.

Моя проблема

Когда я сталкиваюсь с оператором if-else, я не могу набрать фигурное в конце if (или следующего else). Взять, к примеру, этот раздел кода:

if (length == 0) 
    cout << "Cannot delete from an empty list." << endl;
else
{
    loc = seqSearch(removeItem);

    if (loc != -1)
        removeAt(loc);
    else
        cout << "The item to be deleted is not in the list."
             << endl;
}

Несмотря на то, что я знаю, что не требуется для форматирования как такового, я хочу изменить формат так, чтобы прогон через cpplint был чистым.

if (length == 0) {  <--- add this "{"
    cout << "Cannot delete from an empty list." << endl;
} else {            <--- and put "else" on the same line as "{" and "}"
...

Когда я помещаю курсор в конец строки if (length == 0), я не могу набрать {. Следующее сообщение - это все, что я вижу в консоли (после включения отладки):

command: wrap_block {"begin": "{", "end": "}"}

Мне нужно пройти много шагов, чтобы получить скобку там, где я хочу скобку. Добавление одного заранее до else не позволяет мне ставить один после условного if (например, if (length == 0) {). ST также запрещает мне печатать один после else, но я могу набрать один до else.

Например:

if (location < 0 || location >= length) <--- I can't type a "{" here
    cout << "The location of the item to be "
         << "replaced is out of range." << endl;
else       <-------------------------------- nor here
    list[location] = repItem;

В итоге

Если я набираю свежие биты кода вручную, я могу набрать { там, где я хочу. Однако, если там уже есть if-else и у него нет фигурных скобок, добавление { после if или else запрещено. Я боюсь, что мне придется отключить функцию автосопаривания ST, чтобы исправить это.

Вопрос

Что я могу сделать, чтобы решить эту проблему и иметь возможность ставить фигурные скобки там, где я хочу?

Подробная информация о моей настройке

macOS 10.12.6 (Sierra) и SublimeText версии 3

Установленных пакетов:

  • "Git"
  • "GitGutter"
  • «Контроль пакетов»
  • "SideBarEnhancements"

Four packages are shown when I go to Package Control::List Packages

Содержимое «Настройки»> «Настройки пользователя. Настройки пользователя»:

{
"color_scheme": "Packages/Color Scheme - Default/Solarized (Light).tmTheme",
"draw_white_space": "all",
"font_size": 12,
"ignored_packages":
[
    "Vintage"
],
"rulers":
[
    80
],
"tab_size": 4,
"translate_tabs_to_spaces": true
}
...