summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2022-05-15 23:30:26 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2022-05-16 16:57:17 +0200
commit20d88d7304075f7e1e1317d841b4ce1a1e1ede64 (patch)
treee941ca9c2cc732de360efcd112c29c6f1916f083
parent68ae491ad34c235d0d6b9055c943c98c26e11718 (diff)
downloadpylint-git-20d88d7304075f7e1e1317d841b4ce1a1e1ede64.tar.gz
[doc] Better more useful links for ide integration
Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com>
-rw-r--r--doc/conf.py1
-rw-r--r--doc/faq.rst5
-rw-r--r--doc/user_guide/ide-integration.rst232
-rw-r--r--doc/user_guide/ide_integration/flymake-emacs.rst70
-rw-r--r--doc/user_guide/ide_integration/ide-integration.rst13
-rw-r--r--doc/user_guide/ide_integration/pylint-pycharm.rst47
-rw-r--r--doc/user_guide/ide_integration/textmate.rst54
-rw-r--r--doc/user_guide/ide_integration/visual-studio-code.rst57
-rw-r--r--doc/user_guide/index.rst2
-rw-r--r--doc/user_guide/installation.rst80
10 files changed, 281 insertions, 280 deletions
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] = {
# "<source>": "<target>"
"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 <https://github.com/leinardi/pylint-pycharm/blob/master/README.md>`_.
-
-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 <https://github.com/textmate/python.tmbundle>`_:
-
-#. 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 <https://github.com/leinardi/pylint-pycharm/blob/master/README.md>`_.
+
+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 <https://github.com/textmate/python.tmbundle>`_:
+
+#. 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 <pylint_in_pycharm>`,
- - TextMate_, see :ref:`the section below <pylint_in_textmate>`
- - `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 <https://docs.spyder-ide.org/current/panes/pylint.html>`_.
- - 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 <pylint_in_flymake>`
+- `Jupyter Notebook`_
+- Komodo_
+- PyCharm_ :ref:`the section below <pylint_in_pycharm>`
+- PyDev_
+- pyscripter_ in the `Tool -> Tools` menu.
+- Spyder_ in the `View -> Panes -> Static code analysis`
+- TextMate_ :ref:`the section below <pylint_in_textmate>`
+- 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