diff options
author | Nicolas Chauvat <nicolas.chauvat@logilab.fr> | 2013-04-06 21:45:15 +0200 |
---|---|---|
committer | Nicolas Chauvat <nicolas.chauvat@logilab.fr> | 2013-04-06 21:45:15 +0200 |
commit | 5e1d2bd49e611753ee4aaa445ed8e4d352e3448d (patch) | |
tree | ad61cb6b5d21ff5b65acf10292d77f297cde4354 /doc/ide-integration.rst | |
parent | ebc9bc293c9166fefcd1a2e8a16dd94524af71dc (diff) | |
download | pylint-5e1d2bd49e611753ee4aaa445ed8e4d352e3448d.tar.gz |
[doc] complete refactoring
Diffstat (limited to 'doc/ide-integration.rst')
-rw-r--r-- | doc/ide-integration.rst | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/doc/ide-integration.rst b/doc/ide-integration.rst new file mode 100644 index 0000000..5645c1a --- /dev/null +++ b/doc/ide-integration.rst @@ -0,0 +1,106 @@ + +================= + IDE integration +================= + +To use Pylint with Emacs, see http://www.emacswiki.org/emacs/PythonProgrammingInEmacs#toc8 + +To use Pylint with Vim, see +http://www.vim.org/scripts/script.php?script_id=891 + +To use Pylint with Eclipse, see http://pydev.org + +To use Pylint with Komodo_, see +http://mateusz.loskot.net/2006/01/15/running-pylint-from-komodo/ + +To use Pylint with gedit_, see +http://live.gnome.org/Gedit/PylintPlugin + +To use Pylint with WingIDE_, see +http://www.wingware.com/doc/edit/pylint + +Pylint is integrated in Eric_ IDE, see the `Project > Check` menu. + +Pylint is integrated in Spyder_, see http://packages.python.org/spyder/pylint.html + +Pylint is integrated in pyscripter_, see the `Tool -> Tools` menu. + +.. _Eric: http://eric-ide.python-projects.org/ +.. _pyscripter: http://code.google.com/p/pyscripter/ +.. _pydev: http://pydev.org +.. _Komodo: http://www.activestate.com/Products/Komodo/ +.. _gedit: http://www.gnome.org/projects/gedit/ +.. _WingIDE: http://www.wingware.com/ +.. _spyder: http://code.google.com/p/spyderlib/ + +Using Pylint thru flymake in Emacs +================================== + +To enable flymake for Python, insert the following into your .emacs: + +.. sourcecode:: common-lisp + + ;; Configure flymake for Python + (setq pylint "epylint") + (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 (expand-file-name pylint "") (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)) |