質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Sublime Text

SublimeTextとは、オーストラリアのSublime HQ Pty Ltdが提供しているテキストエディターのことです。Mac/Windows/Linuxでの利用が可能で、柔軟にカスタマイズできたり、多くの言語に対応していくこともあり、海外や日本国内でも人気のあるエディターです。

Q&A

解決済

1回答

3707閲覧

sublimetext3 でインデントのルールを変更する方法について

momoyuri

総合スコア35

Sublime Text

SublimeTextとは、オーストラリアのSublime HQ Pty Ltdが提供しているテキストエディターのことです。Mac/Windows/Linuxでの利用が可能で、柔軟にカスタマイズできたり、多くの言語に対応していくこともあり、海外や日本国内でも人気のあるエディターです。

0グッド

0クリップ

投稿2016/05/07 11:27

###前提・実現したいこと
sublimetext3 を macで使用しています。
プログラムはPHPです。
http://www.starlod.net/sublime-text-3-reindent.html
こちらのサイトなどを参考にインデントを自動でさせるようにしたいです。

###発生している問題

{ [ "test1" : 1, "test2" : 2, "test3" : 3, ] }

上記のようなプログラムがあったとして、自動でインデントをさせると

{ [ "test1" : 1, "test2" : 2, "test3" : 3, ] }

このように、[]が、インデントがされずに困っています。

###試したこと
http://qiita.com/lunatea/items/7101572e159f98369bc9
こちらのサイトなどを参考に、
smart_indent
indent_to_bracket
など、インデントに関係ありそうな設定は変更してみたのですが、変化が見られませんでした。

###設定内容
Preferences.sublime-settings - User

{ "auto_indent": true, "show_encoding": true, "show_full_path": true, "smart_indent": true, "indent_to_bracket": true, }

.editorconfig

root = true [*] indent_style = space indent_size = 4 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.ctp] indent_size = 2 [*.bat] end_of_line = crlf [*.yml] indent_style = space indent_size = 2

これをインデントさせる方法をご存知の方がいらっしゃいましたら
ご教授頂けませんでしょうか。

何卒、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プログラムはPHP、ということですが整形したいソース部分がもし「JSON形式」であれば、下記パッケージを利用されてはいかがでしょうか?(JSON形式とは少し違うようなので、外しているかもしれません)

デフォルトではインデントが「半角スペース2つ」となっていますので、タブとしたい場合はREADME.mdにあるように下記設定をsublimetextに追加する必要があるようです。

"indent" : "\t",

投稿2016/05/08 15:34

takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momoyuri

2016/05/09 01:47 編集

ご回答ありがとうございます。 PHPのプログラムなのですが、下記のような場合も、「json形式」という事になるのでしょうか? ``` $array = array(   'test1' => 1,   'test2' => 2,   'test3' => 3, ); ``` を ``` $array = [   'test1' => 1,   'test2' => 2,   'test3' => 3, ]; ``` と、記載した場合も「json形式」という形になるのでしょうか? インストールしてみたのですが、うまく出来ませんでした・・・。 また、json形式に限らず、インデントのルールを変更したいなと思いまして。。 ``` $array = array(   'test1' => 1,   'test2' => 2,   'test3' => 3, ); ``` これを自動インデントすると ``` $array = array(   'test1' => 1,   'test2' => 2,   'test3' => 3,   ); ``` のように、閉じカッコがインデントされてしまうのを、変更したいなど・・・。 この辺りをいじる方法をご存知でしたら、ご教授頂けますと幸いでございます。 何卒、よろしくお願い致します。
takyafumin

2016/05/09 04:02

質問のソースコードが以下のようだったため、「JSON形式であれば」としました。 ------------------------------- { [ "test1" : 1, "test2" : 2, "test3" : 3, ] } ------------------------------- 下記は質問のソースコードと全く違い、PHPでの連想配列の宣言ですね。 ------------------------------- $array = [   'test1' => 1,   'test2' => 2,   'test3' => 3, ]; ------------------------------- 本件、もう少し調べたところ、「phpfmt」パッケージを利用するとよさそうなことが分かりました。お試しください。 導入方法は以下が参考になりました。php7をインストールしなければいけないのが難点ですが。。。 * http://joyplot.hatenablog.com/entry/2016/03/19/104709
momoyuri

2016/05/12 04:14

sublimetext 自体に、それを行う機能は無さそうなんですね・・・ 諸々、ご教授頂きありがとうございました。
takyafumin

2016/05/12 07:54

書き方が悪かったです。 sublime textのパッケージ(追加機能)として「phpfmt」を導入することで期待する動作ができます。 ただし「phpfmt」パッケージ自体がphp7を利用しているので、php7をインストールがある、ということになります。 (sublime textと別で動作させるわけではなく、sublime textでの保存時等に自動的にソースフォーマットが行われるようになります。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問