Skip to content

Instantly share code, notes, and snippets.

@ncouture
Last active November 9, 2020 00:12
Show Gist options
  • Save ncouture/c1f74216fb345bab448c4721cd08a38b to your computer and use it in GitHub Desktop.
Save ncouture/c1f74216fb345bab448c4721cd08a38b to your computer and use it in GitHub Desktop.
elisp all over my time
(require 'package)
(require 'init-packages)
(require-package 'tide)
(require-package 'ansi-color)
(require-package 'web-mode)
(require-package 'rjsx-mode)
(require-package 'js2-mode)
(require 'tide)
(require 'ansi-color)
(require 'web-mode)
(require 'js2-mode)
(require 'rjsx-mode)
(defun setup-tide-mode ()
(interactive)
(tide-setup)
(flycheck-mode +1)
(setq flycheck-check-syntax-automatically '(save mode-enabled))
(eldoc-mode +1)
(tide-hl-identifier-mode +1)
(company-mode +1)
(run-import-js +1)
(tide-hl-identifier-mode +1)
(setq web-mode-enable-auto-quoting nil)
(setq web-mode-markup-indent-offset 2)
(setq web-mode-code-indent-offset 2)
(setq web-mode-attr-indent-offset 2)
(setq web-mode-attr-value-indent-offset 2)
;;;(setq lsp-eslint-server-command '("node" (concat (getenv "HOME") "/var/src/vscode-eslint/server/out/eslintServer.js") "--stdio"))
(set (make-local-variable 'company-backends)
'((company-tide company-files :with company-yasnippet)
(company-dabbrev-code company-dabbrev))))
;; hooks
(add-hook 'before-save-hook 'tide-format-before-save)
;; use rjsx-mode for .js* files except json and use tide with rjsx
(add-to-list 'auto-mode-alist '("\\.js.*$" . rjsx-mode))
(add-to-list 'auto-mode-alist '("\\.json$" . json-mode))
(add-hook 'rjsx-mode-hook 'tide-setup-hook)
;; web-mode extra config
(add-hook 'web-mode-hook 'tide-setup-hook
(lambda () (pcase (file-name-extension buffer-file-name)
("tsx" ('tide-setup-hook))
(_ (my-web-mode-hook)))))
;; enable typescript-tslint checker
(flycheck-add-mode 'typescript-tslint 'web-mode)
(add-hook 'web-mode-hook 'company-mode)
(add-hook 'web-mode-hook 'prettier-js-mode)
(add-hook 'web-mode-hook #'turn-on-smartparens-mode t)
(require 'init-utils)
(after-load 'rjsx-mode
(define-key rjsx-mode-map "<" nil)
(define-key rjsx-mode-map (kbd "C-d") nil)
(define-key rjsx-mode-map ">" nil))
;; aligns annotation to the right hand side
(setq company-tooltip-align-annotations t)
(defun colorize-compilation-buffer ()
(ansi-color-apply-on-region compilation-filter-start (point-max)))
(setq tide-format-options '(:insertSpaceAfterFunctionKeywordForAnonymousFunctions t :placeOpenBraceOnNewLineForFunctions nil))
;; formats the buffer before saving
(add-hook 'before-save-hook 'tide-format-before-save)
(add-hook 'typescript-mode-hook #'setup-tide-mode)
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
(add-hook 'typescript-mode 'eslint)
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode))
(add-hook 'web-mode-hook
(lambda ()
(when (string-equal "tsx" (file-name-extension buffer-file-name))
(setup-tide-mode))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment