From 80a7dea485cce9ab11220f0cca947fc07fcb6982 Mon Sep 17 00:00:00 2001 From: Alexandre Tuleu Date: Wed, 13 Sep 2023 13:30:29 +0200 Subject: [PATCH] Reindent file for good or for bad. lets see. --- .emacs | 918 +++++++++++++++++++++++++++------------------------------ 1 file changed, 429 insertions(+), 489 deletions(-) diff --git a/.emacs b/.emacs index 90933c2..9066b5f 100644 --- a/.emacs +++ b/.emacs @@ -1,4 +1,3 @@ -;;(toggle-debug-on-error) (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") ;;lsp performances (setq gc-cons-threshold (* 100 1024 1024));; 100MB @@ -6,57 +5,65 @@ (custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(c-basic-offset 4) - '(c-default-style - '((c++-mode . "tuleu-c++") - (java-mode . "java") - (awk-mode . "awk") - (other . "gnu"))) - '(company-idle-delay 20.0) - '(compilation-scroll-output 'first-error) - '(custom-safe-themes - '("162201cf5b5899938cfaec99c8cb35a2f1bf0775fc9ccbf5e63130a1ea217213" "e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "6622bb651e72d8ebd66454bd86db6c3990324243ff4325c1b6df252aba63b13e" "2f8eadc12bf60b581674a41ddc319a40ed373dd4a7c577933acaff15d2bf7cc6" "f458b92de1f6cf0bdda6bce23433877e94816c3364b821eb4ea9852112f5d7dc" "016f665c0dd5f76f8404124482a0b13a573d17e92ff4eb36a66b409f4d1da410" "13096a9a6e75c7330c1bc500f30a8f4407bd618431c94aeab55c9855731a95e1" "8b148cf8154d34917dfc794b5d0fe65f21e9155977a36a5985f89c09a9669aa0" "bf948e3f55a8cd1f420373410911d0a50be5a04a8886cabe8d8e471ad8fdba8e" "680f62b751481cc5b5b44aeab824e5683cf13792c006aeba1c25ce2d89826426" "631c52620e2953e744f2b56d102eae503017047fb43d65ce028e88ef5846ea3b" default)) - '(display-time-24hr-format t) - '(display-time-default-load-average nil) - '(doom-modeline-github t) - '(doom-modeline-indent-info t) - '(doom-modeline-minor-modes t) - '(doom-modeline-total-line-number t) - '(fill-column 80) - '(global-auto-revert-mode t) - '(global-display-line-numbers-mode t) - '(global-subword-mode t) - '(gofmt-command "goimports") - '(inhibit-startup-screen t) - '(org-agenda-files '("~/org/1.TODO.org")) - '(package-enable-at-startup nil) - '(package-selected-packages - '(aggressive-indent doom-themes company-go zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode markdown-mode srefactor irony cmake-mode company magit use-package)) - '(safe-local-variable-values - '((vc-follow-symlinks . t) - (TeX-master . t) - (TeX-parse-self . t))) - '(tab-width 4) - '(warning-suppress-log-types '((comp))) - '(whitespace-style - '(face trailing tabs lines-tail newline space-before-tab::tab space-before-tab::space space-before-tab tab-mark))) + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(c-basic-offset 4) + '(c-default-style + '((c++-mode . "tuleu-c++") + (java-mode . "java") + (awk-mode . "awk") + (other . "gnu"))) + '(company-idle-delay 20.0) + '(compilation-scroll-output 'first-error) + '(custom-safe-themes + '("162201cf5b5899938cfaec99c8cb35a2f1bf0775fc9ccbf5e63130a1ea217213" "e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "6622bb651e72d8ebd66454bd86db6c3990324243ff4325c1b6df252aba63b13e" "2f8eadc12bf60b581674a41ddc319a40ed373dd4a7c577933acaff15d2bf7cc6" "f458b92de1f6cf0bdda6bce23433877e94816c3364b821eb4ea9852112f5d7dc" "016f665c0dd5f76f8404124482a0b13a573d17e92ff4eb36a66b409f4d1da410" "13096a9a6e75c7330c1bc500f30a8f4407bd618431c94aeab55c9855731a95e1" "8b148cf8154d34917dfc794b5d0fe65f21e9155977a36a5985f89c09a9669aa0" "bf948e3f55a8cd1f420373410911d0a50be5a04a8886cabe8d8e471ad8fdba8e" "680f62b751481cc5b5b44aeab824e5683cf13792c006aeba1c25ce2d89826426" "631c52620e2953e744f2b56d102eae503017047fb43d65ce028e88ef5846ea3b" default)) + '(display-time-24hr-format t) + '(display-time-default-load-average nil) + '(doom-modeline-github t) + '(doom-modeline-indent-info t) + '(doom-modeline-minor-modes t) + '(doom-modeline-total-line-number t) + '(fill-column 80) + '(global-auto-revert-mode t) + '(global-display-line-numbers-mode t) + '(global-subword-mode t) + '(gofmt-command "goimports") + '(inhibit-startup-screen t) + '(lisp-body-indent 4) + '(lisp-indent-offset 4) + '(lisp-lambda-list-keyword-alignment t) + '(lisp-lambda-list-keyword-parameter-alignment t) + '(lisp-lambda-list-keyword-parameter-indentation 4) + '(lisp-loop-forms-indentation 4) + '(lisp-loop-keyword-indentation 4) + '(lisp-simple-loop-indentation 4) + '(lisp-tag-body-indentation 4) + '(lisp-tag-indentation 4) + '(org-agenda-files '("~/org/1.TODO.org")) + '(package-enable-at-startup nil) + '(package-selected-packages + '(aggressive-indent doom-themes company-go zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode markdown-mode srefactor irony cmake-mode company magit use-package)) + '(safe-local-variable-values + '((vc-follow-symlinks . t) + (TeX-master . t) + (TeX-parse-self . t))) + '(tab-width 4) + '(warning-suppress-log-types '((comp))) + '(whitespace-style + '(face trailing tabs lines-tail newline space-before-tab::tab space-before-tab::space space-before-tab tab-mark))) (if (display-graphic-p) - (progn - (if (fboundp 'tool-bar-mode) - (tool-bar-mode -1)) - ) - (if (fboundp 'toggle-scroll-bar) - (toggle-scroll-bar -1)) - (menu-bar-mode -1) - (if (fboundp 'tool-bar-mode) - (tool-bar-mode -1)) - ) -) + (if (fboundp 'tool-bar-mode) + (tool-bar-mode -1)) + (if (fboundp 'toggle-scroll-bar) + (toggle-scroll-bar -1)) + (menu-bar-mode -1) + (if (fboundp 'tool-bar-mode) + (tool-bar-mode -1)) + ) + (add-to-list 'default-frame-alist '(fullscreen . maximized)) (add-hook 'before-save-hook 'delete-trailing-whitespace) @@ -65,72 +72,72 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("gnu" . "https://elpa.gnu.org/packages/"))) + ("gnu" . "https://elpa.gnu.org/packages/"))) (package-initialize) (eval-when-compile -(unless (package-installed-p 'use-package) - (unless package-archive-contents - (package-refresh-contents)) - (package-install 'use-package) - ) -(require 'use-package)) + (unless (package-installed-p 'use-package) + (unless package-archive-contents + (package-refresh-contents)) + (package-install 'use-package) + ) + (require 'use-package)) (require 'use-package) (require 'use-package-ensure) (setq use-package-always-ensure t) (use-package doom-modeline - :init - (doom-modeline-mode 1) - (display-time-mode 1)) + :init + (doom-modeline-mode 1) + (display-time-mode 1)) (use-package delight - :config - (delight '((eldoc-mode nil "eldoc") - (subword-mode nil "subword"))) - ) + :config + (delight '((eldoc-mode nil "eldoc") + (subword-mode nil "subword"))) + ) (use-package multiple-cursors - :bind (("C-c m >" . 'mc/mark-next-like-this) - ("C-c m <" . 'mc/mark-previous-like-this) - ("C-c m a" . 'mc/mark-all-like-this) - ("C-c m e" . 'mc/edit-lines) - ) - ) + :bind (("C-c m >" . 'mc/mark-next-like-this) + ("C-c m <" . 'mc/mark-previous-like-this) + ("C-c m a" . 'mc/mark-all-like-this) + ("C-c m e" . 'mc/edit-lines) + ) + ) (use-package doom-themes - :config - (setq doom-themes-enable-bold t ; if nil, bold is universally disabled - doom-themes-enable-italic t) ; if nil, italics is universally disabled - (load-theme 'doom-spacegrey t) - ;; Enable flashing mode-line on errors - (doom-themes-visual-bell-config ) - ;; or for treemacs users - ;(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme - ;(doom-themes-treemacs-config) - ;; Corrects (and improves) org-mode's native fontification. - (doom-themes-org-config) - (defun atu/toggle-display-line-mode () - "toggle between relative and absolute display-line-mode" - (interactive) - (if (eq display-line-numbers 'relative) - (setq display-line-numbers 'absolute) - (setq display-line-numbers 'relative) - ) + :config + (setq doom-themes-enable-bold t ; if nil, bold is universally disabled + doom-themes-enable-italic t) ; if nil, italics is universally disabled + (load-theme 'doom-spacegrey t) + ;; Enable flashing mode-line on errors + (doom-themes-visual-bell-config ) + ;; or for treemacs users + ;;(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme + ;;(doom-themes-treemacs-config) + ;; Corrects (and improves) org-mode's native fontification. + (doom-themes-org-config) + (defun atu/toggle-display-line-mode () + "toggle between relative and absolute display-line-mode" + (interactive) + (if (eq display-line-numbers 'relative) + (setq display-line-numbers 'absolute) + (setq display-line-numbers 'relative) + ) + ) + :init + (global-whitespace-mode 1) + :bind ( + ("C-c d l" . 'atu/toggle-display-line-mode) + ) ) - :init - (global-whitespace-mode 1) - :bind ( - ("C-c d l" . 'atu/toggle-display-line-mode) - ) - ) (custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) ;; (use-package ansi-color ;; :config @@ -141,498 +148,431 @@ ;; (compilation-filter . atu/colorize-compilation-buffer)) (use-package smart-tabs-mode - :config - (setq-default tab-width 4) ; or any other preferred value - (setq cua-auto-tabify-rectangles nil) - (defadvice indent-relative (around smart-tabs activate) - (let ((indent-tabs-mode nil)) ad-do-it)) - (defadvice indent-according-to-mode (around smart-tabs activate) - (let ((indent-tabs-mode indent-tabs-mode)) - (if (memq indent-line-function - '(indent-relative - indent-relative-maybe)) - (setq indent-tabs-mode nil)) - ad-do-it)) - (smart-tabs-advice c-indent-line c-basic-offset) - (smart-tabs-advice c-indent-region c-basic-offset) - (smart-tabs-add-language-support cmake cmake-mode-hook - ( - (cmake-indent . cmake-tab-width) - ) + :config + (setq-default tab-width 4) ; or any other preferred value + (setq cua-auto-tabify-rectangles nil) + (smart-tabs-advice c-indent-line c-basic-offset) + (smart-tabs-advice c-indent-region c-basic-offset) + + (smart-tabs-add-language-support cmake cmake-mode-hook + ( + (cmake-indent . cmake-tab-width) + ) + ) + + (smart-tabs-add-language-support protobuf protobuf-mode-hook + ( + (c-indent-line . c-basic-offset) + (c-indent-region . c-basic-offset) + ) + ) + + (smart-tabs-add-language-support glsl glsl-mode-hook + ( + (c-indent-line . c-basic-offset) + (c-indent-region . c-basic-offset) + ) + ) + + (smart-tabs-add-language-support opencl opencl-mode-hook + ( + (c-indent-line . c-basic-offset) + (c-indent-region . c-basic-offset) + ) + ) + + (smart-tabs-add-language-support elisp emacs-lisp-mode-hook + ( + (lisp-indent-line . lisp-indent-offset) + (lisp-indent-region . lisp-indent-offset) + ) + ) + + (smart-tabs-insinuate 'c 'c++ 'cmake 'nxml 'protobuf 'glsl 'elisp) ) - (smart-tabs-add-language-support protobuf protobuf-mode-hook - ( - (c-indent-line . c-basic-offset) - (c-indent-region . c-basic-offset) - ) - ) - (smart-tabs-add-language-support glsl glsl-mode-hook - ( - (c-indent-line . c-basic-offset) - (c-indent-region . c-basic-offset) - ) - ) - (smart-tabs-add-language-support opencl opencl-mode-hook - ( - (c-indent-line . c-basic-offset) - (c-indent-region . c-basic-offset) - ) - ) - (smart-tabs-insinuate 'c 'c++ 'cmake 'nxml 'protobuf 'glsl) - ) (use-package aggressive-indent - :hook - (emacs-lisp-mode . aggressive-indent-mode) - ) + :hook + (emacs-lisp-mode . aggressive-indent-mode) + ) (use-package magit - :commands (magit-status) - :bind ("C-x g" . magit-status) - :hook - (magit-mode . - (lambda () (setq-local whitespace-style nil))) - :custom - (magit-credential-cache-daemon-socket nil) - ) + :commands (magit-status) + :bind ("C-x g" . magit-status) + :hook + (magit-mode . + (lambda () (setq-local whitespace-style nil))) + :custom + (magit-credential-cache-daemon-socket nil) + ) (use-package company - :delight - :bind ( ("M-TAB" . company-complete) ) - :config - (global-company-mode t) - ) + :delight + :bind ( ("M-TAB" . company-complete) ) + :config + (global-company-mode t) + ) (use-package cmake-mode - :hook - (cmake-mode . lsp-deferred) - :config - (setq cmake-tab-width 4) - ) + :hook + (cmake-mode . lsp-deferred) + :config + (setq cmake-tab-width 4) + ) (use-package yasnippet - :delight yas-minor-mode - :config - (yas-global-mode) - :after (company) - :bind ( :map yas-minor-mode-map - ("TAB" . nil) - ) - ) + :delight yas-minor-mode + :config + (yas-global-mode) + :after (company) + :bind ( :map yas-minor-mode-map + ("TAB" . nil) + ) + ) (use-package yasnippet-snippets - :after (yasnippet) - ) + :after (yasnippet) + ) (use-package projectile - :bind ( :map projectile-mode-map - ( "C-c p" . 'projectile-command-map) - ) - :delight - :config - (projectile-mode +1) - (setq projectile-per-project-compilation-buffer t) - (projectile-register-project-type 'ng2 '("angular.json" "package.json" "tsconfig.json") - :project-file "angular.json" - :compile "npm install" - :test "ng test --progress=false" - :run "ng serve" - :test-suffix ".spec") - ) + :bind ( :map projectile-mode-map + ( "C-c p" . 'projectile-command-map) + ) + :delight + :config + (projectile-mode +1) + (setq projectile-per-project-compilation-buffer t) + (projectile-register-project-type 'ng2 '("angular.json" "package.json" "tsconfig.json") + :project-file "angular.json" + :compile "npm install" + :test "ng test --progress=false" + :run "ng serve" + :test-suffix ".spec") + ) (use-package vterm) (use-package flycheck - :delight - :bind (("C-c C-n" . 'flycheck-next-error)) - :config - (defvar-local atu/flycheck-local-cache nil) + :delight + :bind (("C-c C-n" . 'flycheck-next-error)) + :config + (defvar-local atu/flycheck-local-cache nil) - (defun atu/flycheck-checker-get (fn checker property) - (or (alist-get property (alist-get checker atu/flycheck-local-cache)) - (funcall fn checker property))) + (defun atu/flycheck-checker-get (fn checker property) + (or (alist-get property (alist-get checker atu/flycheck-local-cache)) + (funcall fn checker property))) - (advice-add 'flycheck-checker-get :around 'atu/flycheck-checker-get) - ) + (advice-add 'flycheck-checker-get :around 'atu/flycheck-checker-get) + + (setq flycheck-indication-mode 'left-margin) + + ;; Adjust margins and fringe widths… + (defun atu/set-flycheck-margins () + (setq left-fringe-width 8 right-fringe-width 8 + left-margin-width 1 right-margin-width 0) + (flycheck-refresh-fringes-and-margins)) + :hook + (flycheck-mode . atu/set-flycheck-margins) + ) (use-package which-key - :delight - :config - (which-key-mode)) + :delight + :config + (which-key-mode)) (use-package lsp-mode - :delight - :after (flycheck) - :config - (yas-minor-mode) - (if (display-graphic-p) - (setq lsp-ui-doc-use-webkit t) - ) - (add-to-list 'lsp-language-id-configuration '("\\.postcss\\'" . "css")) - (advice-add 'lsp :before - (lambda (&rest _args) - (eval '(setf (lsp-session-server-id->folders (lsp-session)) (ht) - ) - ) + :delight + :after (flycheck) + :config + (yas-minor-mode) + (if (display-graphic-p) + (setq lsp-ui-doc-use-webkit t) + ) + (add-to-list 'lsp-language-id-configuration '("\\.postcss\\'" . "css")) + (advice-add 'lsp :before + (lambda (&rest _args) + (eval '(setf (lsp-session-server-id->folders (lsp-session)) (ht) + ) ) - ) - :bind ( - ("C-c C-d" . lsp-ui-doc-toggle) - ) + ) + ) + :bind ( + ("C-c C-d" . lsp-ui-doc-toggle) + ) - :init - ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") - (setq lsp-keymap-prefix "C-c l") - :hook ( - ;; replace XXX-mode with concrete major-mode(e. g. python-mode) - ;; if you want which-key integration - (c++-mode . lsp-deferred) - (lsp-mode . lsp-enable-which-key-integration)) - :commands (lsp lsp-deferred)) + :init + ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") + (setq lsp-keymap-prefix "C-c l") + :hook ( + ;; replace XXX-mode with concrete major-mode(e. g. python-mode) + ;; if you want which-key integration + (c++-mode . lsp-deferred) + (lsp-mode . lsp-enable-which-key-integration)) + :commands (lsp lsp-deferred)) (use-package lsp-ui - :commands lsp-ui-mode - :config - (setq lsp-ui-sideline-show-diagnostics nil) - :custom-face - (lsp-ui-doc-background ((t (:background "#373B41")))) + :commands lsp-ui-mode + :config + (setq lsp-ui-sideline-show-diagnostics nil) + :custom-face + (lsp-ui-doc-background ((t (:background "#373B41")))) - ) + ) (use-package treemacs - :bind (("C-x t t" . treemacs) - ("M-0" . treemacs-select-window)) - :config - (add-hook 'treemacs-mode-hook (lambda () (display-line-numbers-mode -1))) - (treemacs-project-follow-mode t) - ) + :bind (("C-x t t" . treemacs) + ("M-0" . treemacs-select-window)) + :config + (add-hook 'treemacs-mode-hook (lambda () (display-line-numbers-mode -1))) + (treemacs-project-follow-mode t) + ) (use-package treemacs-projectile) (use-package nerd-icons ) (use-package treemacs-nerd-icons - :config - (treemacs-load-theme "nerd-icons")) + :config + (treemacs-load-theme "nerd-icons")) (use-package lsp-treemacs - :after lsp-mode - ) + :after lsp-mode + ) (use-package lsp-ltex - :init - (setq lsp-ltex-version "15.2.0")) ; make sure you have set this, see below + :init + (setq lsp-ltex-version "15.2.0")) ; make sure you have set this, see below (use-package ng2-mode - :hook - (typescript-mode . lsp-deferred) - ) + :hook + (typescript-mode . lsp-deferred) + ) (use-package lsp-pyright - :hook - (python-mode . (lambda () - (require 'lsp-pyright) - (lsp-deferred))) ; or lsp-deferred - ) + :hook + (python-mode . (lambda () + (require 'lsp-pyright) + (lsp-deferred))) ; or lsp-deferred + ) (use-package yaml-mode) (use-package python - :custom - (python-shell-interpreter "ipython") - (python-shell-interpreter-args "-i --simple-prompt") - (python-indent-guess-indent-offset-verbose nil) - :hook - (python-mode . (lambda () (setq-local company-prescient-sort-length-enable nil))) - (python-mode . (lambda () (setq-local fill-column 88))) - (python-mode . lsp-deferred) - (python-mode . atu/activate-venv) - (lsp-managed-mode . (lambda () - (when (derived-mode-p 'python-mode) - (setq atu/flycheck-local-cache '((lsp . ((next-checkers . (python-flake8))))))))) + :custom + (python-shell-interpreter "ipython") + (python-shell-interpreter-args "-i --simple-prompt") + (python-indent-guess-indent-offset-verbose nil) + :hook + (python-mode . (lambda () (setq-local company-prescient-sort-length-enable nil))) + (python-mode . (lambda () (setq-local fill-column 88))) + (python-mode . lsp-deferred) + (python-mode . atu/activate-venv) + (lsp-managed-mode . (lambda () + (when (derived-mode-p 'python-mode) + (setq atu/flycheck-local-cache '((lsp . ((next-checkers . (python-flake8))))))))) - ) + ) (use-package pyvenv - :after (projectile) - :config - (defun atu/get-direnv-venv () - "Gets .direnv from project root python venv if any" - (when-let* ((root-dir (projectile-project-root)) - (direnv (concat (file-name-as-directory root-dir) ".direnv")) - (direnv-exists (file-directory-p direnv)) - (venvs (directory-files direnv t "python-.*"))) - (car (last venvs))) - ) - (defun atu/get-dotvenv () - "Gets .venv from project root if any" - (when-let* ((root-dir (projectile-project-root)) - (venv-file (concat (file-name-as-directory root-dir) ".venv")) - (venv-exists (file-exists-p venv-file)) - (venv-name (with-temp-buffer - (insert-file-contents venv-file) - (nth 0 (split-string (buffer-string)))))) - venv-name) - ) + :after (projectile) + :config + (defun atu/get-direnv-venv () + "Gets .direnv from project root python venv if any" + (when-let* ((root-dir (projectile-project-root)) + (direnv (concat (file-name-as-directory root-dir) ".direnv")) + (direnv-exists (file-directory-p direnv)) + (venvs (directory-files direnv t "python-.*"))) + (car (last venvs))) + ) + (defun atu/get-dotvenv () + "Gets .venv from project root if any" + (when-let* ((root-dir (projectile-project-root)) + (venv-file (concat (file-name-as-directory root-dir) ".venv")) + (venv-exists (file-exists-p venv-file)) + (venv-name (with-temp-buffer + (insert-file-contents venv-file) + (nth 0 (split-string (buffer-string)))))) + venv-name) + ) - (defun atu/get-venv-name () - "Gets venv name from project root. Support .venv and .direnv structure" - (or (atu/get-dotvenv) (atu/get-direnv-venv)) - ) + (defun atu/get-venv-name () + "Gets venv name from project root. Support .venv and .direnv structure" + (or (atu/get-dotvenv) (atu/get-direnv-venv)) + ) - (defun atu/activate-venv () - "Activate python environment according to the project root" - (when-let ((venv-name (atu/get-venv-name))) - (setenv "WORKON_HOME" venv-name) - (pyvenv-mode) - (pyvenv-workon venv-name) - (pyvenv-activate venv-name) - (message (format "Using python: %s" venv-name)) - ) - ) - - (defun atu/get-venv-python () - "returns python executable from current venv" - (when-let* ((venv-name (atu/get-venv-name)) - (python-exec (concat (file-name-as-directory venv-name) "bin/python3")) - (python-exists (file-executable-p python-exec)) - ) - python-exec) - ) - - (defun atu/activate-flycheck () - "Activate flycheck unless its in the venv" - (if-let ((venv-name (atu/get-venv-name))) - (unless (and buffer-file-name (file-in-directory-p buffer-file-name venv-name)) - (flycheck-mode)) - (flycheck-mode)) - ) - - (defun atu/pyls-set-jedi-environment () - "Sets the jedi environment according to the discovered venv" - (when-let ((venv-name (atu/get-venv-name))) - (setq lsp-pylsp-plugins-jedi-environment venv-name)) - ) - - (defun atu/append-workspace-extra-paths () - "Appends needed extra-paths to lsp-jedi workspace if found" - (when-let* ((venv-name (atu/get-venv-name)) - (site-packages (file-expand-wildcards (concat (file-name-as-directory venv-name) "lib/python*/site-packages"))) - (site-package (car site-packages))) - (setq lsp-jedi-workspace-extra-paths - (vconcat lsp-jedi-workspace-extra-paths (vector site-package)) + (defun atu/activate-venv () + "Activate python environment according to the project root" + (when-let ((venv-name (atu/get-venv-name))) + (setenv "WORKON_HOME" venv-name) + (pyvenv-mode) + (pyvenv-workon venv-name) + (pyvenv-activate venv-name) + (message (format "Using python: %s" venv-name)) ) - ) - ) + ) - (defun atu/flycheck-set-python-paths () - "Sets the rights executable for flycheck" - (when-let ((python-exec (atu/get-venv-python))) - (flycheck-set-checker-executable 'python-flake8 python-exec) - (flycheck-set-checker-executable 'python-pylint python-exec) - (flycheck-set-checker-executable 'python-mypy python-exec) - (flycheck-reset-enabled-checker 'python-flake8) - (flycheck-reset-enabled-checker 'python-pylint) - (flycheck-add-next-checker 'lsp 'python-pylint) - ) + (defun atu/get-venv-python () + "returns python executable from current venv" + (when-let* ((venv-name (atu/get-venv-name)) + (python-exec (concat (file-name-as-directory venv-name) "bin/python3")) + (python-exists (file-executable-p python-exec)) + ) + python-exec) + ) + + (defun atu/activate-flycheck () + "Activate flycheck unless its in the venv" + (if-let ((venv-name (atu/get-venv-name))) + (unless (and buffer-file-name (file-in-directory-p buffer-file-name venv-name)) + (flycheck-mode)) + (flycheck-mode)) + ) + + (defun atu/pyls-set-jedi-environment () + "Sets the jedi environment according to the discovered venv" + (when-let ((venv-name (atu/get-venv-name))) + (setq lsp-pylsp-plugins-jedi-environment venv-name)) + ) + + (defun atu/append-workspace-extra-paths () + "Appends needed extra-paths to lsp-jedi workspace if found" + (when-let* ((venv-name (atu/get-venv-name)) + (site-packages (file-expand-wildcards (concat (file-name-as-directory venv-name) "lib/python*/site-packages"))) + (site-package (car site-packages))) + (setq lsp-jedi-workspace-extra-paths + (vconcat lsp-jedi-workspace-extra-paths (vector site-package)) + ) + ) + ) + + (defun atu/flycheck-set-python-paths () + "Sets the rights executable for flycheck" + (when-let ((python-exec (atu/get-venv-python))) + (flycheck-set-checker-executable 'python-flake8 python-exec) + (flycheck-set-checker-executable 'python-pylint python-exec) + (flycheck-set-checker-executable 'python-mypy python-exec) + (flycheck-reset-enabled-checker 'python-flake8) + (flycheck-reset-enabled-checker 'python-pylint) + (flycheck-add-next-checker 'lsp 'python-pylint) + ) + ) + :hook + (python-mode . atu/pyls-set-jedi-environment) + ;(python-mode . atu/activate-flycheck) + ;(python-mode . atu/append-workspace-extra-paths) + (lsp-managed-mode . atu/flycheck-set-python-paths) ) - :hook - (python-mode . atu/pyls-set-jedi-environment) - ;(python-mode . atu/activate-flycheck) - ;(python-mode . atu/append-workspace-extra-paths) - (lsp-managed-mode . atu/flycheck-set-python-paths) - ) (use-package blacken - :commands blacken-mode blacken-buffer - :hook - (python-mode . blacken-mode) - ) + :commands blacken-mode blacken-buffer + :hook + (python-mode . blacken-mode) + ) (use-package py-isort - :commands py-isort-buffer - :hook - (python-mode . (lambda () - (add-hook 'before-save-hook 'py-isort-before-save))) - ) + :commands py-isort-buffer + :hook + (python-mode . (lambda () + (add-hook 'before-save-hook 'py-isort-before-save))) + ) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; C/C++ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (add-to-list 'auto-mode-alist '("\\.h\\'" . c-c++-header)) (defconst tuleu-cc-style - '("gnu" - (c-offsets-alist . ((innamespace . [0]))) + '("gnu" + (c-offsets-alist . ((innamespace . [0]))) + ) ) - ) (c-add-style "tuleu-c++" tuleu-cc-style) (defun my-c-common-hook () - (smart-tabs-mode) - (if (derived-mode-p 'c-mode 'c++-mode) - (cppcm-reload-all) - ) - ) + (smart-tabs-mode) + (if (derived-mode-p 'c-mode 'c++-mode) + (cppcm-reload-all) + ) + ) (add-hook 'c-mode-common-hook 'my-c-common-hook) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; TeX/LaTeX -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; (use-package auctex -;; :hook (LaTeX-mode TeX-mode) -;; ) - -;; (use-package auctex-latexmk -;; :hook (LaTeX-mode TeX-mode) -;; :bind ( -;; ("C-x f" . find-file-at-point) -;; :map LaTeX-mode-map -;; ([remap reftex-citation] . my-latex-insert-cite) -;; ("M-q" . my-latex-fill-paragraph) -;; ) -;; :config ( -;; (add-to-list 'TeX-command-list -;; '("latexmk" "latexmk -pdf -interaction=nonstopmode -shell-escape %s" TeX-run-TeX nil t -;; :help "Run latexmk on file")) -;; (setq TeX-command-default "latexmk") -;; (setq LaTeX-includegraphics-read-file 'LaTeX-includegraphics-read-file-relative) -;; (setq LaTeX-includegraphics-strip-extension-flag nil) -;; (add-to-list 'LaTeX-includegraphics-extensions '"tikz") -;; ;; use Okular as default pdf viewer -;; (setq TeX-view-program-selection '((output-pdf "Okular PDF Viewer"))) -;; (add-to-list 'TeX-expand-list '("%(dir)" (lambda nil (expand-file-name (TeX-master-directory))))) -;; (setq TeX-view-program-list -;; '(("Okular PDF Viewer" "okular --unique %o#src:%n%(dir)./%b"))) -;; ;; (setq auctex-latexmk-inherit-TeX-PDF-mode t) -;; ;; launch server if not launched -;; (load "server") -;; (unless (server-running-p) (server-start)) -;; (setq reftex-plug-into-AUCTeX t) - -;; (turn-on-reftex) -;; (setq TeX-parse-self t) -;; (setq TeX-auto-save t) -;; (TeX-PDF-mode) -;; (setq reftex-ref-macro-prompt nil) -;; (defun my-latex-insert-cite (&optional P) -;; "" -;; (interactive "P") -;; (TeX-insert-macro "cite") -;; ) -;; (setq-default TeX-master nil) -;; (defun my-latex-fill-paragraph (&optional P) -;; "When called with prefix argument call `fill-paragraph'. -;; Otherwise split the current paragraph into one sentence per line." -;; (interactive "P") -;; (if (not P) -;; (save-excursion -;; (let ((fill-column 12345678)) ;; relies on dynamic binding -;; (fill-paragraph) ;; this will not work correctly if the paragraph is -;; ;; longer than 12345678 characters (in which case the -;; ;; file must be at least 12MB long. This is unlikely.) -;; (let ((end (save-excursion -;; (forward-paragraph 1) -;; (backward-sentence) -;; (point-marker)))) ;; remember where to stop -;; (beginning-of-line) -;; (while (progn (forward-sentence) -;; (<= (point) (marker-position end))) -;; (just-one-space) ;; leaves only one space, point is after it -;; (delete-char -1) ;; delete the space -;; (insert " %");; insert a % -;; (newline) ;; and insert a newline -;; (LaTeX-indent-line) ;; I only use this in combination with late, so this makes sense -;; )))) -;; ;; otherwise do ordinary fill paragraph -;; (fill-paragraph P)) -;; ) -;; ) -;; ) - - (use-package markdown-mode) (use-package go-mode - :after (projectile) - :config - (unbind-key "C-c C-d" go-mode-map) - (defun go-compile-command () - "returns a string to compile a go project" - (setq project-makefile (concat (file-name-as-directory (projectile-project-root)) "Makefile")) - (if (file-exists-p project-makefile) - "make" - "go build && go test && go vet" - ) + :after (projectile) + :config + (unbind-key "C-c C-d" go-mode-map) + (defun go-compile-command () + "returns a string to compile a go project" + (setq project-makefile (concat (file-name-as-directory (projectile-project-root)) "Makefile")) + (if (file-exists-p project-makefile) + "make" + "go build && go test && go vet" + ) + ) + (projectile-update-project-type + 'go + :compile 'go-compile-command) + :hook + (go-mode . lsp-deferred) + (go-mode . (lambda () + (add-hook 'before-save-hook #'lsp-format-buffer t t) + (add-hook 'before-save-hook #'lsp-organize-imports t t) + )) ) - (projectile-update-project-type - 'go - :compile 'go-compile-command) - :hook - (go-mode . lsp-deferred) - (go-mode . (lambda () - (add-hook 'before-save-hook #'lsp-format-buffer t t) - (add-hook 'before-save-hook #'lsp-organize-imports t t) - )) - ) (use-package glsl-mode) (use-package opencl-mode) (use-package protobuf-mode - :mode "\\.proto\\'" - :config - (defconst my-protobuf-style - '((c-basic-offset . 4) - (indent-tabs-mode . t)) + :mode "\\.proto\\'" + :config + (defconst my-protobuf-style + '((c-basic-offset . 4) + (indent-tabs-mode . t)) + ) + ;; (c-add-style "my-style" my-protobuf-style t) ) - ;; (c-add-style "my-style" my-protobuf-style t) - ) (use-package typescript-mode - :config - (progn - (setq create-lockfiles nil) - (add-to-list 'compilation-error-regexp-alist '("^Error: \\(.*?\\):\\([0-9]+\\):\\([0-9]+\\)" 1 2 3)) - ) - ) + :config + (progn + (setq create-lockfiles nil) + (add-to-list 'compilation-error-regexp-alist '("^Error: \\(.*?\\):\\([0-9]+\\):\\([0-9]+\\)" 1 2 3)) + ) + ) (use-package json-mode) (use-package prettier - :delight "PR" - :config - (setq prettier-mode-sync-config-flag nil) - :hook - (web-mode . prettier-mode) - (typescript-mode . prettier-mode) - ) + :delight "PR" + :config + (setq prettier-mode-sync-config-flag nil) + :hook + (web-mode . prettier-mode) + (typescript-mode . prettier-mode) + ) (use-package web-mode - :mode "\\.html?\\'" "\\.svelte\\'" "\\.\\(post\\)?css\\'" - :interpreter "html" "css" "svelte" - :config - (setq web-mode-content-types-alist + :mode "\\.html?\\'" "\\.svelte\\'" "\\.\\(post\\)?css\\'" + :interpreter "html" "css" "svelte" + :config + (setq web-mode-content-types-alist '(("css" . "\\.\\(post\\)?css\\'"))) - :hook - (web-mode . lsp-deferred) - ) + :hook + (web-mode . lsp-deferred) + ) (use-package dockerfile-mode - :hook - (dockerfile-mode . lsp-deferred) - ) + :hook + (dockerfile-mode . lsp-deferred) + )