Compare commits

..

2 Commits

Author SHA1 Message Date
Fabio Scotto di Santolo
58773ba594 Add LSP, Flycheck and others in the Emacs configuration 2025-12-12 09:20:25 +01:00
Fabio Scotto di Santolo
7b0d1bf03a Change Emacs configuration 2025-12-12 09:20:25 +01:00
4 changed files with 115 additions and 57 deletions

View File

@@ -0,0 +1 @@
#s(lsp-session ("/var/home/fscotto/Projects/toyforth") nil #s(hash-table test equal) #s(hash-table test equal) #s(hash-table test equal))

View File

@@ -6,8 +6,11 @@
;; LOOK AND FEEL ;; ;; LOOK AND FEEL ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Load default theme
(load-theme 'wombat)
;; Setting default font ;; Setting default font
(set-frame-font "0xProto Nerd Font 13" nil t) (set-frame-font "Iosevka Nerd Font 14" nil t)
;; Remove toolbar ;; Remove toolbar
(tool-bar-mode -1) (tool-bar-mode -1)
@@ -53,6 +56,9 @@
;; Enable line numbers in the configuration mode only ;; Enable line numbers in the configuration mode only
(add-hook 'conf-mode-hook 'display-line-numbers-mode) (add-hook 'conf-mode-hook 'display-line-numbers-mode)
;; Setting default directory for Org files
(setq org-directory "~/Remotes/pCloud/Org")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; EDITOR OPTIONS ;; ;; EDITOR OPTIONS ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -84,14 +90,13 @@
(setq package-archives (setq package-archives
'(("melpa-stable" . "https://stable.melpa.org/packages/") '(("melpa-stable" . "https://stable.melpa.org/packages/")
("MELPA" . "https://melpa.org/packages/") ("MELPA" . "https://melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/"))) ("gnu" . "https://elpa.gnu.org/packages/"))))
)
(use-package catppuccin-theme ;; (use-package catppuccin-theme
:ensure t ;; :ensure t
:config ;; :config
(load-theme 'catppuccin :no-confirm) ;; (load-theme 'catppuccin :no-confirm)
(setq catppuccin-flavor 'mocha)) ;; (setq catppuccin-flavor 'mocha))
;; Status line like Doom Emacs ;; Status line like Doom Emacs
(use-package doom-modeline (use-package doom-modeline
@@ -99,48 +104,63 @@
:init (doom-modeline-mode 1)) :init (doom-modeline-mode 1))
;; Help to remember or discover keybindings ;; Help to remember or discover keybindings
(use-package which-key (use-package which-key
:ensure t :ensure t
:commands (which-key-mode) :commands (which-key-mode)
:init (which-key-mode)) :init (which-key-mode))
;; Configuration for mu4e, an interface for mu email index, running inside Emacs ;; Configuration for mu4e, an interface for mu email index, running inside Emacs
(use-package mu4e ;; (use-package mu4e
:ensure nil ;; :ensure nil
;; :load-path "/usr/share/emacs/site-lisp/mu4e/" ;; ;; :load-path "/usr/share/emacs/site-lisp/mu4e/"
:defer 20 ; Wait until 20 seconds after startup ;; :defer 20 ; Wait until 20 seconds after startup
:bind (:map global-map ("C-c e" . mu4e)) ;; :bind (:map global-map ("C-c e" . mu4e))
:config ;; :config
;; This is set to 't' to avoid mail syncing issues when using mbsync ;; ;; This is set to 't' to avoid mail syncing issues when using mbsync
(setq mu4e-change-filenames-when-moving t) ;; (setq mu4e-change-filenames-when-moving t)
;; Refresh mail using isync every 10 minutes ;; ;; Refresh mail using isync every 10 minutes
(setq mu4e-update-interval (* 10 60)) ;; (setq mu4e-update-interval (* 10 60))
(setq mu4e-get-mail-command "~/.config/emacs/scripts/email_sync.sh") ;; (setq mu4e-get-mail-command "~/.emacs.d/scripts/email_sync.sh")
(setq mu4e-maildir "~/Maildir") ;; (setq mu4e-maildir "~/Maildir")
(setq mu4e-drafts-folder "/GmailAccount/[Gmail]/Bozze") ;; ;; Configure email accounts
(setq mu4e-sent-folder "/GmailAccount/[Gmail]/Posta inviata") ;; (setq mu4e-contexts
(setq mu4e-refile-folder "/GmailAccount/[Gmail]/Tutti i messaggi") ;; (list
(setq mu4e-trash-folder "/GmailAccount/[Gmail]/Cestino") ;; ;; Protonmail Account
(setq user-email-address "fabio.scottodisantolo@gmail.com") ;; (make-mu4e-context
(setq user-full-name "Fabio Scotto di Santolo") ;; :name "Protonmail"
;; :match-func
;; (lambda (msg)
;; (when msg
;; (string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
;; :vars '((user-mail-address . "fscottodisantolo@protonmail.com")
;; (user-full-name . "Fabio Scotto di Santolo")
;; (mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
;; (mu4e-sent-folder . "/ProtonMailAccount/Sent")
;; (mu4e-refile-folder . "/ProtonMailAccount/All Mail")
;; (mu4e-trash-folder . "/ProtonMailAccount/Trash")))
(setq mu4e-maildir-shortcuts ;; ;; iCloud Account
'(("/GmailAccount/Inbox" . ?i) ;; (make-mu4e-context
("/GmailAccount/[Gmail]/Posta inviata" . ?s) ;; :name "iCloud Mail"
("/GmailAccount/[Gmail]/Cestino" . ?t) ;; :match-func
("/GmailAccount/[Gmail]/Bozze" . ?d) ;; (lambda (msg)
("/GmailAccount/[Gmail]/Tutti i messaggi" . ?a)))) ;; (when msg
;; (string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
;; :vars '((user-mail-address . "fscottodisantolo@icloud.com")
;; (user-full-name . "Fabio Scotto di Santolo")
;; (mu4e-drafts-folder . "/iCloudAccount/Drafts")
;; (mu4e-sent-folder . "/iCloudAccount/Sent Messages")
;; (mu4e-refile-folder . "/iCloudAccount/INBOX")
;; (mu4e-trash-folder . "/iCloudAccount/Junk")))))
(setq user-mail-address "fabio.scottodisantolo@gmail.com") ;; (setq sendmail-program "/usr/bin/msmtp"
;; send-mail-function 'sendmail-send-it
(setq sendmail-program "/usr/bin/msmtp" ;; message-sendmail-f-is-evil t
send-mail-function 'sendmail-send-it ;; message-sendmail-extra-arguments '("--read-envelope-from")
message-sendmail-f-is-evil t ;; message-send-mail-function 'message-send-mail-with-sendmail))
message-sendmail-extra-arguments '("--read-envelope-from")
message-send-mail-function 'message-send-mail-with-sendmail)
;; Configure elfeed for RSS feed ;; Configure elfeed for RSS feed
(use-package elfeed (use-package elfeed
@@ -154,24 +174,27 @@
(elfeed-search-trailing-width 25) (elfeed-search-trailing-width 25)
(elfeed-show-truncate-long-urls t) (elfeed-show-truncate-long-urls t)
(elfeed-sort-order 'descending) (elfeed-sort-order 'descending)
(elfeed-search-filter "1-week-ago +unread") (elfeed-search-filter "+unread")
(elfeed-feeds (elfeed-feeds
'(("https://blog.linuxmint.com/?feed=rss2" linux linuxmint) '(("https://blog.linuxmint.com/?feed=rss2" linux linuxmint)
("https://feeds.feedburner.com/TheHackersNews" hackernews news security programming))) ("https://feeds.feedburner.com/TheHackersNews" hackernews news security programming)))
:bind (("C-c f" . elfeed))) :bind (("C-c f" . elfeed)))
(use-package elfeed-org
:ensure t)
;; Terminal ;; Terminal
(use-package vterm (use-package vterm
:ensure t :ensure t
:bind (:map global-map :bind (:map global-map
("C-c t" . vterm) ("C-c o T" . vterm)
("C-c c" . vterm-copy-mode))) ("C-c C-t" . vterm-copy-mode)))
;; PDF viewer with annotations ;; FIXME PDF viewer with annotations
(use-package pdf-tools ;; (use-package pdf-tools
:ensure t ;; :ensure t
:config ;; :config
(pdf-tools-install)) ;; (pdf-tools-install))
;; EPub viewer ;; EPub viewer
(use-package nov (use-package nov
@@ -184,10 +207,7 @@
;; Git plugin ;; Git plugin
(use-package magit (use-package magit
:ensure t :ensure t
:bind (:map global-map ("M-G" . magit-status))) :bind (:map global-map ("C-c v g" . magit-status)))
(use-package magit-delta
:ensure t)
;; Highlight keywords to remember the activity when coding. ;; Highlight keywords to remember the activity when coding.
(use-package hl-todo (use-package hl-todo
@@ -202,15 +222,39 @@
("GOTCHA" . "#eba0ac") ("GOTCHA" . "#eba0ac")
("STUB" . "#89b4fa"))) ("STUB" . "#89b4fa")))
(keymap-set hl-todo-mode-map "C-c p" #'hl-todo-previous) (keymap-set hl-todo-mode-map "C-t p" #'hl-todo-previous)
(keymap-set hl-todo-mode-map "C-c n" #'hl-todo-next) (keymap-set hl-todo-mode-map "C-t n" #'hl-todo-next)
(keymap-set hl-todo-mode-map "C-c o" #'hl-todo-occur) (keymap-set hl-todo-mode-map "C-t o" #'hl-todo-occur)
(keymap-set hl-todo-mode-map "C-c i" #'hl-todo-insert) (keymap-set hl-todo-mode-map "C-t i" #'hl-todo-insert)
;; Highlight for i3 config file ;; Highlight for i3 config file
(use-package i3wm-config-mode (use-package i3wm-config-mode
:ensure t) :ensure t)
(use-package ivy
:ensure t
:config
(ivy-mode 1))
(use-package ibuffer
:ensure t
:bind (:map global-map ("C-x C-b" . ibuffer)))
(use-package ibuffer-tramp
:ensure t)
(use-package ibuffer-vc
:ensure t)
(use-package ibuffer-projectile
:ensure t)
(add-hook 'ibuffer-mode-hook
(lambda ()
(ibuffer-projectile-set-filter-groups)))
;; TODO adding lsp-mode, dap-mode, autocomplete and project handling for C, Go, Bash and Python
;; Add autocomplete feature to Emacs ;; Add autocomplete feature to Emacs
(use-package company (use-package company
:ensure t :ensure t
@@ -221,7 +265,11 @@
(company-minimum-prefix-length 1) (company-minimum-prefix-length 1)
(company-idle-delay 0.1)) (company-idle-delay 0.1))
;; TODO adding lsp-mode, dap-mode, autocomplete and project handling for C, Go, Bash and Python (use-package flycheck
:ensure t
:config
(add-hook 'after-init-hook #'global-flycheck-mode))
(use-package lsp-mode (use-package lsp-mode
:ensure t :ensure t
:init :init
@@ -230,4 +278,13 @@
:hook ((c-mode . lsp)) :hook ((c-mode . lsp))
:commands lsp) :commands lsp)
(use-package lsp-ui
:ensure t)
(use-package lsp-ivy
:ensure t)
(use-package dap-mode
:ensure t)
(message "...user configuration loaded") (message "...user configuration loaded")