Skip to content

Instantly share code, notes, and snippets.

@q-eldar
Created March 5, 2024 05:56
Show Gist options
  • Save q-eldar/ee9b73432a61a87c91493d86795c5bdf to your computer and use it in GitHub Desktop.
Save q-eldar/ee9b73432a61a87c91493d86795c5bdf to your computer and use it in GitHub Desktop.
~/.emacs
;; https://www.reddit.com/r/emacs/comments/pg69k8/my_setupalmost_the_powerful_c_ide_and_consume_so/
;; (setq warning-suppress-log-types '((package reinitialization)))
(menu-bar-mode -1)
(tool-bar-mode -1)
(tooltip-mode -1) ;; Disable tooltips
(setq display-line-numbers-type nil)
(scroll-bar-mode -1)
(setq-default fill-column 80)
;;(global-linum-mode -1) ;; disable line numbers globally
(pending-delete-mode t)
(global-set-key [f11] 'toggle-frame-fullscreen)
(column-number-mode)
(global-display-line-numbers-mode t)
(setq inhibit-startup-screen t)
(setq make-backup-files nil)
(setq auto-save-default nil)
(setq inhibit-startup-message t)
(setq org-src-window-setup 'current-window)
(setq org-confirm-babel-evaluate nil)
(setq org-src-preserve-indentation t)
(setq kill-buffer-query-functions nil)
(setq-default tab-width 2)
(setq-default indent-tabs-mode nil)
(fset 'yes-or-no-p 'y-or-n-p)
;;;; move line up
(defun move-line-up ()
(interactive)
(transpose-lines 1)
(previous-line 2))
;;;; move line down
(defun move-line-down ()
(interactive)
(next-line 1)
(transpose-lines 1)
(previous-line 1))
(global-set-key [(control shift t)] 'move-line-up)
(global-set-key [(meta shift t)] 'move-line-down)
(display-time-mode 1)
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
;; (add-to-list 'package-archives
;; '("marmalade" . "http://marmalade-repo.org/packages/") t)
;; (add-to-list 'package-archives
;; '("melpa" . "http://melpa.milkbox.net/packages/") t)
;; (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
(setq package-archive-priorities '(("org" . 1)
("melpa" . 2)
("gnu" . 3)))
;; (add-to-list 'auto-mode-alist '("\\.launch$" . xml-mode))
;; https://www.emacswiki.org/emacs/TrampAndDocker
(require 'tramp)
(push
(cons
"docker"
'((tramp-login-program "docker")
(tramp-login-args (("exec" "-it") ("%h") ("/bin/bash")))
(tramp-remote-shell "/bin/bash")
(tramp-remote-shell-args ("-i") ("-c"))))
tramp-methods)
(defadvice tramp-completion-handle-file-name-all-completions
(around dotemacs-completion-docker activate)
"(tramp-completion-handle-file-name-all-completions \"\" \"/docker:\" returns
a list of active Docker container names, followed by colons."
(if (equal (ad-get-arg 1) "/docker:")
(let* ((dockernames-raw (shell-command-to-string "docker ps | perl -we 'use strict; $_ = <>; m/^(.*)NAMES/ or die; my $offset = length($1); while(<>) {substr($_, 0, $offset, q()); chomp; for(split m/\\W+/) {print qq($_:\n)} }'"))
(dockernames (cl-remove-if-not
#'(lambda (dockerline) (string-match ":$" dockerline))
(split-string dockernames-raw "\n"))))
(setq ad-return-value dockernames))
ad-do-it))
(setq tramp-debug-buffer t)
(setq tramp-verbose 6)
(package-initialize)
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(setq use-package-verbose t)
;; https://systemcrafters.net/advanced-package-management/using-straight-el/
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(straight-use-package 'use-package)
(eval-when-compile
(require 'use-package))
(use-package bind-key
:ensure t)
(use-package electric
:ensure t
:init
(progn
(electric-pair-mode 1))
(setq electric-pair-pairs
'(
(?\" . ?\")
(?\' . ?\')
(?\[ . ?\])
(?\{ . ?\}))))
(use-package modern-cpp-font-lock
:ensure t
:init
(add-hook 'c++-mode-hook #'modern-c++-font-lock-mode))
(use-package rainbow-delimiters
:ensure t
:commands rainbow-delimiters-mode
:init
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
(use-package all-the-icons
:ensure t)
(use-package doom-themes
:ensure t
:preface (defvar region-fg nil)
:config (load-theme 'doom-one t))
(use-package multiple-cursors
:ensure t
:init
:bind(("C->" . mc/mark-next-like-this)
("C-<" . mc/mark-previous-like-this)
("C-c C-<" . mc/mark-all-like-this)))
;; https://karthinks.com/software/avy-can-do-anything/
(use-package avy
:ensure t
:bind (;; ("C-:" . avy-goto-char)
;; ("C-o" . avy-goto-word-1)
("C-j" . avy-goto-char-timer)
;; ("C-ü" . avy-goto-line)
)
:config (setq avy-case-fold-search t))
(use-package ivy
:ensure t)
;; https://sam217pa.github.io/2016/09/13/from-helm-to-ivy/
;; https://github.com/abo-abo/swiper
(use-package swiper
:ensure t
:diminish ivy-mode
:bind (("C-r" . swiper)
("C-c C-r" . ivy-resume)
("C-c h m" . woman)
("C-x b" . ivy-switch-buffer)
("C-c u" . swiper-all)
("C-s" . swiper-isearch)
("C-'" . counsel-git-grep)
;; ("C-:" . counsel-git-grep)
)
:config
;; (ivy-mode 1)
(setq ivy-use-virtual-buffers t))
(use-package counsel
:ensure t
:commands (counsel-mode)
:bind
(("M-y" . counsel-yank-pop)
:map ivy-minibuffer-map
("M-y" . ivy-next-line))
("C-h v" . counsel-describe-variable)
("C-h f" . counsel-describe-function)
)
(use-package smartparens-config
:ensure smartparens
:commands (turn-on-smartparens-strict-mode)
;; :demand t
:init
(progn
(add-hook 'racket-mode-hook #'turn-on-smartparens-strict-mode)
(add-hook 'racket-repl-mode-hook #'turn-on-smartparens-strict-mode)
(add-hook 'lisp-mode-hook #'turn-on-smartparens-strict-mode)
(add-hook 'emacs-lisp-mode-hook #'turn-on-smartparens-strict-mode))
:config
(progn
(setq sp-show-pair-delay 0)
(show-smartparens-global-mode t))
:bind
(:map smartparens-mode-map
("C-M-f" . sp-forward-sexp)
("C-M-b" . sp-backward-sexp)
("C-M-d" . sp-down-sexp)
("C-M-e" . sp-up-sexp)
("C-M-a" . sp-backward-down-sexp)
("C-M-u" . sp-backward-up-sexp)
("C-S-d" . sp-beginning-of-sexp)
("C-S-a" . sp-end-of-sexp)
("C-M-n" . sp-next-sexp)
("C-M-p" . sp-previous-sexp)
("C-M-k" . sp-kill-sexp)
("C-M-w" . sp-copy-sexp)
("M-[" . sp-backward-unwrap-sexp)
("M-]" . sp-unwrap-sexp)
("C-)" . sp-forward-slurp-sexp)
("C-(" . sp-forward-barf-sexp)
("C-M-)" . sp-backward-slurp-sexp)
("C-M-(" . sp-backward-barf-sexp)
("M-D" . sp-splice-sexp)
("C-M-<delete>" . sp-spilce-sexp-killing-forward)
("C-M-<backspace>" . sp-splice-sexp-killing-backward)
("C-S-<backspace>" . sp-splice-sexp-killing-around)
("C-]" . sp-select-next-thing-exchange)
("C-M-]" . sp-select-next-thing)
("M-F" . sp-forward-symbol)
("M-B" . sp-backward-symbol)
("M-q" . sp-indent-defun)
("M-r" . sp-raise-sexp)))
(use-package expand-region
:ensure t
:commands (er/expand-region
er/mark-inside-pairs
er/mark-inside-quotes
er/mark-outside-pairs
er/mark-outside-quotes
er/mark-defun
er/mark-comment
er/mark-text-sentence
er/mark-text-paragraph
er/mark-word
er/mark-url
er/mark-email
er/mark-symbol)
:bind("C-'" . er/expand-region))
;; mwim
(use-package mwim
:ensure t
:bind(("C-a" . mwim-beginning)
("C-e" . mwim-end)))
;; https://benaiah.me/posts/using-ido-emacs-completion/
(use-package ido
:config
(setq ido-file-extensions-order '( ".cc" ".cpp" ".hpp" ".h" ".py" ".txt" ".xml" ".el"))
(setq ido-everywhere t
ido-enable-prefix nil
ido-enable-flex-matching t
ido-create-new-buffer 'always
ido-use-filename-at-point 'guess
ido-max-prospects 10
ido-default-file-method 'selected-window
ido-auto-merge-work-directories-length nil
ido-virtual-buffers t
ido-use-faces t
ido-default-buffer-method 'selected-window
ido-auto-merge-work-directories-length -1)
(ido-mode t))
(use-package flx-ido
:ensure t
:config
(flx-ido-mode +1)
;; disable ido faces to see flx highlights
;; (setq ido-use-faces nil)
)
(use-package ido-vertical-mode
:ensure t
:requires ido
:config (ido-vertical-mode))
(use-package ido-completing-read+
:ensure t
:requires ido
:config
(setq ido-ubiquitous-max-items 50000
ido-cr+-max-items 50000)
(ido-ubiquitous-mode +1))
(use-package ido-hacks
:ensure t
:requires ido
:config (ido-hacks-mode))
(use-package ido-yes-or-no
:ensure t
:requires ido
:config (ido-yes-or-no-mode 1))
;; https://zoomadmin.com/HowToInstall/UbuntuPackage/elpa-pdf-tools
;; https://github.com/vedang/pdf-tools
;; (use-package pdf-tools
;; ;; :ensure t
;; :pin manual
;; :config
;; (pdf-tools-install)
;; (setq-default pdf-view-display-size 'fit-width)
;; (define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward)
;; (define-key pdf-view-mode-map (kbd "C-r") 'isearch-backward)
;; (global-linum-mode -1)
;; :custom
;; (pdf-annot-activate-created-annotations t "automatically annotate highlights"))
;; (setq TeX-view-program-selection '((output-pdf "PDF Tools"))
;; TeX-view-program-list '(("PDF Tools" TeX-pdf-tools-sync-view))
;; TeX-source-correlate-start-server t)
(use-package org-bullets
:ensure t
:commands (org-bullets-mode)
:custom
;; https://zhangda.wordpress.com/2016/02/15/configurations-for-beautifying-emacs-org-mode/
(org-bullets-bullet-list '("⁖" "☯" "▶" "◆" "○" "✸" "✿" "✜" ))
(org-ellipsis "⤵")
:init (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
(use-package ace-window
:ensure t
:bind ("M-o" . ace-window)
:delight
:config (ace-window-display-mode 1))
;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details
;; (helm-mode)
;; (require 'helm-xref)
;; (define-key global-map [remap find-file] #'ido-find-files)
;; (define-key global-map [remap execute-extended-command] #'ido-M-x)
;; (define-key global-map [remap switch-to-buffer] #'ido-mini)
;; (defun lsp-mode-setup ()
;; (setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols))
;; (lsp-headerline-breadcrumb-mode))
;; (add-to-list 'load-path "~/.emacs.d/source/company-cmake/company-cmake.el")
;; (load "cmake-mode") ;; best not to include the ending “.el” or “.elc”
(use-package lsp-mode
:ensure t
:diminish lsp-mode
:init
;; (setq lsp-keymap-prefix "s-o")
(setq ;; lsp-auto-guess-root t
lsp-prefer-capf t
lsp-print-io t
lsp-keep-workspace-alive nil)
:config
(setq lsp-auto-configure t
;; don't set flymake or lsp-ui so the default linter doesn't get trampled
lsp-diagnostic-package :none)
(define-key lsp-mode-map (kbd "M-/") 'lsp-ido-workspace-symbol)
(setq lsp-ui-doc-enable nil)
(setq lsp-prefer-capf t)
(setq lsp-diagnostics-provider :none)
(setq lsp-headerline-breadcrumb-enable t)
(setq lsp-headerline-breadcrumb-segments '(project file symbols
))
(setq lsp-headerline-breadcrumb-icons-enable t)
(setq gc-cons-threshold (* 100 1024 1024)
read-process-output-max (* 1024 1024)
treemacs-space-between-root-nodes nil
company-idle-delay 0.0
company-minimum-prefix-length 1
lsp-idle-delay 0.1) ;; clangd is fast
;; https://emacs.stackexchange.com/questions/58015/how-to-stop-lsp-mode-including-headers-automatically-for-c-c-code
;; (setq lsp-clients-clangd-args '("--header-insertion=never"))
;; https://github.com/emacs-lsp/lsp-mode/issues/1902
(setq lsp-completion-enable-additional-text-edit nil)
:bind ("C-c d d" . 'lsp-ui-doc-show)
:bind ("C-c d h" . 'lsp-ui-doc-hide)
;; :bind ("M-i" . 'lsp-ido-workspace-symbol)
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
;; (c++-mode . lsp-deferred)
(cpp-mode . lsp-deferred)
(go-mode . lsp-deferred) ;https://github.com/golang/tools/blob/master/gopls/doc/emacs.md#loading-lsp-mode-in-emacs
;; (cmake-mode . lsp-deferred)
((js2-mode rjsx-mode) . lsp) ;; https://www.chadstovern.com/javascript-in-emacs-revisited/
;; if you want which-key integration
(lsp-mode . lsp-enable-which-key-integration))
:commands (lsp lsp-deferred))
;; sudo apt install python-is-python3
;; https://emacs-lsp.github.io/lsp-python-ms/
;; (use-package lsp-python-ms
;; :ensure t
;; ;; :init (setq lsp-python-ms-auto-install-server t)
;; :hook (python-mode . (lambda ()
;; (require 'lsp-python-ms) ;
;; (lsp-deferred)))) ; or lsp
;; https://github.com/emacs-lsp/lsp-pyright
;; https://emacs.stackexchange.com/questions/71261/how-to-set-up-lsp-pyright-to-show-all-errors
;; https://stackoverflow.com/questions/55320815/how-do-i-install-and-run-pyright-from-the-cli-instead-of-using-vs-code
;; https://github.com/microsoft/pyright
;; https://pypi.org/project/pyright/
(use-package lsp-pyright
:ensure t
:hook (python-mode . (lambda ()
(require 'lsp-pyright)
(lsp)))) ; or lsp-deferred
(require 'lsp-mode)
(lsp-register-client
(make-lsp-client :new-connection (lsp-tramp-connection "clangd")
:major-modes '(c-mode c++-mode)
:remote? t
:server-id 'clangd-remote))
;; https://github.com/python-lsp/python-lsp-server
;; pip install python-lsp-server
(lsp-register-client
(make-lsp-client :new-connection (lsp-tramp-connection "pyright")
:major-modes '(python-mode)
:remote? t
:server-id 'pyright-remote))
(use-package projectile
:ensure t
:config
(projectile-mode 1))
(use-package lsp-ido
;; :ensure t
:commands lsp-ido-workspace-symbol
:config
(setq lsp-ido-show-symbol-kind t
lsp-ido-show-symbol-filename t))
(use-package lsp-treemacs
:ensure t
:after lsp
:config
(lsp-treemacs-sync-mode 1)
:commands lsp-treemacs-errors-list)
(use-package lsp-ui
:ensure t
:config
(setq lsp-ui-sideline-enable t
;; disable flycheck setup so default linter isn't trampled
lsp-ui-flycheck-enable nil
lsp-ui-sideline-show-symbol nil
lsp-ui-sideline-show-hover nil
lsp-ui-sideline-show-code-actions nil
lsp-ui-peek-enable nil
lsp-ui-imenu-enable nil
lsp-ui-doc-enable nil)
(define-key lsp-ui-mode-map (kbd "M-.") 'lsp-ui-peek-find-definitions)
(define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions)
(define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references)
:hook (lsp-mode . lsp-ui-mode)
:commands lsp-ui-mode)
;; Open files in Docker containers like so: /docker:drunk_bardeen:/etc/passwd
;; (push
;; (cons
;; "docker"
;; '((tramp-login-program "docker")
;; (tramp-login-args (("exec" "-it") ("%h") ("/bin/bash")))
;; (tramp-remote-shell "/bin/sh")
;; (tramp-remote-shell-args ("-i") ("-c"))))
;; tramp-methods)
;; (defadvice tramp-completion-handle-file-name-all-completions
;; (around dotemacs-completion-docker activate)
;; "(tramp-completion-handle-file-name-all-completions \"\" \"/docker:\" returns
;; a list of active Docker container names, followed by colons."
;; (if (equal (ad-get-arg 1) "/docker:")
;; (let* ((dockernames-raw (shell-command-to-string "docker ps | awk '$NF != \"NAMES\" { print $NF \":\" }'"))
;; (dockernames (cl-remove-if-not
;; #'(lambda (dockerline) (string-match ":$" dockerline))
;; (split-string dockernames-raw "\n"))))
;; (setq ad-return-value dockernames))
;; ad-do-it))
(use-package which-key
:ensure t
:diminish which-key-mode
:config
(which-key-mode))
;; (use-package cmake-mode
;; :ensure t
;; :mode ("CMakeLists\\.txt\\'" "\\.cmake\\'")
;; :hook (cmake-mode . lsp-deferred))
(use-package cmake-font-lock
:ensure t
:after cmake-mode
:config (cmake-font-lock-activate))
;; https://github.com/emacs-lsp/lsp-mode/issues/1451
;; https://tychoish.com/post/better-company/
(use-package company
:ensure t
:after lsp-mode
:init
(setq company-tooltip-align-annotations t
company-tooltip-limit 14
company-idle-delay 0
company-echo-delay (if (display-graphic-p) nil 0)
company-minimum-prefix-length 2
company-require-match 'never
company-dabbrev-ignore-case nil
company-dabbrev-downcase nil
company-global-modes '(not erc-mode message-mode help-mode gud-mode eshell-mode shell-mode)
company-backends '(company-capf company-keywords company-files company-clang company-cmake company-etags)
company-frontends '(company-pseudo-tooltip-frontend
company-echo-metadata-frontend))
:hook (
(lsp-mode . company-mode)
(cmake-mode . company-mode)
)
:bind (:map company-active-map
("<tab>" . company-complete-selection))
(:map lsp-mode-map
("<tab>" . company-indent-or-complete-common))
:custom
(company-minimum-prefix-length 1)
(company-idle-delay 0.0))
(setq company-format-margin-function nil)
(setq completion-in-region-function #'consult-completion-in-region)
(add-hook 'lsp-completion-mode-hook
(lambda ()
(setf (alist-get 'lsp-capf completion-category-defaults) '((styles . (orderless))))))
(add-hook 'lsp-managed-mode-hook (lambda () (setq-local company-backends '(company-capf))))
(use-package company-lsp
:defer t
:config
(setq company-lsp-cache-candidates 'auto
company-lsp-async t
company-lsp-enable-snippet nil
company-lsp-enable-recompletion t))
(use-package major-mode-hydra
:ensure t
:demand t
:bind
("M-SPC" . major-mode-hydra))
(use-package org
:ensure nil
:mode ("\\.org\\'" . org-mode)
:bind (("C-c l" . org-store-link)
("C-c c" . org-capture)
("C-c a" . org-agenda)
("C-c b" . org-iswitchb)
("C-c C-w" . org-refile)
("C-c j" . org-clock-goto)
("C-c C-x C-o" . org-clock-out)
:map org-mode-map
("<" . (lambda ()
"Insert org template."
(interactive)
(if (or (region-active-p) (looking-back "^\s*" 1))
(org-hydra/body)
(self-insert-command 1)))))
:commands (org-dynamic-block-define)
:custom-face (org-ellipsis ((t (:foreground nil))))
:pretty-hydra
((:color blue :quit-key "q" :title "Org Template")
("Basic"
( ("c" (hot-expand "<c") "center")
("E" (hot-expand "<E") "export")
("h" (hot-expand "<h") "html")
("l" (hot-expand "<l") "latex")
("n" (hot-expand "<n") "note")
("o" (hot-expand "<q") "quote")
)
"Head"
(("i" (hot-expand "<i") "index")
("A" (hot-expand "<A") "ASCII")
("I" (hot-expand "<I") "INCLUDE")
("H" (hot-expand "<H") "HTML")
("L" (hot-expand "<L") "LaTeX"))
"Source"
(("S" (hot-expand "<s") "src")
("m" (hot-expand "<s" "emacs-lisp") "emacs-lisp")
("p" (hot-expand "<s" "python :tangle \"demo.py\" :results output") "python")
("s" (hot-expand "<s" "shell") "shell")
))
)
:hook (((org-babel-after-execute org-mode) . org-redisplay-inline-images) ; display image
;; (org-mode . (lambda ()
;; "Beautify org symbols."
;; (setq prettify-symbols-alist centaur-prettify-org-symbols-alist)
;; (prettify-symbols-mode 1)))
(org-indent-mode . (lambda()
(diminish 'org-indent-mode)
;; WORKAROUND: Prevent text moving around while using brackets
;; @see https://github.com/seagle0128/.emacs.d/issues/88
(make-variable-buffer-local 'show-paren-mode)
(setq show-paren-mode nil))))
:config
;; (setq org-startup-indented nil)
;; https://github.com/seagle0128/.emacs.d/blob/master/lisp/init-org.el
(defun hot-expand (str &optional mod)
"Expand org template.
STR is a structure template string recognised by org like <s. MOD is a
string with additional parameters to add the begin line of the
structure element. HEADER string includes more parameters that are
prepended to the element after the #+HEADER: tag."
(let (text)
(when (region-active-p)
(setq text (buffer-substring (region-beginning) (region-end)))
(delete-region (region-beginning) (region-end)))
(insert str)
(if (fboundp 'org-try-structure-completion)
(org-try-structure-completion) ; < org 9
(progn
;; New template expansion since org 9
(require 'org-tempo nil t)
(org-tempo-complete-tag)))
(when mod (insert mod) (forward-line))
(when text (insert text))))
;; Babel
(setq org-confirm-babel-evaluate nil
org-src-fontify-natively t
org-src-tab-acts-natively t)
(defvar load-language-list '((emacs-lisp . t)
(python . t)
(C . t)
(shell . t)))
(org-babel-do-load-languages 'org-babel-load-languages
load-language-list)
(setq org-src-window-setup 'current-window)
(setq org-src-preserve-indentation t)
(setq org-time-clocksum-format '(:hours "%d" :require-hours t :minutes ":%02d" :require-minutes t))
(setq org-startup-folded t)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
(setq org-catch-invisible-edits 'smart))
;; (use-package emmet-mode
;; :ensure t
;; :after(web-mode css-mode scss-mode)
;; :commands (emmet-mode emmet-expand-line yas/insert-snippet yas-insert-snippet company-complete)
;; :config
;; (setq emmet-move-cursor-between-quotes t)
;; (add-hook 'emmet-mode-hook (lambda () (setq emmet-indent-after-insert nil)))
;; (add-hook 'sgml-mode-hook 'emmet-mode) ;; Auto-start on any markup modes
;; (add-hook 'css-mode-hook 'emmet-mode) ;; enable Emmet's css abbreviation.
;; (add-hook 'xml-mode-hook 'emmet-mode)
;; ;(setq emmet-indentation 2)
;; (unbind-key "C-M-<left>" emmet-mode-keymap)
;; (unbind-key "C-M-<right>" emmet-mode-keymap)
;; :bind
;; ("C-j" . emmet-expand-line)
;; ((:map emmet-mode-keymap
;; ("C-c [" . emmet-prev-edit-point)
;; ("C-c ]" . emmet-next-edit-point)))
;; );end emmet mode
;; org-roam
;; https://lucidmanager.org/productivity/taking-notes-with-emacs-org-mode-and-org-roam/
(use-package org-roam
:ensure t
:custom
(org-roam-directory (file-truename "/home/me/gtd/new_start/roam/"))
:bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph)
("C-c n i" . org-roam-node-insert)
("C-c n c" . org-roam-capture)
;; Dailies
("C-c n j" . org-roam-dailies-capture-today))
:config
;; If you're using a vertical completion framework, you might want a more informative completion interface
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
(org-roam-db-autosync-mode)
;; If using org-roam-protocol
(require 'org-roam-protocol))
;; https://github.com/org-roam/org-roam-ui
(use-package org-roam-ui
:straight
(:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out"))
:after org-roam
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
;; a hookable mode anymore, you're advised to pick something yourself
;; if you don't care about startup time, use
;; :hook (after-init . org-roam-ui-mode)
:config
(setq org-roam-ui-sync-theme t
org-roam-ui-follow t
org-roam-ui-update-on-save t
org-roam-ui-open-on-start t))
(add-hook 'python-mode-hook
(lambda ()
(define-key python-mode-map "\C-\M-n" 'python-nav-end-of-block)
(define-key python-mode-map "\C-\M-p" 'python-nav-backward-block)))
;; (global-set-key "\M-p" 'backward-paragraph)
;; (global-set-key "\M-n" 'forward-paragraph)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ignored-local-variable-values '((encoding . utf-8)))
'(package-selected-packages
'(org-roam-ui org-roam yaml-mode sudo-edit ag tablist dockerfile-mode major-mode-hydra pretty-hydra cmake-font-lock projectile company-box all-the-icons ido-yes-or-no ido-ubiquitous ido-hacks ido-vertical-mode ido-completing-read+ lsp-ido modern-cpp-font-lock cmake-mode dap-mode company lsp-ui lsp-mode which-key ace-window org-bullets flx-ido mwim expand-region smartparens smex counsel swiper ivy avy multiple-cursors doom-themes rainbow-delimiters use-package))
'(warning-suppress-types '((use-package) (comp))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment