Настройка Sublime Text для Java (часть 3)

Введение
В прошлой публикации мы установили JDK и выполнили необходимые настройки для компиляции и запуска наших будущих приложений. В этой статье подготовим к использованию еще одну программу, но уже для написания кода. Закрываем все онлайн-редакторы, и делаем шаг в сторону более серьезных инструментов.
Для написания кода на языке Java существует большое количество программ: от мощных и профессиональных таких как Intellij IDEA, Eclipse, NetBeans — их еще называют интегрированными средами разработки (Integrated development environment, IDE), до программ попроще — текстовых редакторов. Самые популярные среди них: Sublime Text, Gedit, Atom, Xcode и т. д.
Профессиональные программисты, как правило, используют IDE. Это многофункциональные программы, упрощающие и ускоряющие процесс разработки, позволяющие автоматически выполнять компиляцию исходного кода, находить ошибки, опечатки и многое другое.
Т.к. вы только начинаете изучать программирование, и ваши задачи небольшие по объему, то мы рекомендуем использовать Sublime Text. На первых порах его функционала хватит за глаза.
А начинать изучение Java с написания кода в мощной, профессиональной среде разработки было бы неверно:
  • Вы запутаетесь во всех кнопках, меню, панелях этих IDE
  • Они слишком умные и многие вещи делают за программиста, что-то подсказывают. Вам это не подходит, т.к. в начале нужно набить шишек, сталкиваясь с разнообразными проблемами. И, конечно же, необходимо научиться их самостоятельно решать
  • Используя IDE, вы быстро привыкните к ее подсказкам и станете зависимыми от них, а мышление при этом останется на прежнем уровне — эволюции не произойдет. Можно легко превратиться в обезьянку, которая тыкает кнопки, но при этом впадает в ступор, если что-то ломается или появляется ошибка.
Позже мы обязательно перейдем на Intellij IDEA, но сейчас важнее настроить ваше мышление на язык Java, а для этого хватит и Sublime Text.
1. Текстовый редактор Sublime Text
На сайте Sublime Text скачайте и установите последнюю версию программы.
Её установка проста и ничем не примечательна. Попробуйте справиться с ней самостоятельно.
Возможностей этого редактора из коробки более чем достаточно для наших нужд. Но всегда можно что-то улучшить, настроив его под себя. Этим мы и займемся.
1.1. Настройка
Функционал редактора можно расширять через плагины. Тут они называются пакетами. За работу с ними отвечает пакетный менеджер package control. Его нужно установить: он позволяет искать, устанавливать и удалять пакеты.
Кликните пункты меню Tools → Install Package Control…
Спустя несколько секунд об успешной установке сообщит это окно.
Теперь с помощью package control установим необходимые нам пакеты. Для этого перейдем в меню Preferences → Package Control (или Ctrl + Shift + p). Отобразится выпадающий список с возможностями менеджера пакетов.
Кликаем мышкой по пункту Install Package. Начнется скачивание доступного списка пакетов, которое займет несколько секунд.
В итоге появится список с пакетами, которые можно установить.
1.2. Русификация
Начнем с пакета, который позволит русифицировать Sublime Text. Он называется LocalizedMenu.
После завершения установки в меню Preferences появится новый пункт Languages. Открываем его и выбираем Русский (ru).
1.3. Подключение терминала
Следующим установим пакет под названием Terminus (можно также выбрать Terminal). Он позволит запускать терминал прямо в редакторе, а не в виде отдельного окна. В нем мы будем: компилировать и запускать программы, работать с Git и с файловой системой.
Попробуйте установить его самостоятельно по аналогии с LocalizedMenu.
Далее настроим Terminus на то, чтобы он запускал терминал в папке, содержащей открытый в редакторе файл. Это очень удобно. Откроем конфиг с настройками через меню Опции → Package Settings → Terminus → Key Bindings.
Откроется двухпанельное окно, в правую панель которого необходимо скопировать и поместить следующий код:
[
    { 
        "keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {
            "panel_name": "Terminus",
            "cwd": "${file_path:${folder}}"
        }
    }
]
Также настроим, чтобы запускался именно cmder (его мы установили в прошлой статье), а не терминал по умолчанию. Для этого опять идем в настройки Terminus, но уже запустим Settings. Снова откроется двухпанельное окно. Приведу полностью код, который у меня прописан в правой панели:
{
    "theme": "rippedcasts",

    "default_config": {
        "windows": "Cmder",
    },

    "shell_configs": [
        {
            "name": "Cmder",
            "cmd": ["cmd.exe", "/k", "G:\\Tools\\cmder_mini\\vendor\\init.bat"],
            "env": {},
            "enable": true,
            "platforms": ["windows"],
        },
    ],
}
Скопируй его и помести к себе, заменив мой путь до файла init.bat, на свой.
Сохраняем и закрываем окно.
Проверим терминал в действии, нажав Ctrl + Alt + t прямо в Sublime Text. Если все сделано правильно, то он успешно запустится в виде отдельной панели внизу окна.
1.4. Отображение кодировки файла
Полезной опцией является отображение кодировка у файла с нашим кодом. Для этого заходим в меню Опции → Настройки и прописываем в правой панели правило «show_encoding»: true.
{
	"font_size": 14,
	"ignored_packages":
	"show_encoding": true
}
После сохранения кодировка должна появиться в правом нижнем углу окна в виде надписи UTF-8.
1.5. Настройка табуляции
Возможно, вы не замечали, но в разных программах (на разных компьютерах) размер табуляции может отличаться (где-то больше, где-то меньше). Самыми популярными размерами являются: 2, 4 и 8 пробелов.
Если размер табуляции в Sublime Text равен четырем пробелам, то уже в браузере, например, на сайте github.com (его мы изучим в последующих статьях) он будет равен восьми пробелам (по умолчанию). Такие отступы выглядят гигантскими. Программисту может быть непривычным читать код с 8 пробелами. Для него это будет некомфортно.
Чтобы вам было понятней, напишите в Sublime Text код из первого урока, и сохраните его к себе на диск под именем MyFirstApp. java (а иначе подсветка не сработает), например, по такому пути D:\Java\StartJava\MyFirstApp.java.
Так этот код будет выглядеть на GitHub:
Если вы внимательно посмотрите на код на картинке из редактора, то в нем можно увидеть точки и длинные тире. Одно тире — это символ одного таба; одна точка — символ одного пробела. Чтобы их отобразить необходимо выполнить настройку.
Откройте файл настроек в меню Опции → Настройки. Появится окно с двумя вкладками (слева Default, справа User). В правую вкладку добавьте строку «draw_white_space»: «all», как показано на рисунке (на остальные параметры не обращайте внимание):
{
        "font_size": 14,
        "show_encoding": true,
        "draw_white_space": "all"
}
Не забудьте сохранить.
Большие отступы — это еще не все. Это пол беды. Есть проблема пострашнее, когда в коде смешивают пробелы и табуляцию.
Программист считает, что раз у него в программе размер таба равен 4 пробела (самый частый вариант), то нет никакой проблемы в том, чтобы иногда вместо таба ставить пробелы в одном и том же классе. Чтобы понять, к чему эта практика смешивания в итоге приведет, давайте вернемся к первоначальной проблеме, когда в разных программах (у разных людей) табы настроены по-разному. В итоге получается следующая картина:
Код в Sublime Text
Код на GitHub
А казалось бы, ничто не предвещало беды! Форматирование кода на GitHub «развалилось, поехало».
Теперь, вернемся к нашим проблемным табам, которые портят форматирование. Отображать их следы мы научились, осталось привести форматирование к единому стилю — использовать всегда и везде только пробелы.
Проблема известная и решение для нее давно существует — это автоматическая конвертация табуляции в пробелы. Это, когда вы нажимаете таб, но вместо него появляются пробелы — очень удобно и безопасно. Этот способ гарантирует, что у вас форматирование в разных программах и на разных компьютерах останется без изменений.
Давайте сделаем такие настройки.
Откроем файл пользовательских настроек: Опции → Настройки → User. Поместим в него два параметра: «translate_tabs_to_spaces»: true и «tab_size»: 4 (хоть данный параметр по умолчания и так имеет значение 4, мы его все же явно укажем, чтобы все нужные нам настройки были на виду).
{
        "font_size": 14,
        "ignored_packages":
        "show_encoding": true,
        "draw_white_space": "all",
        "translate_tabs_to_spaces": true,
        "tab_size": 4
}
«tab_size»: 4 — задает размер отступа для табуляции в 4 пробела.
«translate_tabs_to_spaces»: true — преобразует табуляцию в пробелы.
Не забудьте сохранить файл настроек.
У кого-то может возникнуть следующий вопрос: «Я сделал все необходимые настройки, сохранил файл, вернулся к своему классу, а там ничего не изменилось: смесь пробелов с табуляцией (точек с длинными тире) никуда и не делась».
Внесенные нами настройки не преобразуют уже введенные табы в пробелы. Для такого преобразования в уже созданных классах, нужно нажать в правом нижнем углу на текст с надписью Spaces: 4, и преобразовать отступы (табуляцию) в пробелы:
Проделайте эту конвертацию со всеми вашими классами (если они есть).
Больше никогда и ни каких настроек, связанных с форматированием, вам делать не нужно!
Теперь в ваших классах должны быть только пробелы (точки). Длинных тире быть не должно!
Обратите внимание на зеленые стрелки, которые указывают на вертикальные линии-разделители. Справа и слева от такой линии всегда должно быть 4 пробела (4 точки).
Оцените статью, если она вам понравилась!