Leo(テキストエディター)

Leo: アウトライン機能を備えたレオニンエディター
開発者Edward K. Ream 他
安定版リリース
6.7.7 / 2024年1月18日
リポジトリ
書かれたパイソン
オペレーティング·システムクロスプラットフォーム
サイズ約9MB
タイプテキストエディターアウトライナーIDE
ライセンスマサチューセッツ工科大学
Webサイトleo-editor .github .io /leo-editor /

Leoは、整理、ナビゲーション、カスタマイズ、スクリプト作成の中心ツールとしてクローン (アウトライン ノードの仮想コピー) を備えた オープン ソースのテキスト エディター/アウトライナーです。

言語

Leoは言語非依存型、つまり「適応型LPE」(文芸的プログラミング環境)であるため、人間またはコンピュータのプログラミング言語(例:Python、C、C++、Java)のテキストやコードを操作できます。[ 1 ]構文の強調表示は、様々なプログラミング言語で提供されています。[ 2 ] LeoはPythonで書かれており、Pythonで書かれたプラグインで拡張できます。GUIはQtツールキットを使用し、構文認識エディタはScintillaに基づいています。LeoのアウトラインはXMLファイル として保存されます。

ツリー、クローン、ビュー

Leo の主たる機能は、テキスト編集に加えて、GUI によるドラッグアンドドロップとキーボードコマンドの両方で「アウトラインを構造化および管理するための幅広い便利な機能」を備えたアウトライナーの機能です。 [ 2 ] Leo のアウトライン ペインには、データ ノードのツリーが表示されます。ノードには、見出し、本文、その他の情報が含まれます。見出しは、当然のことながら、本文の説明として機能します。たとえば、@file ノードは、見出しが @file で始まるノードです。Leo のツリーは、実際には有向非巡回グラフであり、ノードは複数の親を持つことができます。Leo では、このようなノードをクローンと呼びます。クローンは、アウトライン ペインの複数の場所に表示されます。ビューは、子にクローンが含まれるノードです。1 つのアウトラインには、そこに含まれるノードの任意の数のビューを含めることができます。

外部ファイル

@file ノードは外部ファイル、つまりアウトライン ファイル以外のコンピュータのファイル システム上のファイルを表します。アウトラインを保存すると、Leo は変更されたすべての @file ツリーを外部ファイルに自動的に書き戻します。外部ファイル内のセンチネル ラインと呼ばれるコメントは、アウトライン構造を表します。Leo がアウトラインを読み取るとき、これらのコメントにより、Leo は外部ファイルのデータのみを使用して @file ツリーを再作成できます。@auto ノード@clean ノードは、センチネル コメントを使用しない外部ファイルを表します。@auto ノードを読み取るとき、Leo は外部ファイルのプログラム構造を使用して @auto ツリーを作成します。@clean ノードを読み取るとき、Leo はアウトラインの構造を使用して@clean ツリーを作成します。

スクリプト

Leo のアウトライン、つまり階層構造は、従来の文芸的プログラミングツールに見られるような、プログラムとドキュメントがインターリーブされた「チャンク」のウェブとは異なります。[ 3 ] [ 4 ] Leo ノードの本文には、Leo アウトラインのコンテキストで実行される Python スクリプトであるLeo スクリプトを含めることができます。シンプルなAPIにより、Leo スクリプトは読み込まれたアウトライン内のすべてのデータにフルアクセスできるだけでなく、Leo 自身のソースコードにもフルにアクセスできます。API には、スクリプトがアウトラインを簡単に走査できるようにする Pythonイテレータが含まれています。スクリプトは任意のノードツリーで構成できます。nowebに似たマークアップ言語が、 Leo にアウトライン(の一部)からスクリプトを作成する方法を指示します。見出しはスクリプトを制御およびガイドします。たとえば、@button ノードはユーザー定義のコマンドを作成します。Leo は、@button ノードのスクリプトを他のアウトラインノードのコンテキストで実行します。

参考文献

  1. ^ Pieterse, Vreda; Kourie, Derrick G.; Boake, Andrew (2004). 「現代の文芸的プログラミングの事例」(PDF) . SAICSIT '04: Proceedings . 南アフリカ共和国: South African Institute for Computer Scientists and Information Technologists: 111– 118. 2016年3月4日時点のオリジナルよりアーカイブ。 2014年11月18日閲覧{{cite journal}}: CS1 maint: bot: 元のURLステータス不明(リンク表2:「適応性の高いLPEの例」、113ページ。同じ著者による要約版(書籍:Eckstein, Jutta、Baumeister, Hubert編、2004年6月)。「アジャイル手法を強化する文芸的プログラミング」『エクストリームプログラミングとアジャイルプロセス』 、ベルリン、ハイデルベルク、ニューヨーク:Springer-Verlag。250  253ページ。ISBN 3-540-22137-9表2:「いくつかの言語非依存LPE」、p. 251
  2. ^ a b Vestdam, Thomas; Nørmark, Kurt (2004年9月). 「プログラム理解の維持 - 課題、ツール、そして将来の方向性」(PDF) . Nordic Journal of Computing . 11 (3). フィンランド: 303– 320. ISSN 1236-6064 . 2014年11月29日時点のオリジナルよりアーカイブ。 2014年11月18日閲覧 {{cite journal}}: CS1 maint: bot: 元のURLステータス不明(リンクLeo は、出版された論文の著者のコピーの 12 ~ 13 ページで議論しました。
  3. ^ Palmer, James Dean; Hillenbrand, Eddie (2009). 「リテラシープログラミングの再考」. OOPSLA '09: 第24回ACM SIGPLANカンファレンス「オブジェクト指向プログラミングシステム言語とアプリケーションに関するコンパニオン」議事録. ニューヨーク: ACM. pp.  1007– 1014. doi : 10.1145/1639950.1640072 . ISBN 9781605587684. S2CID  17591332 .いくつかの文芸的プログラミングシステムは、斬新なユーザーインターフェースに基づいて、全く異なるアプローチを採用しています。エドワード・リームの文芸的エディタであるLeoは、視覚的なアウトラインを使用して、ユーザーがプログラムの説明やデータにメタデータや説明を添付できるようにします。残念ながら、真に文芸的なプログラムは、Leoの階層的なアウトラインに基づくパラダイムを破ってしまう可能性があります。(1009ページ)
  4. ^ Swaine, Michael (1998年7月). 「プログラミングパラダイム」 . Dr. Dobb's Journal . 2016年4月15日時点のオリジナルよりアーカイブ。LEO の初期バージョンとDonald KnuthWEB を比較します。