Настройка Atom от GitHub для работы с PHP, Python и некоторыми другими языками программирования

  • Tutorial
Редактор Atom от GitHub после установки поддерживает подсветку синтаксиса для основных языков программирования. Однако для более полноценной работы — валидации кода, проверки синтаксиса, базовой отладки и снипетов, как и в большинстве редакторов кода, необходимо подключение дополнительных пакетов и ряд действий.
Под катом так же дополнительно расскажем:
  • про запуск скриптов
  • работу в терминале прямо из интерфейса Atom
  • и чуть-чуть про заявленную поддержку Swift от Apple

Внимание трафик — кликабельные картинки и анимированые gif. (~3МБ)


Изначально считаем что у Вас установлена поддерживаемая операционная система, Node.JS и Atom. В примерах мы работаем в OpenSUSE (13.1) в нём (и вообще в дистрибутивах *nix) уже «из коробки» обычно есть не только Python но PHP и другие языки программирования. Так же исправно работает на Ubuntu (>12.04). Если у Вас Windows 7 или 8, а раньше Вы с ними (языками) не работали то их предварительно необходимо скачать и установить.
Примечание: перед началом работы желательно запускать Atom под root.
опыт показывает — работает стабильнее


Linter


Идеология Atom к подсветке в том, что основным пакетом для работы с синтаксисом и его анализа будет Linter, который является верхним уровнем в API для других линтеров кода. Это сделано для прекращения «войны между плагинами» (The idea is to stop the linter plugins war, by providing a top level API for linters to parse and display errors in the Atom editor). Тем не менее, не все сторонние разработчики придерживаются этой идеологии и пишут свои плагины.

image

На текущий момент доступно для 21 языка :
  • linter-php , для PHP `php -l`
  • linter-phpcs , для PHP, `phpc`
  • linter-phpmd , для PHP, `phpmd`
  • linter-pylint , для Python, `pylint`
  • linter-pyflakes , для python, `pyflakes`
  • linter-pep8, для python, `pep8`
  • linter-flake8, для python, `flake8`
  • linter-javac , для Java, `javac`
  • linter-jshint , для JavaScript and JSON, `jshint`
  • linter-jscs , для JavaScript, `jscs`
  • linter-scss-lint , для SASS/SCSS, `scss-lint`
  • linter-coffeelint , для CoffeeScript, `coffeelint`
  • linter-csslint , для CSS, `csslint`
  • linter-rubocop , для Ruby and Ruby on Rails, `rubocop`
  • linter-tslint , для Typescript, `tslint`
  • linter-xmllint , для XML, `xmllint`
  • linter-shellcheck , для Bash, `shellcheck`
  • linter-scalac , для Scala, `scalac`
  • linter-clang , для C / C++, `clang`
  • linter-ruby , для ruby, `ruby -wc`
  • linter-lua , для Lua, `luac -p`


Пакет Script: запуск программ из Atom


Script — пакет для запуска кода в atom.

Установка пакета Script, возможна из командной строки:

apm install script

или меню
Packages->Settings View->Install->Packages

В результате должны поддерживаться следующие языки (26):
AppleScript
Bash
Behat Feature
Coffeescript
CoffeeScript (Literate) ^
Cucumber (Gherkin) *
Elixir
Erlang †
F# *
Go *
Groovy
Haskell
Javascript
Julia
LilyPond
LiveScript
Lua
MoonScript
newLISP
Perl
PHP
Python
RSpec
Ruby
Scala
Swift


Каждый язык работает, при наличии предварительно установленного компилятора / интерпритатора.
Пакет Script обновляется довольно часто. Например поддержка Swift появилась менее двух недель назад. Так что скорее всего в ближайшее время появится поддержка новых языков.

Для запуска программы необходимо выбрать
Packages-->Script-->Run



Дополнительные опции можно найти в документации либо на страницах Atom`а или проекта.

Для функционирования должен быть создан рабочий каталог.
Путь к нему нужно прописать здесь:
Packages-->Script-->Configure Script-->Current Working Directory
Заявку разработчикам на поддержку нового языка можно оставить здесь (отвечают быстро)

И немного юмора от разработчиков пакета Script,
у которых, судя по всему, спрашивают всё на свете:

первод: Атом не может найти Нод | Руби | Питон | Мои носки

Python


Поддержка подсветки этого языка идёт изначально. Пакеты для работы с синтаксисом и отладки:
Linter + Language Python + Linter Python Pep8 + Script

Script запускает код на Python, а Linter и Linter Python Pep8 покажут синтаксические ошибки.
Возможно Вам, для работы с Python также поможет Atom Python Debugger.
Подсветка ошибок и запуск после установки будут выглядеть так:


PHP


Для PHP мы так же подключали Script и некоторые пакеты:

Atom показывает ошибки синтаксиса и запускает php скрипт:





Swift


Для Mac OS есть по меньшей мере два варианта запуска кода Swift:

К сожалению под Mac ничего не пишем, поэтому этот пункт со слов разработчиков.
Сразу отмечено, что Swift запустится только на Mac OS, другие дистрибутивы его не поддерживают.
Подcветка синтаксиса swift работает на любом дистрибутиве после установки пакета Language Swift:


Терминал


Для запуска исполняемого кода С, C++, Java иногда проще использовать сторонний пакет (не пакет Atom, а пакет вашего дистрибутива), который запускается через терминал, поскольку сам Atom поддерживает большое количество языков. Если Atom выступает в качестве редактора кода, a терминал рядом запускает его — это очень удобно для нас, поскольку терминал не имеет такое преимущество редактирования, как Atom.
Для запуска терминала в окне Atom установите пакет Term. Для запуска терминала в окне Atom выбрать
Packages-->Command Palette-->Toggle и Term
с нужными параметрами.



В заключении ещё один интересный кликабельный анимационный gif от разработчиков script, ссылки.

image

Ссылки


  • +27
  • 107k
  • 9
Поделиться публикацией
Комментарии 9
    0
    Можно ли запустить код в текущей строке, со вставкой результата в эту же строку, как в текстмейте?

    Можно ли уже сегодня использовать атом вместо саблайма?
      0
      … код в текущей строке...
      На личном опыте не пробовал, но есть такой пакет ShellScript как раз из textmate
      Можно ли ...

      Да, если Вы:
      • делаете небольшой проект
      • не работаете с файлами более 2-х мегабайт — Atom can only handle files < 2MB, for now
      • работаете в *nix среде — под Windows он пока не такой стабильный
      • обладаете запасом терпения — как ни как бета, со всеми вытекающими, например иногда окно настроек залезает в окно предварительного просмотра (неожиданный ход)

      На мой взгляд всё зависит от языка (языков) на которых Вы пишите — если они ориентированы на веб, и выполнены перечисленные условия то Atom самое — то. К тому же каждый день выходят новые пакеты, а существующие обновляются (и сам Atom тоже).
      0
      Не разобрался как скрыть панель меню, как на последнем скриншоте, есть ли в нем такая функция?
      Toggle Full Screen, Maximize не скрывают меню.
        0
        На последнем скриншоте мак. Там у всех приложений меню всегда отдельно, сверху экрана.
        0
        Респект от автора linter'a, за обзор. Просьба добавить имеющиеся линтеры github.com/AtomLinter/Linter#available-linters
          0
          Кроме раздела о Linter, обновил раздел про Script.
          В него добавлена поддержка LilyPond (Whoa, an audio language!)
          Кроме того они уже сами предлагают размещать им заявки на новые языки (You only have to add a few lines in a PR to support another).
          Пользуясь случаем (русскоговорящий человек из мира Atom), вопрос — в своих проектах Вы используете Atom?
          0
          На проекте в несколько сот файлов жутко тормозит.
            0
            Какой(ие) язык(и) проекта, если не секрет?
            0
            Красивая вещь, но во время установки плагинов начал вешаться.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое