Схлопывание кода в Sublime Text 2
Вопрос задан
Изменён 6 лет 6 месяцев назад
Просмотрен 4k раз
Мощный редактор. Устраивает почти всё. Не хватает только нормального схлопывания кода. Как решить эту проблему? Например, не сворачиваются блоки PHP-кода, JavaScript некорректно схлопывается. Буду рад помощи — раздражает запредельно.
- sublime-text
2
Если я не ошибаюсь, встроенное сворачивание кода в sublime работает не по синтаксису, а по индентации. Соблюдайте отступы, и все у вас свернется =)
Ну и два очевидных выхода, если не устраивает такое сворачивание:
- Найти плагин (я глянул в package control по слову fold, не нашел.
- Написать свой плагин
Полагаю, некоторых пользователей могут не устроить ответы «не нашёл плагин», «можно поискать на форумах» и «написать свой плагин», поэтому позволю себе дополнить ответ.
Ув-мым gridsane верно отмечено, что встроенное сворачивание в Sublime Text работает по индентации, а не синтаксису. Соответственно, нам нужно автоматически настроить отступы formatter’ом (beautifier’ом):
Какой форматтер для JavaScript использую я и почему, см. здесь.
Демонстрация сворачивания после форматирования посредством js-beautify .
я не знаю языка PHP, посему не могу порекомендовать beautifier, основываясь на личном опыте. Упомяну только, что на англоязычном Stack Overflow советуют плагины CodeIntel и CodeFormatter.
Спасибо.
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Плагины для Sublime Text 3
Все статьи | Дневник студентаСтатья написана студентом Хекслета.
Друзья! Я бы хотела поделиться минимальным необходимым списком плагинов для Sublime Text 3.
Для того, чтобы устанавливать плагины для Sublime Text 3, нужно сначала установить Package Control, если он у вас еще не установлен. Для этого нужно использовать вот эту инструкцию.
Далее в Sublime переходим Preferences – Package Control. Во всплывающем окне вводим Install Package. Это нужно проделывать каждый раз, когда вы хотите установить какие-либо плагины.
Первый плагин, который необходимо установить – Emmet. Он позволяет ускорить верстку за счет готовых конструкций.
Следующий плагин, который нам необходимо установить – AutoFileName. Он нужен для того, чтобы помогать прописывать путь к файлам. Например, если мы в html-файле пропишем , то при установке курсора на атрибут src плагин автоматически откроет список файлов и папок в той директории, в которой хранится файл html. Это очень удобно и позволяет не ошибаться в написании имени и пути к файлу.
Не стоит оставлять без внимания плагин AllAutoComplete. Он помогает нам при указании нового класса или идентификатора воспользоваться теми классами или идентификаторами, которые уже использовались ранее. Причем не только в том документе, который открыт сейчас, а еще и в тех документах, которые привязаны к этому документу.
Также хотелось обратить внимание на плагин BracketHighlighter. Он подсвечивает начало или конец тех тегов, которые мы выделяем. При большом количестве кода это незаменимо. Вы никогда не ошибетесь, какой div вы нажали.
На мой взгляд, этих плагинов будет достаточно новичку для работы в Sublime Text 3.
Мария Мардеева 30 января 2020
Рекомендуемые программы
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Профессия
с нуля
Фронтенд-разработчик
Разработка фронтенд-компонентов для веб-приложений
3 ноября 10 месяцев
Профессия
с нуля
Python-разработчик
Разработка веб-приложений на Django
3 ноября 10 месяцев
Профессия
с нуля
Java-разработчик
Разработка приложений на языке Java
3 ноября 10 месяцев
Профессия
с нуля
PHP-разработчик
Разработка веб-приложений на Laravel
3 ноября 10 месяцев
Профессия
с нуля
Node. js-разработчик
Разработка бэкенд-компонентов для веб-приложений
3 ноября 10 месяцев
Профессия
с нуля
Верстальщик
Верстка с использованием последних стандартов CSS
в любое время 5 месяцев
Профессия
с нуля
Fullstack-разработчик
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
3 ноября 16 месяцев
Профессия
c опытом
Разработчик на Ruby on Rails
Создание веб-приложений со скоростью света
3 ноября 5 месяцев
Профессия
Новый с нуля
Инженер по тестированию
Ручное тестирование веб-приложений
17 ноября 4 месяца
Please enable JavaScript to view the comments powered by Disqus.
Essential Sublime Text 3 Плагины для PHP-разработчиков
Sublime Text 3Sublime Text должен быть одним из самых популярных текстовых редакторов для написания кода. Хотя Sublime Text 3 все еще находится в стадии бета-тестирования, он относительно стабилен и очень удобен в использовании. Я лично использую его уже более 2 лет, как на работе, так и дома. Он сложный, легкий и простой в использовании. Он также работает на всех основных платформах: Windows, OSX и Linux.
Sublime Text — это не совсем IDE (интегрированная среда разработки), но с установкой нескольких пакетов/плагинов вы действительно можете сделать его идеальным редактором для разработки PHP.0003
Для Sublime Text существует несколько отличных пакетов, помогающих PHP-разработчикам улучшить качество кода и рабочий процесс. Это то, что я считаю необходимыми пакетами для разработки PHP в Sublime Text 3.
Прежде всего, это Package Control. Почему это не предустановлено, я не знаю. Я подозреваю, что у большинства пользователей Sublime Text это уже установлено, но если не получить его сейчас; это сделает установку всех других пакетов, перечисленных здесь (и многих других), чрезвычайно простой. Это как эквивалент apt-get
или homebrew
, если вы с ними знакомы. Вместо того, чтобы вручную загружать или клонировать пакеты git в папку Packages , вы можете просто установить (и удалить) пакеты через палитру команд.
Как только вы начнете использовать Package Control, вы удивитесь, как вы выжили без него!
Каждый разработчик иногда делает опечатку; забыл закрыть некоторые скобки, пропустил точку с запятой, и т. д. . Чтобы избежать этих ошибок, мы можем использовать линтер. SublimeLinter предоставляет основу для линтинга. Сами линтеры распространяются отдельно в виде дополнительных пакетов; для PHP вам понадобится SublimeLinter-php, который предоставляет интерфейс для php -l
для проверки синтаксиса.
Другие полезные линтеры для разработчиков включают SublimeLinter-jshint для JavaScript, SublimeLinter-json для JSON и SublimeLinter-csslint для CSS.
Хорошо написанный код должен использовать согласованный стандарт кодирования, т. е. тип отступа, соглашения об именах, использование пробелов, размещение квадратных скобок, и т. д. . По какому бы стандарту вы ни работали, phpcs поможет вам соответствовать ему.
В отличие от других пакетов, для этого требуется несколько внешних библиотек и некоторая конфигурация; вам понадобятся PHP CodeSniffer, PHP CodeSniffer Fixer и PHP Mess Detector. Установите эти библиотеки и укажите пути их выполнения в настройках phpcs в Sublime, и все будет готово.
Когда вы пытаетесь сохранить файл, он выявляет любые проблемы со стилем файла. PHP Mess Detector проверит такие вещи, как потенциальные ошибки, чрезмерно сложные выражения и избыточный код.
Вы можете определить стандарт кодирования, на основе которого хотите разрабатывать, в настройках пакета. Доступны популярные стандарты, такие как PSR-2 и Zend, а также множество пользовательских, таких как CakePHP, которые можно установить и настроить.
EditorConfig позволяет поддерживать некоторую согласованность стилей кодирования между различными редакторами и IDE. Это особенно ценно при совместной работе с другими людьми, некоторые из которых могут не использовать Sublime Text для написания кода. Стили для проекта определяются в .editorconfig , который затем может быть прочитан текстовым редактором/IDE и применен к ним. Это полезно, помимо прочего, для определения стилей табуляции и концов строк. У большинства редакторов есть плагины для поддержки EditorConfig, включая Atom, Coda, PhpStorm и, конечно же, Sublime Text.
Вы можете узнать больше о EditorConfig и о том, что вы можете определить в файле .editorconfig на официальном сайте. Подробную информацию о пакете Sublime Text EditorConfig можно найти на GitHub.
Хороший код должен быть хорошо задокументирован. PHPDoc является общепринятым средством для выполнения этого в PHP; хотя многие разработчики считают документирование своего кода утомительным. DocBlockr упрощает процесс добавления комментариев PHPDoc (и JSDoc) путем автозаполнения /**
нажатием Enter или вкладки , избавляя вас от некоторых проблем.
Это очень простой маленький пакет, отображающий текущую функцию, которую курсор помещает в строку состояния внизу (рядом с номером строки).
Если вы работаете с Git, Mercurial или SVN, VCS Gutter — удобный пакет для добавления визуальных подсказок относительно того, что изменилось в файле с момента последней фиксации. Он покажет небольшой значок в желобе, чтобы указать, что было добавлено, изменено или удалено.
Одна небольшая проблема, которую я обнаружил с этим пакетом, заключается в том, что если вы хотите просмотреть большой файл журнала в Sublime, это может значительно замедлить реакцию редактора. В этих случаях я обычно временно отключаю VCS Gutter с помощью Package Control.
Это мои семь основных пакетов для разработки PHP в Sublime Text 3. Что вы используете? Не стесняйтесь вносить свои предложения в комментариях ниже.
Sublime Text (3) для PHP-разработчиков
В последнее время многие участники PHP-сообщества проверяют PHPStorm, включая меня и большинство разработчиков, с которыми я работаю. Нам нравится интеллектуальный код, который мы получаем от PHPStorm, но по-прежнему скучаем по скорости, быстрой загрузке и удобству Sublime Text.
Прежде чем я слепо предположу, что PHPStorm — это единственный путь, я хотел бы посмотреть: могу ли я вернуть то, что PHP-ориентированная IDE предоставляет PHP-разработчикам, обратно в Sublime Text и получить лучшее из обоих миров?
Давайте начнем с краткого списка особенностей, которыми PHPStorm действительно выделяется для меня. Обратите внимание: есть миллион других уникальных функций, которые предлагает PHPStorm, но, честно говоря, именно крошечные удобства, которые я видел, обеспечивают самый большой прирост эффективности.
Также обратите внимание: мы говорим о Sublime Text 3.
Что мне нужно от PHPStorm
Без большинства этих замечательных функций, ориентированных на PHP, трудно рекомендовать использование чего-то другого, кроме PHPStorm, даже если он медленнее, дороже и использует больше памяти. Так. Можем ли мы воспроизвести их в Sublime Text?
- Авто-
использование
(импорт) классов - Линейное завершение класса FQCN
- Простой переход к определению символа
- Впрыск легкого конструктора
- Выделить неиспользуемый импорт
- Жёлоба Git
- Анализ кода/проверка PSR-2
- Завершение кода: PHP
- Завершение кода: код проекта
Управление пакетами
Прежде чем мы поговорим о чем-то еще, вам как минимум нужно знать, как устанавливать пакеты в Sublime Text.
Если вы еще этого не сделали, установите Package Control прямо сейчас.
Если не указано иное, каждый последующий пакет следует устанавливать с помощью управления пакетами.
Sublime PHP Companion
Наиболее ориентированный на PHP пакет для Sublime Text называется Sublime PHP Companion.
Как и большинство пакетов, он содержит ряд действий, которые вы можете выполнять. ~~ По умолчанию они сопоставляются с определенными клавишами, но вы всегда можете переназначить их. ~~ Обновление: по умолчанию сопоставления клавиш больше нет. Узнайте больше о том, как настроить сопоставление клавиш PHPCompanion здесь.
- find_use (
F10
) — Когда ваш курсор находится над именем класса, эта команда упрощаетиспользование
(импорт) этого класса. - expand_fqcn (
F9
) — то же, что иfind_use
, но вместо расширения класса в блоке импорта он расширяет встроенный FQCN. - import_namespace (
F8
) — добавляет пространство имен для текущего файла на основе пути к файлу. - goto_definition_scope (
shift+F12
) — то же, что и собственный goto_definition Sublime Text (описано ниже), но с учетом PHP.
AllAutocomplete
Sublime PHP Companion, к сожалению, не анализирует ваши классы и не предоставляет вам автодополнение, но SublimeAllAutocomplete регистрирует имена всех символов (функций, классов и т. д.) в любых файлах, которые вы открыли на других вкладках, и добавляет их в реестр автозаполнения.
Это не совсем то же самое, что и полное автозаполнение с учетом пользовательского кода, но очень помогает.
Cmd-щелчок для определения функции
Sublime PHP Companion позволяет легко щелкнуть правой кнопкой мыши по функциям и перейти к их определениям, но этот ярлык возвращает PHPStorm CMD-щелчок к определению. К вашему сведению, в Sublime Text CMD (или клавиша ctrl в Windows или что-то еще в других системах) называется «Супер».
Сначала создайте файл пользовательской карты мыши. Если у вас его нет, перейдите сюда:
по умолчанию (Linux). sublime-mousemap
в ~/.config/sublime-text-3/Packages/User
Mac Создать по умолчанию (OSX).sublime-mousemap
в ~/Library/Application Support/Sublime Text 3/Packages/User
Windows Создайте по умолчанию (Windows).sublime-mousemap
в %appdata%\Sublime Text 3\Packages\User
Затем поместите это в файл:
[ { "кнопка": "кнопка1", "количество": 1, "модификаторы": ["ctrl"], "press_command": "перетащить_выбрать", "команда": "goto_definition" } ]
Вы только что научили Sublime Text этому: «когда я удерживаю Ctrl и нажимаю кнопку один, запускаю команду goto_definition
». Сделанный! (первоисточник)
Примечание. Изначально я хотел предложить использовать модификатор
super
, чтобы он был похож на PHPStorm; однако это переопределило бы поведение Sublime Text «удерживатьсупер
и щелкнуть, чтобы получить несколько курсоров», поэтому я этого не сделал.
Анализ кода и PHP_CodeSniffer
Sublime PHPCS
Существует пакет с именем Sublime PHPCS, который содержит PHP_CodeSniffer, PHP linter, PHP Mess Detector и Scheck (?) для проверки вашего кода.
Вы можете настраивать всевозможные параметры, но в основном вы будете запускать его каждый раз, когда сохраняете файл (хорошо, но может раздражать), или каждый раз, когда вы запускаете его из командной палитры (нажмите супер- shift-p
, а затем введите, пока не появится «PHP Code Sniffer: Sniff this file») или сочетание клавиш ( ctrl-super-shift-s
по умолчанию).
Вы получите подсветку желоба и список всех мест, где ваш код не удовлетворяет линтеру.
Обратите внимание, что для этого и любых других пакетов, использующих сниффинг и анализ кода, потребуются установленные приложения командной строки, поэтому обязательно посетите их сайты и прочтите инструкции.
Плагин PHP_CodeSniffer Sublime Text 2/3
Интересно, что есть относительно незаметный плагин, делающий то же самое (но только для PHPCS), написанный той же группой, которая написала PHP CodeSniffer, так что, возможно, стоит его проверить. ; он называется PHP_CodeSniffer Sublime Text 2/3 Plugin (творческий, я знаю.)
Я никогда не пользовался этим, так что будьте осторожны.
Майк Фрэнсис Сценарий сборки PHP CS Fixer
Майк Фрэнсис также поделился написанным им пользовательским сценарием сборки, который запускает PHP-CS-Fixer в вашем коде всякий раз, когда вы его запускаете. Это означает, что он фактически применит PSR-2 (или любой другой стандарт PHP-CS-Fixer, который вы ему передадите) к вашему коду для вас.
Тейлор Отвелл поделился со мной одним и тем же сценарием, но он написал его не так хорошо, как Майк. 🙂 Однако он упомянул, что вы можете установить это предпочтение: "show_panel_on_build": false,
Это предотвратит появление командной панели с вашими результатами каждый раз, что может очень быстро раздражать.
SublimeLinter
SublimeLinter PHP (и его необходимая зависимость, SublimeLinter) полагаются на встроенный линтер PHP (так же, как плагин Sublime PHPCS выше). Это более простая версия, что только запускает линтер, больше ничего.
DocBlockr
Если вы из тех, кто использует PHPStorm, больше шансов, что вы из тех, кто пишет блоки Doc. (Просто говорю’).
DocBlockr упрощает создание новых блоков документации, но, что более важно, если вы создаете блок документации сразу над определенной функцией, он извлекает информацию о параметрах этой функции и предварительно заполняет ее в вашем блоке документации. Бум.
Помощники Git
Sublime Text Git
Вы из тех, кто ненавидит переключаться с IDE на терминал/клиент Git? Sublime Text Git предоставляет доступ ко многим командам Git непосредственно из палитры команд Sublime Text.
GitGutter
GitGutter показывает вам разную информацию о статусе каждой строки — была ли она изменена, вставлена или удалена?
Это не так мощно, как Git Git Gutter в PHPStorm, но это шаг в правильном направлении.
Подсветка синтаксиса
- PHP-Twig для Twig
- Маркер Laravel Blade для Laravel Blade
- Подсветка скобок — показывает начальную и конечную скобки в поле для блока, в котором в данный момент находится курсор. 0080
PHPUnit Build
Существует отличный плагин, который упрощает запуск PHPUnit из командной палитры или с помощью сочетания клавиш: SimplePHPUnit
Как следует из названия, вы устанавливаете пакет, и все готово.
CodeIntel
CodeIntel должен предоставлять Sublime Text информацию о языке, на котором вы работаете. Он должен обеспечивать автозаполнение, простой переход к определению и информацию о функции, в которой вы сейчас работаете.0003
Почему я все время говорю «должен» и «должен»? Потому что я еще не встречал разработчика PHP, который смог бы последовательно и предсказуемо настроить и запустить CodeIntel. У вас есть? Ударь меня.
Другие плагины
Когда я спросил в Твиттере, многие люди поделились плагинами. Поскольку я ими не пользуюсь, я могу лишь расплывчато ими поделиться, но я уверен, что все они заслуживают быстрой проверки.
- ApplySyntax расширяет способность Sublime Text определять, какой синтаксис применять к вашему текущему файлу
- DashDoc позволяет пользователям Mac с приложением Dash легко искать любое слово в Dash
- Отображение имени функции добавляет в строку состояния информацию о текущем файле, классе и имени функции/метода
- phpfmt выглядит как альтернатива PHP CS Fixer
- CodeComplice — это информация о коде, но более новая — может быть, это и есть решение?!
- Клиент Xdebug
- EditorConfig — это стандарт для совместного использования определенных шаблонов конфигурации редактора для каждого проекта. Этот плагин позволяет импортировать и использовать их в Sublime Text. (узнайте больше о формате EditorConfig)
- SublimePrettyJSON отлично подходит для быстрого форматирования JSON
- CaseConversion упрощает преобразование между змеиным регистром и верблюжьим регистром и паскалем, а также разделение и соединение слов и все остальное.
CodeBug для Xdebug
Вам не хватает интеграции Xdebug в PHPStorm? Попробуйте Codebug, автономный клиент xdebug.
Несколько общих советов по Sublime Text
Этот пост не является введением во все, что связано с Sublime Text, но я хочу осветить здесь несколько важных моментов.
Поиск файлов с помощью «Goto Anything» (cmd-p)
Если вы нажмете super-P
, вы получите чрезвычайно мощную палитру Goto Anything
, которая позволяет вам легко находить файлы, но вы можете немного дальше: если вы найдете свой файл (например, набрав Handler.php
), вы также можете вызвать его открытие в определенной строке ( Handler. php:35
) или по определенному символу ( Handler.php@report
).
Поиск команд с помощью палитры команд (cmd-shift-p)
В то время как палитра Goto Anything
позволяет вам искать файлы в вашем проекте, палитра команд позволяет вам искать команды.
Это означает, что любая команда, которую Sublime Text позволяет вам выполнять (запускать сборки, переименовывать файлы и т. д.), а также команды из сторонних пакетов (пронюхать этот файл и т. д.), может быть запущена исключительно с клавиатуры, даже если вы не знаете (или не имеете) сочетания клавиш.
Поиск символов с помощью «Перейти к символам» (cmd-r)
Если вы нажмете super-R
, вы получите палитру Goto Symbol
, которая позволит перейти к любому символу в вашем текущем файле.
Символы — это такие вещи, как классы, методы или функции.
Несколько курсоров
Многие редакторы добавили несколько курсоров, но Sublime Text по-прежнему делает это лучше всего.
Если вы никогда не пробовали это, поищите где-нибудь, но вот краткое введение:
Откройте файл. Удерживайте «супер» (cmd на Mac) и щелкните несколько раз вокруг файла. Теперь начните печатать. БУМ.
Еще один отличный прием: поместите курсор на обычное слово (например, на имя переменной). Теперь нажмите Super-D
несколько раз. Теперь у вас есть несколько выбранных экземпляров этой переменной, и вы можете манипулировать ими всеми одновременно.
Или выберите пять строк и нажмите Super-shift-l
. Проверь это.
Есть еще штук, которые вы можете сделать с этим, если проявите творческий подход.
Нечеткое соответствие
Знаете ли вы, что при использовании любой из палитр команд в Sublime Text вам не нужно заканчивать одно слово?
В большинстве редакторов (таких как PHPStorm), если вы хотите найти файл с именем resources/views/conferences/edit.blade.php
, вы можете ввести resources/views/conferences/edit. blade.php
или Conferences/edit.blade.php
, но в Sublime Text все, что вам нужно, это что-то вроде resvieconedblp
. Просто введите достаточно, чтобы порядок букв, который вы вводите, мог существовать только в строке, которую вы ищете, и все готово. Пропустите букву здесь, пропустите косую черту там — нет проблем.
Разное
Вам предстоит узнать гораздо больше о том, как работает Sublime Text, и вам доступно множество инструментов и курсов. Это не исчерпывающий ресурс обо всем, что есть хорошего в Sublime; эти руководства уже написаны.
Если вы хотите узнать больше о Sublime Text, есть два отличных ресурса, которые я бы рассмотрел.
- Sublime Text Power User — это серия книг и видео моего друга Уэса Боса, которая научит вас всему, что вам нужно, чтобы использовать Sublime Text как босс. Это самый простой способ для новичка в Sublime Text быстро приступить к работе. Кроме того, я связался с Уэсом, и он поставил мне 9. 0009 Купон GEEK на скидку 10 долларов США (предупреждение: мне тоже помогает).
- ShortcutFoo — отличный ресурс для изучения сочетаний клавиш в любой среде. У них есть программы для всего: от Vim до Sublime Text, Photoshop и Excel.
Вердикт
Давайте взглянем на наш список и посмотрим, что мы обработали:
- ~~Встроенное завершение класса FQCN~~ (Sublime PHP Companion)
- ~~Легкий переход к определению символа~~ (Sublime PHP Companion)
- ~~Перейти к определению символа~~ (Sublime PHP Companion)
- Легкая инъекция конструктора (Макро?)
- ~~Выделить неиспользуемый импорт~~ (SublimeLinter)
- ~~GitGutter~~ (GitGutter)
- ~~Анализ кода/проверка PSR-2~~ (SublimePHPCS и т. д.)
- Завершение кода: PHP
- Завершение кода: код проекта
Вообще-то неплохо. Давайте поговорим о том, чего не хватает:
- Внедрение конструкции (например, упрощение внедрения свойства в конструктор как свойства, установка его в конструкторе и определение свойства класса) — это то, что, как мне кажется, можно решить с помощью умного макроса — но такого умного макроса я еще не видел.