外部で変更されたときの処理
-
Kuro様、お世話になっております。
いつもMeryを楽しく使わせていただき、ありがとうございます。表題の件でお聞きしたいことがあり、
現在外部PCでファイルを編集すると、他のPCでファイルを開いた際に、読み直しますか?というポップアップが出ると思うのですが、これをポップアップなしで自動で読み直させることはできますか?複数台のPCで操作をしてると頻繁に発生するので、気になった次第でございます。
設定を見てもそれらしい選択肢が見当たらず…。
https://d.kuku.lu/gtnw2byjbこれからも開発応援しています。
何卒よろしくお願いします。| kou | 返信 -
ご愛用いただき、ありがとうございます。
外部でファイルが変更されたときの設定は、[オプション] の [基本] カテゴリにある [外部で変更された時] で選べる項目だけとなっています。
現時点では、ファイルが自動的に読み直される機能はありません。
たとえば、テキストを編集中に外部でファイルが変更された場合、編集中の内容が勝手に消えて読み直されるのは困りますよね。
自動的に読み直す機能を追加するとしたら、テキストが編集されていない場合に限って読み直すようにする、といったかたちになるかと思います。
そのような機能がどれくらい必要とされているか、みなさんのご意見をいただければ検討してみたいと思います。
| Kuro | 返信 -
Kuro様、ご返信ありがとうございます。
>自動的に読み直す機能を追加するとしたら、テキストが編集されていない場合に限って読み直すようにする、といったかたちになるかと思います。
たしかにそういうかたちになりそうですよね。
実装するとなると処理が複雑そうです…。はい、ぜひ意見が多ければご検討いただけると嬉しいです。
何卒よろしくお願いします。| kou | 返信 -
ご返信ありがとうございます。
> 実装するとなると処理が複雑そうです…。
そうですね。現在の仕様では、Mery のウィンドウがアクティブになったり、タブが切り替わったりしたときに、ファイルの更新をチェックしています。
そのタイミングで、「読み直しますか?」というダイアログを表示せずに、自動的に読み直すだけでよければ、実装はそれほど難しくないと思います。
> 複数台のPCで操作をしてると頻繁に発生するので、気になった次第でございます。
ネットワークで共有している 1 つのファイルを複数の PC で編集していて、別の PC で編集・保存したタイミングでリアルタイムに他の PC で開いている Mery に反映させるとなると、かなり難しくなります。
そのためには、ファイルの変更をリアルタイムで監視する仕組みが必要になりますね。
> はい、ぜひ意見が多ければご検討いただけると嬉しいです。
そうですね、まずは検討材料として、ファイルの変更を確認ダイアログなしで自動的に反映できるエディターをいくつか試してみました。
---
(1) ウィンドウがアクティブになったとき、またはタブが切り替えられたとき・秀丸エディタさん
・Notepad++(2) 数秒ごとにファイルの変更をチェック
・サクラエディタさん
・EmEditor さん (Ver 23.0 未満)(3) リアルタイムでファイルの変更を検知
・Visual Studio Code
・Visual Studio 2022
・EmEditor さん (Ver 23.0 以降)
---というわけで、(1) のタイプであれば、Mery でも実装はそれほど難しくないと思います。
(2) のサクラエディタさんは、3 秒ごとにファイルの変更を監視しているようですが、この方法だと、ネットワーク経由のファイルでアクセス負荷がかかり、回線が遅いとエディターが数秒ごとにプチフリーズする可能性があります。
(3) の仕組みは、Windows のフォルダー監視機能を利用しており、ファイルに変更があったときに OS から通知を受け取ることができます。
負荷は少なめですが、共有フォルダーの仕様 (Samba など) によってはうまく動作しないこともあるかもしれません。
そういうわけで、Mery で実装する場合にどこまでの機能が必要か、みなさんのご意見をいただけると、開発の参考にさせていただきたいと思います。
私の技術でどこまで実現できるか分かりませんが… (3) の方法はちょっと難しいかもしれません ^^;
| Kuro | 返信 -
意見募集中とのことで、コメントを残しにきました。
> (1) ウィンドウがアクティブになったとき、またはタブが切り替えられたとき
…と言いつつ上記の現行動作で個人的にはあまり困っていないのですが、「ダイアログを表示せず自動再読み込みするならば」という前提でコメントさせていただきます。
> (2) 数秒ごとにファイルの変更をチェック
> (2) のサクラエディタさんは、3 秒ごとにファイルの変更を監視しているようですが、この方法だと、ネットワーク経由のファイルでアクセス負荷がかかり、回線が遅いとエディターが数秒ごとにプチフリーズする可能性があります低速な回線下でファイルサーバ上のファイルを開いておくとタブの切り替えに時間がかかる https://www.haijin-boys.com/discussions/7454
でもご報告させていただいたような環境もあったりしますので、定期チェック方式であれば裏で非同期にチェックするうまい仕組みが望ましいところです。また非同期チェックがもしクリアできたら、現行の更新チェックでもプチフリーズが起きなくなると思うので、現行のウィンドウ・タブアクティブ時のチェックが好きなユーザーにも見返りはありそうです。
> (3) リアルタイムでファイルの変更を検知
OSからの通知を受け取るなんて方法があったんですね。(思えばたしかに、Eclipseにも「ネイティブフックまたはポーリングを利用してリフレッシュ」なんて設定がありました)
特に副作用なければ (3) がいいんでしょうけど、実装難易度高めとのことで、悩ましそうですね…😅
あとは上記いずれにしても、ダイアログ無しに勝手に再読み込みするのは文書の更新が無い場合のみに限定するのがよさそうですね。
| yuko | 返信 -
ご意見ありがとうございます。
> > (1) ウィンドウがアクティブになったとき、またはタブが切り替えられたとき
> …と言いつつ上記の現行動作で個人的にはあまり困っていないのですが、「ダイアログを表示せず自動再読み込みするならば」という前提でコメントさせていただきます。
基本的に、1 台の PC で作業する場合は、(1) の仕様で十分ですよね。別のアプリで同じファイルを編集すると、ウィンドウのアクティブ/非アクティブの切り替えが必ず発生しますからね。
> 低速な回線下でファイルサーバ上のファイルを開いておくとタブの切り替えに時間がかかる https://www.haijin-boys.com/discussions/7454
> でもご報告させていただいたような環境もあったりしますので、定期チェック方式であれば裏で非同期にチェックするうまい仕組みが望ましいところです。そうですね。残念ながら、非同期で定期的にチェックするのは技術的にかなり難しいです。
https://www.haijin-boys.com/discussions/7454 にも書かれているように、ネットワークの応答がない場合、非同期、つまり別スレッドでチェックすることで UI のフリーズは避けられても、監視スレッドが裏でフリーズしてしまいます。
短いフリーズで済むこともありますが、たとえばネットワークが切断されると、ファイルにアクセスできない間、OS のタイムアウト時間までスレッドがフリーズすることもあります。
ネットワーク経由のファイルアクセスに関する問題については、こちらのトピックでも触れていますね。
https://www.haijin-boys.com/discussions/4039
UI がフリーズするかどうかに関わらず、内部でフリーズが発生することに変わりはなく、メモリリークや重大なエラーを引き起こしても、ユーザーが気づかない可能性があります。
そのため、(2) の実装を考える場合、UI のフリーズをそのままにしておくサクラエディタさんのアプローチが、ユーザーとしては「ネットワークが重いな、一度終了してみようかな」という選択ができるので、理にかなっていると思います。
> OSからの通知を受け取るなんて方法があったんですね。(思えばたしかに、Eclipseにも「ネイティブフックまたはポーリングを利用してリフレッシュ」なんて設定がありました)
なるほど、Visual Studio や Eclipse は複数人で開発するプロジェクト向けですから、リアルタイム方式は企業向けって感じですね。
> 特に副作用なければ (3) がいいんでしょうけど、実装難易度高めとのことで、悩ましそうですね…😅
そうなんですよね😅
(2) を非同期方式で実装するよりは、(3) の方が技術的には実現できそうですが、VPN 使用時の動作は不明だったり、通知が届かないことがあったり、メモ帳で編集/保存したときに通知が複数回届くことがあるなど、結構難しい問題もありそうです。
> あとは上記いずれにしても、ダイアログ無しに勝手に再読み込みするのは文書の更新が無い場合のみに限定するのがよさそうですね。
ご意見ありがとうございます!やっぱりそうですよね。もし実装する際は、その方向で検討してみたいと思います。
| Kuro | 返信 -
> そうですね。残念ながら、非同期で定期的にチェックするのは技術的にかなり難しいです。
やはり、ファイル周りのチェックはWindows任せが安心安全ですよね。無理を申してしまいすみません!
> そのため、(2) の実装を考える場合、UI のフリーズをそのままにしておくサクラエディタさんのアプローチが、ユーザーとしては「ネットワークが重いな、一度終了してみようかな」という選択ができるので、理にかなっていると思います。
サクラエディタを使っている時にはそういったフリーズに出くわす場面が無かったですが (といってももう何年もMeryユーザーをやっていて何年前の話やら…😅)、自動チェックでUIのフリーズが起こるのは一般ユーザーからすると「エディタの挙動がおかしい」と捉えてしまうと思うので、Meryのターゲットユーザー層を思えば、あまり起こってほしくない動きではありそうですね。
> VPN 使用時の動作は不明だったり、通知が届かないことがあったり、メモ帳で編集/保存したときに通知が複数回届くことがあるなど、結構難しい問題もありそうです。
なかなか扱いが難しそうですね…。
Eclipseの実装がどうなっているか分からないですが、「ネイティブフックまたはポーリングを使用してリフレッシュ」という名称になっているあたり、もしかしたらネイティブフック (OS通知?) がされない場合を考慮してポーリング併用な機構になっていたりするのかもですね。| yuko | 返信 -
Kuro様、誠にありがとうございます。
yuko様もご意見ありがとうございます。>そうですね。現在の仕様では、Mery のウィンドウがアクティブになったり、タブが切り替わったりしたときに、ファイルの更新をチェックしています。
そのタイミングで、「読み直しますか?」というダイアログを表示せずに、自動的に読み直すだけでよければ、実装はそれほど難しくないと思います。このイメージでした。
これだけで大分シームレス感が上がるかなと思います。>自動チェックでUIのフリーズが起こるのは一般ユーザーからすると「エディタの挙動がおかしい」と捉えてしまうと思うので、Meryのターゲットユーザー層を思えば、あまり起こってほしくない動きではありそうですね。
確かに、他のユーザーに悪影響を与えるのは絶対に避けたいですよね。
お手数おかけしますが、何卒よろしくお願いします。
| kou | 返信 -
サクラエディタ、そんな機能あったんですね。
以前使ってみたことがあり、Meryのほうが使いやすかったのでMeryを選択した記憶があります。
エディタごとに性格があるんですね…| kou | 返信 -
>> kou さん、yuko さん
ご返信ありがとうございます。
> > そのタイミングで、「読み直しますか?」というダイアログを表示せずに、自動的に> > 読み直すだけでよければ、実装はそれほど難しくないと思います。
> このイメージでした。
> これだけで大分シームレス感が上がるかなと思います。なるほど、それなら秀丸エディタさんや Notepad++ の仕様を参考にして、Mery でも対応できそうですね。
実装が簡単だからというわけではなく、将来的にファイル監視を強化する際には、この仕様に追加するかたちで対応できると思います。
ですので、先に簡易な対応を進めるのは問題ないと思います。
> やはり、ファイル周りのチェックはWindows任せが安心安全ですよね。無理を申してしまいすみません!
いえいえ、私の技術で実装できそうなのは「定期的な更新チェック」なので、おっしゃるとおり、UI をフリーズさせずに実装する方法を探していたこともありました👌
> 自動チェックでUIのフリーズが起こるのは一般ユーザーからすると「エディタの挙動がおかしい」と捉えてしまうと思うので、Meryのターゲットユーザー層を思えば、あまり起こってほしくない動きではありそうですね。
確かにそうですね。Mery に限らず、EmEditor さんのフォーラムでも「不安定なネットワーク上のファイルを開くとプチフリーズが頻発する」という話がありました。
EmEditor さんはその対策として、「定期的な更新チェック」を非同期にするのではなく、完全に廃止し、新たにネイティブ フックを実装したようです。(すごすぎ!)
> Eclipseの実装がどうなっているか分からないですが、「ネイティブフックまたはポーリングを使用してリフレッシュ」という名称になっているあたり、もしかしたらネイティブフック (OS通知?) がされない場合を考慮してポーリング併用な機構になっていたりするのかもですね。
そのようですね。ただ、ネイティブ フックが使えない場合というのは、OS にその機能がない場合みたいです。
公式情報ではありませんが、ネイティブ フックは Windows だけで、Mac と Linux ではポーリングになるようです。
【参考】java - On Eclipse, what does "Preferences -> General -> Workspace -> Refresh using native hooks or polling" do? - Stack Overflow
https://stackoverflow.com/questions/19951785/on-eclipse-what-does-preferences-general-workspace-refresh-using-natiまた、やはりポーリングの評判はあまり良くないようで、Eclipse のフォーラムでもネイティブ フックへの対応が検討されていたようです。(結局対応できたかどうかはわかりませんが😅)
【参考】108697 - [autorefresh] more native platform support for auto-refresh
https://bugs.eclipse.org/bugs/show_bug.cgi?id=108697> なかなか扱いが難しそうですね…。
そうなんですよね。ファイル システムによっては動作しないこともあるようですし、Mac の SMB ではうまく動作しないという話も見かけました。
そのため、もし実装する場合は、現在の仕様 (アクティブ時やタブ切り替え時) はそのままにして、ネイティブ フックが使えるなら使う方向で考えるのが良さそうです。
とはいえ、ネイティブ フックを実装する場合でも、非同期での処理が必要なので、ハードルは高いです。
ポーリングではなく、変更があるたびに OS から自動的に通知が来る仕組みなので、フリーズのリスクが少なく、リソースの無駄遣いも防げるという点では、技術的にとても興味深いのですが…🤔
| Kuro | 返信 -
Kuro様、お世話になっております。
>ですので、先に簡易な対応を進めるのは問題ないと思います。
ぜひよろしくお願い致します。
Meryは今でも十分使いやすいですが、今後もより発展していくことを楽しみにしています。
お手数おかけしますが、何卒よろしくお願いします。| kou | 返信 -
>> kouさん、yukoさん
Ver 3.7.4 で新しい機能を追加したので、お試しいただければと思います。
[オプション] の [基本] カテゴリに、[外部で変更された時] の項目として [更新していなければ読み直す] という設定が追加されています。
この設定を選ぶと、アクティブ時やタブ切り替え時に、確認ダイアログなしで自動的にファイルを読み直すようになります。
上記の設定だけでご希望の動作になると思います。
なお、リアルタイムでのファイル更新チェックについては、ネットワーク経由など複雑な検証環境がないため、動作保証なしの隠しオプションとして実装しています。
設定はクイック マクロを使うととても簡単です。次の手順で設定してみてください:
1. [マクロ] メニューから [オプションを指定して実行] を選択します。
2. 次の 1 行マクロをコピーして、[実行] ボタンをクリックします:
js:editor.WriteSettings(); editor.WriteSettingInteger('File', 'UseFileWatcher', 1); editor.ReadSettings(); alert('設定が変更されました。Mery を再起動してください。');また、Mery を終了した状態で、メモ帳などで Mery.ini の [File] セクションに UseFileWatcher=1 を手動で追加することもできます。
リアルタイムでのファイル更新チェックはポーリングではなく、ネイティブ フックを使用しています。
ちなみに、ウワサどおりですが、Mac の SMB 上にあるファイルは監視できませんでした。VSCode でも同様の結果だったため、同じ仕組みを使っているのだと思います。
VPN 経由やネットワークが遅い場合については確認できていませんが、動作しない場合もあるかもしれません。必要に応じてお試しくださいね。
| Kuro | 返信 -
リリースお疲れ様でした!
> なお、リアルタイムでのファイル更新チェックについては、ネットワーク経由など複雑な検証環境がないため、動作保証なしの隠しオプションとして実装しています。
少し試したところ、良さげに動作しています😊 しばらく使ってみますね。
> [オプション] の [基本] カテゴリに、[外部で変更された時] の項目として [更新していなければ読み直す] という設定が追加されています。
> この設定を選ぶと、アクティブ時やタブ切り替え時に、確認ダイアログなしで自動的にファイルを読み直すようになります。上記設定も試してみました。
[更新していなければ読み直す] では現状、外部変更がかかった場合に以下のような動きになっているとお見受けしました。(1) Meryで更新していない状況で外部変更
→確認ダイアログ無しに即読み込みなおし
(2) Meryで更新 (未保存) した状況で外部変更
→何もしない (変更を無視)(1) については、現状どおりで良さそうだと思いました。
ただ (2) については、個人的には [読み直すかどうか選択する] の動作を踏襲した方がいいのでは、と思いました。というのも、一度編集して更新ありの状態にしてしまうと、裏で別アプリや別PCなどで編集がかかった場合に、Meryでその編集を検知できずにそのまま上書き保存の操作をしてしまう可能性がありそうでちょっと怖いかも、と思ったためです。| yuko | 返信 -
> リリースお疲れ様でした!
ありがとうございます!ネイティブ フックの実装、本当に大変でしたが、技術的にはすごく面白かったです。ただ、正直「使う人いるのかな?」っていう気持ちもあったりします😅
> というのも、一度編集して更新ありの状態にしてしまうと、裏で別アプリや別PCなどで編集がかかった場合に、Meryでその編集を検知できずにそのまま上書き保存の操作をしてしまう可能性がありそうでちょっと怖いかも、と思ったためです。
その点、気になりますよね。kou さんの希望する仕様をもっと詳しくお聞きできていれば良かったのですが、とりあえず確認ダイアログを表示しないかたちで対応しました。(VSCode も同じような仕様になっているので)
追加で [確認ダイアログを表示する/しない] といったオプションを増やすのはちょっと気が進まないので、できれば、どっちかにしたいところですね。
| Kuro | 返信 -
>> yuko さん
VSCode でさらに検証したところ、VSCode では外部変更を検出しても確認ダイアログは表示されず、上書き保存しようとした際に初めて確認ダイアログが表示されることがわかりました。
そうなると、yuko さんのおっしゃるとおり、Mery ではファイルが更新されている場合、[読み直すかどうか選択する] の動作を踏襲したほうが良さそうですね。
| Kuro | 返信 -
Kuro様、アップデートお疲れ様でした!
早速使用させていただき、とても快適に動作しており、感嘆しております。
UseFileWatcher=1 もヤバいですね…即ONにしました!>(2) Meryで更新 (未保存) した状況で外部変更
> →何もしない (変更を無視)yuko様、ご検証いただきありがとうございます。
このシチュエーションは自分も想像していませんでした。たしかに今まで通り確認ダ
イアログを出すのが安定ですよね。>VSCode でさらに検証したところ、VSCode では外部変更を検出しても確認ダイアログは表示されず、上書き保存しようとした際に初めて確認ダイアログが表示されることがわかりました。
たしかにあちらはその動作でしたよね。
自分も動作が同じの方が違和感なく使いやすいかなと思います。| kou | 返信 -
ちなみに蛇足かもですが、手元のM1Macとの連携もよかったです。
MacではエディタはCotEditorというものを使っており、ファイル共有方法はWindows2台とMacで全てSyncthingというものを使っているのですが、WinとMac両方で、リアルタイム更新がなされておりました!ひとまず今回して頂いたアップデートで、複数台PCでの作業がとても快適になりました。本当にありがとうございます。
これからもMeryを楽しく使っていきたいと思います。
まだまだ暑い日頃が続きますが、お身体にお気をつけられてください。| kou | 返信 -
早速お試しいただき、ありがとうございます。
> UseFileWatcher=1 もヤバいですね…即ONにしました!
そう言っていただけて嬉しいです!
リアルタイムで反映されますが、Mery は大きなファイルの扱いがちょっと苦手なので、tail コマンドみたいなログ監視には向いていないかもしれません。そこだけご注意くださいね。
> MacではエディタはCotEditorというものを使っており、ファイル共有方法はWindows2台とMacで全てSyncthingというものを使っているのですが、WinとMac両方で、リアルタイム更新がなされておりました!
おぉー、CotEditor さんは有名ですね。
私は普段 Mac を使っていないのであまり馴染みがないのですが、同じフリーソフトのテキストエディターということで、勝手にナカーマ!と思っています。
それにしても、Mac でもリアルタイム更新がうまくいくなんて驚きです。
ちなみに私の Mac は 2009 年モデルなので、Mery のリアルタイム監視は使えなかったのですが、最近の Mac なら大丈夫なのかなぁ…。
UseFileWatcher=1 はほとんど負荷がかからないし、動作しない環境ではただ動作しないだけなので、検証して問題なさそうなら、標準でオンにしちゃっても良いかもしれませんね。
> これからもMeryを楽しく使っていきたいと思います。
> まだまだ暑い日頃が続きますが、お身体にお気をつけられてください。お気遣い、ありがとうございます!本当に暑いですね。お互いに気を付けて、がんばりましょう。
次のバージョンでは、Mery で開いているファイルが編集されている場合、外部変更を検出したら確認ダイアログを表示するようにしておきますので、今しばらくおまちくださいませ。
| Kuro | 返信 -
Kuro様、お世話になっております!
>それにしても、Mac でもリアルタイム更新がうまくいくなんて驚きです。
自分も普段Winを使っているのですが、これには驚きました。
おそらくCotEditorの設定でそれらしき部分があるので、それの影響かなと思っております。
https://tadaup.jp/4e92f18a3.png>次のバージョンでは、Mery で開いているファイルが編集されている場合、外部変更を検出したら確認ダイアログを表示するようにしておきますので、今しばらくおまちくださいませ。
承知しました!
ありがとうございます。これからもこの快適なMeryを使用させていただきます。
何卒よろしくお願いします。| kou | 返信 -
>次のバージョンでは、Mery で開いているファイルが編集されている場合、外部変更を検出したら確認ダイアログを表示するようにしておきますので、今しばらくおまちくださいませ。
お待たせしました。Ver 3.7.5 で対応しました。
外部変更を検出した際、Mery でファイルを編集していない場合は自動で再読み込みされ、編集している場合は確認ダイアログが表示されます。
これで、より安心してお使いいただけるかと思います。
| Kuro | 返信 -
> 外部変更を検出した際、Mery でファイルを編集していない場合は自動で再読み込みされ、編集している場合は確認ダイアログが表示されます。
手元で試してみたところ、うまく動いているようです。ありがとうございます!
また、タブ表示の改善も個人的にかなりヒットしています!
多段タブ + 左寄せ、なかなかに良いかもしれません。しばらく色々組み合わせて試してみようと思います😊| yuko | 返信 -
Kuro様、アップデートお疲れ様です!
お早い対応で驚きました。自分も確認させていただき、確認ダイアログが上手く表示されておりました。
たった数日ですが久々に確認ダイアログを見て少し懐かしみを覚えました笑これからも開発応援しています!
| kou | 返信 -
>> yuko さん、kou さん
ご確認いただき、ありがとうございます。
うまく動作しているようで安心しました。
> 多段タブ + 左寄せ、なかなかに良いかもしれません。しばらく色々組み合わせて試してみようと思います😊
タブの挙動としては、多段タブ + 左寄せ + ボタンの組み合わせが、一番しっくりくるんじゃないかと思います。
ただ、ボタン スタイルにすると、Windows 10 未満やライト テーマだと、ちょっと Windows XP っぽい見た目になっちゃうんですよね😅
それさえなければ、標準の仕様として採用したいくらいなんですが…。
> たった数日ですが久々に確認ダイアログを見て少し懐かしみを覚えました笑
そう言っていただけると、確認ダイアログも喜んでいると思います😁
> これからも開発応援しています!
ありがとうございます。今後ともよろしくお願いします!
| Kuro | 返信 -
> タブの挙動としては、多段タブ + 左寄せ + ボタンの組み合わせが、一番しっくりくるんじゃないかと思います。
まさしくでした。今日1日試してみて、上記組み合わせ + [指定した幅より長い場合は切り詰める = 200px] な設定に落ち着きましたね。
多くても10タブ前後くらいで使う & あまりファイルが増えてくると消したい衝動に駆られる私としては、この設定にしておけば最大2段程度で常用できそうです。それに3段までいくとタブを整理したくなり、頭のワーキングメモリ不足な私にとっては作業の一段落を付けるにも丁度よさそうでしたw
| yuko | 返信 -
気に入っていただけて良かったです😁
> まさしくでした。今日1日試してみて、上記組み合わせ + [指定した幅より長い場合は切り詰める = 200px] な設定に落ち着きましたね。
なるほどー。[指定した幅より長い場合は切り詰める] は、[指定した幅に固定する] とは少し違って、ピッタリ 200px になるわけではないので、その点ご注意ください。
実はこの機能、従来は幅を 0px に設定することで使える隠し機能だったのですが、少し複雑な仕様になっています。
[指定した幅より長い場合は切り詰める] で指定する幅は、ファイル名の部分に適用されます。
たとえば、「新規 テキスト ドキュメント.txt」なら、拡張子を除いた「新規 テキスト ドキュメント」の部分を描画し、それが 200px を超える場合は、ファイル名を切り詰めて「...」と「txt」 (拡張子) を付加する仕様です。
つまり、「新規テキ...txt」のような表示になります。
タブの幅はピッタリ 200px ではなく、200px くらいに収まる感じですが、アイコンや閉じるボタン、「...」「txt」の幅も加わるので、少し大きくなりますし、ファイル名によってタブの幅も変わります。
本来なら「ファイル名が指定した幅より長い場合は切り詰める」と説明したかったのですが、スペースの都合上、省略するかたちにしましたので、その点ご了承くださいね。
| Kuro | 返信