「ツリー操作」の「レベルを上げる/下げNo.09512
白雲斎 さん 06/02/27 14:36
 
今日は、白雲斎です。
この板は購読していないのと、書込みが尋常でないので全部を把握していない理
由から、重複する発言をするかもしれません。ご容赦を。

Windows XP, 秀丸エディタVer6.00β4

アウトライン枠での「ツリー操作」にある「レベルを上げる/下げる」コマンド
は、動作が変ではないですか?

以下のような階層構造の文書を例とします。

└ Level 1
  ├ Level 2A   ←ここで「レベルを上げる」コマンドを実行
  │ └ Level 3A
  └ Level 2B   ←ここで「上移動」コマンドを実行
    └ Level 3B

「Level 2A」のノードに対して、「レベルを上げる」コマンドを実行します。
すると、秀丸エディタVer6.00β4では、以下の結果となります。

├ Level 1
└ Level 2A
  ├ Level 3A
  └ Level 2B   ←本来は、「Level 1」の子供の筈
    └ Level 3B

秀丸エディタが言うところの「ツリー操作」が階層構造の編集を指しているな
ら、求める正しい結果は下記になると想像するのですが違うのでしょうか?

├ Level 1
│ └ Level 2B
│   └ Level 3B
└ Level 2A   ←「Level 2B」ブロックを正しく飛び越えた
  └ Level 3A

因みに、「Level 2B」のノードで「上移動」コマンドを実行すると、階層の子孫
ブロックを認識して、ブロック全体が正しく移動してくれます。

└ Level 1
  ├ Level 2B
  │ └ Level 3B
  └ Level 2A   ←「Level 2B」ブロックを正しく飛び越えた
    └ Level 3A


===============================================================
ここから雑談:

アウトライン機能、複雑になりそうですね。
いや、開発だけではなく、秀丸ユーザー側も複雑になりそうですね。
と言うのも、設定画面を眺めていると、階層構造を表すアウトラインと、プログ
ラム・ソースなどを折りたたむ機能が混在していて、私の中で上手く情報整理で
きないでいます。

で、勝手に、階層構造化文書と折りたたみ機能を別々に考えてみました。

●階層構造化文書

・1ファイルに1個のルートを持つ、階層構造である。
・階層構造は、編集前も編集後も矛盾してはならない。
・折りたたみはノード単位が基本で、それ以外は要らない。
・よって、折りたたみの対象を設定する必要がないのが自然。

●階層構造化文書以外での折りたたみ機能

・折りたたみを区分するブロックの定義は、1ファイルにルート1個と断定で
 きない。即ち、子孫関係が矛盾なく構築されている約束が何処にもない。
・内包する子孫のブロックがあったとしても、そのブロックのレベル操作をす
 ることはない。即ち、「ツリー操作」系のコマンドは不要だと想像できる。
 ※HTMLファイルなんかも、これに分類されると推測する。
  構造化文書と言う意識としての定義はあっても、それを約束されたもので
  はない。

以上のように考えてみました。
で、今更ながらの発言で恐縮ですが、階層構造化文書としてのアウトライン機能
は、折りたたみ機能と分離した方が良くないですかね。

『複雑怪奇な設定をすれば、どんな文書も階層構造化文書として読み込みます』
よりは、『限定されますが簡単ですよ』の方が良いのですが、
これこそ最高のわがままかな〜。

[ ]
RE:09512 「ツリー操作」の「レベルを上げNo.09551
秀丸担当 さん 06/02/28 17:03
 

>「Level 2A」のノードに対して、「レベルを上げる」コマンドを実行します。
>すると、秀丸エディタVer6.00β4では、以下の結果となります。
>
>├ Level 1
>└ Level 2A
>  ├ Level 3A
>  └ Level 2B   ←本来は、「Level 1」の子供の筈
>    └ Level 3B
>
>秀丸エディタが言うところの「ツリー操作」が階層構造の編集を指しているな
>ら、求める正しい結果は下記になると想像するのですが違うのでしょうか?

この挙動は、アウトラインプロセッサのアプリケーションでは一般的にどうなの
かはわかりませんが、テキストエディタとしてやる機能としては、この挙動が妥
当だと思います。


>├ Level 1
>│ └ Level 2B
>│   └ Level 3B
>└ Level 2A   ←「Level 2B」ブロックを正しく飛び越えた
>  └ Level 3A

もしこのようになるとしたら、レベルを上げると、Level 2A だけの行の書き換
えではなく、Level 2A配下のブロック全体が移動してしまうことになると思いま
す。
Level 2Aの見出しの行だけの書き換えが行われることを期待すると思うのですが
どうでしょうか。


>===============================================================
>ここから雑談:
>
>アウトライン機能、複雑になりそうですね。
>いや、開発だけではなく、秀丸ユーザー側も複雑になりそうですね。
>と言うのも、設定画面を眺めていると、階層構造を表すアウトラインと、プログ
>ラム・ソースなどを折りたたむ機能が混在していて、私の中で上手く情報整理で
>きないでいます。
>
>で、勝手に、階層構造化文書と折りたたみ機能を別々に考えてみました。
>
>●階層構造化文書
>
>・1ファイルに1個のルートを持つ、階層構造である。
>・階層構造は、編集前も編集後も矛盾してはならない。
>・折りたたみはノード単位が基本で、それ以外は要らない。
>・よって、折りたたみの対象を設定する必要がないのが自然。
>
>●階層構造化文書以外での折りたたみ機能
>
>・折りたたみを区分するブロックの定義は、1ファイルにルート1個と断定で
> きない。即ち、子孫関係が矛盾なく構築されている約束が何処にもない。
>・内包する子孫のブロックがあったとしても、そのブロックのレベル操作をす
> ることはない。即ち、「ツリー操作」系のコマンドは不要だと想像できる。
> ※HTMLファイルなんかも、これに分類されると推測する。
>  構造化文書と言う意識としての定義はあっても、それを約束されたもので
>  はない。

機能の解釈としてはそんな感じであっていると思います。

>以上のように考えてみました。
>で、今更ながらの発言で恐縮ですが、階層構造化文書としてのアウトライン機能
>は、折りたたみ機能と分離した方が良くないですかね。
>
>『複雑怪奇な設定をすれば、どんな文書も階層構造化文書として読み込みます』
>よりは、『限定されますが簡単ですよ』の方が良いのですが、
>これこそ最高のわがままかな〜。

確かに複雑な面もあるので、なるべく簡略化しようと思い、現状でこうなってい
ます。
折りたたみはアウトラインの一覧との関係が分かりづらいという話もあったので
すが、大きい[+]/[-]と小さい+/-を分けることで、なんとか現状となっています。
今後も変化するかもしれないですが意見を参考にしたいと思います。

[ ]
RE:09551 「ツリー操作」の「レベルを上げNo.09559
CaskStrength さん 06/02/28 17:59
 
CaskStrengthです。

> この挙動は、アウトラインプロセッサのアプリケーションでは一般的にどうなの
> かはわかりませんが、テキストエディタとしてやる機能としては、この挙動が妥
> 当だと思います。

アプリケーションの種別という観点ではなく、「ツリー編集」という
観点からは白雲斎さんの言われることは理解できます。

> もしこのようになるとしたら、レベルを上げると、Level 2A だけの行の書き換
> えではなく、Level 2A配下のブロック全体が移動してしまうことになると思いま
> す。
> Level 2Aの見出しの行だけの書き換えが行われることを期待すると思うのですが
> どうでしょうか。

これも、Level 2A配下のブロック全体が移動する方が、「ツリー編集
という理屈」にはかなっていると思います。「ツリーでのレベル変更
とは見出し行の書式変更だけが機能の実体」とすぐにユーザー(特に
後から馴染む人)がわかるとは考えにくいですし。

ブロック全体が動くというのも、そう言うものだと思うと、そうなら
ないのが不思議にも思えます。
その意味で、テキストエディタとしてやる機能として考えても「妥当」
というよりは、「簡略化(というか手抜き(^^;)」した機能であると
いう感じは受けますね。

といいつつ、個人的には今のままでもいいのかもとも思っています。
結局ブロックの移動もレベルの編集も適宜行えるので、目的のツリー
配置にはたどり着くことができますし。
なお、WZエディタのアウトライン機能でも同様の動作でした(今まで
気づいてなかった(^^;)。

[ ]
RE:09559 「ツリー操作」の「レベルを上げNo.09572
Iranoan さん 06/02/28 19:44
 
 今日は、Iranoan です。
> > この挙動は、アウトラインプロセッサのアプリケーションでは一般的にどうなの
> > かはわかりませんが、テキストエディタとしてやる機能としては、この挙動が妥
> > 当だと思います。
>
> アプリケーションの種別という観点ではなく、「ツリー編集」という
> 観点からは白雲斎さんの言われることは理解できます。
 私も白雲祭の言われることは理解できます。極端な例としては、アウトライ
ンの枠を浮かして最大化するなどして、エディタ部分を完全に隠してしまい操
作することも出来ます。そのような時は、いっそう違和感があると思います。

 ただ部分編集も下位ツリーを含んでいません。移動/コピー/移動/折りたた
み可能行の範囲選択は下位ツリーを含みます。この辺り、下位ツリーを含む/
含まないが両方有るので、混乱します。

[ ]
RE:09551 「ツリー操作」の「レベルを上げNo.09575
白雲斎 さん 06/02/28 20:43
 
>もしこのようになるとしたら、レベルを上げると、Level 2A だけの行の書き換
>えではなく、Level 2A配下のブロック全体が移動してしまうことになると思いま
>す。
>Level 2Aの見出しの行だけの書き換えが行われることを期待すると思うのですが
>どうでしょうか。

『テキストエディタとしてやる機能としては、この挙動が妥当・・・』と言われ
ると、私の考えを主張してよいものか非常に悩みますが、もう、勢いで発言しち
ゃいます。
階層構造の理屈を十分理解されて尚、エディタとしての実装を考慮されてのこと
とは思いますが、まぁ〜見てやってください。

アウトラインを、Windowsディレクトリ・システムで考えて見ます。

[ROOT DRIVE]
└ 親フォルダ A
   ├ 子フォルダ A
   │  └ 子フォルダ A-1
   └ 子フォルダ B
      └ 子フォルダ B-1

上記ツリーで「子フォルダ A」に対して「レベルを上げる」操作をすると言うこ
とは、親である「親フォルダ A」を抜け出すことを意味すると思います。
しかし、秀丸エディタVer6.00βでの挙動を当てはめると、「親フォルダ A」が
空になり、「子フォルダ B」の親が「子フォルダ A」になってしまいます。

[ROOT DRIVE]
├ 親フォルダ A   ←空になった
└ 子フォルダ A   ←子フォルダすべての親になった
   ├ 子フォルダ A-1
   └ 子フォルダ B
      └ 子フォルダ B-1

この挙動、どうも違和感があります。
階層構造で構築されているWindowsディレクトリ・システムでは、ありえない動
作だと思います。
CaskStrengthさんが、『WZエディタのアウトライン機能でも同様の動作でした』
と仰っているので、そう言うのもありなのかも知れませんが、やはり違和感があ
ります。

どこかのスレッドで、『アウトラインプロセッサとエディタは違う』と同意味の
発言を秀丸担当殿がされていましたが、一般的な階層構造(ツリー)での【アウ
トライン、ツリー、レベル操作】などの意味するところと、秀丸エディタでの意
味が違うと、大変戸惑います。

こんな考えは私だけですかね。
今の挙動が確定するなら、「レベル操作」などの機能は実装されない方がスッキ
リするのですが、他の方々からはお叱りを受けるだろうな〜。

[ ]
RE:09575 「ツリー操作」の「レベルを上げNo.09576
pao さん 06/02/28 21:35
 
 それをどうすればテキストファイルの中で実装できるか考えてみました。

・親フォルダ A
・子フォルダ A([親フォルダ A]の子)
・子フォルダ A-1([子フォルダ A]の子)
・子フォルダ B([親フォルダ A]の子)
・子フォルダ B-1([子フォルダ B]の子)

 こういうような、親子関係を示すデータが入っていないといけません。
 例えば

・A:○○について
  文章。
・A-1:総則
  文章。
・A-1a:処理内容
  文章。
・A-2:★★の場合
  文章。
・A-2a:処理内容
  文章。

 とかこういう風になっていれば、機械的にツリー化は可能ですよね。

└親 A
 ├子 A-1
 │└子 A-1a
 └子 A-2
  └子 A-2a

 こうだと判るわけで。
 見出し記号(・)と、記号部分終了記号(:)の間の文字列で、部分一致か
前方一致を取ることでツリー構造にする、というのは不可能でしょうか?

[ ]
RE:09575 「ツリー操作」の「レベルを上げNo.09577
アルビレオ さん 06/02/28 22:12
 
ユーザーのアルビレオです。

>『テキストエディタとしてやる機能としては、この挙動が妥当・・・』と言われ
>ると、私の考えを主張してよいものか非常に悩みますが、もう、勢いで発言しち
>ゃいます。
>階層構造の理屈を十分理解されて尚、エディタとしての実装を考慮されてのこと
>とは思いますが、まぁ〜見てやってください。

妥当かどうかというのはひとまず置いておいて、HTMLの構造を思い浮かべるとわ
かりやすいかもしれません。

【HTML風】
<H1> 1A </H1>
 あいうえお
 <H2> 2A </H2>
  かきくけこ
  <H3> 3A </H3>
   さしすせそ
 たちつてと
 <H2> 2B </H2>
  なにぬねの
  <H3> 3B </H3>
   はひふへほ

ここで「レベルを上げる」コマンドは、単に<H2>、<H3>などの数字を変化させる
だけで、テキストの順序を入れ替えるような処理は行わないために直感的に期待
していたものとは違う結果になってしまうわけです。
これは階層情報を持っているのはあくまで「見出し」であって、「ブロック」は
明示的には存在しないために次の「見出し」までを便宜上ブロックとして扱って
いるせいだといえなくもありません。
それでもブロック単位でテキストを入れ替えることもできなくはないと思います
が、現状ではそこまではやっていないと。

他のトピックで「見出しから次の見出しまでをブロック扱いするため、C言語
ソースの関数定義の直前に書いたコメントが1個前の関数ブロックに含まれてし
まう」という問題があったように、終端を明示していないブロック構造を安易に
入れ替えるのは危険かも、と個人的には思わないでもありません。
白雲斎さんが挙げた例もそうですが、「階層の上げ下げ」はけっこう大掛かりな
テキストの入れ替えが起こることもあるので、意図しない部分まで移動されると
ちょっとしたパニックになるかもしれない。

まあ私としては意図しない結果を引き起こす懸念はどちらの手法にも存在すると
言いたいだけで、どちらかを支持するかといったことは今のところ考えていませ
ん。

白雲斎さんが期待しているようなイメージは、完全な入れ子構造を持ったXML文
書風と考えることができます。

【XML風】
<level1 section="1A">
 あいうえお
 <level2 section="2A">
  かきくけこ
  <level3 section="3A">
   さしすせそ
  </level3>
 </level2>
 たちつてと
 <level2 section="2B">
  なにぬねの
  <level3 section="3B">
   はひふへほ
  </level3>
 </level2>
</level1>

この形だと階層情報を持っているのは始点と終点を明示した「ブロック」となっ
ているため、むしろ白雲斎さんの考えているような扱いをしないと矛盾が出てき
ます。
また、上の例の「たちつてと」の部分のような扱いは「見出しによる階層化」で
はブロックの終端を明示できないために不可能です。
(HTML風だと「さしすせそ」と同じ階層として扱われる)

ただし上の「HTML風」と「XML風」を比べて見ればわかるように、矛盾のない入
れ子構造を実現するためにどうしても文法的な縛りはきつくなってしまいます。
始点と終点の対応が不完全な書きかけの状態で階層を操作したらプログラム的に
はどう対応すればいいのかかなり悩みそうで「プレーンテキストのちょっとした
構造化」というには、概念としてはともかく文法としてはあまり現実的じゃない
ですね。

[ ]
RE:09577 「ツリー操作」の「レベルを上げNo.09581
Iranoan さん 06/02/28 23:34
 
 今日は、Iranoan です。
> 白雲斎さんが挙げた例もそうですが、「階層の上げ下げ」はけっこう大掛かりな
> テキストの入れ替えが起こることもあるので、意図しない部分まで移動されると
> ちょっとしたパニックになるかもしれない。
 「ツリー操作」の「上/下移動」は既にそれをやってしまっているような...。
それなら、「レベルを上/下げる」も同じ扱いで良い気もする。
 といいつつ、私もどちらの仕様がよいのか、現状では解りません。どちらで
も良いから、下位ツリーを含む/含まないを統一して欲しい。

 因みに、
> 白雲斎さんが期待しているようなイメージは、完全な入れ子構造を持ったXML文
> 書風と考えることができます。
とありますが、この様なブロックを明示した形式だと、現在の秀丸エディタは、
正しいブロックを折り畳んでくれません(;_;)。そもそもブロックや見出しの
終端を設定することが出来ない(^^;。

[ ]
RE:09581 「ツリー操作」の「レベルを上げNo.09585
Iranoan さん 06/03/01 12:26
 
 秀丸担当さん、皆さん今日は、Iranoan です。
>  「ツリー操作」の「上/下移動」は既にそれをやってしまっているような...。
> それなら、「レベルを上/下げる」も同じ扱いで良い気もする。
>  といいつつ、私もどちらの仕様がよいのか、現状では解りません。どちらで
> も良いから、下位ツリーを含む/含まないを統一して欲しい。
 自己フォローです。これは撤回します。

 理由は、まず白雲齋さんの仰る仕様だと、既存の文章に対しての作業はやり
やすいですが、作成中の文章の場合、レベルを上げ下げに伴って場所まで変わ
るのは、使い勝手が却って悪くなるようです。またアルビレオさんが仰るよう
に、
> 意図しない部分まで移動されると
> ちょっとしたパニックになるかもしれない。
というか危険な気がします。同じ理由で、移動は下位レベルは含まない方が良
いと思います。→秀丸担当さん
 そして、白雲齋さんの行いたい「レベルを上/下げる」や下位ツリーを含ん
だ「部分編集」を行いやすくするためには、現在の仕様のままの、「折りたた
み可能行の範囲選択」や「アウトラインの枠」のメニューの「切り取り」が必
要です。

[ ]
RE:09577 「ツリー操作」の「レベルを上げNo.09589
白雲斎 さん 06/03/01 13:28
 
今日はアルビレオさん。白雲斎です。

仰っている意味は理解できます。
でも、「アウトライン、ツリー操作、レベルの上げ下げ」の用語が並ぶと、階層
構造を意識してしまうのです。意識した上で件のコマンドを実行した結果が期待
するものと違えば、戸惑うのです。
子孫関係が崩れないブロックの再配置が行われない仕様なら、「ツリー操作、レ
ベル操作」の用語は他のものに変更して欲しいとも思うのです。

>妥当かどうかというのはひとまず置いておいて、HTMLの構造を思い浮かべるとわ
>かりやすいかもしれません。
> :
>ここで「レベルを上げる」コマンドは、単に<H2>、<H3>などの数字を変化させる
>だけで、テキストの順序を入れ替えるような処理は行わないために直感的に期待
>していたものとは違う結果になってしまうわけです。
>これは階層情報を持っているのはあくまで「見出し」であって、「ブロック」は
>明示的には存在しないために次の「見出し」までを便宜上ブロックとして扱って
>いるせいだといえなくもありません。
>それでもブロック単位でテキストを入れ替えることもできなくはないと思います
>が、現状ではそこまではやっていないと。
> :
> :
>他のトピックで「見出しから次の見出しまでをブロック扱いするため、C言語
>ソースの関数定義の直前に書いたコメントが1個前の関数ブロックに含まれてし
>まう」という問題があったように、終端を明示していないブロック構造を安易に
>入れ替えるのは危険かも、と個人的には思わないでもありません。

え〜と、スレッド頭(No.09512)の雑談として発言した「階層構造化文書と折り
たたみ」を考えた部分を今一度載せます。
---------------------------------------------------------------
●階層構造化文書

・1ファイルに1個のルートを持つ、階層構造である。
・階層構造は、編集前も編集後も矛盾してはならない。
・折りたたみはノード単位が基本で、それ以外は要らない。
・よって、折りたたみの対象を設定する必要がないのが自然。

●階層構造化文書以外での折りたたみ機能

・折りたたみを区分するブロックの定義は、1ファイルにルート1個と断定で
 きない。即ち、子孫関係が矛盾なく構築されている約束が何処にもない。
・内包する子孫のブロックがあったとしても、そのブロックのレベル操作をす
 ることはない。即ち、「ツリー操作」系のコマンドは不要だと想像できる。
 ※HTMLファイルなんかも、これに分類されると推測する。
  構造化文書と言う意識としての定義はあっても、それを約束されたもので
  はない。
---------------------------------------------------------------
このことから私は、HTMLやXML、プログラム・ソースなどは階層構造と認知でき
ないと考えているのですがいかがでしょうか?
ですから、これらに対して「ツリー操作」の処理を実装して欲しいとはまったく
考えていません。

>白雲斎さんが挙げた例もそうですが、「階層の上げ下げ」はけっこう大掛かりな
>テキストの入れ替えが起こることもあるので、意図しない部分まで移動されると
>ちょっとしたパニックになるかもしれない。
>
>まあ私としては意図しない結果を引き起こす懸念はどちらの手法にも存在すると
>言いたいだけで、どちらかを支持するかといったことは今のところ考えていませ
>ん。

はい、大掛かりな動作になると思います。それに伴う懸念が生まれることも理解
します。
でも、現在の「レベルを上げ下げ」する動作が私の中でパニックなのです。

>ただし上の「HTML風」と「XML風」を比べて見ればわかるように、矛盾のない入
>れ子構造を実現するためにどうしても文法的な縛りはきつくなってしまいます。
>始点と終点の対応が不完全な書きかけの状態で階層を操作したらプログラム的に
>はどう対応すればいいのかかなり悩みそうで「プレーンテキストのちょっとした
>構造化」というには、概念としてはともかく文法としてはあまり現実的じゃない
>ですね。

私には、始点、終点と言う考えがありませんでした。
WZエディタのピリオド記法のような、アウトラインの基点となる行がブロックの
始まりで、次の基点の行頭もしくはファイル終端がブロックの終わりと考えてい
ました。

まぁしかし、レベルを上げ下げすることに伴う、基点の記号をどう書き換えるか
と言う問題はありますよね。う〜ん。階層構造を持ち込む私の考えは可笑しいの
かな!?


===============================================================
秀丸担当殿への余談:
製作途中(2004/09)で放置された「WZエディタのピリオド記法」の階層テキス
トを管理するマクロがあるのですが、一度使ってもらえませんか。
多分、エラーなく動作はすると思うので、私のイメージが伝わると思うのですが
いかがでしょうか?

[ ]
RE:09589 「ツリー操作」の「レベルを上げNo.09591
秀丸担当 さん 06/03/01 16:06
 

みなさんご意見いろいろありがとうございます。
総合的に考えて判断していきたいと思います。

白雲斎さんが最初にいわれたような挙動を期待することもあると思います。
もしやるとしたら、別のコマンドか動作環境による切り分けを用意するとかした
ほうがいいかもしれません。

上下移動もIranoanさんが言われるように、下位レベルを含めずに上下移動でき
たほうがいい場合もあるかもしれないです。
これもやはり、やるとしたら、別のコマンドなどにしたほうがいいかもしれませ
ん。

結局のところは人それぞれだと思います。
自分の場合は、C言語の編集で関数単位で上下に動いてもらわないと、関数の頭
からswtichまでが切り離されて移動してしまったらパニックになります。


標準の動作としては、総合的に考えてやはり現状の動作のほうがいいような気が
します。
コマンド名が簡単すぎて、期待するものと違うというのは確かにあると思うので、
コマンド名は、

 「この見出しだけのレベルを上げる」
 「この見出しだけのレベルを下げる」
 「下位レベルも含めて上移動」
 「下位レベルも含めて下移動」

とかいう感じにしたほうがいいかと思いました。
長いですが、パニックになるよりかはましかと。

[ ]
RE:09591 「ツリー操作」の「レベルを上げNo.09608
Iranoan さん 06/03/01 20:18
 
 秀丸担当さん今日は、Iranoan です。
> 上下移動もIranoanさんが言われるように、下位レベルを含めずに上下移動でき
> たほうがいい場合もあるかもしれないです。
> これもやはり、やるとしたら、別のコマンドなどにしたほうがいいかもしれませ
> ん。
 私は「出来た方がよい」と言うより、意図しない範囲で移動して、パニック
になる事が無いか? が気になります。

[ ]
RE:09608 「ツリー操作」の「レベルを上げNo.09619
秀丸担当 さん 06/03/02 17:00
 

> 私は「出来た方がよい」と言うより、意図しない範囲で移動して、パニック
>になる事が無いか? が気になります。

パニックになるかどうかの可能性を考えると、どの条件を採用しても可能性はあ
ると思います。

本題とは違うかもしれませんが、現状で上下移動のときはレベルを超えた上下移
動ができてしまうのですが、レベルを超えることはできないようにしようと思い
ます。

[ ]
RE:09619 「ツリー操作」の「レベルを上げNo.09623
Iranoan さん 06/03/02 17:57
 
 秀丸担当さん今日は、Iranoan です。
> パニックになるかどうかの可能性を考えると、どの条件を採用しても可能性はあ
> ると思います。
 今まで存在した「強調行の範囲選択」も同様で、何処まで範囲選択されたの
か終端が解りにくいのが原因なんですよね。何か何処まで選択されたのか解り
易い方法はないものでしょうか?→ALL
 また現在、(「単語/行選択」を含め) これらの選択方法は、簡単に選択範囲
を伸縮させられませんよね。細かいことですが、こういったことが直感的に出
来ると、使い勝手がよくなると思います。←ネタです。

[ ]
RE:09591 「ツリー操作」の「レベルを上げNo.09642
CaskStrength さん 06/03/03 10:20
 
CaskStrengthです。

 複数の話題にまたがりますが、便宜上、ここに返信します。ただ、
内容としては「ツリー表示の絶対的階層での表示を要望」ということ
になります。

> 標準の動作としては、総合的に考えてやはり現状の動作のほうがいいような気が
> します。
> コマンド名が簡単すぎて、期待するものと違うというのは確かにあると思うので、
> コマンド名は、
>
>  「この見出しだけのレベルを上げる」
>  「この見出しだけのレベルを下げる」
>  「下位レベルも含めて上移動」
>  「下位レベルも含めて下移動」
>
> とかいう感じにしたほうがいいかと思いました。

 この件ですが、最初違和感を持ちました。
>  「この見出しだけのレベルを上げる」
といいつつ、下の見出しも一緒にレベルが上がるじゃないか?と。

 というのは、ツリー表示で「レベルを上げる(現在のコマンド名)」
を実行すると、下のレベルの見出しも一緒にレベルが上がるように見
えるからです。
 実際にレベルが上がっていると思っていたのですが、本文を注意深
く見ると、実は下のレベルの見出しには変化がなかったのですね!ピ
リオドで表現する形式だとすぐには気付けませんでした。

 これは、別のスレッドでの秀丸担当さんの発言によれば
http://www.maruo.co.jp/turukame/3/x09156_.html#9210
> 表示上は相対的なレベルの見せ方になっています。
> いちおう絶対的なレベルの見せ方もできるように作ってありますが、これも表に
> 出してません。

 とのことで、
・ツリーでの枝の深さが、レベルの深さと一致しない。あくまで上の
  見出しとの相対的な差である
という仕様だとのことですが、これだと、階層化テキスト編集のため
にツリー編集を利用しているユーザーにとっては非常にわかりにくい
です。
 プログラムを書く場合には相対的なレベルがわかればおおむね問題
ないのかもしれませんが、日本語の文章を構造化させて書いている場
合には、絶対的な階層も重要な情報ですので。

 レベルを飛ばした文章を書かなければ問題ない(気づかない)ので
すが、ツリーで編集するとその問題が顕在化します。
 また、ここで書いたように、コマンド名とツリーでの動きが一致し
ない(この見出しだけといいつつ、下位も動く)のも問題だと思いま
す。

 コマンド名や動作をさらに変更するという手もあるかもしれません
が、僕としては、強く「ツリーの絶対表示」を可能として欲しいと要
望します。

 ツリーの絶対位置表示が可能になれば、移動するのが見出し一つだ
ろうが、一つの枝から先全部だろうが、上下を越えて移動しようが、
自分で編集できますので。

[ ]
RE:09642 「ツリー操作」の「レベルを上げNo.09651
秀丸担当 さん 06/03/03 14:15
 

> 複数の話題にまたがりますが、便宜上、ここに返信します。ただ、
>内容としては「ツリー表示の絶対的階層での表示を要望」ということ
>になります。

そうですね。やはりそのようにもできたほうがよさそうです。
いろいろ矛盾点とか出てきそうなので、自分のところで試しながらやってみよう
と思います。

[ ]