Skip to content

Sublime

Hellebore edited this page Apr 17, 2021 · 2 revisions

Installation

New Users - Creating Your Sourcery Account

If this is your first time using Sourcery you'll need to set up a Sourcery account. You can create an account with your GitHub account, Google account, or your email address.

Installing Sourcery for Sublime

  1. Install the sourcery-cli pypi package pip install --user sourcery-cli. Note down the full command path with
    which sourcery.
  2. Open the command palette and run Package Control: Install Package, then select LSP.
  3. Open Preferences > Package Settings > LSP > Settings from the menu and add the following settings:
{
  "clients": {
    "sourcery": {
      "command": [
        "<Command to run Sourcery>",  // Update this
        "lsp"
      ],
      "enabled": true,
      "languageId": "python",
      "scopes": ["source.python"],
      "syntaxes": [
        "Packages/Python/Python.sublime-syntax",
        "Packages/MagicPython/grammars/MagicPython.tmLanguage",
        "Packages/Djaneiro/Syntaxes/Python Django.tmLanguage",
      ],
      "initializationOptions": {
        "token": "<Your token here>",  // Update this
        "extension_version": "sublime lsp",
        "editor_version": "sublime"
      },
      "settings": {
        "sourcery": {
          "metricsEnabled": true
        }
      }
    }
  }
}

Getting Started

Seeing your first refactoring suggestion

Sourcery will run in the background whenever you're working on a Python file. To show all Sourcery suggestions run LSP: Toggle Diagnostics Panel from the command palette. Use F4/shift+F4 to jump to next/previous suggestion.

Hover over the underlined line to get an explanation of the change along with a diff of the proposed changes to your code. To accept the suggestion press super+. and select the option to accept the change.

How To

Accept a Suggestion

To accept the suggestion press super+. and select the option to accept the change.

Disable Sourcery on a File or Path

We know there might be files or paths you don't want Sourcery to refactor - especially things like third party libraries. If you want Sourcery to ignore these you can add a file or a path to the ignore section in the .sourcery.yaml file in your project directory like this:

    ```
    ignore:
      - data/*
      - .venv/*
      - '*_test.py'  # Note that any strings beginning with * must be quoted
    ```

See Quality Metrics

Sourcery gives every one of your functions a quality score on 4 different metrics:

  • Complexity
  • Method Length
  • Working Memory
  • Overall Quality

To see the metrics for any function, simply hover your mouse of the line defining the function and the Sourcery metrics will pop up. Each metric will have a numeric score, along with a quick qualitative guide ranging from bad to excellent.

Quality metrics

Sourcery will also automatically flag functions with too low of an overall quality score. By default this is set for functions with a quality score under 25%, but you [can configure this](Sourcery Configuration).

Skip a Suggestion

Sometimes you might see a Sourcery suggestion you don't want to accept. You can ignore these suggestions by pressing super+. and select the option to skip the change.

You can also configure Sourcery to never suggest a particular refactoring. For details see the Sourcery Configuration page.

Advanced Usage

There are more advanced ways you can improve your code with a Sourcery Pro or Sourcery Team subscription:

Method Extraction

Sourcery will automatically detect opportunities for repeated or nearly repeated sections of code within a function to be extracted out into their own methods. When these refactorings are suggested the new methods will be given a generic name based on the function it was extracted from and you can easily rename it.

Clone this wiki locally