I've cleaned up `rope.ide.codeassist` module. You can do something like:: from rope.ide import codeassist
# Get the proposals; you might want to pass a Resource
proposals = codeassist.code_assist(project, source_code, offset)
# Sorting proposals; for changing the order see pydoc
proposals = codeassist.sorted_proposals(proposals)
# Where to insert the completions
starting_offset = codeassist.starting_offset(source_code, offset)
# Applying a proposal
proposal = proposals[x]
if isinstance(proposal, codeassist.CompletionProposal):
replacement = proposal.name
else:
# isinstance(proposal, codeassist.TemplateProposal) == True
# mapping is a proposal.template.variables() -> str dict
replacement = proposal.template.substitute(mapping)
new_source_code = (source_code[:starting_offset] +
replacement + source_code[offset:])
For more information see module docs. For working with `Project`\s or
using rope's static object inference see ``docs/library.txt`` file.
Regards,
-- Ali
signature.asc
Description: Digital signature
