From 20d88d7304075f7e1e1317d841b4ce1a1e1ede64 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 15 May 2022 23:30:26 +0200 Subject: [doc] Better more useful links for ide integration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> --- doc/conf.py | 1 + doc/faq.rst | 5 - doc/user_guide/ide-integration.rst | 232 --------------------- doc/user_guide/ide_integration/flymake-emacs.rst | 70 +++++++ doc/user_guide/ide_integration/ide-integration.rst | 13 ++ doc/user_guide/ide_integration/pylint-pycharm.rst | 47 +++++ doc/user_guide/ide_integration/textmate.rst | 54 +++++ .../ide_integration/visual-studio-code.rst | 57 +++++ doc/user_guide/index.rst | 2 +- doc/user_guide/installation.rst | 80 ++++--- 10 files changed, 281 insertions(+), 280 deletions(-) delete mode 100644 doc/user_guide/ide-integration.rst create mode 100644 doc/user_guide/ide_integration/flymake-emacs.rst create mode 100644 doc/user_guide/ide_integration/ide-integration.rst create mode 100644 doc/user_guide/ide_integration/pylint-pycharm.rst create mode 100644 doc/user_guide/ide_integration/textmate.rst create mode 100644 doc/user_guide/ide_integration/visual-studio-code.rst diff --git a/doc/conf.py b/doc/conf.py index fbd73c664..8561cc3bf 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -54,6 +54,7 @@ redirects: dict[str, str] = { # "": "" "intro": "index.html", "support": "contact.html", + "user_guide/ide-integration": "installation.html", } # Add any paths that contain templates here, relative to this directory. diff --git a/doc/faq.rst b/doc/faq.rst index 732923f31..0cf2d4186 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -82,11 +82,6 @@ For example:: pylint --disable=bare-except,invalid-name --class-rgx='[A-Z][a-z]+' --generate-toml-config -3.4 I'd rather not run Pylint from the command line. Can I integrate it with my editor? ---------------------------------------------------------------------------------------- - -Much probably. Read :ref:`user_guide/installation:ide-integration` - 3.5 I need to run pylint over all modules and packages in my project directory. ------------------------------------------------------------------------------- diff --git a/doc/user_guide/ide-integration.rst b/doc/user_guide/ide-integration.rst deleted file mode 100644 index f7bb0998b..000000000 --- a/doc/user_guide/ide-integration.rst +++ /dev/null @@ -1,232 +0,0 @@ -Using Pylint through Flymake in Emacs -===================================== - -To enable Flymake for Python, insert the following into your .emacs: - -.. sourcecode:: common-lisp - - ;; Configure Flymake for Python - (when (load "flymake" t) - (defun flymake-pylint-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-inplace)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "epylint" (list local-file)))) - (add-to-list 'flymake-allowed-file-name-masks - '("\\.py\\'" flymake-pylint-init))) - - ;; Set as a minor mode for Python - (add-hook 'python-mode-hook '(lambda () (flymake-mode))) - -Above stuff is in ``pylint/elisp/pylint-flymake.el``, which should be automatically -installed on Debian systems, in which cases you don't have to put it in your ``.emacs`` file. - -Other things you may find useful to set: - -.. sourcecode:: common-lisp - - ;; Configure to wait a bit longer after edits before starting - (setq-default flymake-no-changes-timeout '3) - - ;; Keymaps to navigate to the errors - (add-hook 'python-mode-hook '(lambda () (define-key python-mode-map "\C-cn" 'flymake-goto-next-error))) - (add-hook 'python-mode-hook '(lambda () (define-key python-mode-map "\C-cp" 'flymake-goto-prev-error))) - - -Finally, by default Flymake only displays the extra information about the error when you -hover the mouse over the highlighted line. The following will use the minibuffer to display -messages when you the cursor is on the line. - -.. sourcecode:: common-lisp - - ;; To avoid having to mouse hover for the error message, these functions make Flymake error messages - ;; appear in the minibuffer - (defun show-fly-err-at-point () - "If the cursor is sitting on a Flymake error, display the message in the minibuffer" - (require 'cl) - (interactive) - (let ((line-no (line-number-at-pos))) - (dolist (elem flymake-err-info) - (if (eq (car elem) line-no) - (let ((err (car (second elem)))) - (message "%s" (flymake-ler-text err))))))) - - (add-hook 'post-command-hook 'show-fly-err-at-point) - - -Alternative, if you only wish to pollute the minibuffer after an explicit flymake-goto-* then use -the following instead of a post-command-hook - -.. sourcecode:: common-lisp - - (defadvice flymake-goto-next-error (after display-message activate compile) - "Display the error in the mini-buffer rather than having to mouse over it" - (show-fly-err-at-point)) - - (defadvice flymake-goto-prev-error (after display-message activate compile) - "Display the error in the mini-buffer rather than having to mouse over it" - (show-fly-err-at-point)) - -.. _pylint_in_pycharm: - -Integrate Pylint with PyCharm -============================= - -Install Pylint the usual way:: - - pip install pylint - -Remember the path at which it's installed:: - - which pylint - -Using pylint-pycharm plugin -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. In PyCharm go to *Preferences* > *Plugins* > *Browse repositories...* -#. Right-click on the plugin named **Pylint**, select **Download and Install** and restart PyCharm when prompted - -If the plugin is not finding the Pylint executable (e.g. is not inside the PATH environmental variable), you can -specify it manually using the plugin settings: - -#. *Preferences* > *Other Settings* > *Pylint* or simply click the gear icon from the side bar of the Pylint tool window -#. Type the path directly or use the Browse button to open a file selection dialog -#. Press the Test button to check if the plugin is able to run the executable - -For more info on how to use the plugin please check the `official plugin documentation `_. - -Using External Tools -~~~~~~~~~~~~~~~~~~~~ - -Within PyCharm: - -#. Navigate to the preferences window -#. Select "External Tools" -#. Click the plus sign at the bottom of the dialog to add a new external task -#. In the dialog, populate the following fields: - - :Name: Pylint - :Description: A Python source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. - :Synchronize files after execution: unchecked - :Program: ``/path/to/pylint`` - :Parameters: ``$FilePath$`` - -#. Click OK - -The option to check the current file with Pylint should now be available in *Tools* > *External Tools* > *Pylint*. - - -.. _pylint_in_textmate: - -Integrate Pylint with TextMate -============================== - -Install Pylint in the usual way:: - - pip install pylint - -Install the `Python bundle for TextMate `_: - -#. select *TextMate* > *Preferences* -#. select the *Bundles* tab -#. find and tick the *Python* bundle in the list - -You should now see it in *Bundles* > *Python*. - -In *Preferences*, select the *Variables* tab. If a ``TM_PYCHECKER`` variable is not already listed, add -it, with the value ``pylint``. - -The default keyboard shortcut to run the syntax checker is *Control-Shift-V* - open a ``.py`` file -in Textmate, and try it. - -You should see the output in a new window: - - PyCheckMate 1.2 – Pylint 1.4.4 - - No config file found, using default configuration - -Then all is well, and most likely Pylint will have expressed some opinions about your Python code -(or will exit with ``0`` if your code already conforms to its expectations). - -If you receive a message: - - Please install PyChecker, PyFlakes, Pylint, PEP 8 or flake8 for more extensive code checking. - -That means that Pylint wasn't found, which is likely an issue with command paths - TextMate needs -be looking for Pylint on the right paths. - -Check where Pylint has been installed, using ``which``:: - - $ which pylint - /usr/local/bin/pylint - -The output will tell you where Pylint can be found; in this case, in ``/usr/local/bin``. - -#. select *TextMate* > *Preferences* -#. select the *Variables* tab -#. find and check that a ``PATH`` variable exists, and that it contains the appropriate path (if - the path to Pylint were ``/usr/local/bin/pylint`` as above, then the variable would need to - contain ``/usr/local/bin``). An actual example in this case might be - ``$PATH:/opt/local/bin:/usr/local/bin:/usr/texbin``, which includes other paths. - -... and try running Pylint again. - -Integrate Pylint with Visual Studio Code -======================================== - -Command-line arguments and configuration files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -See `Pylint command line arguments`_ for general switches. Command line -arguments can be used to load Pylint plugins, such as that for Django: - -:: - - "python.linting.pylintArgs": ["--load-plugins", "pylint_django"] - -Options can also be specified in a ``pylintrc`` or ``.pylintrc`` file in -the workspace folder, as described on `Pylint command line arguments`_. - -To control which Pylint messages are shown, add the following contents -to an options file: - -.. code:: ini - - [MESSAGES CONTROL] - - # Enable the message, report, category or checker with the given id(s). You can - # either give multiple identifier separated by comma (,) or put this option - # multiple time. - #enable= - - # Disable the message, report, category or checker with the given id(s). You - # can either give multiple identifier separated by comma (,) or put this option - # multiple time (only on the command line, not in the configuration file where - # it should appear only once). - #disable= - -Message category mapping -~~~~~~~~~~~~~~~~~~~~~~~~ - -The Python extension maps Pylint message categories to VS Code -categories through the following settings. If desired, change the -setting to change the mapping. - -+----------------------+-----------------------------------+------------------+ -| Pylint category | Applicable setting | VS Code category | -| | (python.linting.) | mapping | -+======================+===================================+==================+ -| convention | pylintCategorySeverity.convention | Information | -+----------------------+-----------------------------------+------------------+ -| refactor | pylintCategorySeverity.refactor | Hint | -+----------------------+-----------------------------------+------------------+ -| warning | pylintCategorySeverity.warning | Warning | -+----------------------+-----------------------------------+------------------+ -| error | pylintCategorySeverity.error | Error | -+----------------------+-----------------------------------+------------------+ -| fatal | pylintCategorySeverity.fatal | Error | -+----------------------+-----------------------------------+------------------+ - -.. _Pylint command line arguments: https://pylint.pycqa.org/en/latest/user_guide/run.html#command-line-options diff --git a/doc/user_guide/ide_integration/flymake-emacs.rst b/doc/user_guide/ide_integration/flymake-emacs.rst new file mode 100644 index 000000000..91e77bd04 --- /dev/null +++ b/doc/user_guide/ide_integration/flymake-emacs.rst @@ -0,0 +1,70 @@ +Using Pylint through Flymake in Emacs +===================================== + +To enable Flymake for Python, insert the following into your .emacs: + +.. sourcecode:: common-lisp + + ;; Configure Flymake for Python + (when (load "flymake" t) + (defun flymake-pylint-init () + (let* ((temp-file (flymake-init-create-temp-buffer-copy + 'flymake-create-temp-inplace)) + (local-file (file-relative-name + temp-file + (file-name-directory buffer-file-name)))) + (list "epylint" (list local-file)))) + (add-to-list 'flymake-allowed-file-name-masks + '("\\.py\\'" flymake-pylint-init))) + + ;; Set as a minor mode for Python + (add-hook 'python-mode-hook '(lambda () (flymake-mode))) + +Above stuff is in ``pylint/elisp/pylint-flymake.el``, which should be automatically +installed on Debian systems, in which cases you don't have to put it in your ``.emacs`` file. + +Other things you may find useful to set: + +.. sourcecode:: common-lisp + + ;; Configure to wait a bit longer after edits before starting + (setq-default flymake-no-changes-timeout '3) + + ;; Keymaps to navigate to the errors + (add-hook 'python-mode-hook '(lambda () (define-key python-mode-map "\C-cn" 'flymake-goto-next-error))) + (add-hook 'python-mode-hook '(lambda () (define-key python-mode-map "\C-cp" 'flymake-goto-prev-error))) + + +Finally, by default Flymake only displays the extra information about the error when you +hover the mouse over the highlighted line. The following will use the minibuffer to display +messages when you the cursor is on the line. + +.. sourcecode:: common-lisp + + ;; To avoid having to mouse hover for the error message, these functions make Flymake error messages + ;; appear in the minibuffer + (defun show-fly-err-at-point () + "If the cursor is sitting on a Flymake error, display the message in the minibuffer" + (require 'cl) + (interactive) + (let ((line-no (line-number-at-pos))) + (dolist (elem flymake-err-info) + (if (eq (car elem) line-no) + (let ((err (car (second elem)))) + (message "%s" (flymake-ler-text err))))))) + + (add-hook 'post-command-hook 'show-fly-err-at-point) + + +Alternative, if you only wish to pollute the minibuffer after an explicit flymake-goto-* then use +the following instead of a post-command-hook + +.. sourcecode:: common-lisp + + (defadvice flymake-goto-next-error (after display-message activate compile) + "Display the error in the mini-buffer rather than having to mouse over it" + (show-fly-err-at-point)) + + (defadvice flymake-goto-prev-error (after display-message activate compile) + "Display the error in the mini-buffer rather than having to mouse over it" + (show-fly-err-at-point)) diff --git a/doc/user_guide/ide_integration/ide-integration.rst b/doc/user_guide/ide_integration/ide-integration.rst new file mode 100644 index 000000000..a27b8a466 --- /dev/null +++ b/doc/user_guide/ide_integration/ide-integration.rst @@ -0,0 +1,13 @@ +########################### + Editor and IDE integration +########################### +Pylint can be integrated in various editors and IDE's. Below you can find tutorials for some of the most common ones. + +.. toctree:: + :maxdepth: 2 + :titlesonly: + + flymake-emacs.rst + pylint-pycharm.rst + textmate.rst + visual-studio-code.rst diff --git a/doc/user_guide/ide_integration/pylint-pycharm.rst b/doc/user_guide/ide_integration/pylint-pycharm.rst new file mode 100644 index 000000000..46f837229 --- /dev/null +++ b/doc/user_guide/ide_integration/pylint-pycharm.rst @@ -0,0 +1,47 @@ +Integrate Pylint with PyCharm +============================= + +.. _pylint_in_pycharm: + +Install Pylint the usual way:: + + pip install pylint + +Remember the path at which it's installed:: + + which pylint + +Using pylint-pycharm plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. In PyCharm go to *Preferences* > *Plugins* > *Browse repositories...* +#. Right-click on the plugin named **Pylint**, select **Download and Install** and restart PyCharm when prompted + +If the plugin is not finding the Pylint executable (e.g. is not inside the PATH environmental variable), you can +specify it manually using the plugin settings: + +#. *Preferences* > *Other Settings* > *Pylint* or simply click the gear icon from the side bar of the Pylint tool window +#. Type the path directly or use the Browse button to open a file selection dialog +#. Press the Test button to check if the plugin is able to run the executable + +For more info on how to use the plugin please check the `official plugin documentation `_. + +Using External Tools +~~~~~~~~~~~~~~~~~~~~ + +Within PyCharm: + +#. Navigate to the preferences window +#. Select "External Tools" +#. Click the plus sign at the bottom of the dialog to add a new external task +#. In the dialog, populate the following fields: + + :Name: Pylint + :Description: A Python source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. + :Synchronize files after execution: unchecked + :Program: ``/path/to/pylint`` + :Parameters: ``$FilePath$`` + +#. Click OK + +The option to check the current file with Pylint should now be available in *Tools* > *External Tools* > *Pylint*. diff --git a/doc/user_guide/ide_integration/textmate.rst b/doc/user_guide/ide_integration/textmate.rst new file mode 100644 index 000000000..c59d498fc --- /dev/null +++ b/doc/user_guide/ide_integration/textmate.rst @@ -0,0 +1,54 @@ +Integrate Pylint with TextMate +============================== + +.. _pylint_in_textmate: + +Install Pylint in the usual way:: + + pip install pylint + +Install the `Python bundle for TextMate `_: + +#. select *TextMate* > *Preferences* +#. select the *Bundles* tab +#. find and tick the *Python* bundle in the list + +You should now see it in *Bundles* > *Python*. + +In *Preferences*, select the *Variables* tab. If a ``TM_PYCHECKER`` variable is not already listed, add +it, with the value ``pylint``. + +The default keyboard shortcut to run the syntax checker is *Control-Shift-V* - open a ``.py`` file +in Textmate, and try it. + +You should see the output in a new window: + + PyCheckMate 1.2 – Pylint 1.4.4 + + No config file found, using default configuration + +Then all is well, and most likely Pylint will have expressed some opinions about your Python code +(or will exit with ``0`` if your code already conforms to its expectations). + +If you receive a message: + + Please install PyChecker, PyFlakes, Pylint, PEP 8 or flake8 for more extensive code checking. + +That means that Pylint wasn't found, which is likely an issue with command paths - TextMate needs +be looking for Pylint on the right paths. + +Check where Pylint has been installed, using ``which``:: + + $ which pylint + /usr/local/bin/pylint + +The output will tell you where Pylint can be found; in this case, in ``/usr/local/bin``. + +#. select *TextMate* > *Preferences* +#. select the *Variables* tab +#. find and check that a ``PATH`` variable exists, and that it contains the appropriate path (if + the path to Pylint were ``/usr/local/bin/pylint`` as above, then the variable would need to + contain ``/usr/local/bin``). An actual example in this case might be + ``$PATH:/opt/local/bin:/usr/local/bin:/usr/texbin``, which includes other paths. + +... and try running Pylint again. diff --git a/doc/user_guide/ide_integration/visual-studio-code.rst b/doc/user_guide/ide_integration/visual-studio-code.rst new file mode 100644 index 000000000..109ecc214 --- /dev/null +++ b/doc/user_guide/ide_integration/visual-studio-code.rst @@ -0,0 +1,57 @@ +Integrate Pylint with Visual Studio Code +======================================== + +Command-line arguments and configuration files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See `Pylint command line arguments`_ for general switches. Command line +arguments can be used to load Pylint plugins, such as that for Django: + +:: + + "python.linting.pylintArgs": ["--load-plugins", "pylint_django"] + +Options can also be specified in a ``pylintrc`` or ``.pylintrc`` file in +the workspace folder, as described on `Pylint command line arguments`_. + +To control which Pylint messages are shown, add the following contents +to an options file: + +.. code:: ini + + [MESSAGES CONTROL] + + # Enable the message, report, category or checker with the given id(s). You can + # either give multiple identifier separated by comma (,) or put this option + # multiple time. + #enable= + + # Disable the message, report, category or checker with the given id(s). You + # can either give multiple identifier separated by comma (,) or put this option + # multiple time (only on the command line, not in the configuration file where + # it should appear only once). + #disable= + +Message category mapping +~~~~~~~~~~~~~~~~~~~~~~~~ + +The Python extension maps Pylint message categories to VS Code +categories through the following settings. If desired, change the +setting to change the mapping. + ++----------------------+-----------------------------------+------------------+ +| Pylint category | Applicable setting | VS Code category | +| | (python.linting.) | mapping | ++======================+===================================+==================+ +| convention | pylintCategorySeverity.convention | Information | ++----------------------+-----------------------------------+------------------+ +| refactor | pylintCategorySeverity.refactor | Hint | ++----------------------+-----------------------------------+------------------+ +| warning | pylintCategorySeverity.warning | Warning | ++----------------------+-----------------------------------+------------------+ +| error | pylintCategorySeverity.error | Error | ++----------------------+-----------------------------------+------------------+ +| fatal | pylintCategorySeverity.fatal | Error | ++----------------------+-----------------------------------+------------------+ + +.. _Pylint command line arguments: https://pylint.pycqa.org/en/latest/user_guide/run.html#command-line-options diff --git a/doc/user_guide/index.rst b/doc/user_guide/index.rst index 5d543d982..84947b530 100644 --- a/doc/user_guide/index.rst +++ b/doc/user_guide/index.rst @@ -11,5 +11,5 @@ User Guide output message-control options - ide-integration + ide_integration/ide-integration pre-commit-integration diff --git a/doc/user_guide/installation.rst b/doc/user_guide/installation.rst index 96713ca98..1d3ac175b 100644 --- a/doc/user_guide/installation.rst +++ b/doc/user_guide/installation.rst @@ -6,8 +6,8 @@ Installation Command line ------------ -Pylint is installable using a package manager. Your package manager will -find a version that works with your interpreter. For example with pip: +Pylint is installable using a package manager. Your package manager will find a version that +works with your interpreter. We recommend ``pip``: .. code-block:: sh @@ -20,10 +20,10 @@ option and setting it to the old interpreter. For example you can check that the no ``f-strings`` in Python 3.5 code using Python 3.8 with an up-to-date pylint even if Python 3.5 is past end of life (EOL). -We do not guarantee that ``py-version`` will work for all EOL python interpreter indefinitely, +We do not guarantee that ``py-version`` will work for all EOL python interpreters indefinitely, (for anything before python 3.5, it's probably not). If a newer version does not work for you, the best available pylint might be an old version that works with your old interpreter but -without the bug fixes and feature of latest pylints. +without the bug fixes and feature of later versions. NB: You can also use ``conda`` or your system package manager on debian based OS. These package managers lag a little behind as they are maintained by a separate @@ -37,48 +37,44 @@ entity on a slower release cycle. sudo apt-get install pylint + Editor integration ------------------ .. _ide-integration: -To use Pylint with: - - - Emacs_, see https://www.emacswiki.org/emacs/PythonProgrammingInEmacs, - - Vim_, see https://www.vim.org/scripts/script.php?script_id=891, - - `Visual Studio`_, see https://docs.microsoft.com/visualstudio/python/code-pylint, - - Eclipse_ and PyDev_, see https://www.pydev.org/manual_adv_pylint.html, - - Komodo_, see https://mateusz.loskot.net/post/2006/01/15/running-pylint-from-komodo/, - - gedit_, see https://launchpad.net/gedit-pylint-2 or https://wiki.gnome.org/Apps/Gedit/PylintPlugin, - - WingIDE_, see https://wingware.com/doc/warnings/external-checkers, - - PyCharm_, see :ref:`the section below `, - - TextMate_, see :ref:`the section below ` - - `Visual Studio Code`_, see https://code.visualstudio.com/docs/python/linting, - - `Visual Studio Code`_ Pylint Extension see, https://marketplace.visualstudio.com/items?itemName=ms-python.pylint, - - `Visual Studio`_, see https://docs.microsoft.com/en-us/visualstudio/python/linting-python-code, - - `Jupyter Notebook`_, see https://github.com/nbQA-dev/nbQA, - -Pylint is integrated in: - - - `Visual Studio`_, see the `Python > Run PyLint` command on a project's context menu. - - Eric_ IDE, see the `Project > Check` menu, - - Spyder_, see the `View -> Panes -> Static code analysis` pane and - its `corresponding documentation `_. - - pyscripter_, see the `Tool -> Tools` menu. - - `Visual Studio Code`_, see the `Preferences -> Settings` menu. - -.. _Emacs: https://www.gnu.org/software/emacs/ -.. _Vim: https://www.vim.org/ -.. _Visual Studio: https://visualstudio.microsoft.com/ -.. _Eclipse: https://www.eclipse.org/ -.. _Eric: https://eric-ide.python-projects.org/ -.. _pyscripter: https://github.com/pyscripter/pyscripter -.. _pydev: https://www.pydev.org/ -.. _Komodo: https://www.activestate.com/products/komodo-ide/ -.. _gedit: https://wiki.gnome.org/Apps/Gedit -.. _WingIDE: https://www.wingware.com/ -.. _spyder: https://www.spyder-ide.org/ +- Eclipse_ +- Emacs_ +- `Eric IDE`_ in the `Project > Check` menu, +- gedit_ (`another option for gedit`_) +- :ref:`Flymake ` +- `Jupyter Notebook`_ +- Komodo_ +- PyCharm_ :ref:`the section below ` +- PyDev_ +- pyscripter_ in the `Tool -> Tools` menu. +- Spyder_ in the `View -> Panes -> Static code analysis` +- TextMate_ :ref:`the section below ` +- Vim_ +- `Visual Studio`_ +- `Visual Studio Code`_ in the `Preferences -> Settings` menu (`Visual Studio Code Pylint Extension`_) +- `Visual Studio`_ in the `Python > Run PyLint` command on a project's context menu. +- WingIDE_ + +.. _Eclipse: https://www.pydev.org/manual_adv_pylint.html +.. _Emacs: https://www.emacswiki.org/emacs/PythonProgrammingInEmacs +.. _Eric IDE: https://eric-ide.python-projects.org/ +.. _gedit: https://launchpad.net/gedit-pylint-2 +.. _another option for gedit: https://wiki.gnome.org/Apps/Gedit/PylintPlugin +.. _Jupyter Notebook: https://github.com/nbQA-dev/nbQA +.. _Komodo: https://mateusz.loskot.net/post/2006/01/15/running-pylint-from-komodo/ .. _PyCharm: https://www.jetbrains.com/pycharm/ +.. _pydev: https://www.pydev.org/ +.. _pyscripter: https://github.com/pyscripter/pyscripter +.. _spyder: https://docs.spyder-ide.org/current/panes/pylint.html .. _TextMate: https://macromates.com -.. _Visual Studio Code: https://code.visualstudio.com/ -.. _Jupyter Notebook: https://jupyter.org/ +.. _Vim: https://www.vim.org/scripts/script.php?script_id=891 +.. _Visual Studio Code: https://code.visualstudio.com/docs/python/linting +.. _Visual Studio Code Pylint Extension: https://marketplace.visualstudio.com/items?itemName=ms-python.pylint +.. _Visual Studio: https://docs.microsoft.com/visualstudio/python/code-pylint +.. _WingIDE: https://wingware.com/doc/warnings/external-checkers -- cgit v1.2.1