summaryrefslogtreecommitdiff
path: root/doc/ide-integration.rst
diff options
context:
space:
mode:
authorNicolas Chauvat <nicolas.chauvat@logilab.fr>2013-04-06 21:45:15 +0200
committerNicolas Chauvat <nicolas.chauvat@logilab.fr>2013-04-06 21:45:15 +0200
commit5e1d2bd49e611753ee4aaa445ed8e4d352e3448d (patch)
treead61cb6b5d21ff5b65acf10292d77f297cde4354 /doc/ide-integration.rst
parentebc9bc293c9166fefcd1a2e8a16dd94524af71dc (diff)
downloadpylint-5e1d2bd49e611753ee4aaa445ed8e4d352e3448d.tar.gz
[doc] complete refactoring
Diffstat (limited to 'doc/ide-integration.rst')
-rw-r--r--doc/ide-integration.rst106
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))