チケット #1452 (new 機能追加)
空行インデント0設定時、空行入力時等の操作量を減らしたい(現状、改行→⌘+T等が必要)
報告者: | daisuke | 担当者: | daisuke |
---|---|---|---|
優先度: | 普通 | マイルストーン: | 4.0 |
コンポーネント: | アプリケーション | バージョン: | |
キーワード: | 関係者: |
説明 (最終更新者: daisuke) (diff)
1. 改行入力→インデント0
・AView_Text::DoIndent?()でkIndentTriggerType_ReturnKey_NewLineの場合にも、indent0ForEmptyLine = true;する。
→これでできるが、実際に使ってみると、常に、改行後インデント0になってしまうので、次入力したい箇所にキャレットが来ず、ストレスを感じる。
2. インデント0→何か入力したらインデント調整
・AView_Text::TextInput?()でテキスト挿入の前に
//
ABool shouldIndentForEmptyLine = false;
//
if( GetApp?().SPI_GetModePrefDB(GetTextDocumentConst?().SPI_GetModeIndex()).GetData?_Bool(AModePrefDB::kIndent0ForEmptyLine) == true )
{
if( mCaretMode == true && GetCaretTextPoint?().x == 0 )
{
//テキスト挿入前にインデントするとインデント0になってしまうので、ここではフラグのみ設定して、あとでインデントする。
shouldIndentForEmptyLine = true;
}
}
・テキスト挿入の後に
//
if( shouldIndentForEmptyLine == true )
{
ABool inputSpaces = GetApp?().SPI_GetModePrefDB(GetTextDocumentConst?().SPI_GetModeIndex()).GetData?_Bool(AModePrefDB::kInputSpacesByTabKey);
DoIndent?(undoTag_NOP,inputSpaces,kIndentTriggerType_IndentFeature);
}
→1.を採用しないのであれば、これだけ対応してもあまり意味がない。
3. キャレット移動時(カーソルキーorクリック)、元のキャレット位置がx==0ならインデント実行
→タイプしないのに、テキストに変更が発生してしまうのは、ポリシーに反する。。ソース管理上よろしくない。
一旦保留