;; Automatically generated
(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.
'(anzu-cons-mode-line-p nil)
'(mouse-wheel-progressive-speed nil)
'(mouse-wheel-scroll-amount (quote (1 ((shift) . 5) ((control)))))
'(package-selected-packages
(quote
(company-lsp emojify web-mode tide tss doom-modeline quickrun org-bullets lsp-ui flycheck-rust spaceline-all-the-icons spaceline flycheck-inline lsp-rust f lsp-mode rust-mode pdf-tools company js2-mode diff-hl editorconfig general which-key helm doom-themes evil use-package)))
'(send-mail-function (quote smtpmail-send-it)))
(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.
'(default ((t (:inherit nil :stipple nil :background "#212121" :foreground "#eeffff" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 110 :width normal :foundry "nil" :family "Iosevka"))))
'(font-lock-constant-face ((t (:foreground "#C792EA"))))
'(font-lock-keyword-face ((t (:foreground "#2BA3FF" :slant italic))))
'(font-lock-preprocessor-face ((t (:inherit bold :foreground "#2BA3FF" :slant italic :weight normal))))
'(font-lock-string-face ((t (:foreground "#C3E88D"))))
'(font-lock-type-face ((t (:foreground "#FFCB6B"))))
'(font-lock-variable-name-face ((t (:foreground "#FF5370"))))
'(helm-rg-active-arg-face ((t (:foreground "LightGreen"))))
'(helm-rg-file-match-face ((t (:foreground "LightGreen" :underline t))))
'(helm-rg-preview-line-highlight ((t (:background "LightGreen" :foreground "black"))))
'(mode-line ((t (:background "#191919" :box nil))))
'(mode-line-inactive ((t (:background "#282828" :foreground "#5B6268" :box nil))))
'(term ((t (:foreground "#fafafa")))))-
-
Save huytd/6b785bdaeb595401d69adc7797e5c22c to your computer and use it in GitHub Desktop.
| ;; OrgMode Configs | |
| (setq org-return-follows-link t) | |
| (setq org-html-validation-link nil) | |
| (setq org-todo-keywords | |
| '((sequence "TODO" "WORKING" "HOLD" "|" "DONE"))) | |
| (setq org-todo-keyword-faces | |
| '(("TODO" . "blue") | |
| ("WORKING" . "yellow") | |
| ("HOLD" . "red") | |
| ("DONE" . "green"))) | |
| (use-package org-bullets | |
| :ensure t | |
| :init | |
| (add-hook 'org-mode-hook (lambda () | |
| (org-bullets-mode 1) | |
| ;; Cochin font only available on macOS, AFAIK | |
| (setq buffer-face-mode-face '(:family "Cochin" :height 140)) | |
| (set-frame-parameter (selected-frame) 'background-mode 'light) | |
| (set-face-foreground 'default "#333333" (selected-frame)) | |
| (set-face-background 'default "#fafafa" (selected-frame)) | |
| ;; (hide-mode-line-mode 1) | |
| (buffer-face-mode)))) |
| ;; Package configs | |
| (require 'package) | |
| (setq package-enable-at-startup nil) | |
| (setq package-archives '(("org" . "http://orgmode.org/elpa/") | |
| ("gnu" . "http://elpa.gnu.org/packages/") | |
| ("melpa" . "https://melpa.org/packages/"))) | |
| (package-initialize) | |
| ;; Bootstrap `use-package` | |
| (unless (package-installed-p 'use-package) | |
| (package-refresh-contents) | |
| (package-install 'use-package)) | |
| (require 'use-package) | |
| ;; PATH | |
| (let ((path (shell-command-to-string ". ~/.bash_profile; echo -n $PATH"))) | |
| (setenv "PATH" path) | |
| (setq exec-path | |
| (append | |
| (split-string-and-unquote path ":") | |
| exec-path))) | |
| ;; Some term enhancement | |
| (defadvice term-sentinel (around my-advice-term-sentinel (proc msg)) | |
| (if (memq (process-status proc) '(signal exit)) | |
| (let ((buffer (process-buffer proc))) | |
| ad-do-it | |
| (kill-buffer buffer)) | |
| ad-do-it)) | |
| (ad-activate 'term-sentinel) | |
| (defadvice ansi-term (before force-bash) | |
| (interactive (list "/bin/zsh"))) | |
| (ad-activate 'ansi-term) | |
| ;; Other configs | |
| (setq make-backup-files nil) | |
| (setq auto-save-default nil) | |
| ;; Splash Screen | |
| (setq inhibit-startup-screen t) | |
| (setq initial-scratch-message ";; Happy Hacking") | |
| ;; Show matching parens | |
| (setq show-paren-delay 0) | |
| (show-paren-mode 1) | |
| ;; Paragraph movement | |
| (global-set-key (kbd "s-j") 'forward-paragraph) | |
| (global-set-key (kbd "s-k") 'backward-paragraph) | |
| ;; Keybinding for term mode | |
| (add-hook 'term-mode | |
| (lambda () (global-set-key (kbd "s-v") 'term-paste))) | |
| ;; OrgMode Configs | |
| (setq org-html-validation-link nil) | |
| (setq org-todo-keywords | |
| '((sequence "TODO" "WORKING" "HOLD" "|" "DONE"))) | |
| (setq org-todo-keyword-faces | |
| '(("TODO" . "blue") | |
| ("WORKING" . "yellow") | |
| ("HOLD" . "red") | |
| ("DONE" . "green"))) | |
| ;; UI configurations | |
| (scroll-bar-mode -1) | |
| (tool-bar-mode -1) | |
| (tooltip-mode -1) | |
| (menu-bar-mode -1) | |
| (global-linum-mode 1) | |
| (add-to-list 'default-frame-alist '(font . "Iosevka-11")) | |
| (add-to-list 'default-frame-alist '(height . 24)) | |
| (add-to-list 'default-frame-alist '(width . 80)) | |
| ;; Vim mode | |
| (use-package evil | |
| :ensure t | |
| :config | |
| (evil-mode 1)) | |
| (use-package evil-escape | |
| :ensure t | |
| :init | |
| (setq-default evil-escape-key-sequence "jk") | |
| :config | |
| (evil-escape-mode 1)) | |
| ;; Anzu for search matching | |
| (use-package anzu | |
| :ensure t | |
| :config | |
| (global-anzu-mode 1) | |
| (global-set-key [remap query-replace-regexp] 'anzu-query-replace-regexp) | |
| (global-set-key [remap query-replace] 'anzu-query-replace)) | |
| ;; Theme | |
| (use-package doom-themes | |
| :ensure t | |
| :config | |
| (load-theme 'doom-one t)) | |
| ;; Helm | |
| (use-package helm | |
| :ensure t | |
| :init | |
| (setq helm-M-x-fuzzy-match t | |
| helm-mode-fuzzy-match t | |
| helm-buffers-fuzzy-matching t | |
| helm-recentf-fuzzy-match t | |
| helm-locate-fuzzy-match t | |
| helm-semantic-fuzzy-match t | |
| helm-imenu-fuzzy-match t | |
| helm-completion-in-region-fuzzy-match t | |
| helm-candidate-number-list 80 | |
| helm-split-window-in-side-p t | |
| helm-move-to-line-cycle-in-source t | |
| helm-echo-input-in-header-line t | |
| helm-autoresize-max-height 0 | |
| helm-autoresize-min-height 20) | |
| :config | |
| (helm-mode 1)) | |
| ;; RipGrep | |
| (use-package helm-rg :ensure t) | |
| ;; Projectile | |
| (use-package projectile | |
| :ensure t | |
| :init | |
| (setq projectile-require-project-root nil) | |
| :config | |
| (projectile-mode 1)) | |
| ;; Helm Projectile | |
| (use-package helm-projectile | |
| :ensure t | |
| :init | |
| (setq helm-projectile-fuzzy-match t) | |
| :config | |
| (helm-projectile-on)) | |
| ;; All The Icons | |
| (use-package all-the-icons :ensure t) | |
| ;; NeoTree | |
| (use-package neotree | |
| :ensure t | |
| :init | |
| (setq neo-theme (if (display-graphic-p) 'icons 'arrow))) | |
| ;; Which Key | |
| (use-package which-key | |
| :ensure t | |
| :init | |
| (setq which-key-separator " ") | |
| (setq which-key-prefix-prefix "+") | |
| :config | |
| (which-key-mode)) | |
| ;; Custom keybinding | |
| (use-package general | |
| :ensure t | |
| :config (general-define-key | |
| :states '(normal visual insert emacs) | |
| :prefix "SPC" | |
| :non-normal-prefix "M-SPC" | |
| "/" '(helm-projectile-rg :which-key "ripgrep") | |
| "TAB" '(switch-to-prev-buffer :which-key "previous buffer") | |
| "SPC" '(helm-M-x :which-key "M-x") | |
| "pf" '(helm-projectile-find-file :which-key "find files") | |
| "pp" '(helm-projectile-switch-project :which-key "switch project") | |
| "pb" '(helm-projectile-switch-to-buffer :which-key "switch buffer") | |
| "pr" '(helm-show-kill-ring :which-key "show kill ring") | |
| ;; Buffers | |
| "bb" '(helm-mini :which-key "buffers list") | |
| ;; Window | |
| "wl" '(windmove-right :which-key "move right") | |
| "wh" '(windmove-left :which-key "move left") | |
| "wk" '(windmove-up :which-key "move up") | |
| "wj" '(windmove-down :which-key "move bottom") | |
| "w/" '(split-window-right :which-key "split right") | |
| "w-" '(split-window-below :which-key "split bottom") | |
| "wx" '(delete-window :which-key "delete window") | |
| "qz" '(delete-frame :which-key "delete frame") | |
| "qq" '(kill-emacs :which-key "quit") | |
| ;; NeoTree | |
| "ft" '(neotree-toggle :which-key "toggle neotree") | |
| ;; Others | |
| "at" '(ansi-term :which-key "open terminal") | |
| )) | |
| ;; Fancy titlebar for MacOS | |
| (add-to-list 'default-frame-alist '(ns-transparent-titlebar . t)) | |
| (add-to-list 'default-frame-alist '(ns-appearance . dark)) | |
| (setq ns-use-proxy-icon nil) | |
| (setq frame-title-format nil) | |
| ;; Flycheck | |
| (use-package flycheck | |
| :ensure t | |
| :init (global-flycheck-mode)) | |
| ;; LSP | |
| (use-package lsp-mode | |
| :ensure t | |
| :init | |
| (add-hook 'prog-major-mode #'lsp-prog-major-mode-enable)) | |
| (use-package lsp-ui | |
| :ensure t | |
| :init | |
| (add-hook 'lsp-mode-hook 'lsp-ui-mode)) | |
| ;; Company mode | |
| (use-package company | |
| :ensure t | |
| :init | |
| (setq company-minimum-prefix-length 3) | |
| (setq company-auto-complete nil) | |
| (setq company-idle-delay 0) | |
| (setq company-require-match 'never) | |
| (setq company-frontends | |
| '(company-pseudo-tooltip-unless-just-one-frontend | |
| company-preview-frontend | |
| company-echo-metadata-frontend)) | |
| (setq tab-always-indent 'complete) | |
| (defvar completion-at-point-functions-saved nil) | |
| :config | |
| (global-company-mode 1) | |
| (define-key company-active-map (kbd "TAB") 'company-complete-common-or-cycle) | |
| (define-key company-active-map (kbd "<tab>") 'company-complete-common-or-cycle) | |
| (define-key company-active-map (kbd "S-TAB") 'company-select-previous) | |
| (define-key company-active-map (kbd "<backtab>") 'company-select-previous) | |
| (define-key company-mode-map [remap indent-for-tab-command] 'company-indent-for-tab-command) | |
| (defun company-indent-for-tab-command (&optional arg) | |
| (interactive "P") | |
| (let ((completion-at-point-functions-saved completion-at-point-functions) | |
| (completion-at-point-functions '(company-complete-common-wrapper))) | |
| (indent-for-tab-command arg))) | |
| (defun company-complete-common-wrapper () | |
| (let ((completion-at-point-functions completion-at-point-functions-saved)) | |
| (company-complete-common)))) | |
| (use-package company-lsp | |
| :ensure t | |
| :init | |
| (push 'company-lsp company-backends)) | |
| ;; Powerline | |
| (use-package spaceline | |
| :ensure t | |
| :init | |
| (setq powerline-default-separator 'slant) | |
| :config | |
| (spaceline-emacs-theme) | |
| (spaceline-toggle-minor-modes-off) | |
| (spaceline-toggle-buffer-size-off) | |
| (spaceline-toggle-evil-state-on)) | |
| ;;;;;;;;;;;;;;;;;;;;;;; | |
| ;; Language Supports ;; | |
| ;;;;;;;;;;;;;;;;;;;;;;; | |
| ;; JavaScript | |
| (use-package js2-mode | |
| :ensure t | |
| :init | |
| (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))) | |
| (use-package tern :ensure t) | |
| ;; Rust | |
| (use-package rust-mode | |
| :ensure t | |
| :init | |
| (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode))) | |
| (use-package lsp-rust | |
| :ensure t | |
| :init | |
| (setq lsp-rust-rls-command '("rustup" "run" "nightly" "rls")) | |
| (add-hook 'rust-mode-hook #'lsp-rust-enable) | |
| (add-hook 'rust-mode-hook #'flycheck-mode)) | |
| ;; Typescript | |
| (use-package typescript-mode | |
| :ensure t | |
| :init | |
| (add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-mode))) | |
| ;; LSP for JavaScript and TypeScript | |
| (use-package lsp-javascript-typescript | |
| :ensure t | |
| :init | |
| (add-to-list 'js-mode-hook #'lsp-javascript-typescript-enable) | |
| (add-to-list 'typescript-mode-hook #'lsp-javascript-typescript-enable)) | |
| ;; Auto-generated |
isn't Tide superseded by lsp-mode and company-lsp?
Which part makes powerline look how it does in emacs.md?
I'm getting the error Invalid read syntax: ). Am I doing something wrong? Everything seems to be working just fine! I saved init.el as a raw file and haven't modified it at all.
@shackra I didn't try lsp-mode with typescript yet :D
@Watkins it's doom-modeline
@StevenSeiden probably there is an extra paren somewhere, I'll find sometime to fix it
@StevenSeiden: problem fixed :D
When I try to use "/" '(helm-projectile-rg :which-key "ripgrep" and press SPC-/ in a project and type two chars, I get the error: Error running timer: (error "Candidates function 'helm-rg--make-process' should run a process")
(not sure if you even look at this anymore, but thanks for the guide and config file anyways!)


I bumped down the candidate number to 25. However, I switched to using
projectile-find-file👌This works really fast for me.