~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/help.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-08-27 01:34:47 UTC
  • mfrom: (4650.2.2 bug-393677)
  • Revision ID: pqm@pqm.ubuntu.com-20090827013447-ndjtt02ad7nfdoiy
(robertc) Pass IncompatibleRepositories error over the smart server.
        (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
# TODO: Some way to get a list of external commands (defined by shell
18
18
# scripts) so that they can be included in the help listing as well.
48
48
        for index, topic in topics[1:]:
49
49
            shadowed_terms.append('%s%s' % (index.prefix,
50
50
                topic.get_help_topic()))
51
 
        outfile.write(topics[0][1].get_help_text(shadowed_terms))
 
51
        source = topics[0][1]
 
52
        outfile.write(source.get_help_text(shadowed_terms))
52
53
    except errors.NoHelpTopic:
53
54
        if alias is None:
54
55
            raise
72
73
        hidden = True
73
74
    else:
74
75
        hidden = False
75
 
    names = set(_mod_commands.builtin_command_names()) # to eliminate duplicates
76
 
    names.update(_mod_commands.plugin_command_names())
 
76
    names = list(_mod_commands.all_command_names())
77
77
    commands = ((n, _mod_commands.get_cmd_object(n)) for n in names)
78
78
    shown_commands = [(n, o) for n, o in commands if o.hidden == hidden]
79
79
    max_name = max(len(n) for n, o in shown_commands)
93
93
        else:
94
94
            firstline = ''
95
95
        helpstring = '%-*s %s%s' % (max_name, cmd_name, firstline, plugin_name)
96
 
        lines = textwrap.wrap(helpstring, subsequent_indent=indent,
97
 
                              width=width)
 
96
        lines = textwrap.wrap(
 
97
            helpstring, subsequent_indent=indent,
 
98
            width=width,
 
99
            break_long_words=False)
98
100
        for line in lines:
99
101
            out.append(line + '\n')
100
102
    return ''.join(out)
112
114
 
113
115
class HelpIndices(object):
114
116
    """Maintainer of help topics across multiple indices.
115
 
    
 
117
 
116
118
    It is currently separate to the HelpTopicRegistry because of its ordered
117
119
    nature, but possibly we should instead structure it as a search within the
118
120
    registry and add ordering and searching facilities to the registry. The
143
145
 
144
146
    def search(self, topic):
145
147
        """Search for topic across the help search path.
146
 
        
 
148
 
147
149
        :param topic: A string naming the help topic to search for.
148
150
        :raises: NoHelpTopic if none of the indexs in search_path have topic.
149
151
        :return: A list of HelpTopics which matched 'topic'.