From cb45cf1a28641474a3302740cfc1ee4bdeca4a4a Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Sat, 5 Dec 2020 16:16:37 +0100
Subject: Emacs update

---
 .config/emacs/init.el        |   2 +-
 .config/emacs/org/config.org | 306 ++++++++++++++++++++++++-------------------
 .dt/dtwmrc                   |  27 ++--
 3 files changed, 185 insertions(+), 150 deletions(-)

diff --git a/.config/emacs/init.el b/.config/emacs/init.el
index 79b9924..2c9b7ef 100644
--- a/.config/emacs/init.el
+++ b/.config/emacs/init.el
@@ -36,7 +36,7 @@
  '(jdee-db-spec-breakpoint-face-colors (cons "#1c1f2b" "#676E95"))
  '(objed-cursor-color "#ff5370")
  '(package-selected-packages
-   '(cl-format company-irony neotree irony xr font-utils org-evil evil-vimish-fold crontab-mode vterm symon toc-org evil-org org-bullets yaml-mode twittering-mode helm-w3m helm-mu htmlize babel org-pdftools shell-pop which-key golden-ratio dmenu mingus lua-mode dionysos helm-c-yasnippet helm-emms emms font-lock-cl restart-emacs w3m string-utils go-mode major-mode-icons dired-icon mode-icons evil-collection sed-mode zones kaolin-themes gruvbox-theme helm-themes yasnippet-classic-snippets yasnippet-snippets auto-yasnippet php-auto-yasnippets el-autoyas yasnippet cargo evil-ediff windresize helm-make spacemacs-theme centaur-tabs evil-magit dashboard ssh sudo-ext dockerfile-mode docker frame-local ov dash-functional helm-addressbook org-mime flyspell-correct pdf-tools websocket request emojify-logos emojify oauth2 circe web-mode doom-themes doom-modeline all-the-icons-dired all-the-icons-gnus all-the-icons html5-schema phps-mode org-babel-eval-in-repl rust-mode smart-mode-line-powerline-theme eshell-prompt-extras eshell-fixed-prompt pyenv-mode s realgud-lldb ranger ## color-theme-modern auto-complete-c-headers command-log-mode auto-complete magit smart-tabs-mode airline-themes paredit autopair tabbar-ruler tabbar use-package-el-get color-theme-approximate diminish rainbow-delimiters color-identifiers-mode use-package helm evil-visual-mark-mode))
+   '(evil-numbers ccls org-superstar company-lsp lsp-ui lsp-mode evil-mc vterm evil-surround cl-format company-irony neotree irony xr font-utils org-evil evil-vimish-fold crontab-mode symon toc-org yaml-mode helm-w3m helm-mu htmlize babel org-pdftools shell-pop which-key dmenu lua-mode dionysos helm-c-yasnippet helm-emms emms font-lock-cl restart-emacs w3m string-utils go-mode major-mode-icons dired-icon mode-icons evil-collection sed-mode zones kaolin-themes gruvbox-theme helm-themes yasnippet-classic-snippets yasnippet-snippets auto-yasnippet php-auto-yasnippets el-autoyas yasnippet cargo evil-ediff windresize helm-make spacemacs-theme centaur-tabs evil-magit dashboard ssh sudo-ext dockerfile-mode docker frame-local ov dash-functional helm-addressbook org-mime flyspell-correct pdf-tools websocket request emojify-logos emojify oauth2 circe web-mode doom-themes doom-modeline all-the-icons-dired all-the-icons-gnus all-the-icons html5-schema phps-mode org-babel-eval-in-repl rust-mode smart-mode-line-powerline-theme eshell-prompt-extras eshell-fixed-prompt pyenv-mode s realgud-lldb ranger ## color-theme-modern auto-complete-c-headers command-log-mode auto-complete magit smart-tabs-mode airline-themes paredit autopair tabbar-ruler tabbar use-package-el-get color-theme-approximate diminish rainbow-delimiters color-identifiers-mode use-package helm evil-visual-mark-mode))
  '(pdf-view-midnight-colors (cons "#EEFFFF" "#292D3E"))
  '(pos-tip-background-color "#2E2A29")
  '(pos-tip-foreground-color "#d4d4d6")
diff --git a/.config/emacs/org/config.org b/.config/emacs/org/config.org
index 7d15587..650c1c9 100644
--- a/.config/emacs/org/config.org
+++ b/.config/emacs/org/config.org
@@ -1,32 +1,32 @@
 * My emacs config
 ** Basic configs
 #+BEGIN_SRC emacs-lisp
-(setq x-alt-keysym 'meta)
-(set-keyboard-coding-system 'utf-8)
-
-(menu-bar-mode -1)
-(tool-bar-mode -1)
-(scroll-bar-mode -1)
-(blink-cursor-mode 0)
-
-(set-frame-font "mononoki Nerd Font:pixelsize=15" nil t)
-(add-hook 'prog-mode-hook 'display-line-numbers-mode)
-(add-hook 'text-mode-hook 'display-line-numbers-mode)
-
-(setq scroll-step 1)
-;; (setq scroll-margin 1)
-(setq echo-keystrokes 0.1)
-(setq initial-scratch-message nil)
-(defalias 'yes-or-no-p 'y-or-n-p)
-
-(setq backup-directory-alist '(("." . "~/.config/emacs/backup"))
-		backup-by-copying t
-		version-control t
-		delete-old-versions t
-		kept-new-versions 20
-		kept-old-versions 5)
-
-(server-start)
+  (setq x-alt-keysym 'meta)
+  (set-keyboard-coding-system 'utf-8)
+
+  (menu-bar-mode -1)
+  (tool-bar-mode -1)
+  (scroll-bar-mode -1)
+  (blink-cursor-mode 0)
+
+  (set-frame-font "mononoki Nerd Font:pixelsize=15" nil t)
+  (add-hook 'prog-mode-hook 'display-line-numbers-mode)
+  (add-hook 'text-mode-hook 'display-line-numbers-mode)
+
+  (setq scroll-step 1)
+  ;; (setq scroll-margin 1)
+  (setq echo-keystrokes 0.1)
+  (setq initial-scratch-message nil)
+  (defalias 'yes-or-no-p 'y-or-n-p)
+
+  (setq backup-directory-alist '(("." . "~/.config/emacs/backup"))
+		  backup-by-copying t
+		  version-control t
+		  delete-old-versions t
+		  kept-new-versions 20
+		  kept-old-versions 5)
+
+  (server-start)
 #+END_SRC
 
 ** MELPA and non-MELPA
@@ -54,62 +54,64 @@
 
 ** Some org
 #+BEGIN_SRC emacs-lisp
-;; set key for agenda
-(require 'org)
-(global-set-key (kbd "C-c a") 'org-agenda)
-
-;;file to save todo items
-(setq org-agenda-files (quote ("~/.config/emacs/org/todo.org")))
-(setq org-log-done 'time)
-
-;;set priority range from A to C with default A
-(setq org-highest-priority ?A)
-(setq org-lowest-priority ?C)
-(setq org-default-priority ?A)
-
-;;set colours for priorities
-(setq org-priority-faces '((?A . (:foreground "#F0DFAF" :weight bold))
-						   (?B . (:foreground "LightSteelBlue"))
-						   (?C . (:foreground "OliveDrab"))))
-
-;;open agenda in current window
-(setq org-agenda-window-setup (quote current-window))
-
-;;capture todo items using C-c C-t t
-(define-key global-map (kbd "C-c C-t") 'org-capture)
-(setq org-capture-templates
-	  '(("t" "todo" entry (file+headline "/home/jozan/.config/emacs/org/todo.org" "Tasks")
-		 "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n")))
-
-;;open agenda in current window
-(setq org-agenda-window-setup (quote current-window))
-;;warn me of any deadlines in next 7 days
-(setq org-deadline-warning-days 7)
-;;show me tasks scheduled or due in next fortnight
-(setq org-agenda-span (quote fortnight))
-;;don't show tasks as scheduled if they are already shown as a deadline
-(setq org-agenda-skip-scheduled-if-deadline-is-shown t)
-;;don't give awarning colour to tasks with impending deadlines
-;;if they are scheduled to be done
-(setq org-agenda-skip-deadline-prewarning-if-scheduled (quote pre-scheduled))
-;;don't show tasks that are scheduled or have deadlines in the
-;;normal todo list
-(setq org-agenda-todo-ignore-deadlines (quote all))
-(setq org-agenda-todo-ignore-scheduled (quote all))
-;;sort tasks in order of when they are due and then by priority
-(setq org-agenda-sorting-strategy
-  (quote
-   ((agenda deadline-up priority-down)
-	(todo priority-down category-keep)
-	(tags priority-down category-keep)
-	(search category-keep))))
-
-(org-babel-do-load-languages
-	'org-babel-load-languages '((C . t )))
-(org-babel-do-load-languages
-	'org-babel-load-languages '((lisp . t)))
- (eval-after-load "org"
-     '(require 'ox-md nil t))
+    ;; set key for agenda
+    ;; (require 'org)
+    ;; (global-set-(kbd "C-c a") 'org-agenda)
+
+    ;;file to save todo items
+    ;; (setq org-agenda-files (quote ("~/.config/emacs/org/todo.org")))
+    (setq org-log-done 'time)
+
+    ;;set priority range from A to C with default A
+     (setq org-highest-priority ?A)
+     (setq org-lowest-priority ?C)
+     (setq org-default-priority ?A)
+
+    ;;set colours for priorities
+    (setq org-priority-faces '((?A . (:foreground "#F0DFAF" :weight bold))
+						       (?B . (:foreground "LightSteelBlue"))
+						       (?C . (:foreground "OliveDrab"))))
+
+  (setq org-log-done 'time)
+
+    ;;open agenda in current window
+    ;; (setq org-agenda-window-setup (quote current-window))
+
+    ;;capture todo items using C-c C-t t
+    ;; (define-key global-map (kbd "C-c C-t") 'org-capture)
+    ;; (setq org-capture-templates
+    ;;	  '(("t" "todo" entry (file+headline "/home/jozan/.config/emacs/org/todo.org" "Tasks")
+    ;;		 "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n")))
+
+    ;;open agenda in current window
+    ;; (setq org-agenda-window-setup (quote current-window))
+    ;;warn me of any deadlines in next 7 days
+    ;; (setq org-deadline-warning-days 7)
+    ;;show me tasks scheduled or due in next fortnight
+    ;; (setq org-agenda-span (quote fortnight))
+    ;;don't show tasks as scheduled if they are already shown as a deadline
+    ;; (setq org-agenda-skip-scheduled-if-deadline-is-shown t)
+    ;;don't give awarning colour to tasks with impending deadlines
+    ;;if they are scheduled to be done
+    ;; (setq org-agenda-skip-deadline-prewarning-if-scheduled (quote pre-scheduled))
+    ;;don't show tasks that are scheduled or have deadlines in the
+    ;;normal todo list
+    ;; (setq org-agenda-todo-ignore-deadlines (quote all))
+    ;; (setq org-agenda-todo-ignore-scheduled (quote all))
+    ;;sort tasks in order of when they are due and then by priority
+    ;; (setq org-agenda-sorting-strategy
+    ;;  (quote
+    ;;   ((agenda deadline-up priority-down)
+    ;;	(todo priority-down category-keep)
+    ;;	(tags priority-down category-keep)
+    ;;	(search category-keep))))
+
+    (org-babel-do-load-languages
+	    'org-babel-load-languages '((C . t )))
+    (org-babel-do-load-languages
+	    'org-babel-load-languages '((lisp . t)))
+     (eval-after-load "org"
+	 '(require 'ox-md nil t))
 #+END_SRC
 
 ** Core packages
@@ -160,7 +162,19 @@
 (evilnc-default-hotkeys)
 #+END_SRC
 
-*** Vimish Fold
+*** Evil surround
+#+BEGIN_SRC emacs-lisp
+  (require 'evil-surround)
+  (global-evil-surround-mode 1)
+#+END_SRC
+
+*** Evil multiple-cursor
+#+BEGIN_SRC emacs-lisp
+  (require 'evil-mc)
+  (global-evil-mc-mode 1)
+#+END_SRC
+
+*** Evil vimish Fold
 	#+BEGIN_SRC emacs-lisp
 	(require 'vimish-fold)
 	(require 'evil-vimish-fold)
@@ -168,6 +182,13 @@
 	(add-hook 'text-mode-hook 'evil-vimish-fold-mode)
 	#+END_SRC
 
+*** Evil numbers
+#+BEGIN_SRC emacs-lisp
+  (require 'evil-numbers)
+  (define-key evil-normal-state-map (kbd "C-c a") 'evil-numbers/inc-at-pt)
+  (define-key evil-normal-state-map (kbd "C-c x") 'evil-numbers/dec-at-pt)
+#+END_SRC
+
 *** Centaur tabs
 #+BEGIN_SRC emacs-lisp
 (require 'centaur-tabs)
@@ -240,14 +261,6 @@
 (add-to-list 'evil-emacs-state-modes 'dashboard-mode)
 #+END_SRC
 
-*** Golden ratio
-#+BEGIN_SRC emacs-lisp
-;; (require 'golden-ratio)
-;; (golden-ratio-mode 1)
-;; (setq golden-ratio-adjust-factor		.9
-;; 	  golden-ratio-wide-adjust-factor	.9)
-#+END_SRC
-
 *** w3m
 #+BEGIN_SRC emacs-lisp
 (require 'w3m-load)
@@ -354,7 +367,6 @@
 (setq doom-modeline-github nil)
 (setq doom-modeline-github-interval (* 30 60))
 (setq doom-modeline-modal-icon t)
-(setq doom-modeline-mu4e t)
 (setq doom-modeline-gnus nil)
 (setq doom-modeline-irc t)
 (setq doom-modeline-irc-stylize 'identity)
@@ -376,11 +388,11 @@
 
 *** Colors and rainbows
 #+BEGIN_SRC emacs-lisp
-(require 'color-identifiers-mode)
-(global-color-identifiers-mode)
+;; (require 'color-identifiers-mode)
+;; (global-color-identifiers-mode)
 
-(require 'rainbow-delimiters)
-(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
+;; (require 'rainbow-delimiters)
+;; (add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
 #+END_SRC
 
 *** C default style
@@ -423,13 +435,6 @@ Attribution: URL `https://manuel-uberti.github.io/emacs/2018/02/17/magit-bury-bu
 (evil-define-key 'normal magit-status-mode-map (kbd "q") #'my/magit-kill-buffers)
 #+END_SRC
 
-*** Ranger
-#+BEGIN_SRC emacs-lisp
-(require 'ranger)
-(ranger-override-dired-mode t)
-(add-hook 'dired-mode-hook 'auto-revert-mode)
-#+END_SRC
-
 *** Lock windows
 #+BEGIN_SRC emacs-lisp
 (defun my/toggle-window-dedicated ()
@@ -505,14 +510,6 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
 (add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
 #+END_SRC
 
-*** minugs
-#+BEGIN_SRC emacs-lisp
-(require 'mingus)
-(add-to-list 'evil-emacs-state-modes 'mingus-help-mode)
-(add-to-list 'evil-emacs-state-modes 'mingus-playlist-mode)
-(add-to-list 'evil-emacs-state-modes 'mingus-browse-mode)
-#+END_SRC
-
 *** which-key
 #+BEGIN_SRC emacs-lisp
 (require 'which-key)
@@ -526,16 +523,16 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
 	(quote
 	("ansi-term" "*ansi-term*"
 	(lambda nil
-	(ansi-term shell-pop-term-shell)))))
+	(vterm)))))
 
-(setq shell-pop-term-shell "/usr/local/bin/zsh")
+;; (setq shell-pop-term-shell "/usr/local/bin/zsh")
 (add-to-list 'evil-emacs-state-modes 'term-mode)
 #+END_SRC
 
-*** org-bullets
+*** org-superstar
 #+BEGIN_SRC emacs-lisp
-(require 'org-bullets)
-(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
+(require 'org-superstar)
+(add-hook 'org-mode-hook (lambda () (org-superstar-mode 1)))
 #+END_SRC
 
 *** toc-org
@@ -583,6 +580,63 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
 	(setq company-backends (mapcar #'company-mode/backend-with-yas company-backends))
 	#+END_SRC
 
+*** lsp, ccls
+#+BEGIN_SRC emacs-lisp
+  (require 'lsp-mode)
+  (require 'lsp-ui)
+  (require 'company-lsp)
+  (require 'ccls)
+  (add-hook 'c-mode-hook (lambda () (lsp)))
+  (add-hook 'c++-mode-hook (lambda () (lsp)))
+  (add-hook 'objc-mode-hook (lambda () (lsp)))
+  (add-hook 'cuda-mode-hook (lambda () (lsp)))
+  (setq ccls-executable "/usr/local/bin/ccls")
+
+  (defun ccls/callee () (interactive) (lsp-ui-peek-find-custom "$ccls/call" '(:callee t)))
+  (defun ccls/caller () (interactive) (lsp-ui-peek-find-custom "$ccls/call"))
+  (defun ccls/vars (kind) (lsp-ui-peek-find-custom "$ccls/vars" `(:kind ,kind)))
+  (defun ccls/base (levels) (lsp-ui-peek-find-custom "$ccls/inheritance" `(:levels ,levels)))
+  (defun ccls/derived (levels) (lsp-ui-peek-find-custom "$ccls/inheritance" `(:levels ,levels :derived t)))
+  (defun ccls/member (kind) (interactive) (lsp-ui-peek-find-custom "$ccls/member" `(:kind ,kind)))
+
+  ;; References w/ Role::Role
+  (defun ccls/references-read () (interactive)
+		 (lsp-ui-peek-find-custom "textDocument/references"
+								  (plist-put (lsp--text-document-position-params) :role 8)))
+
+  ;; References w/ Role::Write
+  (defun ccls/references-write ()
+	(interactive)
+	(lsp-ui-peek-find-custom "textDocument/references"
+							 (plist-put (lsp--text-document-position-params) :role 16)))
+
+  ;; References w/ Role::Dynamic bit (macro expansions)
+  (defun ccls/references-macro () (interactive)
+		 (lsp-ui-peek-find-custom "textDocument/references"
+								  (plist-put (lsp--text-document-position-params) :role 64)))
+
+  ;; References w/o Role::Call bit (e.g. where functions are taken addresses)
+  (defun ccls/references-not-call () (interactive)
+		 (lsp-ui-peek-find-custom "textDocument/references"
+								  (plist-put (lsp--text-document-position-params) :excludeRole 32)))
+
+  ;; ccls/vars ccls/base ccls/derived ccls/members have a parameter while others are interactive.
+  ;; (ccls/base 1) direct bases
+  ;; (ccls/derived 1) direct derived
+  ;; (ccls/member 2) => 2 (Type) => nested classes / types in a namespace
+  ;; (ccls/member 3) => 3 (Func) => member functions / functions in a namespace
+  ;; (ccls/member 0) => member variables / variables in a namespace
+  ;; (ccls/vars 1) => field
+  ;; (ccls/vars 2) => local variable
+  ;; (ccls/vars 3) => field or local variable. 3 = 1 | 2
+  ;; (ccls/vars 4) => parameter
+
+  ;; References whose filenames are under this project
+  (setq company-transformers nil company-lsp-async t company-lsp-cache-candidates nil)
+  (setq ccls-sem-highlight-method 'font-lock)
+  (ccls-use-default-rainbow-sem-highlight)
+#+END_SRC
+
 ** Compilation
 *** Close window after errorless compilation
 #+BEGIN_SRC emacs-lisp
@@ -596,23 +650,6 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
 		  (message "")))))
 #+END_SRC
 
-*** Compilation functions
-#+BEGIN_SRC emacs-lisp
-(defun my/exec-f5 ()
-  (interactive)
-  (defvar make)
-  (setq make "gmake -j5 asan")
-  (save-buffer)
-  (compile make)
-  (compilation-finish-function)) 
-
-(defun my/exec-f6 ()
-  (interactive)
-  (defvar exec)
-  (setq exec "./a.out; ret=$?; echo \"\e[1;35m~>\"; if [ $ret -ne 0 ]; then echo -n \"\e[1;31m$ret\"; if [ $ret -eq 127 ]; then echo \" - Missing a.out, comipler error! \"; exit; elif [ $ret -eq 134 ]; then echo \" - Abort! \"; elif [ $ret -eq 138 ]; then echo \" - Bus error! \"; elif [ $ret -eq 139 ]; then echo \" - Segmentation fault! \"; fi; fi; echo \"\e[1;35m\n\n.emacs v1.5 Tilde Edition by Joe\"")
-  (async-shell-command exec))
-#+END_SRC
-
 ** Custom functions
 *** startsoon-mode
 	#+BEGIN_SRC emacs-lisp
@@ -653,8 +690,7 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
 (global-set-key [f1] 'shell-pop)
 (global-set-key [f2] 'neotree-toggle)
 (global-set-key [f4] 'helm-make-projectile)
-(global-set-key [f5] 'my/exec-f5)
-(global-set-key [f6] 'my/exec-f6)
+(global-set-key [f5] 'undo-tree-visualize)
 (global-set-key (kbd "C-x d") 'dired)
 (global-set-key (kbd "M-1") 'shell-command)
 (global-set-key (kbd "M-7") 'async-shell-command)
diff --git a/.dt/dtwmrc b/.dt/dtwmrc
index a37b065..badc3a5 100644
--- a/.dt/dtwmrc
+++ b/.dt/dtwmrc
@@ -7,19 +7,18 @@ Menu Internet
 
 Menu DtRootMenu
 {
-    "Workspace Menu"				f.title
-    "Internet"						f.menu    "Internet"
-    "Office"						f.menu    "Office"
-     no-label						f.separator
-     no-label						f.separator
-    "Shuffle Up"					f.circle_up
-    "Shuffle Down"					f.circle_down
-    "Refresh"						f.refresh
-    "Minimize/Restore Front Panel"	f.toggle_frontpanel
-     no-label						f.separator
-    "Restart Workspace Manager..."	f.restart
-     no-label						f.separator
-    "Log out..."					f.action ExitSession
+	"Workspace Menu"				f.title
+	"Programs"						f.menu ProgramsMenu
+	no-label						f.separator
+	"Shuffle Up"					f.circle_up
+	"Shuffle Down"					f.circle_down
+	"Refresh"						f.refresh
+	"Minimize/Restore Front Panel"	f.toggle_frontpanel
+	no-label						f.separator
+	"Restart Workspace Manager..."	f.restart
+	no-label						f.separator
+	"Suspend System..."				f.action SDTsuspend
+	"Log out..."					f.action ExitSession
 }
 
 Keys DtKeyBindings
@@ -53,11 +52,11 @@ Keys DtKeyBindings
 	Mod4<Key>s				window				f.normalize
 	Mod4<Key>m				window				f.move
 	Mod4 Shift<Key>M		window				f.resize
+	Mod4<Key>h				window				f.raise
 	Mod4<Key>l				window				f.lower
 
 	Mod4<Key>j				root|window|icon	f.next_key window
 	Mod4<Key>k				root|window|icon	f.prev_key window
-	Mod4<Key>h				root|window|icon	f.screen prev
 	Mod4<Key>p				root|window|icon	f.exec "dmenu_run -i -m 0"
 	Mod4<Key>Return			root|window|icon	f.exec "st"
 	Mod4 Shift<Key>E		root|window|icon	f.action ExitSession
-- 
cgit v1.2.3