From 6e0b17c26385fa54f3005d41f2f14b381dc0c876 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 7 Sep 2020 12:08:04 +0300 Subject: [PATCH] Add working fsharp installation --- init.el | 7 ++++--- languages/fsharp.el | 30 ++++++++++++++++++++++++++++++ languages/ocaml.el | 19 +++++++++++++++++++ themes/themes.el | 4 +++- 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 languages/fsharp.el diff --git a/init.el b/init.el index d979eda..a6eb531 100644 --- a/init.el +++ b/init.el @@ -47,6 +47,7 @@ (require 'languages/javascript "$HOME/.emacs.d/languages/javascript.el") (require 'languages/elixir "$HOME/.emacs.d/languages/elixir.el") (require 'languages/erlang "$HOME/.emacs.d/languages/erlang.el") +(require 'languages/fsharp "$HOME/.emacs.d/languages/fsharp.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") @@ -62,7 +63,7 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(package-selected-packages - '(dante dash-at-point racer racer-mode flycheck-rust rust-mode 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 rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package)) + '(fsharp-mode dante dash-at-point racer racer-mode flycheck-rust rust-mode 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 rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package)) '(safe-local-variable-values '((haskell-process-use-ghci . t) (haskell-indent-spaces . 4)))) @@ -74,8 +75,8 @@ ;; Your init file should contain only one such instance. ;; 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"))))) + '(font-lock-type-face ((t (:foreground "#ffcb6b" :family "Hack")))) + '(markdown-code-face ((t (:inherit fixed-pitch :family "Hack"))))) ;; Restore GC to normal, but still high (setq gc-cons-threshold 100000000) diff --git a/languages/fsharp.el b/languages/fsharp.el new file mode 100644 index 0000000..b1e3b89 --- /dev/null +++ b/languages/fsharp.el @@ -0,0 +1,30 @@ +;;; fsharp.el --- summary + +;; Author: Maciej Szlosarczyk +;; Maintainer: Maciej Szlosarczyk +;; Version: 0.1-snapshot + +;;; Commentary: + +;; Fsharp configuration + +;;; Code: + +(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el") +(require '05flycheck "$HOME/.emacs.d/05flycheck.el") + +(use-package fsharp-mode + :requires (lsp-mode lsp-ui) + :ensure t + :defer t) + +(defun activate-fsharp-mode () + "Activate F# goodies." + (set-indent 4) + (column-enforce-n 100) + (lsp-deferred)) + +(add-hook 'fsharp-mode-hook 'activate-fsharp-mode) + +(provide 'languages/fsharp) +;;; fsharp.el ends here diff --git a/languages/ocaml.el b/languages/ocaml.el index 254c034..3440ddd 100644 --- a/languages/ocaml.el +++ b/languages/ocaml.el @@ -58,10 +58,29 @@ _o_: Update opam env ;; Use tuareg-opam with lock files (add-to-list 'auto-mode-alist '("\\.opam.locked\\'" . tuareg-opam-mode)) +(defhydra my-reason/context-hydra (:color teal :hint nil) + " + Reason actions + + ^Reason^ ^Actions^ +^^^^^^^^----------------------------------------------------------------------- +_f_: Format buffer +_o_: Update opam env +" + ("q" nil "cancel" :color blue) + + ("f" refmt) + ("o" tuareg-opam-update-env)) + +(defun my-reason-mode () + "Generate reason config." + (define-key reason-mode-map (kbd "C-c l") 'my-reason/context-hydra/body)) + ;; Reason setup (add-hook 'reason-mode-hook (lambda () (add-hook 'before-save-hook #'refmt-before-save))) +(add-hook 'reason-mode-hook 'my-reason-mode) (add-hook 'reason-mode-hook 'merlin-mode) (provide 'languages/ocaml) diff --git a/themes/themes.el b/themes/themes.el index d8369e2..65223b6 100644 --- a/themes/themes.el +++ b/themes/themes.el @@ -39,7 +39,9 @@ (set-face-attribute 'default nil :font (format "%s %d" name size)) (set-face-attribute 'mode-line nil :font (format "%s %d" name size))) -(set-font "IBM Plex Mono" 16) +;; Set font +;; (set-font "IBM Plex Mono" 16) +(set-font "Hack" 16) ;; Remove ugly black line (set-face-attribute 'vertical-border nil :foreground