Source code for leo.plugins.empty_leo_file

#@+leo-ver=5-thin
#@+node:EKR.20040517080049.1: * @file empty_leo_file.py
"""Allows Leo to open any empty file as a minimal .leo file."""

#@@language python
#@@tabwidth -4

import leo.core.leoGlobals as g
import os

__version__ = "1.2"

#@+<< define minimal .leo file >>
#@+node:EKR.20040517080049.2: ** << define minimal .leo file >>
empty_leo_file = """<?xml version="1.0" encoding="UTF-8"?>
<leo_file>
<leo_header/>
<globals/>
<preferences/>
<find_panel_settings/>
<vnodes/>
<tnodes/>
</leo_file>
"""
#@-<< define minimal .leo file >>

#@+others
#@+node:ekr.20100128073941.5372: ** init
[docs]def init(): '''Return True if the plugin has loaded successfully.''' ok = not g.unitTesting if ok: g.registerHandler("open1", onOpen) g.plugin_signon(__name__) return ok
#@+node:EKR.20040517080049.3: ** onOpen
[docs]def onOpen (tag,keywords): file_name = keywords.get('fileName') if file_name and os.path.getsize(file_name)==0: # Rewrite the file before really opening it. g.es("rewriting empty .leo file: %s" % (file_name)) file = open(file_name,'w') file.write(empty_leo_file) file.flush() file.close()
#@-others #@-leo