これがないと捗らない、僕が使ってるAtomパッケージ(late2017)

Atomのカスタマイズはパッケージだけじゃないんだけど、とりあえずパッケージ入れないことには始まらないってことで、2017年の棚卸し的に列挙しておこうと思う。

僕の場合、Ruby(Rails)とJavaScript,HTML,CSSを書くことが多いのでそのへんに特化してるカスタマイズになってるはず。使用パッケージが結構多くてそれぞれのパッケージ間でキーマップがバッティングしてたり、スタイルの競合がおこってたりするのでstylesheetとkeymapで弄ってたり、configで特別な設定してたりするけど、それはそれで別の記事に書く。

最近極まりつつある入力環境カスタマイズシリーズ
  • [これがないと捗らない、僕が使ってるAtomパッケージ(late 2017)](/atom-packages-late-2017)
  • [これがないと捗らない、僕がカスタムしてるAtom設定(late 2017)](/atom-customize-late-2017)
  • [これがないと捗らない、僕のAquaSKKカスタマイズ(late 2017)](/aqua-skk-customize-late-2017)
  • [これがないと捗らない、僕のErgoDoxファームウェア設定(late 2017)](/ergodox-customize-late-2017)
  • [これがないと捗らない、僕のKarabiner-elementsカスタマイズ(late 2017)](/karabiner-customize-late-2017)

テーマ

UIテーマ

atom-material-ui

いろいろ設定できるし見やすいので。
ちなみに設定だけだと各種パッケージと上手く行かなかったりするので
ゴリゴリにStylesheet弄ってる。そこについては後日書きます。

シンタックステーマ

gruvbox-plus-syntax

ビビッドな発色も少なく丁度いい感じ。
すごい好きなんだけど、ややメジャーではないらしくエディタのテーマとか選べるツールとかにgruvboxテーマがないのが残念。

共通

選択系、変換、入力補助

Sublime-Style-Column-Selection

SublimeText的な矩形選択(見たままの四角の範囲を選択可能)。

change-case

選択した単語のキャメルケース、スネークケースとかを相互に変換。ケバブケースもドット記法なども幅広く対応しててうれしい。

editorconfig

コーディングフォーマット統一のためのeditorconfigをAtomで対応するためのパッケージ。

expand-region

選択範囲を文字、単語、クォートや括弧で囲んだ要素、と順々に大きくできる。

highlight-column

キャレットのある列をハイライト。

highlight-line

キャレットのある行をハイライト。

highlight-selected

選択してるものと同じものをハイライト。

line-jumper

設定した行数文だけキャレットを一気に移動する。僕はEmacsのページ送り的な送り用途として使用している。

lines

選択した複数行をA-Z順にソート

toggle-quotes

シングルクォートとダブルクォートのトグル変換。configで設定すれば例えばバッククォートも対応できたりする。

toggler

Booleanのような二元的要素をトグル変換。専用のconfigを設定すれば、自分で対応を文字列を増やせる。

trailing-semicolon

行末にセミコロンとカンマをつける。キーバインドで設定すると捗る。

trailing-spaces

行末のスペースを目立たせる。

sequential-number

複数行にわたって連番生成連番の文字列を生成。

show-ideographic-space

全角スペースを目立たせる。わかりやすくStylesheetでカスタムした設定すると良い感じ。

symbols-tree-view

メソッド定義などの一覧をドロワーにツリー型で表示。

tabs-to-spaces

インデントのタブorスペースをトグル変換。ファイル保存時にファイル全体に対して自動実行も可能。

todo-show

プロジェクト内に存在するTODOやNOTEなどのコメントを抽出して表示。

multi-cursor-plus

デフォルトより高機能なマルチカーソル。キーバインドがバッティングしやすいので僕はゴリゴリにkeymapを編集してる。

pigments

カラーコードになってる部分をその色で表示。CSSとか書くなら。StylusやSassの変数も対応してるので重宝する。

regex-railroad-diagram

正規表現をビジュアルで表示してくれる。

autocomplete-paths

path入力のAutocompleteアドオン、でもたまに邪魔なときがある気がする。

ファイル、タブ、ペイン操作系

atom-fuzzy-grep

プロジェクト内をag的なfuzzyGrepしてファイル表示。

split-diff

Paneで分割してDiff表示、見やすい。しかも保存してない状態でもDiffとれるので、長大な文字列とか大きめなオブジェクトを一時的に比較するときも重宝する。

advanced-open-file

ディレクトリ毎に絞り込みでファイルを開ける、フルキーボードで階層ごとに掘っていく場合に便利。

douglas

CLI用リポジトリ管理ツールghqのローカル管理下にあるプロジェクトのショートカット、全てのプロジェクトがGit管理されていればプロジェクトマネージャーはこれだけで十分だと思う。

expose

開いてるタブをmacのexpose的に表示、切り替えできるやつ。

hey-pane

複数paneで分割してる時にアクティブなペインを自動的にほぼ最大化する。フォーカスしたペインに自動的に適用したりもできる。

tree-view-filter

tree-viewで表示しているファイルをインクリメンタルに絞り込む。

tree-view-git-status

tree-view上でGit-statusによる色分け表示する。追加ファイルや変更したファイルとかが視覚的にわかりやすいし、未コミットのファイルもみつけやすい。

zentabs

最大タブ数の設定制御。設定数を越えると古いタブから自動的に閉じていれ変わる挙動になる。設定でピン止めしたファイルや、未コミットファイル除外したりもできる。たくさんファイル開きすぎてわかんなくなっちゃうので。

auto-encoding

エンコーディングの自動判別。

convert-to-utf8

マルチバイトのファイルをutf-8に変換。

Linter系

linter

Linter機能。各言語用は後述。ないと死ぬ。
各言語用のLintは後述。

linter-ui-default

Linter表示用。たぶんLinter入れると入ってくるはず。

MiniMap系

minimap

画面端にコード全体をざっと単純化して見わたせるようなやつを表示。他のパッケージで拡張可能。

minimap-autohider

ミニマップをスクロールしてないとき以外は自動的に非表示。

minimap-find-and-replace

ミニマップ内で検索文字列を全てハイライト。

minimap-highlight-selected

ミニマップ内で選択した文字を全てハイライト。

minimap-pigments

ミニマップ内でカラーコード部分をカラー表示。

HyperClick系

hyperclick

コード中のいろんな要素がクリッカブルになる、キーバインドにも対応してるので対象の文字列にキャレットがあるときにキー操作でも動作できる。**-hyperclick系のアドオンとかで拡張可能。言語特化のアドオンは、後述の言語別のところで。

URLをクリッカブルにしてデフォルトブラウザで開けるようになる。

汎用フォーマッタ

aligner

オブジェクトの定義とか、連続して変数に値を入れるとき、=:をセパレータとして左右のインデントが揃うようにしてくれるフォーマッタ。言語別のものもある。

atom-beautify

ネストした要素のインデントをうまいこと整形してくれるフォーマッタ。JSONとかも良い感じにやってくれたり。けっこういろいろ対応してる。

その他

sync-settings

GitHubGist経由でAtomの設定を複数端末で同期する、アンインストールしたパッケージも同期できるようになって凄く便利になった、ないと死ぬ。

atom-notes

notational-velocityライクなノートシステムをAtomに組み込み、メモ系の集積ができてそれがカスタマイズした強力な補完機能のAtomで編集できるのは強み。ないと死ぬ。

atomic-chrome

同名のchrome-extensionをGoogle Chrome系のブラウザに入れることで、ブラウザで開いてるページのtextareaを同期的にAtomで編集できるようになる。例えばPull RequestなどMarkdown対応のテキストエリアをAtomで編集できるのはかなり便利。ないと死ぬ。

platformio-ide-terminal

Atom内でターミナルを動作させる。

tablr

CSVエディタ。

preview

プリプロセッサ言語から元言語へコンパイル後の表示。

auto-update-packages

パッケージにアップデートがあったら自動でアップデートする。ちょいちょい自分で確認しなくていいので楽。

busy-signal

ステータスバーに状況表示アイコンをプラス。確かLinterと一緒に入ってくるはず。

custom-title

Atomのウィンドウに表示されるタイトルのルールを変更できるようになる。上手く好きなようにファイル名の表示とかにカスタマイズすると地味に便利。

file-icons

ツリービューやタブにファイルのアイコンを表示して視認性を上げる。わりとないと死ぬ。現在もアップデートが盛んでちょいちょい対応アイコン増えてるのがうれしい。

file-types

自動で判別されるファイルタイプのルールをカスタマイズを楽にする。

goto-definition

メソッドの定義元にジャンプできるようになる。

各言語とか用途とか別

Git

gist

GitHubのGistを編集したりアップロードしたり、挿入したり。Gist系はいくつかあったけどこれが一番使いやすかった。

git-blame

行ごとにGitで変更した人を表示する。

git-plus

よく使うGit操作をAtomから直でできる、Atomのコマンド補完が効くので便利、基本的なgit操作はこれだけでいける。わりとないと死ぬ。

merge-conflicts

Gitでmergeしようとしてコンフリクトしたときの編集サポート。コンフリクトの解消はGitKrakenでやってるけど、一応入れてる。

Markdown

markdown-preview-enhanced

デフォルトのMarkdownプレビューより高機能なプレビュー、TOCやプレゼンモードもあったりする。目次機能もあったり、いろいろと便利。

document-outline

右ドロワーに編集中のMarkdownの目次をページ内リンク付きで表示。

markdown-table-editor

Markdownのテーブル記法編集補助、うまいこと縦のカラム表示を整えてくれる。

markdown-writer

Markdownの全般的な入力補助。とりあえず入れてる。

toggle-markdown-task

Markdownのチェックボックス記法のチェック状態のトグル変換。そんなに使わないけどいちいちキャレットを移動するのが面倒なので。

tidy-markdown

Markdownのテーブル記法の整形や番号付きリスト記法の番号振りなおしなど、フォーマッタ。

language-markdown

デフォルトのものより高機能なハイライタ。

linter-textlint

特に日本語に強い自然言語用のLinter、textlintをAtomで使えるように。Markdown以外でも効く。

JSON

atom-json-color

JSONファイルを階層によってカラーリングを変えて視認性を上げる。

pretty-json

JSONファイルの整形フォーマッタ。

linter-jsonlint

JSON用のLinterアドオン。

Ruby

language-haml

haml用の言語ファイル。

language-slim

Slim用の言語ファイル。

language-rspec

Rspec(Rubyのテストフレームワーク)用の言語ファイル。

language-rabl

Rabl(Ruby用のJSONやxmlに特化したテンプレートサポートGem)用の言語ファイル。

linter-rubocop

Rubocop用のLinterアドオン。

linter-erb

erb用のLinterアドオン。

linter-haml

haml用のLinterアドオン。

linter-slim

slim用のLinterアドオン。

autocomplete-ruby

Ruby用のAutocompleteアドオン。

rubocop-auto-correct

Rubocopルールに従って自動修正。

rufo-atom

Ruby用フォーマッタのrufoをAtomから実行、まだsave時に自動でやってくれたりはしないもよう。JSのprettierな感じになってくれるとうれしいな。

Rails用

autocomplete-rails-partial

Railsのパーシャビュー名のための用Autocompleteアドオン。

rails-db-scheme

schema.rbを参照して自動補完や定義元にジャンプ。

rails-open-rspec

現在開いてるファイルに対応したRspecのファイルを開く。

rspec

Atom上でRspecをrun。

ruby-block

do``if``begenendなどの対になるブロック要素をハイライト。

rails-i18n-plus

Railsのi18n用のAutocompleteとHyperClickアドオンのセット。

rails-snippets

Rails用のスニペット集。

rails-transporter

Model,View,Controllerなど対応するファイル同士を素早く開けるようにする。

JavaScript系(Node.jsやメタ言語、フレームワーク含む)

atom-typescript

TypeScriptの言語ファイルか補完や便利機能まで、IDE的サポート。

language-vue

Vue.js用の言語ファイル。

linter-eslint

JavaScript用のLintパッケージであるEslintのAtom-lintアドオン、prettierと連携もできる、ないと死ぬ。

linter-coffeelint

CoffeeScript用のLinterアドオン。

prettier-atom

JSのフォーマッタprettierをAtomから実行、save時に自動実行できる、ないと死ぬ。

aligner-javascript

JavaScript用のalignerアドオン。

js-hyperclick

JavaScript用のHyperClickアドオン。

vue-hyperclick

vue.js用HyperClickアドオン。

vue2-autocomplete

Vue.js用Autocompleteアドオン。

gulp-snippets

gulp用のスニペット集。

jquery-snippets

jQuery用のスニペット集。

HTML系(メタ言語含む)

個人的にはPug(Jade)しか書きたくないけど、どうしても使わざるを得ないので他も少々。

language-jade

HTMLプリプロセッサJade用の言語ファイル。

language-pug

JadeはPugになりました。

linter-htmlhint

HTML用Linterアドオン。

linter-pug

Pug用Linterアドオン。

tag

HTMLの閉じタグのショートカットと補完。Pugで書けばいらないんだけどね。

emmet

html,css(プリプロセッサ含む)の強力なスニペット集。

indent-tooltip

Jade(pug)やStylus,Sassのインデントベース記法の環境で現在のキャレットの位置がどの要素のネスト中なのかツールチップで表示。

CSS系(メタ言語含む)

個人的にはStylusしか書きたくないけど、どうしても使わざるを得ないので他も少々。

Stylus

Stylus用の言語ファイルとスニペット集。

linter-stylelint

CSS用のLinterアドオン。

linter-scss-lint

SCSS(SASS含む)のLinterアドオン。

linter-stylint

Stylus用のLinterアドオン。

autocomplete-css-with-stylus-support

Stylus用のAutocompleteアドオン。

PUML

UMLをテキストから表現したもの。細かいレイアウトは難しいもののテキストならGit管理もできるし素早くかけるので覚えてよかった。

language-plantuml

PlantUMLの言語ファイル

plantuml-viewer

PlantUML用のUML図ビューア

その他の言語系

language-apache

language-nginx

language-lisp

これがないと捗らない、僕がカスタムしてるAtom設定(late 2017)もう入籍から2年半もたってしまったけど結婚式をした。そんな時ぐらい惚気てもいいじゃあないか。