There are a lot of plugins for Leo, but it's hard to know what they all
do. Some of them are mentioned in various Leo documentation, but I find it
hard to find and understand when I wonder about a particular one. So I
wrote a Python script to extract the docstring from each .py file in the
plugins directory. The script and results are attached.
It's a little tricky to do because the various docstrings are formatted
differently, use both kinds of multi-line quotes (""" and '''), and have
sentinals. The script extracts the first three non-blank, non-sentinal
docstring lines. Note that the script hard-codes my own plugins directory,
so make sure to change that if you want to use it yourself.
I'm not going to pretend the results are perfect, but at least you get all
the basic information in one place.
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/leo-editor/5f69d256-0bfa-48ee-af62-90de9d511c85n%40googlegroups.com.
active_path.py
--------------
Synchronizes \@path nodes with folders.
If a node is named '\@path *<path_to_folder>*', the content (file and folder
names) of the folder and the children of that node will synchronized whenever
add_directives.py
-----------------
Allows users to define new @direcives.
anki.py
-------
Push @anki nodes.
- Download instructions here: https://apps.ankiweb.net/#linux
- Once Anki installed, install the AnkiConnect extension:
https://ankiweb.net/shared/info/2055492159
attrib_edit.py
--------------
Edits user attributes in a Qt frame.
This plugin creates a frame for editing attributes similar to::
Name: Fred Blogs
at_folder.py
------------
Synchronizes @folder nodes with folders.
If a node is named '\@folder *<path_to_folder>*', the content (filenames) of the
folder and the children of that node will be sync. Whenever a new file is put
at_produce.py
-------------
Executes commands in nodes whose body text starts with @produce.
WARNING: trying to execute a non-existent command will hang Leo.
To use, put in the body text of a node::
at_view.py
----------
Adds support for \@clip, \@view and \@strip nodes.
- Selecting a headline containing \@clip appends the contents of the clipboard
to
the end of the body pane.
auto_colorize2_0.py
-------------------
Manipulates appearance of individual tree widget items based on Yaml file.
Settings are defined in a node labeled "Headline Formats".
By Adrian Calvin.
backlink.py
-----------
Allows arbitrary links between nodes.
FIXME: add more docs.
@Settings
baseNativeTree.py
-----------------
No match
bibtex.py
---------
Creates a BibTex file from an '@bibtex <filename>' tree.
Nodes of the form '@<x> key' create entries in the file.
When the user creates a new node (presses enter in headline text) the plugin
bigdash.py
----------
Global search window
Use the global-search command to show this window.
To restore the original appearance of the window, type help.
bookmarks.py
------------
Manage bookmarks in a list, and show bookmarks in a pane.
This plugin has two bookmark related functions. It manages nodes that
contain bookmarks, and can also display those nodes in a special
bzr_qcommands.py
----------------
Adds a context menu to each node containing all the commands in the bzr Qt
interface. Bzr is invoked based on the path of the current node.
*Requires contextmenu.py.*
chapter_hoist.py
----------------
Creates hoist buttons.
This plugin puts two buttons in the icon area: a button called 'Save Hoist' and
a button called 'Dehoist'. The 'Save Hoist' button hoists the presently selected
colorize_headlines.py
---------------------
Manipulates appearance of individual tree widget items. (Qt only).
This plugin is mostly an example of how to change the appearance of headlines.
As
such, it does a relatively mundane chore of highlighting @thin, @auto, @shadow
contextmenu.py
--------------
Defines various useful actions for context menus (Qt only).
Examples are:
- Edit in $EDITOR
ctagscompleter.py
-----------------
This plugin uses ctags to provide an autocompletion list.
Requirements:
- Exuberant Ctags:
cursesGui.py
------------
A minimal text-oriented gui.
cursesGui2.py
-------------
A curses gui for Leo using npyscreen.
The ``--gui=curses`` command-line option enables this plugin.
**Warnings**
datenodes.py
------------
Allows users to insert headlines containing dates.
'Date nodes' are nodes that have dates in their headlines. They may be added to
the outline one at a time, a month's-worth at a time, or a year's-worth at a
debugger_pudb.py
----------------
Makes g.pdb() enter the Pudb debugger instead of pdb.
Pudb is a full-screen Python debugger:
http://pypi.python.org/pypi/pudb
demo.py
-------
A plugin that makes making Leo demos easy. See:
https://github.com/leo-editor/leo-editor/blob/master/leo/doc/demo.md
generated in LeoDocs.leo: demo.md
dragdropgoodies.py
------------------
Adds "Back" and "Forward" buttons (Qt only).
Creates "back" and "forward" buttons on button bar. These navigate
the node history.
dtest.py
--------
Sends code to the doctest module and reports the result.
When the Dtest plugin is enabled, the ``dtest`` command is active.
Typing::
dump_globals.py
---------------
Dumps Python globals at startup.
empty_leo_file.py
-----------------
Allows Leo to open any empty file as a minimal .leo file.
enable_gc.py
------------
Enables debugging and tracing for Python's garbage collector.
example_rst_filter.py
---------------------
Filters for the rst3 command.
expfolder.py
------------
Adds @expfolder nodes that represent folders in the file system.
The double-click-icon-box command on an @expfolder node reads the files in
the directory at the path specified and creates child nodes for each file
FileActions.py
--------------
Defines actions taken when double-clicking on @<file> nodes and supports
@file-ref nodes.
The double-click-icon-box command on any kind of @<file> node writes out
freewin.py
----------
Freewin - a plugin with a basic editor pane that tracks an outline node.
Provides a free-floating window tied to one node in an outline.
The window functions as a plain text editor, and can also be
free_layout.py
--------------
Free layout
===========
Adds flexible panel layout through context menus on the handles between panels.
ftp.py
------
Uploading of file by ftp.
geotag.py
---------
Tags nodes with latitude and longitude.
gitarchive.py
-------------
Store snapshots of outline in git.
graphcanvas.py
--------------
Provides a widget for displaying graphs (networks) in Leo.
graphcanvas has one command:
`graph-toggle-autoload`
history_tracer.py
-----------------
This plugin cooperates with leo-ver-serv utilty.
To install leo-ver-serv visit https://crates.io/crates/leo-ver-serv
In idle time, whenever user has no activity in last 5 seconds,
import_cisco_config.py
----------------------
Allows the user to import Cisco configuration files.
Adds the "File:Import:Import Cisco Configuration" menu item. The plugin will:
1) Create a new node, under the current node, where the configuration will be
initinclass.py
--------------
Modifies the Python @auto importer so that the importer
puts the __init__ method (ctor) into the body of the class node.
This makes it easier to keep the instance variable docs in the class
interact.py
-----------
Adds buttons so Leo can interact with command line environments.
:20100226: see also leoscreen.py for a simpler approach.
Currently implements `bash` shell and `psql` (postresql SQL db shell).
jinjarender.py
--------------
Render @jinja nodes.
- sudo apt-get install python-jinja2
Create headline like this:
leocursor.py
------------
Creates a LeoCursor object that can walk around a Leo outline and decode
attributes from nodes.
Node names can be used through . (dot) notation so ``cursor.Data.Name._B`` for
leofeeds.py
-----------
Read feeds from rss / atom / whatever sources
Usage: Create node with a headline like:
@feed http://www.planetqt.org/atom.xml
leoflexx.py
-----------
flexx.py: LeoWapp (Leo as a web browser), implemented using flexx:
https://flexx.readthedocs.io/en/stable/
Start Leo using the --gui=browser option. Like this::
leoflexx_js.py
--------------
A Stand-alone prototype for Leo using flexx.
leofts.py
---------
map gnx => vnode
leomail.py
----------
Sync local mailbox files over to Leo.
Creates mail-refresh command, which can only be applied to @mbox nodes of the
form:
@mbox <path to .mbox file>
leomylyn.py
-----------
Provides an experience like Mylyn:http://en.wikipedia.org/wiki/Mylyn for Leo.
It "scores" the nodes based on how interesting they probably are for you,
allowing you to focus on your "working set".
leoOPML.py
----------
A plugin to read and write Leo outlines in .opml
(http://en.wikipedia.org/wiki/OPML) format.
The OPML plugin creates two new commands that read and write Leo outlines in
leoremote.py
------------
Remote control for Leo.
NOTE: as of 2015-07-29 the http://localhostL:8130/_/exec/ mode of
the mod_http plug-in is intended to replace this module's functionality.
leoscreen.py
------------
Allows interaction with shell apps via screen.
status: daily-use py2.7 Wed Aug 5 09:30:38 2015
Analysis environments like SQL, R, scipy, ipython, etc. can be
leowapp.py
----------
This file is deprecated/obsolete. It may be removed soon.
leoflexx.py implements LeoWapp using flexx.
leo_cloud.py
------------
leo_cloud.py - synchronize Leo subtrees with remote central server
Terry N. Brown, [email protected], Fri Sep 22 10:34:10 2017
This plugin allows subtrees within a .leo file to be stored in the cloud. It
leo_cloud_server.py
-------------------
leo_cloud.py - synchronize Leo subtrees with remote central server
Terry N. Brown, [email protected], Fri Sep 22 10:34:10 2017
(this is the server half, see also leo_cloud.py for the Leo plugin)
leo_interface.py
----------------
Allows the user to browse XML documents in Leo.
This plugin implements an interface to XML generation,
so that the resulting file can be processed by leo.
leo_mypy_plugin.py
------------------
A mypy plugin to add annotations for Leo's standard names,
such as c, p, i, j, k, n, s, w, etc.
leo_pdf.py
----------
This NOT a Leo plugin: this is a docutils writer for .pdf files.
That file uses the reportlab module to convert html markup to pdf.
The original code written by Engelbert Gruber.
leo_to_html.py
--------------
Converts a leo outline to an html web page.
This plugin takes an outline stored in Leo and converts it to html which is then
either saved in a file or shown in a browser. It is based on the original
leo_to_rtf.py
-------------
Outputs a Leo outline as a numbered list to an RTF file. The RTF file
can be loaded into Microsoft Word and formatted as a proper outline.
This plug-in loads installs an "Outline to Microsoft RTF" menu item in your
lineNumbers.py
--------------
Adds #line directives in perl and perlpod programs.
Over-rides two methods in leoAtFile.py to write #line directives after node
sentinels. This allows compilers to give locations of errors in relation to the
line_numbering.py
-----------------
This plugin makes line numbers in gutter (if used), to represent
real line numbers in generated file. Root of file is either a
first of ancestor nodes with heading at-(file,clean,...), or first
livecode.py
-----------
Show results of code in another pane as it's edited.
livecode-show opens the livecode pane on c.p.
Thereafter, pressing return in that body pane re-evaluates the code.
macros.py
---------
Creates new nodes containing parameterized section reference.
.. No longer available: http://sourceforge.net/forum/message.php?msg_id=2444117
This plugin adds nodes under the currently selected tree that are to act as
markup_inline.py
----------------
Commands to go with keybindings in @settings-->@keys-->@shortcuts
to implement Ctrl-B,I,U Bold Italic Underline markup in plain text.
RST flavored, could be made language aware.
maximizeNewWindows.py
---------------------
Maximizes all new windows.
md_docer.py
-----------
This plugin adds few commands for those who use Leo for writing
markdown documentation with code samples taken from real source
files.
mime.py
-------
Opens files with their default platform program.
The double-click-icon-box command on @mime nodes will attempt to open the
named file as if opened from a file manager. \@path parent nodes are used
mnplugins.py
------------
mnplugins.py
mnplugins shows how to :
define new Commands "insertOK" + "insertUser"
mod_autosave.py
---------------
Autosaves the Leo outline every so often.
The time between saves is given by the setting, with default as shown::
@int mod_autosave_interval = 300
mod_framesize.py
----------------
Sets a hardcoded frame size.
Prevents Leo from setting custom frame size (e.g. from an external .leo
document)
mod_http.py
-----------
An http plug-in for LEO, based on AsyncHttpServer.py.
Adapted and extended from the Python Cookbook:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/259148
mod_leo2ascd.py
---------------
Return True if the plugin has loaded successfully.
mod_read_dir_outline.py
-----------------------
Allows Leo to read a complete directory tree into a Leo outline. Converts
directories into headlines and puts the list of file names into bodies.
Ce plug-in permet de traduire l'arborescence d'un répertoire en une arborescence
mod_scripting.py
----------------
This plugin script buttons and eval* commands.
Overview of script buttons
--------------------------
mod_speedups.py
---------------
Experimental speedups
Various optimizations. Use at your own risk.
If stuff breaks, disable this plugin before reporting bugs.
mod_timestamp.py
----------------
Timestamps all save operations to show when they occur.
multifile.py
------------
Allows Leo to write a file to multiple locations.
This plugin acts as a post-write mechanism, a file must be written to the
file system for it to work. At this point it is not a replacement for @path or
an
nav_qt.py
---------
Adds "Back" and "Forward" buttons (Qt only).
Creates "back" and "forward" buttons on button bar. These navigate
the node history.
nested_splitter.py
------------------
Nested splitter classes.
niceNosent.py
-------------
Ensures that all descendants of @file-nosent nodes end
with exactly one newline, replaces all tabs with spaces, and
adds a newline before class and functions in the derived file.
nodeActions.py
--------------
Allows the definition of double-click actions.
Calling the nodeaction-act command or double-clicking a node causes this plugin
checks for a match of the clicked node's headline text with a list of
nodediff.py
-----------
Provides commands to run text diffs on node bodies within Leo.
By Jacob M. Peck
Configuration Settings
nodetags.py
-----------
Provides node tagging capabilities to Leo
By Jacob M. Peck
API
nodewatch.py
------------
Provides a GUI in the Log pane (tab name 'Nodewatch') that lists node headlines.
The nodes that show up in this GUI are scriptable on a per-outline basis, with
@nodewatch nodes.
notebook.py
-----------
QML Notebook
Edit several nodes at once, in a pannable "notebook" view.
Use <Alt-x>nb-<tab> to see the list of commands.
open_shell.py
-------------
Creates an 'Extensions' menu containing two commands:
Open Console Window and Open Explorer.
The Open Console Window command opens xterm on Linux.
outline_export.py
-----------------
Modifies the way exported outlines are written.
paste_as_headlines.py
---------------------
Creates new headlines from clipboard text.
If the pasted text would be greater than 50 characters in length, the plugin
truncates the headline to 50 characters and pastes the entire line into the body
patch_python_colorizer.py
-------------------------
Shows how to patch python colorizer.
plugins_menu.py
---------------
Creates a Plugins menu and adds all actives plugins to it.
Selecting these menu items will bring up a short **About Plugin** dialog
with the details of the plugin. In some circumstances a submenu will be created
projectwizard.py
----------------
Creates a wizard that creates @auto nodes.
Opens a file dialog and recursively creates @auto & @path nodes from the path
where the selected file is (the selected file itself doesn't matter.)
pyplot_backend.py
-----------------
A helper for the viewrendered plugin.
This is *NOT* a real plugin.
python_terminal.py
------------------
Provides an interactive python terminal in the log pane.
**Warning**: Use at your own risk.
Numerous significant problems have been reported, including segfaults.
QNCalendarWidget.py
-------------------
QNCalendarWidget.py - a QCalendarWidget which shows N months at a time.
Not a full QCalendarWidget implementation, just enough to work
with a QDateEdit (QNDateEdit) in a particular context.
qtGui.py
--------
qt gui plugin.
qt_commands.py
--------------
Leo's Qt-related commands defined by @g.command.
qt_events.py
------------
Leo's Qt event handling code.
qt_frame.py
-----------
Leo's qt frame classes.
qt_gui.py
---------
This file contains the gui wrapper for Qt: g.app.gui.
qt_idle_time.py
---------------
Leo's Qt idle-time code.
qt_main.py
----------
No docstring
qt_quickheadlines.py
--------------------
qt_quickheadlines plugin.
qt_quicksearch.py
-----------------
No docstring
qt_quicksearch_sub.py
---------------------
No docstring
qt_text.py
----------
Text classes for the Qt version of Leo
qt_tree.py
----------
Leo's Qt tree class.
quickMove.py
------------
Creates buttons to move nodes quickly to other nodes.
Quickly move/copy/clone nodes from around the tree to one or more target nodes.
It can also create bookmark and tagging functionality in an outline (see `Set
quicksearch.py
--------------
Adds a fast-to-use search widget, like the "Find in files" feature of many
editors.
Quicksearch searches node headlines only, *not* body text
Just load the plugin, activate "Nav" tab, enter search text and press enter.
quit_leo.py
-----------
Shows how to force Leo to quit.
read_only_nodes.py
------------------
Creates and updates @read-only nodes.
Here's my first attempt at customizing leo. I wanted to have the ability to
import files in "read-only" mode, that is, in a mode where files could only
redirect_to_log.py
------------------
Sends all output to the log pane.
richtext.py
-----------
richtext.py - Rich text editing
===============================
This plugin allows you to use CKEditor__ to edit rich text
rss.py
------
Adds primitive RSS reader functionality to Leo.
By Jacob M. Peck.
RSS feeds
rst3.py
-------
Creates output files from Leo outlines containing rST (reStructuredText)
markup. This plugin has been superseded by Leo's core rst3 command.
This is a powerful plugin with many options. The full documentation is at:
run_nodes.py
------------
Runs a program and interface Leo through its input/output/error streams.
The double-click-icon-box command on a node whose headlines is @run 'cmd args'
will execute
the command. There are several other features, including @arg and @input nodes.
screencast.py
-------------
Overview
========
This plugin is a tool for people wanting to demonstrate Leo or some Leonine
screenshots.py
--------------
Creates stand-alone slideshows containing screenshots.
This plugin defines five commands. The
**help-for-slides** command prints this message to
screen_capture.py
-----------------
screen_capture.py
=================
Capture screen shots - single frames are useful. The
script_io_to_body.py
--------------------
Sends output from the Execute Script command to the end of the body pane.
setHomeDirectory.py
-------------------
Sets g.app.homeDir to a hard-coded path.
settings_finder.py
------------------
Let the user pick settings from a menu, find the relevant @settings nodes and
open them.
sftp.py
-------
@edit-like functionality for remote files over SFTP
By Jacob M. Peck
@sftp nodes
slideshow.py
------------
Supports slideshows in Leo outlines.
This plugin defines four new commands:
- next-slide-show: move to the start of the next slide show,
spydershell.py
--------------
Launches the spyder environment with access to Leo instance.
See http://packages.python.org/spyder/
Execute alt-x spyder-launch to start spyder. Execute alt-x spyder-update to pass
startfile.py
------------
Launches (starts) a file given by a headline when executing the
double-click-icon-box
This plugin ignores headlines starting with an '@'. Uses the @folder path if the
stickynotes.py
--------------
Adds simple "sticky notes" feature (popout editors) for Qt gui.
Adds the following (``Alt-X``) commands:
``stickynote``
stickynotes_plus.py
-------------------
Adds simple "sticky notes" feature (popout editors) for Qt gui.
alt-x stickynote to pop out current node as a note.
systray.py
----------
systray
tables.py
---------
A plugin that inserts tables, inspired by org mode tables:
Written by Edward K. Ream, February 17, 2017.
testRegisterCommand.py
----------------------
A plugin to test k.registerCommand.
textnode.py
-----------
Supports @text nodes for reading and writing external files.
This plugin has been superceded by @edit nodes.
The @text node is for embedding text files in a leo node that won't be
threadutil.py
-------------
Return True if the plugin has loaded successfully.
timestamp.py
------------
If this plugin is enabled, the following node attributes will be managed:
- str_ctime: creation time
- str_mtime: time node was last modified
todo.py
-------
Provides to-do list and simple task management.
This plugin adds time required, progress and priority settings for nodes. With
the @project tag a branch can display progress and time required with dynamic
tomboy_import.py
----------------
Allows imports of notes created in Tomboy / gnote.
Usage:
* Create a node with the headline 'tomboy'
trace_gc_plugin.py
------------------
Traces changes to Leo's objects at idle time.
trace_keys.py
-------------
Traces keystrokes in the outline and body panes.
trace_tags.py
-------------
Trace most common hooks, but not key, drag or idle hooks.
valuespace.py
-------------
Supports Leo scripting using per-Leo-outline namespaces.
Commands
========
viewrendered.py
---------------
Creates a window for *live* rendering of reSTructuredText, markdown text,
images, movies, sounds, rst, html, jupyter notebooks, etc.
Dependencies
viewrendered2.py
----------------
viewrendered2.py: Creates a window for *live* rendering of reSTructuredText,
markdown text,
images, movies, sounds, rst, html, etc.
Dependencies
viewrendered3.py
----------------
Creates a window for live rendering of reSTructuredText,
Markdown and Asciidoc text, images, movies, sounds, rst, html, jupyter
notebooks, etc.
About Viewrendered3 V3.2b7
vim.py
------
Enables two-way communication with gVim (recommended) or Vim.
Commands
--------
wikiview.py
-----------
Hide text in the body editor, each time a new node is selected. Makes::
file;//#some-->headlines-->mynode appear as mynode,
http;//www.google.com/search as search, and
word_count.py
-------------
Word Count plugin by Dan Rahmel
Counts characters, words, lines, and paragraphs in the body pane.
It adds a "Word Count..." option to the bottom of the Edit menu that will
word_export.py
--------------
Adds the Plugins\:Word Export\:Export menu item to format and export
the selected outline to a Word document, starting Word if necessary.
xdb_pane.py
-----------
Creates a Debug tab in the log pane, containing buttons for common xdb
commands, and an input area in which the user can type other commands.
xemacs.py
---------
Allows you to edit nodes in emacs/xemacs.
Provides the emacs-open-node command which passes the body
text of the node to emacs.
xml_edit.py
-----------
Provides commands (Alt-x) for importing and exporting XML from a Leo
outline. These commands are to XML what ``@auto-rst`` is to
reStructuredText.
xsltWithNodes.py
----------------
Adds the Outline:XSLT menu containing XSLT-related commands.
This menu contains the following items:
- Set StyleSheet Node:
zenity_file_dialogs.py
----------------------
Replaces the tk file dialogs on Linux with external
calls to the zenity gtk dialog package.
This plugin is more a proof of concept demo than
__init__.py
-----------
No docstring
clicky_splitter.py
------------------
clicky_splitter.py - a QSplitter which allows flipping / rotating of
content by clicking on the splitter handle
Terry Brown, [email protected], Sun Oct 29 21:02:25 2017
csvedit.py
----------
DBG - temporary debugging function
:param str text: text to print
editpane.py
-----------
Support for the edit-pane-test-open command and window.
leotextedit.py
--------------
DBG - temporary debugging function
Args:
text (str): text to print
markdownview.py
---------------
to_html - convert to HTML
Args:
text (str): markdown text to convert
pandownview.py
--------------
Markdown view using Pandoc.
There could also be a more generic Pandoc view that handles more input
languages, but this just does markdown.
plaintextedit.py
----------------
DBG - temporary debugging function
Args:
text (str): text to print
plaintextview.py
----------------
LEP_PlainTextView - simplest possible LeoEditorPane viewer
vanillascintilla.py
-------------------
vanillascintilla.py - a LeoEditPane editor that uses QScintilla
but does not try to add Leo key handling
Terry Brown, [email protected], Sat Feb 4 12:38:26 2017
webengineview.py
----------------
LEP_PlainTextView - simplest possible LeoEditorPane viewer
webkitview.py
-------------
_path_from_pos - get folder for position
FIXME: should be in Leo core somewhere.
Args:
__init__.py
-----------
No docstring
chinese_menu.py
---------------
Translate a few menu items into Simplified Chinese
本插件将部分Leo菜单翻译成简体中文
By Zhang Le <[email protected]>
french_fm.py
------------
traduit les menus en Français
override_classes.py
-------------------
A plugin showing how to override Leo's core classes.
override_commands.py
--------------------
Override the Equal Sized Pane command
print_cp.py
-----------
A plugin showing how to convert an @button node to a plugin.
This plugin registers the 'print-cp' minibuffer command.
redefine_put.py
---------------
Redefine the "put" and "put_nl" methods
slowOut.py
----------
No docstring
slowOutNoFlush.py
-----------------
No docstring
template_gui.py
---------------
An example of a gui plugin that completes startup without doing anything.
c.py
----
The @auto importer for the C language and other related languages.
coffeescript.py
---------------
The @auto importer for coffeescript.
csharp.py
---------
The @auto importer for the csharp language.
ctext.py
--------
Read/Write simple text files with hierarchy embedded in headlines::
Leading text in root node of subtree
Etc. etc.
cython.py
---------
@auto importer for cython.
dart.py
-------
The @auto importer for the dart language.
elisp.py
--------
The @auto importer for the elisp language.
html.py
-------
The @auto importer for HTML.
ini.py
------
The @auto importer for .ini files.
ipynb.py
--------
The @auto importer for Jupyter (.ipynb) files.
java.py
-------
The @auto importer for the java language.
javascript.py
-------------
The @auto importer for JavaScript.
leo_json.py
-----------
The @auto importer for .json files.
leo_rst.py
----------
The @auto importer for restructured text.
This module must **not** be named rst, so as not to conflict with docutils.
linescanner.py
--------------
**Overview**
Leo's import infrastructure in `leoImport.py` instantiates the
Importer instance and calls `i.run`, which calls `i.scan_lines`.
lua.py
------
The @auto importer for the lua language.
Created 2017/05/30 by the `importer;;` abbreviation.
markdown.py
-----------
The @auto importer for the markdown language.
org.py
------
The @auto importer for the org language.
otl.py
------
The @auto importer for vim-outline files.
pascal.py
---------
The @auto importer for the pascal language.
perl.py
-------
The @auto importer for Perl.
php.py
------
The @auto importer for the php language.
python.py
---------
The new, line-based, @auto importer for Python.
rust.py
-------
The @auto importer for rust.
tcl.py
------
The @auto importer for the tcl language.
Created 2017/06/15 by the `importer;;` abbreviation.
treepad.py
----------
The @auto importer for the TreePad file format.
typescript.py
-------------
The @auto importer for TypeScript.
xml.py
------
The @auto importer for the xml language.
__init__.py
-----------
No docstring
babel.py
--------
{0}
babel_api.py
------------
Language specified is not currently
supported by Leo-Babel
babel_kill.py
-------------
No docstring
babel_lib.py
------------
The scheme for real-time streaming of stdout and stderr while the script is
still executing is taken from:
http://stackoverflow.com/questions/18421757/live-output-from-subprocess-command
__init__.py
-----------
No docstring
slowOut.py
----------
No docstring
slowOutNoFlush.py
-----------------
No docstring
idle_time.py
------------
This is an implementation of the Leo-Editor
class IdleTime() for use with Leo-Bridge.
lib_test.py
-----------
Find all the Leo-Babel test nodes in the specified file
Arguments:
cmdrT: Leo-Editor commander for the file containing tests
tests.py
--------
usage: tests.py [options] tests results
Run Leo-Babel Tests
positional arguments:
__init__.py
-----------
No docstring
gtkDialogs.py
-------------
Replace Tk dialogs with Gtk dialogs.
At the moment this plugin only replaces Tk's file dialogs, but
other dialogs may be replaced in future.
gtkGui.py
---------
The plugin part of the gtk gui code.
ironPythonGui.py
----------------
A plugin to use IronPython and .Net Forms as Leo's gui.
swing_gui.py
------------
The plugin part of the swing gui code.
tkGui.py
--------
Leo's tkinter gui plugin.
wxGui.py
--------
A plugin to use wxWidgets as Leo's gui.
**Important**: this plugin is largely unfinished.
Do not use thi plugin for production work!
pygeotag.py
-----------
from
http://stackoverflow.com/questions/1564501/add-timeout-argument-to-pythons-queue-join
by Lukáš Lalinský
__init__.py
-----------
No docstring
launchqmlnb.py
--------------
No docstring
ekr_test.py
-----------
Return True if the plugin has loaded successfully.
failed_import.py
----------------
A plugin to test import problems.
failed_to_load_plugin.py
------------------------
This plugin intentially reports that it fails to load.
It is used for testing Leo's plugin loading logic.
syntax_error_plugin.py
----------------------
This plugin intentially has a syntax error.
It is used for testing Leo's plugin loading logic.
basewriter.py
-------------
A module defining the base class for all writers in leo.plugins.writers.
ctext.py
--------
No docstring
dart.py
-------
The @auto write code for Emacs org-mode (.org) files.
ipynb.py
--------
The @auto write code for jupyter (.ipynb) files.
leo_json.py
-----------
The @auto write code for .json files.
leo_rst.py
----------
The write code for @auto-rst and other reStructuredText nodes.
This is very different from rst3's write code.
This module must **not** be named rst, so as not to conflict with docutils.
markdown.py
-----------
The @auto write code for markdown.
org.py
------
The @auto write code for Emacs org-mode (.org) files.
otl.py
------
The @auto write code for vimoutline (.otl) files.
test.py
-------
The @auto writer for .xyzzy files and @auto-test nodes.
treepad.py
----------
The @auto write code for TreePad (.hjt) files.
__init__.py
-----------
No docstringFind all .py files in the plugins directory. Read their docstrings if any.
@language python
from pathlib import Path
import re
DIR = r'C:\Tom\git\leo-editor\leo\plugins'
DOCSTR1 = '.*?"""(.+?)"""'
DOCSTR2 = ".*?'''(.+?)'''"
paths = Path(DIR).rglob('*.py')
result = []
for p in paths:
with open(p, encoding='utf-8') as f:
result.append('\n' + p.name)
result.append('-'*len(p.name))
text = f.read()
pos_single = text.find("'''")
pos_double = text.find('"""')
has_docstr = False
has_docstr = (pos_single > -1 or pos_double > -1)
if has_docstr:
if pos_single == -1:
pattern = DOCSTR1
elif pos_double == -1:
pattern = DOCSTR2
elif pos_single < pos_double:
pattern = DOCSTR2
else:
pattern = DOCSTR1
matched = re.match(pattern, text, re.DOTALL)
if not matched:
result.append('No match')
else:
lines = matched.group(1).split('\n')
lines = [l for l in lines if l.strip()]
lines = [l for l in lines if not l.startswith('#@')]
if len(lines):
result.extend(lines[0:3])
else:
result.append('???')
else:
result.append('No docstring')
print('\n'.join(result))