(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. '(initial-frame-alist '((fullscreen . maximized))) '(package-selected-packages '(zig-mode treesit ef-themes dockerfile-mode dap-mode julia-ts-mode lsp-julia julia-mode marginalia vertico tide which-key use-package pyenv-mode flycheck exec-path-from-shell elpy doom-themes doom-modeline all-the-icons))) (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize) (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) (use-package which-key :ensure t :config (which-key-mode)) (use-package vertico :ensure t :config (add-hook 'rfn-eshadow-update-overlay-hook #'vertico-directory-tidy)) (use-package marginalia :ensure t) (require 'treesit) (use-package zig-mode :ensure t) (use-package dired :config (put 'dired-find-alternate-file 'disabled nil) (add-hook 'dired-mode-hook (lambda () (define-key dired-mode-map (kbd "RET") (lambda () (interactive) (find-alternate-file (dired-get-file-for-visit)))))) (setq delete-by-moving-to-trash t) (setq dired-dwim-target t)) (vertico-mode 1) (marginalia-mode 1) (tool-bar-mode -1) (scroll-bar-mode -1) (set-face-attribute 'default nil :font "Hack Nerd Font Mono" :height 110) ;;(set-face-attribute 'default nil :font "VictorMono Nerd Font Mono" :height 110) (set-default-coding-systems 'utf-8) (setq ring-bell-function 'ignore) (setq inhibit-startup-message t) (setq backup-directory-alist '(("." . "~/.saves"))) (setq auto-save-default nil) (setq-default indent-tabs-mode nil) (setq show-paren-delay 0) (setq native-comp-async-report-warnings-errors 'silent) (delete-selection-mode 1) (show-paren-mode 1) (add-hook 'before-save-hook 'whitespace-cleanup) (setq-default frame-title-format '(:eval (format "%s" (cond (buffer-file-truename buffer-file-truename ) (dired-directory (concat "[ " dired-directory " ]")) (t "GNU Emacs 👾"))))) (use-package elpy :ensure t) (use-package flycheck :ensure t) (use-package exec-path-from-shell :ensure t) (elpy-enable) (exec-path-from-shell-copy-env "PATH") ;; black or 'standard' (flake8 ?) code formatter: ;; (add-hook 'elpy-mode-hook (lambda () ;; (add-hook 'before-save-hook ;; 'elpy-format-code nil t))) (add-hook 'elpy-mode-hook (lambda () (add-hook 'before-save-hook 'elpy-black-fix-code nil t))) (add-hook 'python-mode-hook (lambda () (setq gud-pdb-command-name "python3 -m pdb"))) (use-package pyenv-mode :ensure t) (pyenv-mode) (use-package yasnippet :config (setq yas-snippet-dirs '("~/.emacs.d/snippets")) (yas-reload-all) (add-hook 'prog-mode-hook 'yas-minor-mode)) ;; my keybindings (defun revert-buffer-no-confirm () (interactive) (revert-buffer :ignore-auto :noconfirm)) (defun kill-buffer-no-confirm () (interactive) (kill-buffer nil)) (defun list-buffers-please () (interactive) (list-buffers) (other-window 1) (delete-other-windows)) (defun make-json-great-again () (interactive) (when (string-match-p ".json\\'" (buffer-name)) (mark-whole-buffer) (json-pretty-print (region-beginning) (region-end)))) (global-unset-key (kbd "C-z")) (global-unset-key (kbd "C-v")) (global-unset-key (kbd "C-f")) (global-unset-key (kbd "C-b")) (global-unset-key (kbd "C-n")) (global-unset-key (kbd "C-l")) (global-unset-key (kbd "C-p")) (global-unset-key (kbd "M-v")) (global-set-key (kbd "") 'find-file) (global-set-key (kbd "") 'revert-buffer-no-confirm) (global-set-key (kbd "") 'kill-buffer-no-confirm) (global-set-key (kbd "C-b") 'list-buffers-please) (global-set-key (kbd "C-n") 'dired-create-empty-file) (add-hook 'elpy-mode-hook (lambda () (local-set-key [f2] 'elpy-refactor-rename))) (add-hook 'elpy-mode-hook (lambda () (local-set-key [f7] 'elpy-goto-definition))) (add-hook 'typescript-mode-hook (lambda () (local-set-key [f2] 'tide-rename-symbol))) (add-hook 'typescript-mode-hook (lambda () (local-set-key [f7] 'tide-references))) (add-hook 'hs-minor-mode-hook (lambda () (local-set-key (kbd "C-") 'hs-toggle-hiding))) (add-hook 'mhtml-mode-hook (lambda () (local-set-key (kbd "C-f") 'prettier-js))) (add-hook 'typescript-ts-mode-hook (lambda () (local-set-key (kbd "C-f") 'prettier-js))) (add-hook 'js-mode-hook (lambda () (local-set-key (kbd "C-f") 'make-json-great-again))) (add-hook 'lsp-mode-hook (lambda () (local-set-key (kbd "C-f") 'lsp-format-buffer))) ;; (add-hook 'prog-mode-hook ;; (lambda () (local-set-key (kbd "C-;") 'comment-or-uncomment-region))) ;; (define-key map (kbd "M-.") 'elpy-goto-assignment ;; (define-key map (kbd "C-x 4 M-.") 'elpy-goto-assignment-other-window) ;; stuff for folding html (defun mhtml-forward (arg) (interactive "P") (pcase (get-text-property (point) 'mhtml-submode) ('nil (sgml-skip-tag-forward 1)) (submode (forward-sexp)))) (add-to-list 'hs-special-modes-alist '(mhtml-mode "{\\|<[^/>]+?" "}\\|]*[^/]>" "