mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-10 19:23:03 +03:00
312 lines
8.4 KiB
EmacsLisp
312 lines
8.4 KiB
EmacsLisp
;;; -*- lexical-binding: t -*-
|
|
(use-package ein
|
|
:commands (ein:run)
|
|
:disabled
|
|
:straight t)
|
|
|
|
(defun my/get-pipenv-python ()
|
|
(let ((default-directory (projectile-project-root)))
|
|
(cond ((file-exists-p ".venv/bin/python")
|
|
(expand-file-name ".venv/bin/python"))
|
|
(t (executable-find "python")))))
|
|
|
|
(use-package lsp-pyright
|
|
:straight t
|
|
:defer t
|
|
:hook (python-mode . (lambda ()
|
|
(require 'lsp-pyright)
|
|
(setq-local lsp-pyright-python-executable-cmd (my/get-pipenv-python))
|
|
(lsp))))
|
|
|
|
(add-hook 'python-mode-hook #'smartparens-mode)
|
|
(add-hook 'python-mode-hook #'treesit-fold-mode)
|
|
|
|
(use-package yapfify
|
|
:straight (:repo "JorisE/yapfify" :host github)
|
|
:disabled
|
|
:commands (yapfify-region
|
|
yapfify-buffer
|
|
yapfify-region-or-buffer
|
|
yapf-mode))
|
|
|
|
(use-package python-black
|
|
:straight t
|
|
:commands (python-black-buffer)
|
|
:config
|
|
(setq python-black-command "black"))
|
|
|
|
(use-package py-isort
|
|
:straight t
|
|
:commands (py-isort-buffer py-isort-region))
|
|
|
|
(my-leader-def
|
|
:keymaps '(python-mode-map python-ts-mode-map)
|
|
"rr" (lambda ()
|
|
(interactive)
|
|
(unless (and (fboundp #'org-src-edit-buffer-p) (org-src-edit-buffer-p))
|
|
(py-isort-buffer))
|
|
(python-black-buffer)))
|
|
|
|
(use-package numpydoc
|
|
:straight t
|
|
:commands (numpydoc-generate)
|
|
:init
|
|
(my-leader-def
|
|
:keymaps 'python-ts-mode-map
|
|
"rd" #'numpydoc-generate)
|
|
:config
|
|
(setq numpydoc-insertion-style 'prompt)
|
|
(setq numpydoc-insert-return-without-typehint nil))
|
|
|
|
(defun my/set-pipenv-pytest ()
|
|
(setq-local
|
|
python-pytest-executable
|
|
(concat (my/get-pipenv-python) " -m pytest")))
|
|
|
|
(use-package python-pytest
|
|
:straight t
|
|
:commands (python-pytest-dispatch)
|
|
:init
|
|
(my-leader-def
|
|
:keymaps '(python-mode-map python-ts-mode-map)
|
|
:infix "t"
|
|
"t" 'python-pytest-dispatch)
|
|
:config
|
|
(cl-defun python-pytest--run-as-comint (&key command)
|
|
"Run a pytest comint session for COMMAND."
|
|
(let* ((buffer (python-pytest--get-buffer))
|
|
(process (get-buffer-process buffer)))
|
|
(with-current-buffer buffer
|
|
(when (comint-check-proc buffer)
|
|
(unless (or compilation-always-kill
|
|
(yes-or-no-p "Kill running pytest process?"))
|
|
(user-error "Aborting; pytest still running")))
|
|
(when process
|
|
(delete-process process))
|
|
(let ((inhibit-read-only t))
|
|
(erase-buffer))
|
|
(unless (eq major-mode 'python-pytest-mode)
|
|
(python-pytest-mode))
|
|
(compilation-forget-errors)
|
|
(display-buffer buffer)
|
|
(setq command (format "export COLUMNS=%s; %s"
|
|
(- (window-width (get-buffer-window buffer)) 5)
|
|
command))
|
|
(insert (format "cwd: %s\ncmd: %s\n\n" default-directory command))
|
|
(setq python-pytest--current-command command)
|
|
(when python-pytest-pdb-track
|
|
(add-hook
|
|
'comint-output-filter-functions
|
|
'python-pdbtrack-comint-output-filter-function
|
|
nil t))
|
|
(run-hooks 'python-pytest-setup-hook)
|
|
(make-comint-in-buffer "pytest" buffer "bash" nil "-c" command)
|
|
(run-hooks 'python-pytest-started-hook)
|
|
(setq process (get-buffer-process buffer))
|
|
(set-process-sentinel process #'python-pytest--process-sentinel))))
|
|
(add-hook 'python-mode-hook #'my/set-pipenv-pytest)
|
|
(when (derived-mode-p 'python-mode)
|
|
(my/set-pipenv-pytest)))
|
|
|
|
(use-package code-cells
|
|
:straight t
|
|
:disabled
|
|
:commands (code-cells-mode code-cells-convert-ipynb))
|
|
|
|
(setq my/tensorboard-buffer "TensorBoard-out")
|
|
|
|
(defun my/tensorboard ()
|
|
(interactive)
|
|
(start-process
|
|
"tensorboard"
|
|
my/tensorboard-buffer
|
|
"tensorboard"
|
|
"serve"
|
|
"--logdir"
|
|
(car (find-file-read-args "Directory: " t)))
|
|
(display-buffer my/tensorboard-buffer))
|
|
|
|
(use-package json-mode
|
|
:straight t
|
|
:mode "\\.json\\'"
|
|
:config
|
|
(add-hook 'json-mode-hook #'smartparens-mode)
|
|
(add-hook 'json-mode-hook #'treesit-fold-mode)
|
|
(my/set-smartparens-indent 'json-mode))
|
|
|
|
(use-package csv-mode
|
|
:straight t
|
|
:disabled
|
|
:mode "\\.csv\\'")
|
|
|
|
(use-package yaml-mode
|
|
:straight t
|
|
:mode "\\.yml\\'"
|
|
:config
|
|
(add-hook 'yaml-mode-hook 'smartparens-mode)
|
|
;; (add-hook 'yaml-mode-hook 'highlight-indent-guides-mode)
|
|
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode)))
|
|
|
|
(use-package dotenv-mode
|
|
:straight t
|
|
:mode "\\.env\\..*\\'")
|
|
|
|
(use-package gitignore-templates
|
|
:straight t
|
|
:commands (gitignore-templates-insert
|
|
gitignore-templates-new-file))
|
|
|
|
(use-package dockerfile-mode
|
|
:mode "Dockerfile\\'"
|
|
:straight t
|
|
:config
|
|
(add-hook 'dockerfile-mode 'smartparens-mode))
|
|
|
|
(use-package jenkinsfile-mode
|
|
:straight t
|
|
:mode "Jenkinsfile\\'"
|
|
:config
|
|
(add-hook 'jenkinsfile-mode-hook #'smartparens-mode)
|
|
(my/set-smartparens-indent 'jenkinsfile-mode))
|
|
|
|
(use-package crontab-mode
|
|
:mode "/crontab\\(\\.X*[[:alnum:]]+\\)?\\'"
|
|
:straight t)
|
|
|
|
(use-package nginx-mode
|
|
:straight t
|
|
:config
|
|
(my/set-smartparens-indent 'nginx-mode))
|
|
|
|
(use-package hcl-mode
|
|
:mode "\\.hcl\\'"
|
|
:straight t)
|
|
|
|
(add-hook 'sh-mode-hook #'smartparens-mode)
|
|
|
|
(use-package fish-mode
|
|
:straight t
|
|
:mode "\\.fish\\'"
|
|
:config
|
|
(add-hook 'fish-mode-hook #'smartparens-mode))
|
|
|
|
(setq my/sqlformatter-dialect-choice
|
|
'("db2" "mariadb" "mysql" "n1ql" "plsql" "postgresql" "redshift" "spark" "sql" "tsql"))
|
|
|
|
(setq my/sqlformatter-dialect "postgresql")
|
|
|
|
(defun my/sqlformatter-set-dialect ()
|
|
"Set dialect for sql-formatter"
|
|
(interactive)
|
|
(setq my/sqlformatter-dialect
|
|
(completing-read "Dialect: " my/sqlformatter-dialect-choice)))
|
|
|
|
(reformatter-define sqlformat
|
|
:program (executable-find "sql-formatter")
|
|
:args `("-l" ,my/sqlformatter-dialect))
|
|
|
|
(my-leader-def
|
|
:keymaps '(sql-mode-map)
|
|
"rr" #'sqlformat-buffer)
|
|
|
|
(use-package sparql-mode
|
|
:mode "\\.sparql\\'"
|
|
:straight t)
|
|
|
|
(use-package graphql-mode
|
|
:mode (rx (| "gql" "grapql") eos)
|
|
:straight t)
|
|
|
|
(defun my/doc-view-setup ()
|
|
(display-line-numbers-mode -1)
|
|
(undo-tree-mode -1))
|
|
|
|
(use-package doc-view
|
|
:straight (:type built-in)
|
|
:config
|
|
(setq doc-view-resolution 300)
|
|
(add-hook 'doc-view-mode-hook #'my/doc-view-setup)
|
|
(general-define-key
|
|
:states '(normal)
|
|
:keymaps '(doc-view-mode-map)
|
|
"j" #'doc-view-next-line-or-next-page
|
|
"k" #'doc-view-previous-line-or-previous-page))
|
|
|
|
(use-package gnuplot
|
|
:straight t
|
|
:commands (gnuplot-mode gnuplot-make-buffer)
|
|
:init
|
|
(add-to-list 'auto-mode-alist '("\\.gp\\'" . gnuplot-mode))
|
|
:config
|
|
(general-define-key
|
|
:keymaps 'gnuplot-mode-map
|
|
"C-c C-c" #'gnuplot-send-buffer-to-gnuplot)
|
|
(general-define-key
|
|
:states '(normal)
|
|
:keymaps 'gnuplot-mode-map
|
|
"RET" #'gnuplot-send-buffer-to-gnuplot)
|
|
(add-hook 'gnuplot-mode-hook #'smartparens-mode))
|
|
|
|
(use-package x509-mode
|
|
:commands (x509-dwim)
|
|
:straight (:host github :repo "jobbflykt/x509-mode"
|
|
:build (:not native-compile)))
|
|
|
|
(use-package lsp-java
|
|
:straight t
|
|
:after (lsp)
|
|
:config
|
|
(setq lsp-java-jdt-download-url "https://www.eclipse.org/downloads/download.php?file=/jdtls/milestones/1.23.0/jdt-language-server-1.23.0-202304271346.tar.gz"))
|
|
|
|
(add-hook 'java-mode-hook #'smartparens-mode)
|
|
;; (add-hook 'java-mode-hook #'hs-minor-mode)
|
|
(my/set-smartparens-indent 'java-mode)
|
|
|
|
(use-package go-mode
|
|
:straight t
|
|
:mode "\\.go\\'"
|
|
:config
|
|
(my/set-smartparens-indent 'go-mode)
|
|
(add-hook 'go-mode-hook #'smartparens-mode)
|
|
(add-hook 'go-mode-hook #'treesit-fold-mode))
|
|
|
|
(use-package csharp-mode
|
|
:straight t
|
|
:mode "\\.cs\\'"
|
|
:disabled t
|
|
:config
|
|
(setq lsp-csharp-server-path (executable-find "omnisharp-wrapper"))
|
|
(add-hook 'csharp-mode-hook #'csharp-tree-sitter-mode)
|
|
(add-hook 'csharp-tree-sitter-mode-hook #'smartparens-mode)
|
|
(add-hook 'csharp-mode-hook #'treesit-fold-mode)
|
|
(my/set-smartparens-indent 'csharp-tree-sitter-mode))
|
|
|
|
(use-package csproj-mode
|
|
:straight t
|
|
:mode "\\.csproj\\'"
|
|
:config
|
|
(add-hook 'csproj-mode #'smartparens-mode))
|
|
|
|
(use-package haskell-mode
|
|
:straight t
|
|
:mode "\\.hs\\'")
|
|
|
|
(use-package lsp-haskell
|
|
:straight t
|
|
:after (lsp haskell-mode))
|
|
|
|
(use-package nix-mode
|
|
:straight t
|
|
:mode "\\.nix\\'"
|
|
:config
|
|
(add-hook 'nix-mode-hook #'smartparens-mode)
|
|
(my/set-smartparens-indent 'nix-mode))
|
|
|
|
(use-package lua-mode
|
|
:straight t
|
|
:mode "\\.lua\\'"
|
|
:hook (lua-mode . smartparens-mode))
|
|
|
|
(my/set-smartparens-indent 'lua-mode)
|
|
|
|
(provide 'sqrt-misc-programming)
|