Add ReasonML

This commit is contained in:
Maciej 2020-04-09 14:36:15 +03:00
parent 810d175372
commit d2e4c202b0
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
11 changed files with 66 additions and 42 deletions

1
.gitignore vendored
View file

@ -13,3 +13,4 @@ transient/*
.lsp-session-* .lsp-session-*
eshell/* eshell/*
.yas-compiled-snippets.el .yas-compiled-snippets.el
ac-comphist.dat

View file

@ -7,26 +7,13 @@
:ensure t :ensure t
:defer t) :defer t)
(use-package lsp-mode
:ensure t
:defer t)
(use-package lsp-ui)
(use-package company (use-package company
:commands (company-indent-or-complete-common company-yasnippet) :commands (company-indent-or-complete-common company-yasnippet)
:requires (yasnippet :requires (yasnippet
yasnippet-snippets yasnippet-snippets)
lsp-mode
lsp-ui)
:ensure t :ensure t
:defer t) :defer t)
(use-package company-lsp
:ensure t
:requires company
:defer t)
(global-company-mode t) (global-company-mode t)
(yas-global-mode t) (yas-global-mode t)
@ -59,11 +46,6 @@
(company-dabbrev company-abbrev) (company-dabbrev company-abbrev)
)) ))
(setq-default
company-lsp-cache-candidates 1 ;; Cache LSP results
company-lsp-async 1 ;; Fetch LSP results asynchronously
)
;; Use standard emacs next and previous bindings for navigating company ;; Use standard emacs next and previous bindings for navigating company
;; suggestions ;; suggestions
(define-key company-active-map (kbd "C-p") 'company-select-previous-or-abort) (define-key company-active-map (kbd "C-p") 'company-select-previous-or-abort)

View file

@ -4,6 +4,7 @@
:defer t :defer t
:config (setq :config (setq
deft-directory (substitute-in-file-name "$HOME/OneDrive/deft") deft-directory (substitute-in-file-name "$HOME/OneDrive/deft")
deft-default-extension "md")) deft-default-extension "md"
deft-auto-save-interval 30.0))
(global-set-key (kbd "C-c d d") 'deft) (global-set-key (kbd "C-c d d") 'deft)

12
init.el
View file

@ -26,7 +26,6 @@
;; Web ;; Web
web-mode web-mode
company-web
js2-mode js2-mode
;; Infrastructure files ;; Infrastructure files
@ -78,7 +77,8 @@
(load "$HOME/.emacs.d/languages/clang.el" 'f 't) (load "$HOME/.emacs.d/languages/clang.el" 'f 't)
(load "$HOME/.emacs.d/languages/clojure.el" 'f 't) (load "$HOME/.emacs.d/languages/clojure.el" 'f 't)
(load "$HOME/.emacs.d/languages/kotlin.el" 'f 't) (load "$HOME/.emacs.d/languages/kotlin.el" 'f 't)
(load "$HOME/.emacs.d/languages/ocaml.el" 'f 't) (load "$HOME/.emacs.d/languages/reason.el" 'f 't)
(load "$HOME/.emacs.d/languages/markdown.el" 'f 't)
(custom-set-variables (custom-set-variables
;; custom-set-variables was added by Custom. ;; custom-set-variables was added by Custom.
@ -90,10 +90,14 @@
("60e09d2e58343186a59d9ed52a9b13d822a174b33f20bdc1d4abb86e6b17f45b" "85e6bb2425cbfeed2f2b367246ad11a62fb0f6d525c157038a0d0eaaabc1bfee" "3380a2766cf0590d50d6366c5a91e976bdc3c413df963a0ab9952314b4577299" "cea3ec09c821b7eaf235882e6555c3ffa2fd23de92459751e18f26ad035d2142" "8ffdc8c66ceeaf7921f4510a70d808f01b303e6b4d177c947b442e80d4228678" "b0c5c6cc59d530d3f6fbcfa67801993669ce062dda1435014f74cafac7d86246" "ad16a1bf1fd86bfbedae4b32c269b19f8d20d416bd52a87cd50e355bf13c2f23" "d9dab332207600e49400d798ed05f38372ec32132b3f7d2ba697e59088021555" "bc4c89a7b91cfbd3e28b2a8e9e6750079a985237b960384f158515d32c7f0490" "99c86852decaeb0c6f51ce8bd46e4906a4f28ab4c5b201bdc3fdf85b24f88518" "a85e40c7d2df4a5e993742929dfd903899b66a667547f740872797198778d7b5" default))) ("60e09d2e58343186a59d9ed52a9b13d822a174b33f20bdc1d4abb86e6b17f45b" "85e6bb2425cbfeed2f2b367246ad11a62fb0f6d525c157038a0d0eaaabc1bfee" "3380a2766cf0590d50d6366c5a91e976bdc3c413df963a0ab9952314b4577299" "cea3ec09c821b7eaf235882e6555c3ffa2fd23de92459751e18f26ad035d2142" "8ffdc8c66ceeaf7921f4510a70d808f01b303e6b4d177c947b442e80d4228678" "b0c5c6cc59d530d3f6fbcfa67801993669ce062dda1435014f74cafac7d86246" "ad16a1bf1fd86bfbedae4b32c269b19f8d20d416bd52a87cd50e355bf13c2f23" "d9dab332207600e49400d798ed05f38372ec32132b3f7d2ba697e59088021555" "bc4c89a7b91cfbd3e28b2a8e9e6750079a985237b960384f158515d32c7f0490" "99c86852decaeb0c6f51ce8bd46e4906a4f28ab4c5b201bdc3fdf85b24f88518" "a85e40c7d2df4a5e993742929dfd903899b66a667547f740872797198778d7b5" default)))
'(package-selected-packages '(package-selected-packages
(quote (quote
(tuareg reason-mode deft buffer-move tide gradle-mode kotlin-mode clj-refactor planet-theme cider clojure-mode erlang rspec-mode dap-mode lsp-ui company-lsp lsp-mode nginx-mode gitignore-mode js2-mode keyfreq company-web visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible alchemist column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell)))) (merlin reason-mode elm-mode deft buffer-move tide gradle-mode kotlin-mode clj-refactor planet-theme cider clojure-mode erlang rspec-mode dap-mode lsp-ui lsp-mode nginx-mode gitignore-mode js2-mode keyfreq visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible alchemist column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell))))
;; Improve font settings in Markdown code
(custom-set-faces (custom-set-faces
;; custom-set-faces was added by Custom. ;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful. ;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance. ;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right. ;; If there is more than one, they won't work right.
) '(font-lock-constant-face ((((type graphic)) (:foreground "#dfaf8f")) (((min-colors 256)) (:foreground "brightred")) (t (:foreground "brightred"))))
'(font-lock-type-face ((t (:foreground "#ffcb6b" :family "IBM Plex Mono"))))
'(markdown-code-face ((t (:inherit fixed-pitch :family "IBM Plex Mono")))))

View file

@ -6,7 +6,7 @@
;; Company list override ;; Company list override
(add-to-list (make-local-variable 'company-backends) (add-to-list (make-local-variable 'company-backends)
'(company-elisp company-yasnippet)) '(company-yasnippet company-elisp))
(paredit-mode 1)) (paredit-mode 1))

15
languages/elm.el Normal file
View file

@ -0,0 +1,15 @@
(use-package elm-mode
:ensure t
:defer t)
(defun activate-elm-mode ()
"All things Elixir."
(set-indent 2)
(column-enforce-n 80)
;; Company list override
(add-to-list (make-local-variable 'company-backends)
'(elm-company company-yasnippet))
(define-key elm-mode-map (kbd "TAB") 'elm-indent-cycle))
(add-hook 'elm-mode-hook 'activate-elm-mode)

View file

@ -1,5 +1,5 @@
(use-package js2-mode (use-package js2-mode
:requires (web-mode company-web lsp) :requires (web-mode company-web)
:ensure t) :ensure t)
(use-package tide (use-package tide

View file

@ -1,6 +1,7 @@
(use-package markdown-mode (use-package markdown-mode
:ensure t :ensure t
:defer t) :defer t
:init (setq-default markdown-command "pandoc"))
(defun activate-markdown-mode () (defun activate-markdown-mode ()
"Reconfigure markdown mode for your own purposes." "Reconfigure markdown mode for your own purposes."
@ -11,6 +12,7 @@
(define-key markdown-mode-map (kbd "C-c <left>") nil) (define-key markdown-mode-map (kbd "C-c <left>") nil)
(define-key markdown-mode-map (kbd "C-c <right>") nil) (define-key markdown-mode-map (kbd "C-c <right>") nil)
(define-key markdown-mode-map (kbd "C-c <up>") nil) (define-key markdown-mode-map (kbd "C-c <up>") nil)
(define-key markdown-mode-map (kbd "C-c <down>") nil)) (define-key markdown-mode-map (kbd "C-c <down>") nil)
(define-key markdown-mode-map (kbd "C-c C-v") 'markdown-preview))
(add-hook 'markdown-mode-hook 'activate-markdown-mode) (add-hook 'markdown-mode-hook 'activate-markdown-mode)

View file

@ -2,12 +2,8 @@
(provide 'opam-user-setup) (provide 'opam-user-setup)
(use-package tuareg (use-package tuareg
:defer t :defer t
:ensure t) :ensure t)
(use-package reason-mode
:defer t
:ensure t)
;; Base configuration for OPAM ;; Base configuration for OPAM

21
languages/reason.el Normal file
View file

@ -0,0 +1,21 @@
(use-package merlin
:defer t
:ensure t)
(use-package reason-mode
:defer t
:ensure t
:config (setq refmt-command 'opam))
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" "share")))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
(autoload 'merlin-mode "merlin" nil t nil)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)))
(add-hook 'reason-mode-hook
(lambda ()
(add-hook 'before-save-hook #'refmt-before-save)))
(add-hook 'reason-mode-hook 'merlin-mode)

View file

@ -28,20 +28,22 @@
(if (display-graphic-p) (if (display-graphic-p)
(progn (progn
(sml/apply-theme 'respectful) (sml/apply-theme 'respectful)
(enable-theme 'base16-material-palenight)) (enable-theme (nth
(random 2)
'(base16-zenburn-modified base16-material-palenight))))
(progn (progn
(enable-theme 'base16-mexico-light) (enable-theme 'base16-mexico-light)
(setq base16-theme-256-color-source "base16-shell"))) (setq base16-theme-256-color-source "base16-shell")))
;; Set font face ;; Set font face
;;;;;;;;;;;;;;;;;;;;;; Font configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; Font configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun set-font-size (size) (defun set-font (name size)
"Set font SIZE to X px." "Set font to NAME and its SIZE to X pixels."
(interactive "NNew font size: ") (interactive "sNew font: \nnEnter size for font %s: ")
(set-face-attribute 'default nil :font (format "IBM Plex Mono %d" size)) (set-face-attribute 'default nil :font (format "%s %d" name size))
(set-face-attribute 'mode-line nil :font (format "IBM Plex Mono %d" size))) (set-face-attribute 'mode-line nil :font (format "%s %d" name size)))
(set-font-size 16) (set-font "IBM Plex Mono" 16)
;; Remove ugly black line ;; Remove ugly black line
(set-face-attribute 'vertical-border nil :foreground (set-face-attribute 'vertical-border nil :foreground