add git markers

This commit is contained in:
Arthur BARRAUX
2025-06-12 17:04:33 +02:00
parent ef731cc6cd
commit 39e9dcf8af
+217 -137
View File
@@ -5,14 +5,14 @@
* Init * Init
** Package management ** Package management
#+begin_src emacs-lisp #+begin_src emacs-lisp
;; This is only needed once, near the top of the file ;; This is only needed once, near the top of the file
(require 'package) (require 'package)
(add-to-list 'package-archives (add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t) '("melpa" . "https://melpa.org/packages/") t)
(package-initialize) (package-initialize)
(setq package-archives (setq package-archives
'(("GNU ELPA" . "https://elpa.gnu.org/packages/") '(("GNU ELPA" . "https://elpa.gnu.org/packages/")
("MELPA Stable" . "https://stable.melpa.org/packages/") ("MELPA Stable" . "https://stable.melpa.org/packages/")
("MELPA" . "https://melpa.org/packages/")) ("MELPA" . "https://melpa.org/packages/"))
@@ -21,17 +21,27 @@
("MELPA" . 5) ("MELPA" . 5)
("MELPA Stable" . 0))) ("MELPA Stable" . 0)))
(unless (package-install 'use-package) (unless (package-install 'use-package)
(package-refresh-contents) (package-refresh-contents)
(package-install 'use-package)) (package-install 'use-package))
(eval-when-compile (require 'use-package)) (eval-when-compile (require 'use-package))
(setq use-package-always-ensure t) (setq use-package-always-ensure t)
(pdf-tools-install) (pdf-tools-install)
(use-package exec-path-from-shell)
#+end_src #+end_src
** Git
#+begin_src emacs-lisp
(use-package git-gutter)
(use-package git-gutter-fringe)
(define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated))
(define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated))
(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom)
#+end_src
** Prolog ** Prolog
#+begin_src emacs-lisp #+begin_src emacs-lisp
(autoload 'run-prolog "prolog" "Start a Prolog sub-process." t) (autoload 'run-prolog "prolog" "Start a Prolog sub-process." t)
@@ -44,71 +54,73 @@
#+end_src #+end_src
** Dired ** Dired
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package dired-preview) (use-package dired-preview)
(use-package dired-git (use-package dired-git
:hook :hook
(dired-mode . dired-git-mode)) (dired-mode . dired-git-mode))
#+end_src #+end_src
** Theme ** Theme
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package zenburn-theme) (use-package zenburn-theme)
(use-package doom-themes) (use-package doom-themes)
(use-package spacemacs-theme)
(load-theme 'doom-one t) (load-theme 'spacemacs-dark t)
(use-package vertico
:custom
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
:init
(vertico-mode))
(use-package savehist (use-package vertico
:init :custom
(savehist-mode)) (vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
:init
(vertico-mode))
(use-package emacs (use-package savehist
:custom :init
;; Support opening new minibuffers from inside existing minibuffers. (savehist-mode))
(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)) (use-package emacs
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)) :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)
(use-package vertico-directory (setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
:after vertico (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode))
: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 (use-package vertico-directory
:after vertico :after vertico
:load-path "~/.emacs.d/elpa/vertico-1.9/") :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))
(vertico-multiform-mode 1) (use-package vertico-multiform
:after vertico
:load-path "~/.emacs.d/elpa/vertico-1.9/")
(use-package vertico-posframe (vertico-multiform-mode 1)
:ensure t)
(setq vertico-posframe-parameters (use-package vertico-posframe
'((left-fringe . 8) :ensure t)
(setq vertico-posframe-parameters
'((left-fringe . 8)
(right-fringe . 8))) (right-fringe . 8)))
#+END_SRC #+END_SRC
@@ -133,39 +145,39 @@
** Helm ** Helm
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package helm (use-package helm
:config (require 'helm-autoloads) :config (require 'helm-autoloads)
:bind :bind
(("M-x". 'helm-M-x) (("M-x". 'helm-M-x)
("C-x C-f" . 'helm-find-files))) ("C-x C-f" . 'helm-find-files)))
(helm-mode 1) (helm-mode 1)
(use-package helm-make (use-package helm-make
:bind ("C-x m" . 'helm-make)) :bind ("C-x m" . 'helm-make))
(use-package helm-posframe) (use-package helm-posframe)
(helm-posframe-enable) (helm-posframe-enable)
(setq helm-recentf-fuzzy-match t (setq helm-recentf-fuzzy-match t
helm-locate-fuzzy-match nil ;; locate fuzzy is worthless helm-locate-fuzzy-match nil ;; locate fuzzy is worthless
helm-M-x-fuzzy-match t helm-M-x-fuzzy-match t
helm-buffers-fuzzy-matching t helm-buffers-fuzzy-matching t
helm-semantic-fuzzy-match t helm-semantic-fuzzy-match t
helm-apropos-fuzzy-match t helm-apropos-fuzzy-match t
helm-imenu-fuzzy-match t helm-imenu-fuzzy-match t
helm-lisp-fuzzy-completion t helm-lisp-fuzzy-completion t
helm-completion-in-region-fuzzy-match t) helm-completion-in-region-fuzzy-match t)
#+end_src #+end_src
** Company ** Company
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package company (use-package company
:hook :hook
(after-init . global-company-mode) (after-init . global-company-mode)
:custom :custom
(company-backends '(company-capf))) (company-backends '(company-capf)))
(use-package company-box (use-package company-box
:hook :hook
(company-mode . company-box-mode)) (company-mode . company-box-mode))
#+END_SRC #+END_SRC
** Smart parenthesis ** Smart parenthesis
@@ -178,48 +190,89 @@
(require 'smartparens-config)) (require 'smartparens-config))
#+end_src #+end_src
** Flycheck
#+begin_src emacs-lisp
(use-package flycheck
:init
(progn
(define-fringe-bitmap 'my-flycheck-fringe-indicator
(vector #b00000000
#b00000000
#b00000000
#b00000000
#b00000000
#b00000000
#b00000000
#b00011100
#b00111110
#b00111110
#b00111110
#b00011100
#b00000000
#b00000000
#b00000000
#b00000000
#b00000000))
(flycheck-define-error-level 'error
:severity 2
:overlay-category 'flycheck-error-overlay
:fringe-bitmap 'my-flycheck-fringe-indicator
:fringe-face 'flycheck-fringe-error)
(flycheck-define-error-level 'warning
:severity 1
:overlay-category 'flycheck-warning-overlay
:fringe-bitmap 'my-flycheck-fringe-indicator
:fringe-face 'flycheck-fringe-warning)
(flycheck-define-error-level 'info
:severity 0
:overlay-category 'flycheck-info-overlay
:fringe-bitmap 'my-flycheck-fringe-indicator
:fringe-face 'flycheck-fringe-info)))
#+end_src
** LSP ** LSP
#+begin_src emacs-lisp #+begin_src emacs-lisp
;; Java ;; Java
(use-package exec-path-from-shell) (use-package exec-path-from-shell)
(use-package lsp-java) (use-package lsp-java)
(require 'lsp-java) (require 'lsp-java)
(add-hook 'java-mode-hook #'lsp)
(use-package hydra) (use-package hydra)
(setq lsp-java-jdt-download-url "https://download.eclipse.org/jdtls/milestones/0.57.0/jdt-language-server-0.57.0-202006172108.tar.gz") (setq lsp-java-jdt-download-url "https://download.eclipse.org/jdtls/milestones/0.57.0/jdt-language-server-0.57.0-202006172108.tar.gz")
(use-package lsp-mode (use-package lsp-mode
:init :init
;;set prefix ;;set prefix
(setq lsp-keymap-prefix "C-c l") (setq lsp-keymap-prefix "C-c l")
(setq lsp-diagnostics-provider :flycheck) ; Use flycheck for diagnostics (setq lsp-diagnostics-provider :flycheck) ; Use flycheck for diagnostics
(setq lsp-enable-snippet t) ; Enable snippet support (setq lsp-enable-snippet t) ; Enable snippet support
(setq company-idle-delay 0.2) ; Set delay for completion pop-up (setq company-idle-delay 0.2) ; Set delay for completion pop-up
(setq company-minimum-prefix-length 1) (setq company-minimum-prefix-length 1)
(setq lsp-clients-clangd-executable "clangd") (setq lsp-clients-clangd-executable "clangd")
:hook :hook
((prog-mode . lsp) ((prog-mode . lsp)
(c-mode . lsp) (c-mode . lsp)
(emacs-lisp-mode . lsp) (java-mode . lsp)
(java-mode . lsp) (latex-mode . lsp)
(latex-mode . lsp) (python-mode . lsp)
(python-mode . lsp) (lsp-mode . lsp-enable-which-key-integration)
(lsp-mode . lsp-enable-which-key-integration) (before-save . lsp-format-buffer)
(before-save . lsp-format-buffer) )
) :commands lsp
:commands lsp :bind
:bind ("C-<return>" . ff-find-other-file)
("C-<return>" . ff-find-other-file) :custom
:custom (lsp-prefer-capf t))
(lsp-prefer-capf t))
(use-package helm-lsp (use-package helm-lsp
:commands helm-lsp-workspace-symbol) :commands helm-lsp-workspace-symbol)
(use-package which-key (use-package which-key
:config :config
(which-key-mode)) (which-key-mode))
#+end_src #+end_src
* Key-binds * Key-binds
@@ -228,12 +281,6 @@
(keymap-global-set "M-a" 'switch-to-buffer) (keymap-global-set "M-a" 'switch-to-buffer)
#+end_src #+end_src
** Dired
#+begin_src emacs-lisp
(add-hook 'dired-mode-hook (lambda () (local-key-binding "-" 'dired-jump)))
#+end_src
** C ** C
*** Dereference arrow *** Dereference arrow
@@ -256,7 +303,7 @@
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defun reload-conf () (defun reload-conf ()
(interactive) (interactive)
(load-file "~/.emacs.d/init.el")) (load-file "~/.emacs.default/init.el"))
(keymap-global-set "C-c r" 'reload-conf) (keymap-global-set "C-c r" 'reload-conf)
#+END_SRC #+END_SRC
@@ -264,7 +311,7 @@
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun open-config () (defun open-config ()
(interactive) (interactive)
(find-file "~/.emacs.d/config.org")) (find-file "~/.emacs.default/config.org"))
(keymap-global-set "C-c c" 'open-config) (keymap-global-set "C-c c" 'open-config)
#+end_src #+end_src
** Window command ** Window command
@@ -292,11 +339,12 @@
* Org * Org
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package org-superstar)
(defun my/buffer-face-mode-variable () (defun my/buffer-face-mode-variable ()
"Set font to a variable width (proportional) fonts in current buffer" "Set font to a variable width (proportional) fonts in current buffer"
(interactive) (interactive)
(setq buffer-face-mode-face '(:family "Roboto Slab" (setq buffer-face-mode-face '(:family "Roboto Slab"
:height 150 :height 120
:width normal)) :width normal))
(buffer-face-mode)) (buffer-face-mode))
(use-package org-bullets (use-package org-bullets
@@ -419,6 +467,11 @@
(add-hook 'before-make-frame-hook (lambda () (scroll-bar-mode -1))) (add-hook 'before-make-frame-hook (lambda () (scroll-bar-mode -1)))
#+END_SRC #+END_SRC
** Prog
#+begin_src emacs-lisp
(add-hook 'prog-mode-hook 'git-gutter-mode)
#+end_src
* Terminal * Terminal
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package vterm (use-package vterm
@@ -438,15 +491,8 @@
#+end_src #+end_src
* Misceleaneous * Misceleaneous
** Music
#+begin_src emacs-lisp
(use-package emms)
(emms-all)
(setq emms-player-list '(emms-player-vlc)
emms-info-functions '(emms-info-native))
#+end_src
** Indentation ** Indentation
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package rainbow-delimiters) (use-package rainbow-delimiters)
(use-package highlight-indent-guides) (use-package highlight-indent-guides)
@@ -477,3 +523,37 @@
(setq-default indent-tabs-mode nil) (setq-default indent-tabs-mode nil)
(setq-default tab-width 4) (setq-default tab-width 4)
#+end_src #+end_src
** Smooth scroll
#+begin_src emacs-lisp
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil)))
(setq mouse-wheel-follow-mouse 't) ; scroll window under mouse
(require 'mwheel)
(setq mouse-wheel-scroll-amount '(3 ((shift) . 1) ((control) . 5)))
(setq mouse-wheel-inhibit-click-time 0.1)
(setq scroll-step 1
scroll-conservatively 10000
scroll-preserve-screen-position 1)
(pixel-scroll-mode 1) ; Enable pixel-level scrolling
(setq pixel-scroll-precision-large-scroll-height 40.0)
(use-package smooth-scrolling
:init
(smooth-scrolling-mode t))
(use-package good-scroll
:ensure t
:config
(good-scroll-mode 1))
#+end_src
** Startup screen
#+begin_src emacs-lisp
(use-package dashboard
:ensure t
:config
(dashboard-setup-startup-hook)
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
(setq server-window (lambda () (switch-to-buffer "*dashboard*"))))
(setq server-window (lambda () (switch-to-buffer "*dashboard*")))
(kill-buffer "*scratch*")
#+end_src