Skip to content

Instantly share code, notes, and snippets.

@aczzdx
Created January 16, 2020 07:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aczzdx/f118013e2b7a89428bfca64f33c6e909 to your computer and use it in GitHub Desktop.
Save aczzdx/f118013e2b7a89428bfca64f33c6e909 to your computer and use it in GitHub Desktop.
my emacs.d
;; Setup Use-Package
(require-package 'use-package)
;; Enable defer and ensure by default for use-package
(setq use-package-always-defer t
use-package-always-ensure t)
;; Enable somehting
;; Enable scala-mode and sbt-mode
(use-package scala-mode
:mode "\\.s\\(cala\\|bt\\)$")
(use-package sbt-mode
:commands sbt-start sbt-command
:config
;; WORKAROUND: https://github.com/ensime/emacs-sbt-mode/issues/31
;; allows using SPACE when in the minibuffer
(substitute-key-definition
'minibuffer-complete-word
'self-insert-command
minibuffer-local-completion-map))
;; Enable nice rendering of diagnostics like compile errors.
(use-package flycheck
:init (global-flycheck-mode))
(use-package lsp-mode
;; Optional - enable lsp-mode automatically in scala files
;; :hook (prog-mode . lsp)
:config (setq lsp-prefer-flymake nil)
:commands (lsp))
(use-package lsp-ui
:commands lsp-ui-mode)
(use-package company-lsp
:commands company-lsp)
;; treemacs
(use-package treemacs)
;; org-notes
;; (use-package ob-haskell)
;; (use-package ob-rust)
;; rust
(when (maybe-require-package 'rust-mode)
(when (maybe-require-package 'company)
(progn
(require 'rust-mode)
(define-key-after rust-mode-map (kbd "TAB") #'company-indent-or-complete-common)
(add-hook 'racer-mode-hook #'eldoc-mode)
)
)
)
(define-key-after rust-mode-map (kbd "RET") #'newline-and-indent)
(bind-key (kbd "C-c ]") #'hs-toggle-hiding)
;; Add company-lsp backend for metals
(use-package company-lsp)
;; yas
;; flycheck
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++17")))
;; tab-nine
(use-package company-tabnine :ensure t)
(require 'company)
(add-to-list 'company-backends #'company-tabnine)
;; tab-nine recommendation
(setq company-idle-delay 0)
(setq company-show-numbers t)
;; angular + typescript
(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 is an optional dependency. You have to
;; install it separately via package-install
;; `M-x package-install [ret] company`
(company-mode +1))
;; aligns annotation to the right hand side
(setq company-tooltip-align-annotations t)
;; formats the buffer before saving
(add-hook 'before-save-hook 'tide-format-before-save)
(add-hook 'typescript-mode-hook #'setup-tide-mode)
;; ccls
(use-package ccls)
(setq ccls-executable "/usr/local/Cellar/ccls/0.20190823.3/bin/ccls")
(use-package ccls
:hook ((c-mode c++-mode objc-mode cuda-mode) .
(lambda () (require 'ccls) (lsp))))
(setq ccls-initialization-options '(:index (:comments 2) :completion (:detailedLabel t)))
(provide 'init-local)
;;; init-local ends here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment