質問: テキストエディタのAtom の評判が気になって,ブログ記事をAtomで書き始めたのですが, Atom で日本語を入力中,求めている漢字が表示されない場合,変換対象の文字列を短くしたりとか,長くするとか、変換対象の文字列に移動するのに,キーボードの矢印キーやshiftキーを押しながら矢印キーを操作します。 ところがこの操作がカーソルに反映されません。 推測でそんな操作をやってみると、変換後の日本語はちゃんと文字列の変更対象の切り分けが出来ています。 ![![Atom](https://teratail.storage.googleapis.com/uploads/contributed_images/8c64195e373ec796eebbd4cc53eec324.jpeg) Atomで日本語変換中 画像中では とらぶる という文字列だけを対象にしてカタカナに変換したい。 ![通常](https://teratail.storage.googleapis.com/uploads/contributed_images/44af4a23ff069d9c0853cd740865942d.jpeg) 普通は変換する漢字が求めている漢字と違う場合、こんな風にカーソルが変化して変換対象の文字列を選びなおすことができます。 ATOK2011で上記の症状がでたので,いつもは使用していないIMEに変えてみたのですが症状は同じです。 なにか情報をいただけませんか? プログラミングには直接関係ありませんが,過去記事に似た様な質問があったのであえて質問をあげてみました。 OS:Win7 64bit Atom ver.1.12.7
回答: **現在のAtomの仕組み上、無理です。**Atomの基盤になっているElectronの基盤になっているChromiumでその情報を取得する方法が無いからです。 参考: JavaScript - JavaScriptでIMEの注目文節を取得したい(59212)|teratail 参考に上げた質問は私が前にした物です。IMEの変換で選択するとき、矢印で長くしたり短くしたりするところを注目文節と(たぶん)言います。現在のJavaScriptではこの**注目文節が現在どこなのかを知る方法がありません**。ドラフト段階のAPIはあるのですが、Chromeでの実装はまだ開発途中という段階です。 Atomの仕組みをさらっと参考の質問でもしていますが、詳しく説明します。AtomはElectronというChromimum(Google Chromeからブラウザの機能だけ取り出した物)を利用したデスクトップアプリケーションフレームワークで作られています。専用のGoogle Chromeに専用のWebページを常に表示させているような物と思ってください。ですので、基本的にはHTMLとCSSとJavaScriptの技術で作成されており、Web技術の限界を越えることはできません。 Atomのエディタ画面もHTMLでできたWebページです。通常、IMEで入力するとき、入力コントロール(等)を利用し、入力コントロールであれば正常に注目文節は表示されます。しかし、Atomでは、その入力コントロールを背面に隠して、入力された文字情報をエディタ画面に反映させるという手段を取っています。IMEの入力途中や変換途中であっても、未確定文字列の**全部**であればJavaScript取得できるため、未確定文字列を色分けで表示し、最終的に確定文字列を入れることができています。しかし、そのうちどれが注目文節になっているかという情報は取得できません。そのため、**注目文節と他の未確定部分は同じように表示するしか無い**というのが現状になっています。 もし、参考の質問に「実はできるよ」と言う情報が書き込まれれば、パッチを作るなり、パッケージを作るなりをする予定です(時間があれば)。今のところ、Chromeでの開発完了待ちかなと思っています。