/YAPython-Nova.novaextension

Yet Another Python Extension for Panic's Nova editor for macOS

Primary LanguageJavaScript

Python for Nova

Full featured Python Language Server plugin (implements PyLS) for Nova, supports Jedi Autocomplete, PyFlakes, PyLint, YAPF, Rope, McCabe, PyDoc and CodeStyles.

Also supports all the Python Language Server plugins → mypy, isort and black

Working Features

  • Auto-completion (including snippet fills-- Turn on Include Function and Class Parameters, Fixed in Nova 2.0)
  • Follow imports (Fixed in Nova 2.0)
  • Full Function hover tooltips with syntax highlighting
  • Module and function docstrings
  • PyDocStyle and PyCodeStyle flags
  • McCabe Cyclomatic Complexity
  • Automatic Preferences Reload on changes (Some preferences still need a full extension reload).

Installation

  1. Install the LSP server and its dependencies using:
pip3 install 'python-lsp-server[all]'
  1. Enable required modules from settings.

  2. (Optional) Install Python Language Server plugins and enable them from settings:

  • mypy plugin: pip3 install pyls-mypy

  • isort plugin: pip3 install pyls-isort

  • black plugin: pip3 install pyls-black

Features

  • Real time Linting (Pyflakes):

  • Hover actions on Functions and Modules:

  • PyCodeStyle and PyDocStyle hints:

  • Autocomplete using Jedi:

Contributing

I would be extremely grateful if you could lend a hand in the development of this extension. PRs with new features and fixes would be greatly appreciated. Also, feel free to open bug reports.