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

Attachment: signature.asc
Description: Digital signature

Reply via email to