-
-
Save kracekumar/77d29c7410199fd2cda4 to your computer and use it in GitHub Desktop.
| ;;; auto-remove.el --- Auto remove unused functions in python | |
| ;;; Commentary: | |
| ;; Uses external tool autoflake to remove unused imports from a Python file. | |
| ;;; Code: | |
| (defcustom python-autoflake-path (executable-find "autoflake") | |
| "Autoflake executable path. | |
| Allows working with a virtualenv without actually adding support | |
| for it." | |
| :group 'python | |
| :type 'string) | |
| (defun python-remove-unused-imports () | |
| "Use Autoflake to remove unused function. | |
| $ autoflake --remove-all-unused-imports -i unused_imports.py" | |
| (interactive) | |
| (when (eq major-mode 'python-mode) | |
| (shell-command (format "%s --remove-all-unused-imports -i %s" | |
| python-autoflake-path | |
| (shell-quote-argument (buffer-file-name)))) | |
| (revert-buffer t t t)) | |
| nil) | |
| (eval-after-load 'python | |
| '(if python-autoflake-path | |
| (add-hook 'before-save-hook 'python-remove-unused-imports) | |
| (message "Unable to find autoflake. Configure `python-autoflake-path`"))) | |
| (provide 'auto-remove) | |
| ;;; auto-remove.el ends here |
@kracekumar FYI, gists themselves are git repositories. Please fetch from my fork and have a look.
@jaseemabid: Thanks! It works.
@kracekumar Can you post errors raised by revert-buffer?
Is it happening the first time you are trying to save the file?
[Errno 2] No such file or directory: '/Users/j/tmp/test.py'
Error: (error "Cannot revert nonexistent file /Users/j/tmp/test.py")
Wrote /Users/j/tmp/test.py
@kracekumar after-save-hook should solve it, right?
See patch 4d6871d here https://gist.github.com/jaseemabid/3def1e104cbff09ad803
4d6871d3881111c47fd35458770af817f5bafb01
Author: Jaseem Abid <[email protected]>
Date: Mon Aug 18 00:55:17 2014 +0530
Run hook after saving file
- Makes sense to run flake after a file is saved with recent edits.
- Fixes errors on reverting from non existent files. This can happen
first time a file is saved.
Guys - this would be more useful if you could provide the full path to autoflake script in the comments of auto-remove.el . I am right now struggling to find autoflake, though I guess I wrote the original version of it :)
@pythonhacker You can do (setq python-autoflake-path "/this/is/where/autoflake/is.py")
PS: We made a repo https://github.com/kracekumar/missing-python-mode
Pushed a few patches here. https://gist.github.com/jaseemabid/3def1e104cbff09ad803