Add LSP, Flycheck and others in the Emacs configuration
This commit is contained in:
1
emacs/.emacs.d/.lsp-session-v1
Normal file
1
emacs/.emacs.d/.lsp-session-v1
Normal 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))
|
||||||
@@ -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 "Firacode Nerd Font 16" 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,7 @@
|
|||||||
;; 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")
|
(setq org-directory "~/Remotes/pCloud/Org")
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@@ -88,8 +92,6 @@
|
|||||||
("MELPA" . "https://melpa.org/packages/")
|
("MELPA" . "https://melpa.org/packages/")
|
||||||
("gnu" . "https://elpa.gnu.org/packages/"))))
|
("gnu" . "https://elpa.gnu.org/packages/"))))
|
||||||
|
|
||||||
(load-theme 'wombat)
|
|
||||||
|
|
||||||
;; (use-package catppuccin-theme
|
;; (use-package catppuccin-theme
|
||||||
;; :ensure t
|
;; :ensure t
|
||||||
;; :config
|
;; :config
|
||||||
@@ -102,63 +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 "~/.emacs.d/scripts/email_sync.sh")
|
;; (setq mu4e-get-mail-command "~/.emacs.d/scripts/email_sync.sh")
|
||||||
(setq mu4e-maildir "~/Maildir")
|
;; (setq mu4e-maildir "~/Maildir")
|
||||||
|
|
||||||
;; Configure email accounts
|
;; ;; Configure email accounts
|
||||||
(setq mu4e-contexts
|
;; (setq mu4e-contexts
|
||||||
(list
|
;; (list
|
||||||
;; Protonmail Account
|
;; ;; Protonmail Account
|
||||||
(make-mu4e-context
|
;; (make-mu4e-context
|
||||||
:name "Protonmail"
|
;; :name "Protonmail"
|
||||||
:match-func
|
;; :match-func
|
||||||
(lambda (msg)
|
;; (lambda (msg)
|
||||||
(when msg
|
;; (when msg
|
||||||
(string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
|
;; (string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
|
||||||
:vars '((user-mail-address . "fscottodisantolo@protonmail.com")
|
;; :vars '((user-mail-address . "fscottodisantolo@protonmail.com")
|
||||||
(user-full-name . "Fabio Scotto di Santolo")
|
;; (user-full-name . "Fabio Scotto di Santolo")
|
||||||
(mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
|
;; (mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
|
||||||
(mu4e-sent-folder . "/ProtonMailAccount/Sent")
|
;; (mu4e-sent-folder . "/ProtonMailAccount/Sent")
|
||||||
(mu4e-refile-folder . "/ProtonMailAccount/All Mail")
|
;; (mu4e-refile-folder . "/ProtonMailAccount/All Mail")
|
||||||
(mu4e-trash-folder . "/ProtonMailAccount/Trash")))
|
;; (mu4e-trash-folder . "/ProtonMailAccount/Trash")))
|
||||||
|
|
||||||
;; iCloud Account
|
;; ;; iCloud Account
|
||||||
(make-mu4e-context
|
;; (make-mu4e-context
|
||||||
:name "iCloud Mail"
|
;; :name "iCloud Mail"
|
||||||
:match-func
|
;; :match-func
|
||||||
(lambda (msg)
|
;; (lambda (msg)
|
||||||
(when msg
|
;; (when msg
|
||||||
(string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
|
;; (string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
|
||||||
:vars '((user-mail-address . "fscottodisantolo@icloud.com")
|
;; :vars '((user-mail-address . "fscottodisantolo@icloud.com")
|
||||||
(user-full-name . "Fabio Scotto di Santolo")
|
;; (user-full-name . "Fabio Scotto di Santolo")
|
||||||
(mu4e-drafts-folder . "/iCloudAccount/Drafts")
|
;; (mu4e-drafts-folder . "/iCloudAccount/Drafts")
|
||||||
(mu4e-sent-folder . "/iCloudAccount/Sent Messages")
|
;; (mu4e-sent-folder . "/iCloudAccount/Sent Messages")
|
||||||
(mu4e-refile-folder . "/iCloudAccount/INBOX")
|
;; (mu4e-refile-folder . "/iCloudAccount/INBOX")
|
||||||
(mu4e-trash-folder . "/iCloudAccount/Junk")))))
|
;; (mu4e-trash-folder . "/iCloudAccount/Junk")))))
|
||||||
|
|
||||||
(setq sendmail-program "/usr/bin/msmtp"
|
;; (setq sendmail-program "/usr/bin/msmtp"
|
||||||
send-mail-function 'sendmail-send-it
|
;; send-mail-function 'sendmail-send-it
|
||||||
message-sendmail-f-is-evil t
|
;; message-sendmail-f-is-evil t
|
||||||
message-sendmail-extra-arguments '("--read-envelope-from")
|
;; message-sendmail-extra-arguments '("--read-envelope-from")
|
||||||
message-send-mail-function 'message-send-mail-with-sendmail))
|
;; 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
|
||||||
@@ -178,14 +180,17 @@
|
|||||||
("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
|
||||||
@@ -202,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
|
||||||
@@ -220,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
|
||||||
@@ -239,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
|
||||||
@@ -248,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")
|
||||||
|
|||||||
Reference in New Issue
Block a user