GitHubのAtomテキストエディタのバージョン1.9ベータ0がバージョン1.8と同時に発表された。再設計されたバッファディスプレイレイヤ,ドラッグ・アンド・ドロップによるタブのレイアウト,Electronのアップグレードなどが注目点だ。
GitHubのエンジニアであるAntonio Scandurra氏によると,Electron - Atomが構築されているフレームワーク - がバージョン0.37.8にアップグレードされたことにより,レンダリングに加えて,コールドスタートアップ時間の大幅な短縮や全般的な応答性の向上など,多くの面でパフォーマンスが改善されている。さらにAtomの“ディスプレイレイヤ”が再設計されたことで,ソフトラップが有効な場合やテキスト領域の一部が畳み込まれている場合など,特定の条件下での編集とスクロールが高速化したということだ。新たに設計されたディスプレイレイヤでは,自由形式の畳み込みができるようになった。行全体だけでなく,任意の範囲のテキストを畳み込むことが可能だ。
GitHubのエンジニアであるNathan Sobo氏は,テキストバッファ
ライブラリ機能の一部である新しいディスプレイレイヤについて,バッファの低レベルのコンテンツとレンダリング方法との対応性の欠如に対処するための便宜的な手段だ,と説明している。これは,例えば,ハードタブやソフト改行や先頭の空白などファイル内に存在しない視覚的表現や,ファイル内に存在するコンテンツを画面に表示しない畳み込みなどの処理に関するものだ。これらの問題は,構文強調表示やテキスト装飾など,パーザで取得可能なもの以上の情報が必要な機能にも関連する。要するに,Sobo氏が言いたいのは,ディスプレイレイヤが一貫したAPIを提供することにより,開発者はそのような問題にすべて対処できるようになる,ということだ。例えば,
let layer = buffer.addDisplayLayer({
tabLength: 1,
invisibles: {space: '•', cr: '¤', eol: '¬'},
softWrapColumn: 80,
foldCharacter: '…'
})
// Fold arbitrary ranges
layer.foldBufferRange([[1, 2], [3, 4]])
// Translate and clip points
layer.translateScreenPosition([3, 4])
layer.clipScreenPosition([3, 4])
layer.translateBufferPosition([1, 2])
// Get transformed text
layer.getText()
// Get line objects for a row range to render on screen.
// These are represented in an "interesting" format for storage efficiency.
layer.getScreenLines(0, 5)
UIに関しては,Atom 1.9ベータ版では,ドラッグ・アンド・ドロップによるタブレイアウトの変更が可能になった。タブを別のタブ上にドロップすれば,下のイメージで示すように,垂直または水平に分割することができる。
さらにWindows上のCygwinやMsysとの互換性の向上や,ファイルリカバリサービスの導入によるファイル保存時の信頼性向上も実現されている。
Atom 1.9ベータ版と合わせて,GitHub 1.8安定版もリリースされた。こちらでは環境変数の扱いの改善や1列でテキストを左右に移動する新コマンド,前回終了時にオープンしていたウィンドウの再現の有無をより詳細にコントロールする機能,といった改善が中心である。
この記事を評価
- 編集者評
- 編集長アクション