mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	Merge pull request #143 from return42/emacs
[emacs] clean up .dir-locals.el file
This commit is contained in:
		
						commit
						7a436a5060
					
				
							
								
								
									
										137
									
								
								.dir-locals.el
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								.dir-locals.el
									
									
									
									
									
								
							@ -1,13 +1,22 @@
 | 
			
		||||
;;; .dir-locals.el
 | 
			
		||||
;;
 | 
			
		||||
;; If you get ``*** EPC Error ***`` (even after a jedi:install-server) in your
 | 
			
		||||
;; emacs session, mostly you have jedi-mode enabled but the python enviroment is
 | 
			
		||||
;; missed.  The python environment has to be next to the
 | 
			
		||||
;; Per-Directory Local Variables:
 | 
			
		||||
;;   https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html
 | 
			
		||||
;;
 | 
			
		||||
;; .. hint::
 | 
			
		||||
;;
 | 
			
		||||
;;    If you get ``*** EPC Error ***`` (even after a jedi:install-server) in
 | 
			
		||||
;;    your emacs session, mostly you have jedi-mode enabled but the python
 | 
			
		||||
;;    enviroment is missed.  The python environment has to be next to the
 | 
			
		||||
;;    ``<repo>/.dir-locals.el`` in::
 | 
			
		||||
;;
 | 
			
		||||
;;       ./local/py3
 | 
			
		||||
;;
 | 
			
		||||
;; In Emacs, some buffer locals are referencing the project environment:
 | 
			
		||||
;; To setup such an environment, build target::
 | 
			
		||||
;;
 | 
			
		||||
;;     $ make pyenv.install
 | 
			
		||||
;;
 | 
			
		||||
;; Some buffer locals are referencing the project environment:
 | 
			
		||||
;;
 | 
			
		||||
;; - prj-root                                --> <repo>/
 | 
			
		||||
;; - python-environment-directory            --> <repo>/local
 | 
			
		||||
@ -17,22 +26,12 @@
 | 
			
		||||
;;      `process-environment' and `exec-path' get proper values in order to run
 | 
			
		||||
;;      shells inside the specified virtualenv, example::
 | 
			
		||||
;;         (setq python-shell-virtualenv-root "/path/to/env/")
 | 
			
		||||
;; - python-shell-interpreter                --> <repo>/local/py3/bin/python
 | 
			
		||||
;;
 | 
			
		||||
;; To setup such an environment build target 'pyenv' or 'pyenvinstall'::
 | 
			
		||||
;; Jedi, flycheck & other python stuff should use the 'python-shell-interpreter'
 | 
			
		||||
;; from the local py3 environment.
 | 
			
		||||
;;
 | 
			
		||||
;;   $ make pyenvinstall
 | 
			
		||||
;;
 | 
			
		||||
;; Alternatively create the virtualenv, source it and install jedi + epc
 | 
			
		||||
;; (required by `emacs-jedi <https://tkf.github.io/emacs-jedi>`_)::
 | 
			
		||||
;;
 | 
			
		||||
;;     $ python -m venv ./local/py3
 | 
			
		||||
;;     ...
 | 
			
		||||
;;     $ source ./local/py3/bin/activate
 | 
			
		||||
;;     (py3)$ # now install into the activated 'py3' environment ..
 | 
			
		||||
;;     (py3)$ pip install jedi epc
 | 
			
		||||
;;     ...
 | 
			
		||||
;;
 | 
			
		||||
;; Here is what also I found useful to add to my .emacs::
 | 
			
		||||
;; Other useful jedi stuff you might add to your ~/.emacs::
 | 
			
		||||
;;
 | 
			
		||||
;;     (global-set-key [f6] 'flycheck-mode)
 | 
			
		||||
;;     (add-hook 'python-mode-hook 'my:python-mode-hook)
 | 
			
		||||
@ -45,80 +44,77 @@
 | 
			
		||||
;;       (define-key python-mode-map (kbd "M-.")     'jedi:goto-definition)
 | 
			
		||||
;;       (define-key python-mode-map (kbd "M-,")     'jedi:goto-definition-pop-marker)
 | 
			
		||||
;;     )
 | 
			
		||||
;;
 | 
			
		||||
 | 
			
		||||
((nil
 | 
			
		||||
  . ((fill-column . 80)
 | 
			
		||||
     (indent-tabs-mode . nil)
 | 
			
		||||
     ;; project root folder is where the `.dir-locals.el' is located
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      prj-root (locate-dominating-file  default-directory ".dir-locals.el")))
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      python-environment-directory (expand-file-name "./local" prj-root)))
 | 
			
		||||
     ;; use 'py3' enviroment as default
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      python-environment-default-root-name "py3"))
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      python-shell-virtualenv-root
 | 
			
		||||
              (expand-file-name python-environment-default-root-name python-environment-directory)
 | 
			
		||||
              ))
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      python-shell-interpreter
 | 
			
		||||
	      (expand-file-name "bin/python" python-shell-virtualenv-root)))
 | 
			
		||||
     ))
 | 
			
		||||
     (eval . (progn
 | 
			
		||||
 | 
			
		||||
               ;; project root folder is where the `.dir-locals.el' is located
 | 
			
		||||
               (setq-local prj-root
 | 
			
		||||
                           (locate-dominating-file  default-directory ".dir-locals.el"))
 | 
			
		||||
 | 
			
		||||
               (setq-local python-environment-directory
 | 
			
		||||
                           (expand-file-name "./local" prj-root))
 | 
			
		||||
 | 
			
		||||
               ;; use 'py3' enviroment as default
 | 
			
		||||
               (setq-local python-environment-default-root-name
 | 
			
		||||
                           "py3")
 | 
			
		||||
 | 
			
		||||
               (setq-local python-shell-virtualenv-root
 | 
			
		||||
                           (expand-file-name
 | 
			
		||||
                            python-environment-default-root-name python-environment-directory))
 | 
			
		||||
 | 
			
		||||
               (setq-local python-shell-interpreter
 | 
			
		||||
                           (expand-file-name
 | 
			
		||||
                            "bin/python" python-shell-virtualenv-root))))))
 | 
			
		||||
 (makefile-gmake-mode
 | 
			
		||||
  . ((indent-tabs-mode . t)
 | 
			
		||||
     ))
 | 
			
		||||
  . ((indent-tabs-mode . t)))
 | 
			
		||||
 | 
			
		||||
 (yaml-mode
 | 
			
		||||
  . (
 | 
			
		||||
  . ((eval . (progn
 | 
			
		||||
 | 
			
		||||
               ;; flycheck should use the local py3 environment
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      flycheck-yaml-yamllint-executable
 | 
			
		||||
	      (expand-file-name "bin/yamllint" python-shell-virtualenv-root)))
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
              flycheck-yamllintrc
 | 
			
		||||
              (expand-file-name  ".yamllint.yml" prj-root)))
 | 
			
		||||
     (flycheck-checker . yaml-yamllint)
 | 
			
		||||
     ))
 | 
			
		||||
               (setq-local flycheck-yaml-yamllint-executable
 | 
			
		||||
                           (expand-file-name "bin/yamllint" python-shell-virtualenv-root))
 | 
			
		||||
 | 
			
		||||
               (setq-local flycheck-yamllintrc
 | 
			
		||||
                           (expand-file-name  ".yamllint.yml" prj-root))
 | 
			
		||||
 | 
			
		||||
               (flycheck-checker . yaml-yamllint)))))
 | 
			
		||||
 | 
			
		||||
 (python-mode
 | 
			
		||||
  . ((indent-tabs-mode . nil)
 | 
			
		||||
  . ((eval . (progn
 | 
			
		||||
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      python-environment-virtualenv
 | 
			
		||||
               (setq-local python-environment-virtualenv
 | 
			
		||||
                           (list (expand-file-name "bin/virtualenv" python-shell-virtualenv-root)
 | 
			
		||||
                                 ;;"--system-site-packages"
 | 
			
		||||
		    "--quiet")))
 | 
			
		||||
                                 "--quiet"))
 | 
			
		||||
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      pylint-command
 | 
			
		||||
	      (expand-file-name "bin/pylint" python-shell-virtualenv-root)))
 | 
			
		||||
               (setq-local pylint-command
 | 
			
		||||
                           (expand-file-name "bin/pylint" python-shell-virtualenv-root))
 | 
			
		||||
 | 
			
		||||
               ;; pylint will find the '.pylintrc' file next to the CWD
 | 
			
		||||
               ;;   https://pylint.readthedocs.io/en/latest/user_guide/run.html#command-line-options
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      flycheck-pylintrc ".pylintrc"))
 | 
			
		||||
               (setq-local flycheck-pylintrc
 | 
			
		||||
                           ".pylintrc")
 | 
			
		||||
 | 
			
		||||
               ;; flycheck & other python stuff should use the local py3 environment
 | 
			
		||||
     (eval . (setq-local
 | 
			
		||||
	      flycheck-python-pylint-executable python-shell-interpreter))
 | 
			
		||||
               (setq-local flycheck-python-pylint-executable
 | 
			
		||||
                           python-shell-interpreter)
 | 
			
		||||
 | 
			
		||||
               ;; use 'M-x jedi:show-setup-info' and 'M-x epc:controller' to inspect jedi server
 | 
			
		||||
 | 
			
		||||
               ;; https://tkf.github.io/emacs-jedi/latest/#jedi:environment-root -- You
 | 
			
		||||
               ;; can specify a full path instead of a name (relative path). In that case,
 | 
			
		||||
               ;; python-environment-directory is ignored and Python virtual environment
 | 
			
		||||
               ;; is created at the specified path.
 | 
			
		||||
     (eval . (setq-local  jedi:environment-root  python-shell-virtualenv-root))
 | 
			
		||||
               (setq-local jedi:environment-root
 | 
			
		||||
                           python-shell-virtualenv-root)
 | 
			
		||||
 | 
			
		||||
               ;; https://tkf.github.io/emacs-jedi/latest/#jedi:server-command
 | 
			
		||||
     (eval .(setq-local
 | 
			
		||||
	     jedi:server-command
 | 
			
		||||
               (setq-local jedi:server-command
 | 
			
		||||
                           (list python-shell-interpreter
 | 
			
		||||
		   jedi:server-script)
 | 
			
		||||
	     ))
 | 
			
		||||
                                 jedi:server-script))
 | 
			
		||||
 | 
			
		||||
               ;; jedi:environment-virtualenv --> see above 'python-environment-virtualenv'
 | 
			
		||||
               ;; is set buffer local!  No need to setup jedi:environment-virtualenv:
 | 
			
		||||
@ -129,13 +125,10 @@
 | 
			
		||||
               ;;
 | 
			
		||||
               ;;    https://tkf.github.io/emacs-jedi/latest/#jedi:environment-virtualenv
 | 
			
		||||
               ;;
 | 
			
		||||
     ;; (eval . (setq-local
 | 
			
		||||
     ;; 	      jedi:environment-virtualenv
 | 
			
		||||
               ;; (setq-local jedi:environment-virtualenv
 | 
			
		||||
               ;;             (list (expand-file-name "bin/virtualenv" python-shell-virtualenv-root)
 | 
			
		||||
     ;; 		    ;;"--python"
 | 
			
		||||
     ;; 		    ;;"/usr/bin/python3.4"
 | 
			
		||||
     ;; 		    )))
 | 
			
		||||
 | 
			
		||||
     ;; jedi:server-args
 | 
			
		||||
 | 
			
		||||
     )))
 | 
			
		||||
               ;;                   "--python"
 | 
			
		||||
               ;;                   "/usr/bin/python3.4"
 | 
			
		||||
               ;;                   ))
 | 
			
		||||
               ))))
 | 
			
		||||
 )
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user