You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.6 KiB

  1. ;; company-jedi funktioniert bisher erst nach . + M-x company-jedi
  2. (use-package python
  3. :mode ("\\.py\\'" . python-mode))
  4. ;; ##############
  5. ;; damit der EPC-Server funktioniert,
  6. ;; muss in /etc/hosts der Eintrag
  7. ;; 127.0.0.1 localhost
  8. ;; enthalten sein!
  9. ;; ##############
  10. ;; virtualenv für python muss installiert sein
  11. ;; Benutzung
  12. ;; venv-workon: virtualenv aussuchen und setzen
  13. ;; venv-deactivate: deaktiviert virtualenv
  14. ;; venv-mkvirtualenv: erstellt neue virtualenv in venv-location
  15. ;; venv-lsvirtualenv: listet alle virtualenvs auf
  16. ;; venv-cdvirtualenv: wechselt default-Verzeichnis zum momentanen virtualenv-Verzeichnis
  17. ;; venv-cpvirtualenv: erstellt neue virtualenv aus einem exisiterenden.
  18. ;; fragt nach beiden Namen
  19. ;;(use-package pyvenv
  20. ;; :ensure t
  21. ;; :init
  22. ;; (setenv "WORKON_HOME" "~/Archiv/Programmierprojekte/Python/virtualenv/")
  23. ;; (pyvenv-mode t)
  24. ;; )
  25. (use-package virtualenvwrapper
  26. :ensure t
  27. :init
  28. (venv-initialize-interactive-shells) ;;interactive shell support
  29. (venv-initialize-eshell) ;;eshell support
  30. (setq venv-location "~/Archiv/Programmierprojekte/Python/virtualenv/")
  31. (setq python-environment-directory venv-location)
  32. (add-hook 'venv-postmkvirtualenv-hook
  33. (lambda () (shell-command "pip install epc jedi")))
  34. ;; (add-hook 'venv-postactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv
  35. ;; (add-hook 'venv-postdeactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv
  36. )
  37. ;; sucht und aktiviert die virtualenv nach folgenden Aspekten:
  38. ;; .python-version im project-root (ethält absoluten Pfad zur virtualenv
  39. ;; .venv oder venv Verzeichnis im project-root
  40. ;; eine virtualenv mit dem selben Namen wie project-root
  41. ;; - project-root ist definiert als Verzeichnis, dass "auto-virtualenvwapper-project-root-files" enthält,
  42. ;; die da wären: .python-version, .dir-locals.el, .projectile, .emacs-project, .manage.py, .git
  43. ;; für mich zuverlässig funktioiert nur absoluter Pfadin .python-version
  44. ;;(use-package auto-virtualenvwrapper
  45. ;; :ensure t
  46. ;; :config
  47. ;; (add-hook 'python-mode-hook #'auto-virtualenvwrapper-activate))
  48. ;;activate on changing buffers
  49. ;; (add-hook 'window-configuration-change-hook #'auto-virtualenvwrapper-activate)
  50. ;;activate on focus in
  51. ;; (add-hook 'focus-in-hook #'auto-virtualenvwrapper-activate))
  52. (use-package py-autopep8
  53. :config
  54. (add-hook 'python-mode-hook 'py-autopep8-enable-on-save))
  55. ;; benötigt pip install jedi / emerge dev-python/jedi
  56. (use-package company-jedi ;; company-mode completion backend for python jedi
  57. :defer t
  58. :ensure t
  59. :config
  60. (add-hook 'python-mode-hook 'jedi:setup)
  61. (setq jedi:complete-on-dot t)
  62. (setq jedi:use-shortcuts t)
  63. (setq jedi:get-in-function-call-delay 100)
  64. (setq jedi:tooltip-method '(pos-tip popup))
  65. (defun config/enable-company-jedi ()
  66. (add-to-list 'company-backends 'company-jedi)
  67. (setq jedi:complete-on-dot t)
  68. )
  69. (add-hook 'python-mode-hook 'config/enable-company-jedi))
  70. ;;(use-package jedi-core
  71. ;; :ensure t
  72. ;; :init
  73. ;; (progn
  74. ;; (setq jedi:complete-on-dot t)
  75. ;; (setq jedi:setup-keys t)
  76. ;; (add-hook 'python-mode-hook 'jedi:setup)))
  77. (provide 'lang-python)