「大文字/小文字/頭文字 トグル変換」の版間の差分
編集の要約なし |
空行と改行の除去 |
||
| (同じ利用者による、間の2版が非表示) | |||
| 9行目: | 9行目: | ||
: 選択範囲が大文字のみ → 「小文字に変換」 | : 選択範囲が大文字のみ → 「小文字に変換」 | ||
: 選択範囲が小文字のみ → 「単語の最初の文字を大文字に変換」 | : 選択範囲が小文字のみ → 「単語の最初の文字を大文字に変換」 | ||
変換を実行する前に「選択範囲に欧文文字があるかどうか」の判定をしない仕様となっています。<br> | 変換を実行する前に「選択範囲に欧文文字があるかどうか」の判定をしない仕様となっています。<br> | ||
ラテンアルファベット(全角/半角 A~Z)以外にも、ローマ数字(Ⅰ~Ⅿ)やギリシャ文字(Α~Ω)、キリル文字(А~Я)、ダイアクリティカルマークつきの文字(À~Ý, Ç, Ş など)、リガチャ(合字 Æ, Œ など)等の追加文字にも対応するようです。[https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%86%E3%83%B3%E6%96%87%E5%AD%97#%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%96%87%E5%AD%97][https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%86%E3%83%B3%E6%96%87%E5%AD%97%E4%B8%80%E8%A6%A7] | ラテンアルファベット(全角/半角 A~Z)以外にも、ローマ数字(Ⅰ~Ⅿ)やギリシャ文字(Α~Ω)、キリル文字(А~Я)、ダイアクリティカルマークつきの文字(À~Ý, Ç, Ş など)、リガチャ(合字 Æ, Œ など)等の追加文字にも対応するようです。[https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%86%E3%83%B3%E6%96%87%E5%AD%97#%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%96%87%E5%AD%97][https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%86%E3%83%B3%E6%96%87%E5%AD%97%E4%B8%80%E8%A6%A7] | ||
* <span style="color:#0000c0;">選択範囲がないときは、'''キャレット位置より右側''' を単語選択して変換します</span>(変換後に範囲選択を解除する)。 | * <span style="color:#0000c0;">選択範囲がないときは、'''キャレット位置より右側''' を単語選択して変換します</span>(変換後に範囲選択を解除する)。 | ||
*「大文字/小文字変換」されなかったときは、編集履歴を巻き戻して「'''変更行'''」の強調表示や「未保存<b style="color:#c00;">*</b>」のフラグを残さないようにしてあります。 | *「大文字/小文字変換」されなかったときは、編集履歴を巻き戻して「'''変更行'''」の強調表示や「未保存<b style="color:#c00;">*</b>」のフラグを残さないようにしてあります。 | ||
;全角/半角の相互変換は >> 「[[全角/半角 トグル変換]]」マクロ または「[[全角/半角変換]]」マクロ | ;全角/半角の相互変換は >> 「[[全角/半角 トグル変換]]」マクロ または「[[全角/半角変換]]」マクロ | ||
== マルチカーソル/複数選択範囲での動作 == | |||
'''マルチカーソル/複数選択範囲''' での推奨動作要件: Mery Ver <b style="color:#c00;">3.0.1</b> 以上 | |||
; 制限事項<br> | ; 制限事項<br> | ||
* <span style="color:#c00;">複数の選択範囲にたいして統一的に「大文字化」、「小文字化」または「単語の最初の文字を大文字に」を適用することはできません。</span><br> それぞれの選択範囲ごとに「大文字化/小文字化/単語の最初の文字を大文字化」の変換方式が個別に適用されます(「小文字」の選択範囲と「大文字」の選択範囲がある場合、前者の選択範囲の文字列は「単語の最初の文字を大文字に変換」され、後者の選択範囲の文字列は「小文字に変換」されます。小文字/大文字の混在した選択範囲の場合は大文字化されます)。 | * <span style="color:#c00;">複数の選択範囲にたいして統一的に「大文字化」、「小文字化」または「単語の最初の文字を大文字に」を適用することはできません。</span><br> それぞれの選択範囲ごとに「大文字化/小文字化/単語の最初の文字を大文字化」の変換方式が個別に適用されます(「小文字」の選択範囲と「大文字」の選択範囲がある場合、前者の選択範囲の文字列は「単語の最初の文字を大文字に変換」され、後者の選択範囲の文字列は「小文字に変換」されます。小文字/大文字の混在した選択範囲の場合は大文字化されます)。 | ||
すべての選択範囲が文字列を含んでいるか、またはすべてがゼロ幅選択範囲(キャレットのみ)でないと、正常に動作しません。 | すべての選択範囲が文字列を含んでいるか、またはすべてがゼロ幅選択範囲(キャレットのみ)でないと、正常に動作しません。 | ||
* すべての選択範囲が文字列を含んでいれば正常に動作します (各選択範囲内の文字列を変換)。 | * すべての選択範囲が文字列を含んでいれば正常に動作します (各選択範囲内の文字列を変換)。 | ||
* すべての選択範囲がゼロ幅選択範囲(キャレットのみ)であれば正常に動作します (キャレット位置より右側を自動選択して変換)。 | * すべての選択範囲がゼロ幅選択範囲(キャレットのみ)であれば正常に動作します (キャレット位置より右側を自動選択して変換)。 | ||
* <span style="color:#c00;">文字列を含む選択範囲とゼロ幅選択範囲(キャレットのみ)が混在している場合は、文字列を含む選択範囲内だけを変換します</span> (ゼロ幅選択範囲のキャレット位置より右側の自動選択/変換をしません)。 | * <span style="color:#c00;">文字列を含む選択範囲とゼロ幅選択範囲(キャレットのみ)が混在している場合は、文字列を含む選択範囲内だけを変換します</span> (ゼロ幅選択範囲のキャレット位置より右側の自動選択/変換をしません)。 | ||
* エディタが折り返し表示になっているとき、<span style="color:#c00;">折り返しより後ろ(改行まで)の文字列が矩形選択範囲に含まれている場合や、同一論理行内で完結した矩形選択では、正常に機能しません。</span><br> あらかじめ、変換の必用な部分だけを Ctrl+ドラッグ で複数選択範囲にするか「選択範囲を行に分ける」コマンド(右クリックメニュー用コマンド)を適用してから、このマクロを実行してください。 | * エディタが折り返し表示になっているとき、<span style="color:#c00;">折り返しより後ろ(改行まで)の文字列が矩形選択範囲に含まれている場合や、同一論理行内で完結した矩形選択では、正常に機能しません。</span><br> あらかじめ、変換の必用な部分だけを Ctrl+ドラッグ で複数選択範囲にするか「選択範囲を行に分ける」コマンド(右クリックメニュー用コマンド)を適用してから、このマクロを実行してください。 | ||
* 矩形選択範囲から実行した場合も変換後に選択範囲を復帰しますが、プロポーショナルフォントなど<span style="color:#c00;">非等幅フォント(大文字と小文字で幅が異なるフォント)を使用している場合は、復帰後の矩形選択範囲がズレることがあります</span>。 | * 矩形選択範囲から実行した場合も変換後に選択範囲を復帰しますが、プロポーショナルフォントなど<span style="color:#c00;">非等幅フォント(大文字と小文字で幅が異なるフォント)を使用している場合は、復帰後の矩形選択範囲がズレることがあります</span>。 | ||
== ソースコード == | == ソースコード == | ||
| 44行目: | 38行目: | ||
*2019/05/20: 選択範囲が1文字のときに大文字に変換できない(「単語の最初の文字を大文字に変換」コマンドの仕様)不具合を修正 | *2019/05/20: 選択範囲が1文字のときに大文字に変換できない(「単語の最初の文字を大文字に変換」コマンドの仕様)不具合を修正 | ||
*2019/08/29: 選択範囲が半角数字+半角英小文字( e.g. "1a" )のときなどに 「大文字に変換」されない不具合を修正 | *2019/08/29: 選択範囲が半角数字+半角英小文字( e.g. "1a" )のときなどに 「大文字に変換」されない不具合を修正 | ||
*2020/07/03: Mery | *2020/07/03: Mery Ver 3.0.1 以降の '''マルチカーソル'''(ゼロ幅選択範囲)と矩形選択範囲を復帰し、連続実行でトグル変換できるようにした | ||
< | <syntaxhighlight lang="javascript"> | ||
#title = "大文字/小文字変換" | #title = "大文字/小文字変換" | ||
#tooltip = "大文字/小文字/頭文字 トグル変換" | #tooltip = "大文字/小文字/頭文字 トグル変換" | ||
| 58行目: | 51行目: | ||
* sukemaru, 2019/05/10 - 2020/07/03 | * sukemaru, 2019/05/10 - 2020/07/03 | ||
* --------------------------------------------------------- | * --------------------------------------------------------- | ||
* 2020/07/03: Mery | * 2020/07/03: Mery Ver 3.0.1 以降の「マルチカーソル」のゼロ幅選択範囲の復帰に対応 | ||
* | * | ||
* 選択範囲のトグル変換 | * 選択範囲のトグル変換 | ||
| 110行目: | 103行目: | ||
// 選択範囲が小文字のみ → 「単語の最初の文字を大文字に変換」 | // 選択範囲が小文字のみ → 「単語の最初の文字を大文字に変換」 | ||
// ※ meCaseCapitalize を使えるのは | // ※ meCaseCapitalize を使えるのは Ver 2.6.10 以降 | ||
else if ( st.length > 1 | else if ( st.length > 1 | ||
&& st.toLowerCase() === st | && st.toLowerCase() === st | ||
| 158行目: | 151行目: | ||
} | } | ||
ScrollX = sx; ScrollY = sy; | ScrollX = sx; ScrollY = sy; | ||
</ | </syntaxhighlight> | ||
== 謝辞 == | == 謝辞 == | ||
スポンサーリンク