Skip to main content

Extended refactoring capabilities for Python LSP Server using Rope.

Project description

pylsp-rope

Tests

Extended refactoring capabilities for Python LSP Server using Rope.

This is a plugin for Python LSP Server, so you also need to have it installed.

python-lsp-server already has basic built-in support for using Rope, but it's currently limited to just renaming and completion. Installing this plugin adds more refactoring functionality to python-lsp-server.

Installation

To use this plugin, you need to install this plugin in the same virtualenv as python-lsp-server itself.

pip install pylsp-rope

Then run pylsp as usual, the plugin will be auto-discovered by python-lsp-server if you've installed it to the right environment. On Vim, refer to Rope in Vim or Neovim. For other editors, refer to your IDE/text editor's documentation on how to setup a language server.

Configuration

There is no configuration yet.

Features

This plugin adds the following features to python-lsp-server:

  • extract method (codeAction)
  • extract variable (codeAction)
  • inline method/variable/parameter (codeAction)
  • use function (codeAction)
  • method to method object (codeAction)
  • convert local variable to field (codeAction)
  • organize imports (codeAction)
  • introduce parameter (codeAction)
  • more to come...

Refer to Rope documentation for more details on how these refactoring works.

Usage

Extract method

Variants:

  • Extract method
  • Extract global method
  • Extract method including similar statements
  • Extract global method including similar statements

This refactoring works by triggering CodeAction when selecting a block of code. Optionally, similar statements can also be extracted.

Extract variable

  • Extract variable
  • Extract global variable
  • Extract variable including similar statements
  • Extract global variable including similar statements

This refactoring works by triggering CodeAction when selecting a Python expression. Optionally, similar statements can also be extracted.

Inline

This refactoring works by triggering CodeAction when the cursor is on a resolvable Python identifier.

Use function

This refactoring works by triggering CodeAction when the cursor is on the function name of a def statement.

Method to method object

This refactoring works by triggering CodeAction when the cursor is on the function name of a def statement.

Convert local variable to field

This refactoring works by triggering CodeAction when the cursor is on a local variable.

Organize import

This refactoring works by triggering CodeAction anywhere.

Introduce parameter

This refactoring works by triggering CodeAction when the cursor is selecting a Python identifier, including attribute access.

Caveat

Support for working on unsaved document is currently experimental.

This plugin is in early development, so expect some bugs. Please report in Github issue tracker if you had any issues with the plugin.

Developing

See CONTRIBUTING.md.

Credits

This package was created with Cookiecutter from lieryan/cookiecutter-pylsp-plugin project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylsp-rope-0.1.9.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

pylsp_rope-0.1.9-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file pylsp-rope-0.1.9.tar.gz.

File metadata

  • Download URL: pylsp-rope-0.1.9.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for pylsp-rope-0.1.9.tar.gz
Algorithm Hash digest
SHA256 67ae55aeea2d60e2d77c5713445fa780e78b7ce543d76e88cfc5a958168b4664
MD5 4dcaa737094b8701636f3434687e079e
BLAKE2b-256 f12b33747faddfb2036e15c3a10eac9413e1c242da97f53d45ad31c2f0297b31

See more details on using hashes here.

File details

Details for the file pylsp_rope-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: pylsp_rope-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for pylsp_rope-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3ace980a1f8abc1d68f5d06f01d37cce2055fd62795fa4ef257fc03bb96651cc
MD5 31d936bbeedfb06059269473ada59c80
BLAKE2b-256 065172d728b129010dba853ed7ecf4f6148c45db732047a6ec2166c805fa229a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page