-
-
Save eriksape/03d849698c316a7f26d4655503b8b885 to your computer and use it in GitHub Desktop.
20210215 - Emacs config for typescript and CRA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(eval-and-compile | |
(customize-set-variable | |
'package-archives '(("org" . "https://orgmode.org/elpa/") | |
("melpa" . "https://melpa.org/packages/") | |
("gnu" . "https://elpa.gnu.org/packages/"))) | |
(package-initialize) | |
(unless (package-installed-p 'use-package) | |
(package-refresh-contents) | |
(package-install 'use-package))) | |
;; IDO | |
(setq ido-enable-flex-matching t) | |
(setq ido-everywhere t) | |
(ido-mode 1) | |
;; Built-in project package | |
(require 'project) | |
(global-set-key (kbd "C-x p f") #'project-find-file) | |
;; Preferred font | |
;; Load pragmatapro-lig.el | |
;;(add-to-list 'load-path "/home/luke/emacs/custom-packages/emacs-pragmatapro-ligatures") | |
;;(require 'pragmatapro-lig) | |
;;(add-to-list 'default-frame-alist '(font . "PragmataPro Mono Liga-10")) | |
;; Enable pragmatapro-lig-mode for specific modes | |
;;(add-hook 'text-mode-hook 'pragmatapro-lig-mode) | |
;;(add-hook 'prog-mode-hook 'pragmatapro-lig-mode) | |
;; or globally | |
;;(pragmatapro-lig-global-mode) | |
;;(setq line-spacing 0) | |
;; General settings | |
(delete-selection-mode t) | |
(setq gc-cons-threshold 100000000) | |
(setq read-process-output-max (* 1024 1024)) ;; 1mb | |
(setq auto-save-default nil) | |
(setq make-backup-files nil) | |
(setq create-lockfiles nil) | |
(global-display-line-numbers-mode) | |
(use-package exec-path-from-shell | |
:ensure t | |
:config | |
(exec-path-from-shell-initialize)) | |
(use-package which-key | |
:ensure t | |
:config | |
(which-key-mode)) | |
(use-package expand-region | |
:ensure t | |
:bind (("C-=" . er/expand-region) | |
("C--" . er/contract-region))) | |
;; json-mode | |
(use-package json-mode | |
:ensure t) | |
;; 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) | |
("\\.jsx\\'" . web-mode) | |
("\\.ts\\'" . web-mode) | |
("\\.tsx\\'" . web-mode) | |
("\\.html\\'" . web-mode)) | |
:commands web-mode) | |
;; company | |
(setq company-minimum-prefix-length 1 | |
company-idle-delay 0.0) | |
(use-package company | |
:ensure t | |
:config (global-company-mode t)) | |
;; magit | |
(use-package magit | |
:ensure t | |
:bind ( | |
("C-x g" . magit-status))) | |
;; theme | |
(use-package modus-operandi-theme | |
:ensure t | |
:config (load-theme 'modus-operandi t)) | |
;; lsp-mode | |
(setq lsp-log-io nil) ;; Don't log everything = speed | |
(setq lsp-keymap-prefix "C-c l") | |
(setq lsp-restart 'auto-restart) | |
(setq lsp-ui-sideline-show-diagnostics t) | |
(setq lsp-ui-sideline-show-hover t) | |
(setq lsp-ui-sideline-show-code-actions t) | |
(use-package lsp-mode | |
:ensure t | |
:hook ( | |
(web-mode . lsp-deferred) | |
(lsp-mode . lsp-enable-which-key-integration) | |
) | |
:commands lsp-deferred) | |
(use-package lsp-ui | |
:ensure t | |
:commands lsp-ui-mode) | |
(defun enable-minor-mode (my-pair) | |
"Enable minor mode if filename match the regexp. MY-PAIR is a cons cell (regexp . minor-mode)." | |
(if (buffer-file-name) | |
(if (string-match (car my-pair) buffer-file-name) | |
(funcall (cdr my-pair))))) | |
(use-package prettier-js | |
:ensure t) | |
(add-hook 'web-mode-hook #'(lambda () | |
(enable-minor-mode | |
'("\\.jsx?\\'" . prettier-js-mode)) | |
(enable-minor-mode | |
'("\\.tsx?\\'" . prettier-js-mode)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment