90 lines
2.8 KiB
EmacsLisp
90 lines
2.8 KiB
EmacsLisp
;;functions to support syncing .elfeed between machines
|
|
;;makes sure elfeed reads index from disk before launching
|
|
(defun fscotto/elfeed-load-db-and-open ()
|
|
"Wrapper to load the elfeed db from disk before opening URL https://pragmaticemacs.wordpress.com/2016/08/17/read-your-rss-feeds-in-emacs-with-elfeed/
|
|
Created: 2016-08-17
|
|
Updated: 2025-06-13"
|
|
(interactive)
|
|
(elfeed)
|
|
(elfeed-db-load)
|
|
;; (elfeed-search-update--force)
|
|
(elfeed-update)
|
|
(elfeed-db-save))
|
|
|
|
(defun fscotto/project-root ()
|
|
"Return projectile project root or fallback to default-directory."
|
|
(if (featurep 'projectile)
|
|
(or (projectile-project-root) default-directory)
|
|
default-directory))
|
|
|
|
(defun fscotto/project-vterm ()
|
|
"Open vterm in project root."
|
|
(interactive)
|
|
(let ((default-directory (fscotto/project-root)))
|
|
(vterm)))
|
|
|
|
(defun fscotto/project-magit-status ()
|
|
"Open magit-status in project root."
|
|
(interactive)
|
|
(let ((default-directory (fscotto/project-root)))
|
|
(magit-status)))
|
|
|
|
(defun fscotto/magit-dispatch ()
|
|
"Load Magit if necessary and open magit-dispatch."
|
|
(interactive)
|
|
(require 'magit)
|
|
(call-interactively #'magit-dispatch))
|
|
|
|
(defun fscotto/disable-c-formatting ()
|
|
(setq-local lsp-enable-on-type-formatting nil))
|
|
|
|
;; Golang development support functions
|
|
(defun fscotto/go-format-on-save ()
|
|
"Format Go buffers on save using gofmt."
|
|
(add-hook 'before-save-hook #'lsp-format-buffer nil t))
|
|
|
|
(defun fscotto/go-mod-tidy ()
|
|
"Esegue go mod tidy nella root del progetto."
|
|
(interactive)
|
|
(let ((default-directory (project-root (project-current t))))
|
|
(compile "go mod tidy")))
|
|
|
|
(defun fscotto/go-mod-download ()
|
|
"Scarica i moduli Go."
|
|
(interactive)
|
|
(let ((default-directory (project-root (project-current t))))
|
|
(compile "go mod download")))
|
|
|
|
(defun fscotto/go-mod-after-save ()
|
|
(when (and (eq major-mode 'go-mod-ts-mode)
|
|
(lsp-workspaces))
|
|
(lsp-restart-workspace)))
|
|
|
|
(defun fscotto/go-test-package ()
|
|
"Run `go test` in the current package."
|
|
(interactive)
|
|
(let ((default-directory (project-root (project-current t))))
|
|
(compile "go test")))
|
|
|
|
(defun fscotto/go-test-module ()
|
|
"Run `go test ./...` in the current Go module."
|
|
(interactive)
|
|
(let ((default-directory (project-root (project-current t))))
|
|
(compile "go test ./...")))
|
|
|
|
(defun fscotto/go-test-current-test ()
|
|
"Run `go test -run` for the test at point."
|
|
(interactive)
|
|
(let* ((test-name (thing-at-point 'symbol t))
|
|
(default-directory (project-root (project-current t))))
|
|
(unless test-name
|
|
(user-error "No test name at point"))
|
|
(compile (format "go test -run '^%s$'" test-name))))
|
|
|
|
(defun fscotto/go-test-at-point ()
|
|
"Return Go test name at point."
|
|
(let ((sym (thing-at-point 'symbol t)))
|
|
(unless (and sym (string-prefix-p "Test" sym))
|
|
(user-error "No Go test at point"))
|
|
sym))
|