Leo(텍스트 편집기)
Leo (text editor)![]() | |
개발자 | 에드워드 K.렘 등 |
---|---|
안정된 릴리스 | 6.6.3 / 2022년 7월 22일; 전( |
저장소 | |
기입처 | 파이썬 |
운영 체제 | 크로스 플랫폼 |
크기 | 최대 9 MB |
유형 | 텍스트 편집기, 아웃라이너, IDE |
면허증. | MIT |
웹 사이트 | leoeditor |
Leo(Leonine Editor with Outline)는 클론(개요 노드의 가상 복사본)을 조직, 내비게이션, 맞춤 및 스크립팅의 중심 도구로 제공하는 오픈 소스 텍스트 편집기/아웃라이너입니다.
언어들
Leo는 언어에 의존하지 않거나 "적응 가능한 LPE"(리터럴 프로그래밍 환경)[1]이기 때문에 Leo는 모든 인간 또는 컴퓨터 프로그래밍 언어(예: Python, C, C++, Java)로 텍스트 또는 코드를 조작할 수 있습니다.구문 강조 표시는 다양한 프로그래밍 언어에 [2]대해 제공됩니다.Leo는 Python으로 작성되며 Python으로 작성된 플러그인으로 확장할 수 있습니다.GUI는 Qt 툴킷을 사용합니다.구문 인식 에디터는 Scintilla를 기반으로 합니다.Leo 윤곽선은 XML 파일로 저장됩니다.
트리, 클론 및 뷰
텍스트 편집과 더불어 Leo의 가장 중요한 기능은 아웃라이너입니다.GUI를 통한 드래그 앤 드롭과 키보드 [2]명령으로 "개요를 구조화 및 관리하기 위한 다양한 편의 기능"을 갖추고 있습니다.Leo의 개요 창에는 데이터 노드의 트리가 표시됩니다.노드에는 제목, 본문 텍스트 및 기타 정보가 포함됩니다.헤드라인은 자연스럽게 본문을 설명하는 역할을 합니다.예를 들어 @file 노드는 헤드라인이 @file로 시작하는 노드입니다.Leo 트리는 실제로는 지시된 비순환 그래프입니다.노드는 여러 개의 부모를 가질 수 있습니다.Leo는 이러한 노드를 클론이라고 부릅니다.클론은 아웃라인 창의 여러 위치에 나타납니다.보기는 하위 항목이 클론을 포함하는 노드일 뿐입니다.단일 아웃라인은 포함된 노드의 임의의 다수의 뷰를 포함할 수 있다.
외부 파일
@file 노드는 아웃라인 파일 이외의 컴퓨터 파일시스템상의 파일을 나타냅니다.개요를 저장할 때 Leo는 변경된 모든 @file 트리를 자동으로 외부 파일에 다시 씁니다.외부 파일에서 sentinel 행이라고 하는 코멘트는 아웃라인 구조를 나타냅니다.Leo가 개요를 읽을 때 이러한 코멘트를 통해 Leo는 외부 파일의 데이터만 사용하여 @file 트리를 다시 작성할 수 있습니다.@auto 노드는 Sentinel 코멘트를 사용하지 않고 외부 파일을 나타냅니다.Leo는 @auto 노드를 읽을 때 외부 파일의 프로그램 구조를 사용하여 @auto 트리를 만듭니다.
스크립트 작성
Leo의 개요 또는 계층 구조는 고전적인 프로그래밍 [3][4]도구와 관련된 인터리브 프로그램 및 문서 "청크"의 웹과는 다릅니다.모든 Leo 노드의 본문 텍스트에는 Leo 스크립트, Leo 아웃라인 컨텍스트에서 실행되는 Python 스크립트가 포함될 수 있습니다.간단한 API를 통해 Leo 스크립트는 로드된 아웃라인의 모든 데이터에 대한 전체 액세스와 Leo 자신의 소스 코드에 대한 전체 액세스를 제공합니다.API에는 스크립트가 개요를 쉽게 통과할 수 있는 Python 반복기가 포함되어 있습니다.스크립트는 임의의 노드 트리로 구성할 수 있습니다.noweb과 유사한 마크업 언어는 Leo에게 아웃라인에서 스크립트를 작성하는 방법을 알려준다.헤드라인 컨트롤 및 가이드 스크립트예를 들면 다음과 같습니다.
- @test 노드는 유닛테스트를 만듭니다.Leo는 Python의 UnitTest의 명시적인 서브클래스를 만들 필요 없이 @test 노드의 본문을 유닛 테스트로 실행합니다.Test Case 클래스
- @button 노드는 사용자 정의 명령을 만듭니다.Leo는 다른 아웃라인 노드의 컨텍스트에서 @button 노드의 스크립트를 실행합니다.
레퍼런스
- ^ Pieterse, Vreda; Kourie, Derrick G.; Boake, Andrew (2004). "A Case for Contemporary Literate Programming". SAICSIT '04: Proceedings. Republic of South Africa: South African Institute for Computer Scientists and Information Technologists: 111–118. Archived from the original (PDF) on 2004. 표 2: "일부 적응 가능한 LPE", 페이지 113동일 저자의 요약본 책: 표 2: "일부 언어 독립형 LPE", 페이지 251
- ^ a b Vestdam, Thomas; Nørmark, Kurt (September 2004). "Maintaining Program Understanding - Issues, Tools, and Future Directions". Nordic Journal of Computing. Finland. 11 (3): 303–320. ISSN 1236-6064. Archived from the original (PDF) on 2004. Retrieved 18 November 2014. 레오는 출판된 기사의 저자의 사본 12-13페이지에 대해 논의했다.
- ^ 파머, 제임스 딘, Hillenbrand, 에디(2009년)."Literate 프로그래밍 Reimagining".OOPSLA 2009년:24ACMSIGPLAN 회의 동반자 객체 지향 프로그래밍 시스템 언어와 활용에 회보.뉴욕:ACM.를 대신하여 서명함. 1007–1014. doi:10.1145/1639950.1640072.아이 에스비엔 9781605587684.몇 잘 알고 프로그래밍 체제가 많이 다른 방침을 소설 사용자 인터페이스에 기반을 두고 있다.에드워드 Ream의 글을 편집자, 레오, 사용자 프로그램 설명과 자료에 메타 데이터에 대한 설명과 첨부할 수 있는 시각적 윤곽을 사용한다.불행히도, 정말 박식한 프로그램 레오의 계층적 윤곽 따라 패러다임을 깰지 모른다.(우편 1009년)
- ^ LEO의 초기 버전을 Donald Knuth의 WEB와 Swaine, Michael (July 1998). "Programming Paradigms". Dr. Dobb's Journal. Archived from the original on 2016-04-15.비교합니다.
외부 링크
- 공식 웹사이트
- GitHub의 Leo 에디터
- "LeoVue, A web-based version of Leo, by Joe Orr".
- "LeoInteg, A VSCode extension that integrates Leo, by Félix Malboeuf".
- 안정적인 릴리스 바이너리 다운로드를 위한 Leo의 호스트인 SourceForge의 Leo(텍스트 편집기)
- "Literate Programming and Leo". Slashdot. 2002-08-28.
- James Tauber (2004-05-15). "Using the Leo Outliner as a PIM".