Advertisement
NadaBupkis

Untitled

Feb 17th, 2023
2,461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 6.00 KB | None | 0 0
  1. ;;; package --- Emacs's Conf
  2. ;;; Commentary:
  3.  
  4. ;; Package configs
  5. (require 'package)
  6.  
  7. (setq locate-command "mdfind")
  8.  
  9. (setq gc-cons-threshold (* 50 1000 1000))
  10.  
  11. (setq package-enable-at-startup nil)
  12. ;; set up package sources
  13. (setq package-archives '(("elpa" . "http://elpa.gnu.org/packages/")
  14.                          ("melpa" . "http://melpa.org/packages/")))
  15.  
  16. (package-initialize)
  17. (unless (package-installed-p 'use-package)
  18.   (package-refresh-contents)
  19.   (package-install 'use-package))
  20.  
  21. (require 'use-package)
  22. (set-face-attribute 'default nil :font "Fira Mono" :height 150)
  23. (desktop-save-mode 1)
  24.  
  25. ;; display line numbers
  26. (global-display-line-numbers-mode t)
  27. ;; Disable line numbers for some modes
  28. (dolist (mode '(org-mode-hook
  29.                 term-mode-hook
  30.                 shell-mode-hook
  31.                 treemacs-mode-hook
  32.                 eshell-mode-hook))
  33.   (add-hook mode (lambda () (display-line-numbers-mode 0))))
  34.  
  35. (global-auto-revert-mode)
  36. (recentf-mode 1)
  37.  
  38. (use-package which-key
  39.   :config
  40.   (setq which-key-prefix-prefix "+")
  41.   (which-key-mode 1))
  42.  
  43. ;; Flycheck
  44. (use-package flycheck
  45.   :ensure t
  46.   :init (global-flycheck-mode)
  47.   :config  (setq flycheck-check-syntax-automatically '(save mode-enabled)))
  48. ;; Flycheck tooltip
  49. (use-package flycheck-pos-tip
  50.   :ensure t
  51.   :config
  52.   (setq flycheck-pos-tip-timeout 10
  53.         flycheck-display-errors-delay 0.5))
  54.  
  55. (add-hook 'global-flycheck-mode-hook (lambda ()
  56.                                        (flycheck-pos-tip-mode)))
  57.  
  58. ;; Language Server Protocol
  59. (use-package lsp-mode
  60.    :ensure t
  61.    :commands lsp
  62.    :init
  63.    (lsp)
  64.    :config
  65.    (add-hook 'c-mode-hook 'lsp)
  66.    (add-hook 'c++-mode-hook 'lsp)
  67.    (add-hook 'python-mode-hook 'lsp)
  68.    (add-hook 'ess-mode-hook 'lsp))
  69.  
  70. (use-package projectile
  71.   :config
  72.   (projectile-mode +1)
  73.   ;; Recommended keymap prefix on macOS
  74.   (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map))
  75.  
  76. ;; Org mode packages and settings
  77. (setq org-src-fontify-natively t)
  78. (setq org-src-tab-acts-natively t)
  79.  
  80. (use-package ox-pandoc
  81.   :after ox
  82.   :ensure t)
  83. (use-package org-bullets
  84.   :after ox
  85.   :ensure t)
  86. (use-package ox-clip
  87.   :ensure t
  88.   :after ox)
  89.  
  90. (add-hook 'org-mode-hook
  91.       (lambda ()
  92.             (org-bullets-mode)))
  93. (add-hook 'text-mode-hook 'auto-fill-mode)
  94. (add-hook 'gfm-mode-hook 'auto-fill-mode)
  95. (add-hook 'org-mode-hook 'auto-fill-mode)
  96.  
  97. (use-package ggtags
  98.   :ensure t
  99.   :config
  100.   (add-hook 'c-mode-hook 'ggtags-mode)
  101.   (add-hook 'c++-mode 'ggtags-mode))
  102.  
  103. (use-package dired
  104.   :ensure nil
  105.   :config
  106.   (when (string= system-type "darwin")
  107.     (setq dired-use-ls-dired t
  108.           insert-directory-program "gls"))
  109.   :custom
  110.   (dired-listing-switches "-aBhl --group-directories-first"))
  111.  
  112. (require 'ansi-color)
  113. (add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)
  114.  
  115. ;; hideshow minor mode in all programming modes
  116. (add-hook 'prog-mode-hook #'hs-minor-mode)
  117.  
  118. (use-package dumb-jump
  119.   :ensure t
  120.   :config
  121.   (add-hook 'xref-backend-functions #'dumb-jump-xref-activate)
  122.   (setq dumb-jump-prefer-searcher 'rg))
  123.  
  124. ;; Enable vertico
  125. (use-package vertico
  126.   :ensure t
  127.   :init
  128.   (vertico-mode))
  129.  
  130. ;; Persist history over Emacs restarts. Vertico sorts by history position.
  131. (use-package savehist
  132.   :init
  133.   (savehist-mode))
  134.  
  135. ;; https://github.com/minad/corfu
  136. (use-package corfu
  137.   :ensure t
  138.   ;; Optional customizations
  139.   :custom
  140.   ;; (corfu-cycle t)                ;; Enable cycling for `corfu-next/previous'
  141.   (corfu-auto t)                 ;; Enable auto completion
  142.   (corfu-separator ?\s)          ;; Orderless field separator
  143.   :init
  144.   (global-corfu-mode))
  145.  
  146. ;; A few more useful configurations...
  147. (use-package emacs
  148.   :init
  149.   ;; Add prompt indicator to `completing-read-multiple'.
  150.   ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
  151.   (defun crm-indicator (args)
  152.     (cons (format "[CRM%s] %s"
  153.                   (replace-regexp-in-string
  154.                    "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
  155.                    crm-separator)
  156.                   (car args))
  157.           (cdr args)))
  158.   (advice-add #'completing-read-multiple :filter-args #'crm-indicator)
  159.   ;; Do not allow the cursor in the minibuffer prompt
  160.   (setq completion-cycle-threshold 3)
  161.   (setq minibuffer-prompt-properties
  162.         '(read-only t cursor-intangible t face minibuffer-prompt))
  163.   (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
  164.   ;; Enable recursive minibuffers
  165.   (setq enable-recursive-minibuffers t))
  166.  
  167. ;; Optionally use the `orderless' completion style.
  168. (use-package orderless
  169.   :ensure t
  170.   :init (icomplete-mode)
  171.   (setq completion-styles '(orderless basic)
  172.         completion-category-defaults nil
  173.         completion-category-overrides '((file (styles partial-completion)))))
  174.  
  175. (use-package ctrlf
  176.   :ensure t
  177.   :init
  178.   (ctrlf-mode +1))
  179.  
  180. (use-package consult
  181.   :ensure t
  182.   :init
  183.   (setq completion-styles '(substring basic)))
  184.  
  185. (midnight-mode)
  186. ;; Emacs.clr file can become corrupted and cause the emacs build to fail
  187. (add-hook 'midnight-hook
  188.       (lambda ()
  189.         (if (file-exists-p "~/Library/Colors/Emacs.clr")
  190.         (delete-file "~/Library/Colors/Emacs.clr") nil)))
  191.  
  192. (midnight-delay-set 'midnight-delay "1:30am")
  193.  
  194. (org-babel-do-load-languages
  195.  'org-babel-load-languages '((C . t)
  196.                  (R . t)
  197.                  (emacs-lisp . t)
  198.                  (python . t)))
  199.  
  200. (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
  201.  
  202. ;; ivy mode
  203. (use-package ivy
  204.   :ensure t
  205.   :after (orderless)
  206.   :config
  207.   (ivy-mode 1)
  208.   (add-to-list 'ivy-highlight-functions-alist
  209.            '(orderless-ivy-re-builder . orderless-ivy-highlight))
  210.   (setq ivy-use-virtual-buffers t
  211.     ivy-re-builders-alist nil
  212.     enable-recursive-minibuffers t))
  213.  
  214. (use-package async
  215.   :ensure t)
  216. (autoload 'dired-async-mode "dired-async.el" nil t)
  217. (dired-async-mode 1)
  218. (async-bytecomp-package-mode 1)
  219.  
  220. ;; Make gc pauses faster by decreasing the threshold.
  221. (setq gc-cons-threshold (* 8 1024 1024))
  222.  
  223. (setq custom-file "~/.emacs.d/custom.el")
  224. (load custom-file)
  225.  
  226. ;;; init.el ends here
  227.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement