From 7f5f90ae4ded1bf58f0200a218318a56ca250878 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 1 Mar 2021 08:42:30 +0200 Subject: [PATCH] Update for February * Add purescript * Use perspective mode * Use LSP for Rust code --- init.el | 7 +++++-- languages/purescript.el | 31 +++++++++++++++++++++++++++++++ languages/rust.el | 3 +++ languages/web.el | 5 +++-- pkg/hydra.el | 21 +++++++++++++-------- pkg/lsp.el | 1 + pkg/persp.el | 15 +++++++++++++++ themes/themes.el | 12 +++++++----- 8 files changed, 78 insertions(+), 17 deletions(-) create mode 100644 languages/purescript.el create mode 100644 pkg/persp.el diff --git a/init.el b/init.el index a1262ea..01bc49e 100644 --- a/init.el +++ b/init.el @@ -26,6 +26,7 @@ (require 'pkg/sys-specific "$HOME/.emacs.d/pkg/sys-specific.el") (require 'pkg/macros "$HOME/.emacs.d/pkg/macros.el") (require 'pkg/ivy "$HOME/.emacs.d/pkg/ivy.el") +(require 'pkg/persp "$HOME/.emacs.d/pkg/persp.el") (require 'pkg/hydra "$HOME/.emacs.d/pkg/hydra.el") (require 'pkg/magit "$HOME/.emacs.d/pkg/magit.el") (require 'pkg/prog-mode "$HOME/.emacs.d/pkg/prog-mode.el") @@ -57,6 +58,7 @@ (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") +(require 'languages/purescript "$HOME/.emacs.d/languages/purescript.el") (require 'languages/php "$HOME/.emacs.d/languages/php.el") (require 'languages/markdown "$HOME/.emacs.d/languages/markdown.el") (require 'languages/other "$HOME/.emacs.d/languages/other.el") @@ -67,9 +69,10 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(package-selected-packages - '(apropospriate-theme jenkinsfile-mode vue-mode dap-mode undo-tree helpful lsp-haskell dashboard fsharp-mode 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)) + '(perspective apropospriate-theme jenkinsfile-mode vue-mode dap-mode undo-tree helpful lsp-haskell dashboard fsharp-mode 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) + '((column-enforce-column . 10000) + (haskell-process-use-ghci . t) (haskell-indent-spaces . 4)))) ;; Improve font settings in Markdown code diff --git a/languages/purescript.el b/languages/purescript.el new file mode 100644 index 0000000..b675d5f --- /dev/null +++ b/languages/purescript.el @@ -0,0 +1,31 @@ +;;; purescript.el --- summary + +;; Author: Maciej Szlosarczyk +;; Maintainer: Maciej Szlosarczyk +;; Version: 0.1-snapshot + +;;; Commentary: + +;; purescript does a thing. + +;;; Code: +(use-package purescript-mode + :requires (lsp-mode lsp-ui) + :ensure t) + +(defun activate-purescript-mode () + "All things Purescript." + (set-indent 2) + (column-enforce-n 98) + + ;; Purescript indentation + (purescript-indentation-mode t) + + ;; Company list override + (add-to-list (make-local-variable 'company-backends) + '(company-capf company-yasnippet))) + +(add-hook 'purescript-mode-hook 'activate-purescript-mode) + +(provide 'languages/purescript) +;;; purescript.el ends here diff --git a/languages/rust.el b/languages/rust.el index 992cc8d..e3c1a55 100644 --- a/languages/rust.el +++ b/languages/rust.el @@ -25,6 +25,9 @@ (set-indent 4) (column-enforce-n 99) + ;; Run LSP + (lsp-deferred) + ;; Company list override (add-to-list (make-local-variable 'company-backends) '(company-capf company-yasnippet))) diff --git a/languages/web.el b/languages/web.el index ccf7544..ef1a220 100644 --- a/languages/web.el +++ b/languages/web.el @@ -31,8 +31,9 @@ (defun activate-web-mode () "Web mode overrides." ;; Indent web mode scripts by 2 - (setq web-mode-script-padding 2) - (setq web-mode-code-indent-offset 2) + (setq-local web-mode-script-padding 2) + (setq-local web-mode-code-indent-offset 2) + (setq-local web-mode-markup-indent-offset 2) (setq-local lsp-eldoc-enable-hover nil) (setq-local flycheck-check-syntax-automatically '(save mode-enabled)) diff --git a/pkg/hydra.el b/pkg/hydra.el index ea70a5c..8fd16e0 100644 --- a/pkg/hydra.el +++ b/pkg/hydra.el @@ -10,14 +10,14 @@ " General Actions - ^Ivy^ ^Projectile^ ^Magit^ -^^^^^^^^------------------------------------------------------------------------ -_a_: Grep in buffer _s_: Switch project _m_: Git status -_b_: Buffer list _f_: Find file in project _C_: Git checkout -_t_: Find file _g_: Grep in current project _M_: Git blame -_d_: Deft _c_: Invalidate cache -_w_: Avy goto word _n_: New project -_l_: Avy goto line _i_: IELM console + ^Ivy^ ^Perspectives^ ^Projectile^ ^Magit^ +^^^^^^^^------------------------------------------------------------------------------------- +_a_: Grep in buffer _S_: Switch perspective _s_: Switch project _m_: Git status +_b_: Buffer list _B_: Switch buffer _f_: Find file in project _C_: Git checkout +_t_: Find file _K_: Kill perspective _g_: Grep in current project _M_: Git blame +_d_: Deft _c_: Invalidate cache +_w_: Avy goto word _n_: New project +_l_: Avy goto line _i_: IELM console _:_: Avy goto char " @@ -31,12 +31,17 @@ _:_: Avy goto char ("l" avy-goto-line) (":" avy-goto-char) + ("S" persp-switch) + ("B" persp-ibuffer) + ("K" persp-kill) + ("s" counsel-projectile-switch-project) ("f" counsel-projectile-find-file) ("g" counsel-projectile-rg) ("c" projectile-invalidate-cache) ("n" projectile-add-known-project) ("i" ielm) + ("m" magit-status) ("C" magit-checkout) ("M" magit-blame)) diff --git a/pkg/lsp.el b/pkg/lsp.el index 222578e..1e0b07b 100644 --- a/pkg/lsp.el +++ b/pkg/lsp.el @@ -16,6 +16,7 @@ lsp-enable-file-watchers nil) :hook ((typescript-mode . lsp-deferred) (elixir-mode . lsp) + (purescript-mode . lsp-deferred) (js2-mode . lsp-deferred))) (use-package lsp-ui diff --git a/pkg/persp.el b/pkg/persp.el new file mode 100644 index 0000000..658815a --- /dev/null +++ b/pkg/persp.el @@ -0,0 +1,15 @@ +;;; pkg/persp.el --- summary + +;; Author: Maciej Szlosarczyk +;; Maintainer: Maciej Szlosarczyk +;; Version: 0.1-snapshot + +;;; Commentary: + +;; Perspectives + +;;; Code: +(use-package perspective :config (persp-mode)) + +(provide 'pkg/persp) +;;; pkg/persp.el ends here diff --git a/themes/themes.el b/themes/themes.el index d39c9b9..0f175a6 100644 --- a/themes/themes.el +++ b/themes/themes.el @@ -22,6 +22,7 @@ (load-theme 'base16-atelier-forest-light t t) (load-theme 'base16-harmonic-light t t) (load-theme 'apropospriate-light t t) +(load-theme 'base16-tomorrow t t) ;; Dark themes (load-theme 'base16-solarflare t t) @@ -33,7 +34,7 @@ (sml/apply-theme 'respectful) (enable-theme (nth (random 2) - '(apropospriate-light base16-harmonic-light)))) + '(base16-tomorrow base16-harmonic-light)))) (progn (defvar base16-theme-256-color-source "base16-shell") (enable-theme 'apropospriate-light))) @@ -52,10 +53,11 @@ ;; If display is set to emulate FullHD resultion or less, make the font ;; smaller. (cond ((eq (x-display-list) nil)) () - ((>= 1050 (x-display-pixel-height)) (set-font "Hack" 14)) - ((>= 1080 (x-display-pixel-height)) (set-font "Hack" 13)) - ((>= 1440 (x-display-pixel-height)) (set-font "Hack" 16)) - (t (set-font "Hack" 16)))) + ((>= 1050 (x-display-pixel-height)) (set-font "IBM Plex Mono" 14)) + ((>= 1080 (x-display-pixel-height)) (set-font "IBM Plex Mono" 13)) + ((>= 1120 (x-display-pixel-height)) (set-font "IBM Plex Mono" 14)) + ((>= 1440 (x-display-pixel-height)) (set-font "IBM Plex Mono" 16)) + (t (set-font "IBM Plex Mono" 16)))) ;; Do it automatically on startup (set-font-to-screen)