373 lines
9.3 KiB
Org Mode
373 lines
9.3 KiB
Org Mode
#+TITLE: Simponic's Settings
|
||
#+AUTHOR: Simponic
|
||
#+STARTUP: fold
|
||
|
||
* Packages
|
||
** Melpa
|
||
#+BEGIN_SRC emacs-lisp
|
||
(require 'package)
|
||
(add-to-list 'package-archives
|
||
'("melpa" . "https://melpa.org/packages/") t)
|
||
#+END_SRC
|
||
* General emacs
|
||
** Tab bar mode
|
||
#+BEGIN_SRC emacs-lisp
|
||
(defun my-tabbar-buffer-groups () ;; customize to show all normal files in one group
|
||
(list (cond ((string-equal "*" (substring (buffer-name) 0 1)) "emacs")
|
||
((eq major-mode 'dired-mode) "emacs")
|
||
(t "user"))))
|
||
(setq tabbar-buffer-groups-function 'my-tabbar-buffer-groups)
|
||
(tab-bar-mode)
|
||
#+END_SRC
|
||
** Indentation
|
||
#+BEGIN_SRC emacs-lisp
|
||
(setq default-tab-width 2)
|
||
(setq-default tab-width 2)
|
||
(setq-default indent-tabs-mode nil)
|
||
#+END_SRC
|
||
** Line numbers
|
||
#+BEGIN_SRC emacs-lisp
|
||
(setq display-line-numbers-type 'relative)
|
||
(global-display-line-numbers-mode)
|
||
#+END_SRC
|
||
** Filesystem stuff
|
||
#+BEGIN_SRC emacs-lisp
|
||
(setq auto-save-default nil)
|
||
(setq make-backup-files nil)
|
||
(setq create-lockfiles nil)
|
||
(global-auto-revert-mode t) ;; Change files on disk as they are updated
|
||
#+END_SRC
|
||
** GUI stuff
|
||
#+BEGIN_SRC emacs-lisp
|
||
(menu-bar-mode -1)
|
||
(setq inhibit-startup-screen t) ;; Startup screen
|
||
(if (display-graphic-p)
|
||
(funcall (lambda ()
|
||
(tool-bar-mode -1) ;; System bar
|
||
(set-fringe-mode '(1 . 1)) ;; Minimize arrows before and after wrapped lines by setting fringe to 1px
|
||
(toggle-scroll-bar -1)))) ;; Scroll bar
|
||
(setq frame-resize-pixelwise t) ;; Use 100% of window space
|
||
#+END_SRC
|
||
** System path (macos)
|
||
#+BEGIN_SRC emacs-lisp
|
||
;; Use system path on macos - needed for node
|
||
|
||
(use-package exec-path-from-shell
|
||
:ensure t
|
||
:init
|
||
(when (memq window-system '(mac ns x))
|
||
(exec-path-from-shell-initialize)))
|
||
#+END_SRC
|
||
|
||
* Theming
|
||
** Highlight current line
|
||
#+BEGIN_SRC emacs-lisp
|
||
(global-hl-line-mode)
|
||
#+END_SRC
|
||
** Font
|
||
#+BEGIN_SRC emacs-lisp
|
||
(let ((font "CozetteVector-14"))
|
||
(set-face-attribute 'default nil :font font)
|
||
(set-frame-font font nil t))
|
||
#+END_SRC
|
||
** Doom-themes
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package doom-themes
|
||
:ensure t
|
||
:config
|
||
;; Global settings (defaults)
|
||
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
|
||
doom-themes-enable-italic t) ; if nil, italics is universally disabled
|
||
(load-theme 'doom-gruvbox-light t)
|
||
|
||
;; Enable flashing mode-line on errors
|
||
(doom-themes-visual-bell-config)
|
||
;; Enable custom neotree theme (all-the-icons must be installed!)
|
||
(doom-themes-neotree-config)
|
||
;; or for treemacs users
|
||
(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme
|
||
(doom-themes-treemacs-config)
|
||
;; Corrects (and improves) org-mode's native fontification.
|
||
(doom-themes-org-config))
|
||
#+END_SRC
|
||
** Doom-modeline
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package doom-modeline
|
||
:ensure t
|
||
:init (doom-modeline-mode 1))
|
||
#+END_SRC
|
||
** All the icons
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package all-the-icons
|
||
:ensure t)
|
||
#+END_SRC
|
||
|
||
* Projectile
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package projectile
|
||
:bind ("C-c p" . 'projectile-command-map)
|
||
:init (projectile-mode +1) (setq projectile-enable-caching t)
|
||
:ensure t)
|
||
#+END_SRC
|
||
|
||
* Swiper, Ivy
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package counsel
|
||
:ensure t
|
||
:bind
|
||
("C-s" . 'swiper-isearch)
|
||
("M-x" . 'counsel-M-x)
|
||
:init
|
||
(setq ivy-use-virtual-buffers t)
|
||
(setq enable-recursive-minibuffers t)
|
||
(ivy-mode 1))
|
||
#+END_SRC
|
||
|
||
* Neotree
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package neotree
|
||
:ensure t
|
||
:bind ("C-c j" . 'neotree-toggle)
|
||
:init
|
||
;; slow rendering
|
||
(setq inhibit-compacting-font-caches t)
|
||
|
||
;; set icons theme
|
||
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
|
||
|
||
;; Every time when the neotree window is opened, let it find current file and jump to node
|
||
(setq neo-smart-open t)
|
||
|
||
;; When running ‘projectile-switch-project’ (C-c p p), ‘neotree’ will change root automatically
|
||
(setq projectile-switch-project-action 'neotree-projectile-action)
|
||
|
||
(setq neo-window-width 35)
|
||
|
||
;; show hidden files
|
||
(setq-default neo-show-hidden-files t))
|
||
#+END_SRC
|
||
|
||
* Org mode
|
||
** General
|
||
#+BEGIN_SRC emacs-lisp
|
||
(setq org-startup-indented t)
|
||
#+END_SRC
|
||
** Babel
|
||
#+BEGIN_SRC emacs-lisp
|
||
(org-babel-do-load-languages
|
||
'org-babel-load-languages
|
||
'((lisp . t)
|
||
(elixir . t)
|
||
(emacs-lisp . t)
|
||
(python . t)))
|
||
#+END_SRC
|
||
|
||
*** Elixir
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package ob-elixir
|
||
:ensure t)
|
||
#+END_SRC
|
||
** org-bullets
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package org-bullets
|
||
:ensure t
|
||
:init
|
||
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
|
||
#+END_SRC
|
||
** org-appear
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package org-appear
|
||
:ensure t
|
||
:init
|
||
(add-hook 'org-mode-hook 'org-appear-mode))
|
||
#+END_SRC
|
||
** Presentations
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package org-present
|
||
:ensure t
|
||
:straight '(org-present
|
||
:type git
|
||
:host github
|
||
:repo "rlister/org-present"))
|
||
#+END_SRC
|
||
|
||
* Development
|
||
** Git
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package magit :ensure t)
|
||
#+END_SRC
|
||
** Autocomplete
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package auto-complete :ensure t)
|
||
(ac-config-default)
|
||
#+END_SRC
|
||
** Company mode
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package company
|
||
:ensure t
|
||
:init
|
||
(global-company-mode t)
|
||
:bind (:map company-active-map
|
||
("C-n" . company-select-next)
|
||
("C-p" . company-select-previous))
|
||
:config
|
||
(setq company-idle-delay 0.3))
|
||
#+END_SRC
|
||
** LSP Mode
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package lsp-mode
|
||
:ensure t
|
||
:init
|
||
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||
(setq lsp-keymap-prefix "C-c l")
|
||
:hook ((python-mode . lsp) ;; pip install python-lsp-server pyls-black pyls-isort pyls-mypy
|
||
(elixir-mode . lsp)
|
||
(rust-mode . lsp)
|
||
(java-mode . lsp)
|
||
(php-mode . lsp)
|
||
(typescript-mode . lsp) ;; npm install -g typescript typescript-language-server
|
||
(lsp-mode . lsp-enable-which-key-integration))
|
||
:config (lsp-register-custom-settings
|
||
'(("pyls.plugins.pyls_mypy.enabled" t t)
|
||
("pyls.plugins.pyls_mypy.live_mode" nil t)
|
||
("pyls.plugins.pyls_black.enabled" t t)
|
||
("pyls.plugins.pyls_isort.enabled" t t)))
|
||
:commands lsp)
|
||
|
||
#+END_SRC
|
||
** Languages
|
||
*** Common Lisp
|
||
**** Rainbow Parentheses
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package rainbow-delimiters :ensure t)
|
||
(add-hook 'lisp-mode-hook #'rainbow-delimiters-mode)
|
||
#+END_SRC
|
||
|
||
**** Slime
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package slime
|
||
:ensure t
|
||
:init
|
||
(setq inferior-lisp-program "sbcl"))
|
||
#+END_SRC
|
||
**** AC-Slime
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package ac-slime
|
||
:ensure t
|
||
:straight '(ac-slime
|
||
:type git
|
||
:host github
|
||
:repo "purcell/ac-slime"))
|
||
(add-hook 'slime-mode-hook 'set-up-slime-ac)
|
||
(add-hook 'slime-repl-mode-hook 'set-up-slime-ac)
|
||
(eval-after-load "auto-complete"
|
||
'(add-to-list 'ac-modes 'slime-repl-mode))
|
||
|
||
#+END_SRC
|
||
*** Elixir
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package elixir-mode
|
||
:ensure t
|
||
:hook ((before-save . elixir-format)))
|
||
#+END_SRC
|
||
*** Rust
|
||
After installing the ~rust-analyzer~ program, the following can be used:
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package rust-mode
|
||
:ensure t)
|
||
(setq lsp-rust-server 'rust-analyzer)
|
||
#+END_SRC
|
||
|
||
*** Web Stuff
|
||
**** TIDE
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package tide
|
||
:ensure t
|
||
:after (typescript-mode company flycheck)
|
||
:hook ((typescript-mode . tide-setup)
|
||
(typescript-mode . tide-hl-identifier-mode)
|
||
(before-save . tide-format-before-save)))
|
||
#+END_SRC
|
||
**** Web Mode
|
||
#+BEGIN_SRC emacs-lisp
|
||
;; web-mode
|
||
(setq web-mode-markup-indent-offset 2)
|
||
(setq web-mode-code-indent-offset 2)
|
||
(setq web-mode-css-indent-offset 2)
|
||
(use-package web-mode
|
||
:ensure t
|
||
:mode (("\\.js\\'" . web-mode)
|
||
("\\.scss\\'" . web-mode)
|
||
("\\.css\\'" . web-mode)
|
||
("\\.jsx\\'" . web-mode)
|
||
("\\.ts\\'" . web-mode)
|
||
("\\.tsx\\'" . web-mode)
|
||
("\\.html\\'" . web-mode))
|
||
:commands web-mode)
|
||
#+END_SRC
|
||
**** Prettier
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package prettier-js
|
||
:ensure t)
|
||
(add-hook 'js2-mode-hook 'prettier-js-mode)
|
||
(add-hook 'web-mode-hook 'prettier-js-mode)
|
||
#+END_SRC
|
||
**** Prisma
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package prisma-mode
|
||
:ensure t
|
||
:straight '(prisma-mode
|
||
:type git
|
||
:host github
|
||
:repo "pimeys/emacs-prisma-mode"))
|
||
#+END_SRC
|
||
**** Svelte
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package svelte-mode
|
||
:ensure t
|
||
:straight '(svelte-mode
|
||
:type git
|
||
:host github
|
||
:repo "leafOfTree/svelte-mode"))
|
||
#+END_SRC
|
||
*** Kotlin
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package kotlin-mode
|
||
:ensure t)
|
||
#+END_SRC
|
||
*** Java
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package lsp-java
|
||
:config (add-hook 'java-mode-hook 'lsp)
|
||
:ensure t)
|
||
#+END_SRC
|
||
|
||
#+RESULTS:
|
||
: t
|
||
*** PHP
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package php-mode
|
||
:ensure t)
|
||
#+END_SRC
|
||
|
||
#+RESULTS:
|
||
|
||
** Format All The Buffers
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package format-all
|
||
:ensure t)
|
||
(add-hook 'prog-mode-hook 'format-all-mode)
|
||
(add-hook 'format-all-mode-hook 'format-all-ensure-formatter)
|
||
#+END_SRC
|
||
|
||
#+RESULTS:
|
||
| format-all-ensure-formatter |
|
||
|
||
* Elcord
|
||
#+BEGIN_SRC emacs-lisp
|
||
(use-package elcord
|
||
:ensure t)
|
||
|
||
(elcord-mode)
|
||
#+END_SRC
|