Mercurial > vim-lawrencium
comparison 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 |
comparison
equal
deleted
inserted
replaced
14:eab2680e6818 | 15:f02e37f395ae |
---|---|
1 import re | |
2 import urllib2 | |
3 from BeautifulSoup import BeautifulSoup | |
4 | |
5 # Load the documentation page. | |
6 print "Loading HG documentation from selenic.com..." | |
7 url = urllib2.urlopen("http://www.selenic.com/mercurial/hg.1.html") | |
8 soup = BeautifulSoup(url) | |
9 | |
10 # Open the output file. | |
11 output = 'hg_usage.vim' | |
12 f = open(output, 'w') | |
13 | |
14 # A little header for people peeking in there. | |
15 f.write("\" LAWRENCIUM - MERCURIAL USAGE\n") | |
16 f.write("\" This file is generated automatically.\n") | |
17 f.write("\n") | |
18 | |
19 # Start with the global options. | |
20 f.write("let g:lawrencium_hg_options = [\n") | |
21 for option in soup.find('div', id='options').findAll('span', {'class': 'option'}): | |
22 f.write(" \\'%s',\n" % option.string) | |
23 f.write(" \\]\n") | |
24 f.write("\n") | |
25 | |
26 # Now get the usage for all commands. | |
27 f.write("let g:lawrencium_hg_commands = {\n") | |
28 for command in soup.find('div', id='commands').findAll('div', {'class': 'section'}): | |
29 print " - %s" % format(command.h2.string) | |
30 f.write(" \\'%s': [\n" % command.h2.string) | |
31 option_table = command.find('table', { 'class': re.compile('option-list') }) | |
32 if option_table: | |
33 for option in option_table.findAll('span', { 'class': 'option'}): | |
34 f.write(" \\'%s',\n" % option.string) | |
35 f.write(" \\],\n") | |
36 f.write(" \\}\n") | |
37 f.write("\n") | |
38 | |
39 # Close the output file, and we're done. | |
40 f.close() | |
41 print "Done!" | |
42 |