diff resources/GenerateHgUsage.py @ 15:f02e37f395ae

Added ability to add files from the `hg status` window. Added ability to refresh the `hg status` window. Added generation of `hg` commands usage, and used that for a better `:Hg` auto-completion.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 13 Dec 2011 17:09:37 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resources/GenerateHgUsage.py	Tue Dec 13 17:09:37 2011 -0800
@@ -0,0 +1,42 @@
+import re
+import urllib2
+from BeautifulSoup import BeautifulSoup
+
+# Load the documentation page.
+print "Loading HG documentation from selenic.com..."
+url = urllib2.urlopen("http://www.selenic.com/mercurial/hg.1.html")
+soup = BeautifulSoup(url)
+
+# Open the output file.
+output = 'hg_usage.vim'
+f = open(output, 'w')
+
+# A little header for people peeking in there.
+f.write("\" LAWRENCIUM - MERCURIAL USAGE\n")
+f.write("\" This file is generated automatically.\n")
+f.write("\n")
+
+# Start with the global options.
+f.write("let g:lawrencium_hg_options = [\n")
+for option in soup.find('div', id='options').findAll('span', {'class': 'option'}):
+    f.write("    \\'%s',\n" % option.string)
+f.write("    \\]\n")
+f.write("\n")
+
+# Now get the usage for all commands.
+f.write("let g:lawrencium_hg_commands = {\n")
+for command in soup.find('div', id='commands').findAll('div', {'class': 'section'}):
+    print " - %s" % format(command.h2.string) 
+    f.write("    \\'%s': [\n" % command.h2.string)
+    option_table = command.find('table', { 'class': re.compile('option-list') })
+    if option_table:
+        for option in option_table.findAll('span', { 'class': 'option'}):
+            f.write("        \\'%s',\n" % option.string)
+    f.write("        \\],\n")
+f.write("    \\}\n")
+f.write("\n")
+
+# Close the output file, and we're done.
+f.close()
+print "Done!"
+