20512


## インデントが変な上にインデントを浅くできない

<https://youtrack.jetbrains.com/issue/RUBY-16183>  
<https://youtrack.jetbrains.com/issue/RUBY-17411>  
<https://youtrack.jetbrains.com/issue/RUBY-16075>

RubyMineですが、ERBのインデントがどうもおかしいです（8.0.3で修正されたところもあるようですがまだおかしい）。

Xcodeは、自動でついたインデントが深すぎた場合、手動で浅くする機能がありますが、  
RubyMineは強制的にRubyMineの考える深さのインデント以上浅くすることができません。

### インデントを浅くできない例

[code]

    <div>
      <div>
        <%= 'aaaaa' %>
      </div>
    </div>
    
[/code]

という状態で`<%=`の前でDeleteキーを押すと、

[code]

    <div>
      <div><%= 'aaaaa' %>
      </div>
    </div>
    
[/code]

となる。とくに`<%=`が入れ子状態だと異常に深いインデントが出現するため、浅くしたいができない。

### インデントが変な例

[code]

    <%= link_to hoge_path do -%>
        <i></i>
    <% end -%>
    
[/code]

なぜか、`<%=`や`<%`で囲むと中が4スペースになる（普通のHTMLで囲った場合は2スペース)。  
「Reformat Code」したときもこの4スペースの箇所にもっていかれるので、「Reformat Code」することができない。

Tabs and Indentsで何を設定しても`%`での入れ子は4スペース...  
[![画像の説明をここに入力](https://i.stack.imgur.com/BUBPt.png)](https://i.stack.imgur.com/BUBPt.png)

### インデントを切りたい

そこで、ERBの場合インデントさせないようにインデント自体の機能を切りたいです。  
（インデントが浅くできない状況は`.rb`ファイルでも起こっています）

## RubyMineをアンインストールしなおしても改善せず

[ruby - How to Uninstall RubyMine? - Stack
Overflow](https://stackoverflow.com/questions/8297970/how-to-uninstall-
rubymine)  
リンク手順にしたがって、アンインストールして再インストールしても改善せず。  
とはいえ、なぜか該当プロジェクトを再インストールしたRubyMineで開くと、開いていたファイル状態が記憶されているのとプロジェクトの構成をみるProjectペインが本来なら左端に出るのがデフォルトだがこれを右に移動した記憶が残っており、完全にアンインストールできていないもよう.....

## File Typesで認識をはずしてみた

[![画像の説明をここに入力](https://i.stack.imgur.com/bJ4I2.png)](https://i.stack.imgur.com/bJ4I2.png)

File TypesからRHTMLに`*.erb`が設定されていましたので、`*.erb`を削除しました。  
そうすると、RubyMineは`*.erb`はただのプレーンテキストだと認識しハイライトとインデント強制がなくなりました。

しかし理想はインデント強制のみを切りたいです。（`*.rb`でもインデントが手動で調整できないとチームと完全に一致させるのが困難)


CC BY-SA 3.0
2015-12-31T00:43:47.970
20492
2016-01-03T10:32:43.393
2017-05-23T12:38:56.467
-1
9008
question
rubymine
RubyMineでインデントの強制機能を切りたい


※修正しました

恐らくMacで開発されていると思うのですが、その場合`delete`キーには`Backspace`が割り当てられています。`Backspace`ではインデントを削除しようとすると前の行に行ってしまいますが`Delete`コマンドが割り当てられたキーで削除すれば問題なく削除できました。

どのキーが`Delete`に割り当てられているかの確認は設定の`Keymap`を参照してください。

### インデントが深くなりすぎてしまうこと自体への対策

`Preferences->Code Style->HTML->Other`にある`Do not indent children of:`
で指定した要素の子要素はインデントがつかなくなり、また`or if tag size more
than`で数値を指定すれば、その指定した行数以上タグの要素が続く場合はインデントされなくなります。

あとはご存知だとは思いますが、そんなにインデントが深くなるなら`partial`を作ってわけたほうが良いと思います。ただ、チームで開発してるとそれが難しい時もありますよね…。


CC BY-SA 3.0
2015-12-31T14:18:30.147
20512
2015-12-31T19:22:22.433
2015-12-31T19:22:22.433
3271
3271
20492
answer