Add haskell mode, update ocaml mode
This commit is contained in:
parent
005fb4fcfb
commit
c169983db6
9 changed files with 74 additions and 18 deletions
|
|
@ -140,7 +140,7 @@
|
||||||
(use-package exec-path-from-shell
|
(use-package exec-path-from-shell
|
||||||
:if (memq window-system '(mac ns))
|
:if (memq window-system '(mac ns))
|
||||||
:ensure t
|
:ensure t
|
||||||
:config (add-to-list 'exec-path "/opt/local/bin")
|
:config (add-to-list 'exec-path "/usr/local/bin")
|
||||||
(exec-path-from-shell-initialize))
|
(exec-path-from-shell-initialize))
|
||||||
|
|
||||||
;; Draw underline lower
|
;; Draw underline lower
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
(setq tags-add-tables nil)
|
(setq tags-add-tables nil)
|
||||||
|
|
||||||
(defvar ctags/refresh-command
|
(defvar ctags/refresh-command
|
||||||
(format "uctags -e -R -f %sTAGS %s."
|
(format "ctags -e -R -f %sTAGS %s."
|
||||||
default-directory default-directory))
|
default-directory default-directory))
|
||||||
|
|
||||||
;; Sentinel function for capturing ctags
|
;; Sentinel function for capturing ctags
|
||||||
|
|
|
||||||
7
init.el
7
init.el
|
|
@ -45,6 +45,7 @@
|
||||||
(require 'languages/erlang "$HOME/.emacs.d/languages/erlang.el")
|
(require 'languages/erlang "$HOME/.emacs.d/languages/erlang.el")
|
||||||
(require 'languages/sh "$HOME/.emacs.d/languages/sh.el")
|
(require 'languages/sh "$HOME/.emacs.d/languages/sh.el")
|
||||||
(require 'languages/rust "$HOME/.emacs.d/languages/rust.el")
|
(require 'languages/rust "$HOME/.emacs.d/languages/rust.el")
|
||||||
|
(require 'languages/haskell "$HOME/.emacs.d/languages/haskell.el")
|
||||||
(require 'languages/clang "$HOME/.emacs.d/languages/clang.el")
|
(require 'languages/clang "$HOME/.emacs.d/languages/clang.el")
|
||||||
(require 'languages/clojure "$HOME/.emacs.d/languages/clojure.el")
|
(require 'languages/clojure "$HOME/.emacs.d/languages/clojure.el")
|
||||||
(require 'languages/ocaml "$HOME/.emacs.d/languages/ocaml.el")
|
(require 'languages/ocaml "$HOME/.emacs.d/languages/ocaml.el")
|
||||||
|
|
@ -58,7 +59,11 @@
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
(quote
|
(quote
|
||||||
(which-key erlang gitignore-mode yaml-mode nginx-mode ansible terraform-mode dockerfile-mode reason-mode merlin tuareg clj-refactor cider clojure-mode elixir-mode js2-mode web-mode enh-ruby-mode ruby-end rspec-mode planet-theme flatui-theme base16-theme smart-mode-line lsp-ui lsp-mode deft counsel-projectile flycheck company yasnippet-snippets yasnippet visual-regexp column-enforce-mode dash-at-point rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package))))
|
(dante haskell-mode dune which-key erlang gitignore-mode yaml-mode nginx-mode ansible terraform-mode dockerfile-mode reason-mode merlin tuareg clj-refactor cider clojure-mode elixir-mode js2-mode web-mode enh-ruby-mode ruby-end rspec-mode planet-theme flatui-theme base16-theme smart-mode-line lsp-ui lsp-mode deft counsel-projectile flycheck company yasnippet-snippets yasnippet visual-regexp column-enforce-mode dash-at-point rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package)))
|
||||||
|
'(safe-local-variable-values
|
||||||
|
(quote
|
||||||
|
((haskell-process-use-ghci . t)
|
||||||
|
(haskell-indent-spaces . 4)))))
|
||||||
|
|
||||||
;; Improve font settings in Markdown code
|
;; Improve font settings in Markdown code
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
(setq-local
|
(setq-local
|
||||||
ctags/refresh-command
|
ctags/refresh-command
|
||||||
(format
|
(format
|
||||||
"uctags -e -R --languages=C -f %sTAGS %s/*"
|
"ctags -e -R --languages=C -f %sTAGS %s/*"
|
||||||
(projectile-project-root) (projectile-project-root))))
|
(projectile-project-root) (projectile-project-root))))
|
||||||
|
|
||||||
(add-hook 'c-mode-hook 'activate-clang-mode)
|
(add-hook 'c-mode-hook 'activate-clang-mode)
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
(setq-local
|
(setq-local
|
||||||
ctags/refresh-command
|
ctags/refresh-command
|
||||||
(format
|
(format
|
||||||
"uctags -e -R --languages=erlang -f %sTAGS %ssrc %sdeps %sapps %s_build %stest %slib/stdlib-* %slib/kernel-*"
|
"ctags -e -R --languages=erlang -f %sTAGS %ssrc %sdeps %sapps %s_build %stest %slib/stdlib-* %slib/kernel-*"
|
||||||
(projectile-project-root) (projectile-project-root)
|
(projectile-project-root) (projectile-project-root)
|
||||||
(projectile-project-root) (projectile-project-root)
|
(projectile-project-root) (projectile-project-root)
|
||||||
(projectile-project-root) (projectile-project-root)
|
(projectile-project-root) (projectile-project-root)
|
||||||
|
|
|
||||||
39
languages/haskell.el
Normal file
39
languages/haskell.el
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
;;; haskell.el --- summary
|
||||||
|
|
||||||
|
;; Author: Maciej Szlosarczyk
|
||||||
|
;; Maintainer: Maciej Szlosarczyk
|
||||||
|
;; Version: 0.1-snapshot
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;; haskell does a thing.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
|
||||||
|
(require '05flycheck "$HOME/.emacs.d/05flycheck.el")
|
||||||
|
(require '05hydra "$HOME/.emacs.d/05hydra.el")
|
||||||
|
|
||||||
|
(use-package haskell-mode
|
||||||
|
:ensure t
|
||||||
|
:defer t)
|
||||||
|
|
||||||
|
(use-package dante
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:requires (haskell-mode))
|
||||||
|
|
||||||
|
(defun activate-haskell-mode ()
|
||||||
|
"Run this in haskell-mode."
|
||||||
|
(set-indent 2)
|
||||||
|
(column-enforce-n 80)
|
||||||
|
|
||||||
|
;; Company list override
|
||||||
|
(add-to-list (make-local-variable 'company-backends)
|
||||||
|
'(dante-company company-yasnippet)))
|
||||||
|
|
||||||
|
(add-hook 'haskell-mode-hook 'dante-mode)
|
||||||
|
(add-hook 'haskell-mode-hook 'activate-haskell-mode)
|
||||||
|
|
||||||
|
(provide 'languages/haskell)
|
||||||
|
;;; haskell.el ends here
|
||||||
|
|
@ -17,16 +17,27 @@
|
||||||
:ensure t
|
:ensure t
|
||||||
:config (setq refmt-command 'opam))
|
:config (setq refmt-command 'opam))
|
||||||
|
|
||||||
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" "share")))))
|
(use-package dune
|
||||||
|
:defer t
|
||||||
|
:ensure t)
|
||||||
|
|
||||||
|
(defun load-ocaml-site-packages ()
|
||||||
|
"Generate ocaml config."
|
||||||
|
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" "share")))))
|
||||||
(when (and opam-share (file-directory-p opam-share))
|
(when (and opam-share (file-directory-p opam-share))
|
||||||
;; Register Merlin
|
;; Register Merlin
|
||||||
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
|
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
|
||||||
(autoload 'merlin-mode "merlin" nil t nil)
|
(autoload 'merlin-mode "merlin" nil t nil)
|
||||||
|
(autoload 'ocamlformat "ocamlformat" nil t nil)
|
||||||
|
(autoload 'utop "utop" nil t nil)
|
||||||
|
(autoload 'dune "dune" nil t nil)
|
||||||
|
|
||||||
;; Use opam switch to lookup ocamlmerlin binary
|
;; Use opam switch to lookup ocamlmerlin binary
|
||||||
(setq merlin-command 'opam)))
|
(setq merlin-command 'opam))))
|
||||||
|
|
||||||
;; OCaml setup
|
;; OCaml setup
|
||||||
(add-hook 'tuareg-mode-hook 'merlin-mode)
|
(add-hook 'tuareg-mode-hook 'merlin-mode)
|
||||||
|
(add-hook 'tuareg-mode-hook 'load-ocaml-site-packages)
|
||||||
|
|
||||||
;; Reason setup
|
;; Reason setup
|
||||||
(add-hook 'reason-mode-hook
|
(add-hook 'reason-mode-hook
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
;; Set specific ctags command
|
;; Set specific ctags command
|
||||||
(setq-local ctags/refresh-command
|
(setq-local ctags/refresh-command
|
||||||
(format "uctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
||||||
(projectile-project-root) (projectile-project-root))))
|
(projectile-project-root) (projectile-project-root))))
|
||||||
|
|
||||||
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
(load-theme 'base16-harmonic-light t t)
|
(load-theme 'base16-harmonic-light t t)
|
||||||
(load-theme 'base16-material-palenight t t)
|
(load-theme 'base16-material-palenight t t)
|
||||||
(load-theme 'base16-mocha t t)
|
(load-theme 'base16-mocha t t)
|
||||||
|
(load-theme 'base16-papercolor-light t t)
|
||||||
(load-theme 'planet t t)
|
(load-theme 'planet t t)
|
||||||
|
|
||||||
(defun base16-mexico-light-custom ()
|
(defun base16-mexico-light-custom ()
|
||||||
|
|
@ -39,7 +40,7 @@
|
||||||
(sml/apply-theme 'respectful)
|
(sml/apply-theme 'respectful)
|
||||||
(enable-theme (nth
|
(enable-theme (nth
|
||||||
(random 2)
|
(random 2)
|
||||||
'(base16-atelier-forest-light base16-harmonic-light))))
|
'(base16-mexico-light base16-harmonic-light))))
|
||||||
(progn
|
(progn
|
||||||
(defvar base16-theme-256-color-source "base16-shell")
|
(defvar base16-theme-256-color-source "base16-shell")
|
||||||
(enable-theme 'base16-atelier-forest-light)))
|
(enable-theme 'base16-atelier-forest-light)))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue