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
|
||||
:if (memq window-system '(mac ns))
|
||||
: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))
|
||||
|
||||
;; Draw underline lower
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
(setq tags-add-tables nil)
|
||||
|
||||
(defvar ctags/refresh-command
|
||||
(format "uctags -e -R -f %sTAGS %s."
|
||||
(format "ctags -e -R -f %sTAGS %s."
|
||||
default-directory default-directory))
|
||||
|
||||
;; 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/sh "$HOME/.emacs.d/languages/sh.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/clojure "$HOME/.emacs.d/languages/clojure.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.
|
||||
'(package-selected-packages
|
||||
(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
|
||||
(custom-set-faces
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
(setq-local
|
||||
ctags/refresh-command
|
||||
(format
|
||||
"uctags -e -R --languages=C -f %sTAGS %s/*"
|
||||
"ctags -e -R --languages=C -f %sTAGS %s/*"
|
||||
(projectile-project-root) (projectile-project-root))))
|
||||
|
||||
(add-hook 'c-mode-hook 'activate-clang-mode)
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@
|
|||
(setq-local
|
||||
ctags/refresh-command
|
||||
(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)
|
||||
|
|
|
|||
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
|
||||
:config (setq refmt-command 'opam))
|
||||
|
||||
(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))
|
||||
;; Register Merlin
|
||||
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
|
||||
(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
|
||||
(setq merlin-command 'opam)))
|
||||
(setq merlin-command 'opam))))
|
||||
|
||||
;; OCaml setup
|
||||
(add-hook 'tuareg-mode-hook 'merlin-mode)
|
||||
(add-hook 'tuareg-mode-hook 'load-ocaml-site-packages)
|
||||
|
||||
;; Reason setup
|
||||
(add-hook 'reason-mode-hook
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
;; Set specific ctags 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))))
|
||||
|
||||
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
(load-theme 'base16-harmonic-light t t)
|
||||
(load-theme 'base16-material-palenight t t)
|
||||
(load-theme 'base16-mocha t t)
|
||||
(load-theme 'base16-papercolor-light t t)
|
||||
(load-theme 'planet t t)
|
||||
|
||||
(defun base16-mexico-light-custom ()
|
||||
|
|
@ -39,7 +40,7 @@
|
|||
(sml/apply-theme 'respectful)
|
||||
(enable-theme (nth
|
||||
(random 2)
|
||||
'(base16-atelier-forest-light base16-harmonic-light))))
|
||||
'(base16-mexico-light base16-harmonic-light))))
|
||||
(progn
|
||||
(defvar base16-theme-256-color-source "base16-shell")
|
||||
(enable-theme 'base16-atelier-forest-light)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue