折り返し問題

折り返しに関してアレコレとやってたら、深みにはまりつつある。
まず、動作確認中にバグを一つ見つけた。
小さい「っ」とか「ゃ」を行頭におけないっていう禁則が動いてなかった。
コレは単に内部で間違って逆の処理をしてただけなので、修正は1秒で終わった。
それは別に良い。



今悩んでいるのは、アポストロフィだ。
そもそも、一つの文字につき、決めなきゃいけないことがどれだけあるかと言うと、
○色分けで何扱いするか
○折り返すときに切れる場所か
○単語セレクトで切れる場所か
と、一応三つは少なくとも決めなきゃいけない。
日本語であれば、「漢字」を「漢|字」という風に切って折り返しても大丈夫だけど、
ダブルクリックしたときは、ここで切らずにつなげて1単語にしたいとか。
で、今までは、ユニコードのわけわからない文字は全部、「その他の文字」として、
○色分けは「その他の文字」で指定
○文字の前でも後でも折り返せる
○ダブルクリックしても1文字しか選択されない
という動作で統一してきたわけだが、ロシア語もワードラップしたいと言うことで、
「その他の文字」のうち、中日韓と基本ラテンを除く外国語は、
○色分けは「外国語全般」
○英語と同様にワードラップで折り返す
○ダブルクリックで英語と同様に単語選択
という動作をするように変更したのだが、
今度は、今やってる英語のワードラップが正しいかという疑問が生まれたわけだ。
それがアポストロフィね。

Shift + 7で入力するアポストロフィは、プログラミング言語ではシングルコーテーション、
すなわち、二つのアポストロフィでくくられたその間は文字列扱いで処理している。
○色分けは半角記号(プログラミングでは文字列)
○文字の前でも後ろでも折り返せる
○ダブルクリックで1文字しか選択されない
って感じだけど、Wantech’sとか、B’zとかあれば、アポストロフィの前後で切れちゃいけない。
だからってコレを切らない処理に変えたら、シングルコーテーションはどうなるの?ってね。
あと、アポストロフィだけじゃなく、切っちゃいけない記号ってもっとあるのでは?とも。

もう作るの面倒くさくなってきたよ。

B00030EVBQ
B00030EVBQ

たぶん関連のある記事:

コメントは終了しています。