Passage à emacs server
This commit is contained in:
+165
-242
@@ -20,13 +20,85 @@
|
||||
'(("GNU ELPA" . 10)
|
||||
("MELPA" . 5)
|
||||
("MELPA Stable" . 0)))
|
||||
(add-to-list 'load-path "~/.emacs.default/git-packages")
|
||||
(add-to-list 'load-path "~/.emacs.d/git-packages")
|
||||
#+end_src
|
||||
|
||||
** Prolog
|
||||
#+begin_src emacs-lisp
|
||||
(autoload 'run-prolog "prolog" "Start a Prolog sub-process." t)
|
||||
(autoload 'prolog-mode "prolog" "Major mode for editing Prolog programs." t)
|
||||
(autoload 'mercury-mode "prolog" "Major mode for editing Mercury programs." t)
|
||||
(setq prolog-system 'swi)
|
||||
(setq auto-mode-alist (append '(("\\.pl$" . prolog-mode)
|
||||
("\\.m$" . mercury-mode))
|
||||
auto-mode-alist))
|
||||
#+end_src
|
||||
|
||||
** Dired
|
||||
#+begin_src emacs-lisp
|
||||
(use-package dired-git
|
||||
:hook
|
||||
(dired-mode . dired-git-mode))
|
||||
#+end_src
|
||||
|
||||
** Theme
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package zenburn-theme)
|
||||
(load-theme 'zenburn t)
|
||||
|
||||
(use-package vertico
|
||||
:custom
|
||||
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
|
||||
:init
|
||||
(vertico-mode))
|
||||
|
||||
(use-package savehist
|
||||
:init
|
||||
(savehist-mode))
|
||||
|
||||
(use-package emacs
|
||||
:custom
|
||||
;; Support opening new minibuffers from inside existing minibuffers.
|
||||
(enable-recursive-minibuffers t)
|
||||
;; Hide commands in M-x which do not work in the current mode. Vertico
|
||||
;; commands are hidden in normal buffers. This setting is useful beyond
|
||||
;; Vertico.
|
||||
(read-extended-command-predicate #'command-completion-default-include-p)
|
||||
:init
|
||||
;; Add prompt indicator to `completing-read-multiple'.
|
||||
;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
|
||||
(defun crm-indicator (args)
|
||||
(cons (format "[CRM%s] %s"
|
||||
(replace-regexp-in-string "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" "" crm-separator)
|
||||
(car args))
|
||||
(cdr args)))
|
||||
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
||||
|
||||
(setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
|
||||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode))
|
||||
|
||||
(use-package vertico-directory
|
||||
:after vertico
|
||||
:ensure nil
|
||||
;; More convenient directory navigation commands
|
||||
:bind (:map vertico-map
|
||||
("RET" . vertico-directory-enter)
|
||||
("DEL" . vertico-directory-delete-char)
|
||||
("M-DEL" . vertico-directory-delete-word))
|
||||
;; Tidy shadowed file names
|
||||
:hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
|
||||
|
||||
(use-package vertico-multiform
|
||||
:after vertico
|
||||
:load-path "~/.emacs.d/elpa/vertico-1.9/")
|
||||
|
||||
(vertico-multiform-mode 1)
|
||||
|
||||
(use-package vertico-posframe
|
||||
:ensure t)
|
||||
(setq vertico-posframe-parameters
|
||||
'((left-fringe . 8)
|
||||
(right-fringe . 8)))
|
||||
#+END_SRC
|
||||
|
||||
** Encoding
|
||||
@@ -50,31 +122,39 @@
|
||||
|
||||
** Helm
|
||||
#+begin_src emacs-lisp
|
||||
(use-package helm
|
||||
:config (require 'helm-autoloads))
|
||||
(global-set-key (kbd "M-x") #'helm-M-x)
|
||||
(helm-mode 1)
|
||||
(use-package helm
|
||||
:config (require 'helm-autoloads)
|
||||
:bind
|
||||
|
||||
(setq helm-recentf-fuzzy-match t
|
||||
helm-locate-fuzzy-match nil ;; locate fuzzy is worthless
|
||||
helm-M-x-fuzzy-match t
|
||||
helm-buffers-fuzzy-matching t
|
||||
helm-semantic-fuzzy-match t
|
||||
helm-apropos-fuzzy-match t
|
||||
helm-imenu-fuzzy-match t
|
||||
helm-lisp-fuzzy-completion t
|
||||
helm-completion-in-region-fuzzy-match t)
|
||||
(("M-x". 'helm-M-x)
|
||||
("C-x C-f" . 'helm-find-files)))
|
||||
(helm-mode 1)
|
||||
(use-package helm-make
|
||||
:bind ("C-x m" . 'helm-make))
|
||||
(use-package helm-posframe)
|
||||
(helm-posframe-enable)
|
||||
(setq helm-recentf-fuzzy-match t
|
||||
helm-locate-fuzzy-match nil ;; locate fuzzy is worthless
|
||||
helm-M-x-fuzzy-match t
|
||||
helm-buffers-fuzzy-matching t
|
||||
helm-semantic-fuzzy-match t
|
||||
helm-apropos-fuzzy-match t
|
||||
helm-imenu-fuzzy-match t
|
||||
helm-lisp-fuzzy-completion t
|
||||
helm-completion-in-region-fuzzy-match t)
|
||||
|
||||
#+end_src
|
||||
|
||||
** Company
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package company
|
||||
:hook
|
||||
(after-init . global-company-mode))
|
||||
(use-package company-box
|
||||
:hook
|
||||
(company-mode . company-box-mode))
|
||||
(use-package company
|
||||
:hook
|
||||
(after-init . global-company-mode)
|
||||
:custom
|
||||
(company-backends '(company-capf)))
|
||||
(use-package company-box
|
||||
:hook
|
||||
(company-mode . company-box-mode))
|
||||
#+END_SRC
|
||||
|
||||
** Smart parenthesis
|
||||
@@ -90,48 +170,42 @@
|
||||
** LSP
|
||||
#+begin_src emacs-lisp
|
||||
(use-package lsp-mode
|
||||
:init
|
||||
;;set prefix
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
(setq lsp-diagnostics-provider :flycheck) ; Use flycheck for diagnostics
|
||||
(setq lsp-enable-snippet t) ; Enable snippet support
|
||||
(setq company-idle-delay 0.2) ; Set delay for completion pop-up
|
||||
(setq company-minimum-prefix-length 1)
|
||||
(setq lsp-clients-clangd-executable "clangd")
|
||||
|
||||
:hook
|
||||
((c-mode . lsp)
|
||||
(latex-mode . lsp)
|
||||
(python-mode . lsp)
|
||||
(lsp-mode . lsp-enable-which-key-integration)
|
||||
(before-save . lsp-format-buffer))
|
||||
:commands lsp
|
||||
:bind
|
||||
("C-<return>" . ff-find-other-file))
|
||||
(use-package lsp-ui
|
||||
:init
|
||||
(setq lsp-ui-doc-enable t
|
||||
lsp-ui-position 'at-point)
|
||||
:hook
|
||||
(lsp-mode . lsp-ui-mode))
|
||||
:init
|
||||
;;set prefix
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
(setq lsp-diagnostics-provider :flycheck) ; Use flycheck for diagnostics
|
||||
(setq lsp-enable-snippet t) ; Enable snippet support
|
||||
(setq company-idle-delay 0.2) ; Set delay for completion pop-up
|
||||
(setq company-minimum-prefix-length 1)
|
||||
(setq lsp-clients-clangd-executable "clangd")
|
||||
|
||||
:hook
|
||||
((prog-mode . lsp)
|
||||
(c-mode . lsp)
|
||||
(latex-mode . lsp)
|
||||
(python-mode . lsp)
|
||||
(lsp-mode . lsp-enable-which-key-integration)
|
||||
;;(before-save . lsp-format-buffer)
|
||||
)
|
||||
:commands lsp
|
||||
:bind
|
||||
("C-<return>" . ff-find-other-file)
|
||||
:custom
|
||||
(lsp-prefer-capf t))
|
||||
|
||||
(use-package helm-lsp
|
||||
:commands helm-lsp-workspace-symbol)
|
||||
:commands helm-lsp-workspace-symbol)
|
||||
|
||||
(use-package which-key
|
||||
:config
|
||||
(which-key-mode))
|
||||
#+end_src
|
||||
|
||||
** Eglot
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package eglot)
|
||||
(add-to-list 'eglot-server-programs '((c-mode) "clangd"))
|
||||
(add-hook 'c-mode-hook 'eglot-ensure)
|
||||
:config
|
||||
(which-key-mode))
|
||||
#+end_src
|
||||
|
||||
* Key-binds
|
||||
** Buffer
|
||||
#+begin_src emacs-lisp
|
||||
(keymap-global-set "M-a" 'switch-to-buffer)
|
||||
#+end_src
|
||||
** C
|
||||
*** Dereference arrow
|
||||
|
||||
@@ -145,6 +219,7 @@
|
||||
(insert "ù"))
|
||||
))
|
||||
(keymap-global-set "ù" 'print-arrow)
|
||||
(keymap-global-set "∇" 'Control-X-prefix)
|
||||
|
||||
#+END_SRC
|
||||
|
||||
@@ -153,7 +228,7 @@
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun reload-conf ()
|
||||
(interactive)
|
||||
(load-file "~/.emacs.default/init.el"))
|
||||
(load-file "~/.emacs.d/init.el"))
|
||||
(keymap-global-set "C-c r" 'reload-conf)
|
||||
#+END_SRC
|
||||
|
||||
@@ -161,7 +236,7 @@
|
||||
#+begin_src emacs-lisp
|
||||
(defun open-config ()
|
||||
(interactive)
|
||||
(find-file "~/.emacs.default/config.org"))
|
||||
(find-file "~/.emacs.d/config.org"))
|
||||
(keymap-global-set "C-c c" 'open-config)
|
||||
#+end_src
|
||||
** Window command
|
||||
@@ -195,191 +270,42 @@
|
||||
:config
|
||||
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
|
||||
#+end_src
|
||||
** Font
|
||||
#+begin_src emacs-lisp
|
||||
(font-lock-add-keywords 'org-mode
|
||||
'(("^ *\\([-]\\) "
|
||||
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•"))))))
|
||||
(custom-theme-set-faces
|
||||
'user
|
||||
'(variable-pitch ((t (:family "ETBembo" :height 220 :weight thin))))
|
||||
'(fixed-pitch ((t ( :family "Fira Code Retina" :height 200)))))
|
||||
(let* ((variable-tuple
|
||||
(cond ((x-list-fonts "ETBembo") '(:font "ETBembo"))
|
||||
((x-list-fonts "Source Sans Pro") '(:font "Source Sans Pro"))
|
||||
((x-list-fonts "Lucida Grande") '(:font "Lucida Grande"))
|
||||
((x-list-fonts "Verdana") '(:font "Verdana"))
|
||||
((x-family-fonts "Sans Serif") '(:family "Sans Serif"))
|
||||
(nil (warn "Cannot find a Sans Serif Font. Install Source Sans Pro."))))
|
||||
(base-font-color (face-foreground 'default nil 'default))
|
||||
(headline `(:inherit default :weight bold :foreground ,base-font-color)))
|
||||
|
||||
|
||||
;; Headlines
|
||||
(custom-theme-set-faces
|
||||
'user
|
||||
`(org-level-8 ((t (,@headline ,@variable-tuple))))
|
||||
`(org-level-7 ((t (,@headline ,@variable-tuple))))
|
||||
`(org-level-6 ((t (,@headline ,@variable-tuple))))
|
||||
`(org-level-5 ((t (,@headline ,@variable-tuple))))
|
||||
`(org-level-4 ((t (,@headline ,@variable-tuple :height 1.1))))
|
||||
`(org-level-3 ((t (,@headline ,@variable-tuple :height 1.25))))
|
||||
`(org-level-2 ((t (,@headline ,@variable-tuple :height 1.5))))
|
||||
`(org-level-1 ((t (,@headline ,@variable-tuple :height 1.75))))
|
||||
`(org-document-title ((t (,@headline ,@variable-tuple :height 2.0 :underline nil))))))
|
||||
#+end_src
|
||||
|
||||
** Emphasis markers
|
||||
#+begin_src emacs-lisp
|
||||
(setq org-hide-emphasis-markers t)
|
||||
#+end_src
|
||||
|
||||
** Hooks
|
||||
*** Variable pitch mode
|
||||
* Hooks
|
||||
** Variable pitch mode
|
||||
#+begin_src emacs-lisp
|
||||
(add-hook 'org-mode-hook 'variable-pitch-mode)
|
||||
#+end_src
|
||||
*** Visual line mode
|
||||
** Visual line mode
|
||||
#+begin_src emacs-lisp
|
||||
(add-hook 'org-mode-hook 'visual-line-mode)
|
||||
#+end_src
|
||||
** Custom faces
|
||||
#+begin_src emacs-lisp
|
||||
(custom-theme-set-faces
|
||||
'user
|
||||
'(org-block ((t (:inherit fixed-pitch))))
|
||||
'(org-code ((t (:inherit (shadow fixed-pitch)))))
|
||||
'(org-document-info ((t (:foreground "dark orange"))))
|
||||
'(org-document-info-keyword ((t (:inherit (shadow fixed-pitch)))))
|
||||
'(org-indent ((t (:inherit (org-hide fixed-pitch)))))
|
||||
'(org-link ((t (:foreground "royal blue" :underline t))))
|
||||
'(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch)))))
|
||||
'(org-property-value ((t (:inherit fixed-pitch))) t)
|
||||
'(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch)))))
|
||||
'(org-table ((t (:inherit fixed-pitch :foreground "#83a598"))))
|
||||
'(org-tag ((t (:inherit (shadow fixed-pitch) :weight bold :height 0.8))))
|
||||
'(org-verbatim ((t (:inherit (shadow fixed-pitch))))))
|
||||
#+end_src
|
||||
** Menu bar
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-hook 'before-make-frame-hook (lambda () (menu-bar-mode -1)))
|
||||
#+END_SRC
|
||||
|
||||
** Tool bar
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-hook 'before-make-frame-hook (lambda () (tool-bar-mode -1)))
|
||||
#+END_SRC
|
||||
|
||||
** Scroll bar
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-hook 'before-make-frame-hook (lambda () (scroll-bar-mode -1)))
|
||||
#+END_SRC
|
||||
|
||||
|
||||
* Terminal
|
||||
#+begin_src emacs-lisp
|
||||
(use-package vterm)
|
||||
#+end_src
|
||||
* Treemacs
|
||||
#+begin_src emacs-lisp
|
||||
(use-package treemacs
|
||||
:ensure t
|
||||
:defer t
|
||||
:init
|
||||
(with-eval-after-load 'winum
|
||||
(define-key winum-keymap (kbd "M-0") #'treemacs-select-window))
|
||||
:config
|
||||
(progn
|
||||
(setq treemacs-collapse-dirs (if treemacs-python-executable 3 0)
|
||||
treemacs-deferred-git-apply-delay 0.5
|
||||
treemacs-directory-name-transformer #'identity
|
||||
treemacs-display-in-side-window t
|
||||
treemacs-eldoc-display 'simple
|
||||
treemacs-file-event-delay 2000
|
||||
treemacs-file-extension-regex treemacs-last-period-regex-value
|
||||
treemacs-file-follow-delay 0.2
|
||||
treemacs-file-name-transformer #'identity
|
||||
treemacs-follow-after-init t
|
||||
treemacs-expand-after-init t
|
||||
treemacs-find-workspace-method 'find-for-file-or-pick-first
|
||||
treemacs-git-command-pipe ""
|
||||
treemacs-goto-tag-strategy 'refetch-index
|
||||
treemacs-header-scroll-indicators '(nil . "^^^^^^")
|
||||
treemacs-hide-dot-git-directory t
|
||||
treemacs-indentation 2
|
||||
treemacs-indentation-string " "
|
||||
treemacs-is-never-other-window nil
|
||||
treemacs-max-git-entries 5000
|
||||
treemacs-missing-project-action 'ask
|
||||
treemacs-move-files-by-mouse-dragging t
|
||||
treemacs-move-forward-on-expand nil
|
||||
treemacs-no-png-images nil
|
||||
treemacs-no-delete-other-windows t
|
||||
treemacs-project-follow-cleanup nil
|
||||
treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory)
|
||||
treemacs-position 'left
|
||||
treemacs-read-string-input 'from-child-frame
|
||||
treemacs-recenter-distance 0.1
|
||||
treemacs-recenter-after-file-follow nil
|
||||
treemacs-recenter-after-tag-follow nil
|
||||
treemacs-recenter-after-project-jump 'always
|
||||
treemacs-recenter-after-project-expand 'on-distance
|
||||
treemacs-litter-directories '("/node_modules" "/.venv" "/.cask")
|
||||
treemacs-project-follow-into-home nil
|
||||
treemacs-show-cursor nil
|
||||
treemacs-show-hidden-files t
|
||||
treemacs-silent-filewatch nil
|
||||
treemacs-silent-refresh nil
|
||||
treemacs-sorting 'alphabetic-asc
|
||||
treemacs-select-when-already-in-treemacs 'move-back
|
||||
treemacs-space-between-root-nodes t
|
||||
treemacs-tag-follow-cleanup t
|
||||
treemacs-tag-follow-delay 1.5
|
||||
treemacs-text-scale nil
|
||||
treemacs-user-mode-line-format nil
|
||||
treemacs-user-header-line-format nil
|
||||
treemacs-wide-toggle-width 70
|
||||
treemacs-width 35
|
||||
treemacs-width-increment 1
|
||||
treemacs-width-is-initially-locked t
|
||||
treemacs-workspace-switch-cleanup nil)
|
||||
|
||||
;; The default width and height of the icons is 22 pixels. If you are
|
||||
;; using a Hi-DPI display, uncomment this to double the icon size.
|
||||
;;(treemacs-resize-icons 44)
|
||||
|
||||
(treemacs-follow-mode t)
|
||||
(treemacs-filewatch-mode t)
|
||||
(treemacs-fringe-indicator-mode 'always)
|
||||
(when treemacs-python-executable
|
||||
(treemacs-git-commit-diff-mode t))
|
||||
|
||||
(pcase (cons (not (null (executable-find "git")))
|
||||
(not (null treemacs-python-executable)))
|
||||
(`(t . t)
|
||||
(treemacs-git-mode 'deferred))
|
||||
(`(t . _)
|
||||
(treemacs-git-mode 'simple)))
|
||||
|
||||
(treemacs-hide-gitignored-files-mode nil))
|
||||
:bind
|
||||
(:map global-map
|
||||
("M-0" . treemacs-select-window)
|
||||
("C-x t 1" . treemacs-delete-other-windows)
|
||||
("C-x t t" . treemacs)
|
||||
("C-x t d" . treemacs-select-directory)
|
||||
("C-x t B" . treemacs-bookmark)
|
||||
("C-x t C-t" . treemacs-find-file)
|
||||
("C-x t M-t" . treemacs-find-tag)))
|
||||
|
||||
(use-package treemacs-projectile
|
||||
:after (treemacs projectile)
|
||||
:ensure t)
|
||||
|
||||
(use-package treemacs-icons-dired
|
||||
:hook (dired-mode . treemacs-icons-dired-enable-once)
|
||||
:ensure t)
|
||||
|
||||
(use-package treemacs-magit
|
||||
:after (treemacs magit)
|
||||
:ensure t)
|
||||
|
||||
(use-package treemacs-persp ;;treemacs-perspective if you use perspective.el vs. persp-mode
|
||||
:after (treemacs persp-mode) ;;or perspective vs. persp-mode
|
||||
:ensure t
|
||||
:config (treemacs-set-scope-type 'Perspectives))
|
||||
|
||||
(use-package treemacs-tab-bar ;;treemacs-tab-bar if you use tab-bar-mode
|
||||
:after (treemacs)
|
||||
:ensure t
|
||||
:config (treemacs-set-scope-type 'Tabs))
|
||||
|
||||
|
||||
#+end_src
|
||||
|
||||
* Projectile
|
||||
#+begin_src emacs-lisp
|
||||
@@ -391,24 +317,9 @@
|
||||
("s-p" . projectile-command-map)
|
||||
("C-c p" . projectile-command-map)))
|
||||
#+end_src
|
||||
|
||||
* Misceleaneous
|
||||
|
||||
** Menu bar
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(menu-bar-mode -1)
|
||||
#+END_SRC
|
||||
|
||||
** Tool bar
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(tool-bar-mode -1)
|
||||
#+END_SRC
|
||||
|
||||
** Scroll bar
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(scroll-bar-mode -1)
|
||||
#+END_SRC
|
||||
|
||||
** Global font
|
||||
#+begin_src emacs-lisp
|
||||
(set-face-attribute 'default nil :family "Cascadia Mono" :height 200)
|
||||
@@ -418,3 +329,15 @@
|
||||
(use-package all-the-icons
|
||||
:if (display-graphic-p))
|
||||
#+end_src
|
||||
|
||||
** Delete backup files
|
||||
#+begin_src emacs-lisp
|
||||
|
||||
(setq make-backup-files nil)
|
||||
#+end_src
|
||||
|
||||
** Line numberring
|
||||
#+begin_src emacs-lisp
|
||||
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
||||
(setq-default tab-width 4)
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user