From 0c09dcf198eb8e826e6181a8cd138d91a21926dd Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Sat, 31 Aug 2024 20:29:00 +0300 Subject: [PATCH] Rework OCaml setup, and move to emacs-plus homebrew --- early-init.el | 5 ++ lisp/icejam-sys-specific.el | 3 ++ lisp/icejam-testing.el | 16 ++++++ lisp/icejam-tree-sitter.el | 2 +- lisp/langs/icejam-lang-ocaml.el | 86 ++++++++++++++++----------------- straight/versions/default.el | 46 +++++++++--------- 6 files changed, 91 insertions(+), 67 deletions(-) create mode 100644 lisp/icejam-testing.el diff --git a/early-init.el b/early-init.el index d52aa66..3a2aadf 100644 --- a/early-init.el +++ b/early-init.el @@ -11,5 +11,10 @@ ;;; Code: ;; Disable built-in package management (setq package-enable-at-startup nil) +;; (add-to-list 'default-frame-alist '(undecorated . t)) +;; (add-to-list 'default-frame-alist '(undecorated-round . t)) + +;; Log garbage collection. +(setq garbage-collection-messages t) ;;; early-init.el ends here diff --git a/lisp/icejam-sys-specific.el b/lisp/icejam-sys-specific.el index be9e2cf..c3de299 100644 --- a/lisp/icejam-sys-specific.el +++ b/lisp/icejam-sys-specific.el @@ -50,6 +50,9 @@ (define-key icejam-keys-mode-map [(hyper l)] #'goto-line) ;; Goto Line ;; Disable meta on right alt (useful for Polish characters) ;; (setq mac-right-option-modifier nil) + + ;; Allow for fullscreen frames without gaps + (setq frame-resize-pixelwise t) )) (defun icejam-switch-right-left-alt () diff --git a/lisp/icejam-testing.el b/lisp/icejam-testing.el new file mode 100644 index 0000000..9d028dd --- /dev/null +++ b/lisp/icejam-testing.el @@ -0,0 +1,16 @@ +;;; icejam-testing.el --- summary + +;; Author: Maciej Szlosarczyk +;; Maintainer: Maciej Szlosarczyk +;; Version: 0.1-snapshot + +;;; Commentary: + +;; icejam-testing includes required things for writing tests. + +;;; Code: + +(use-package buttercup :straight t) + +(provide 'icejam-testing) +;;; icejam-testing.el ends here diff --git a/lisp/icejam-tree-sitter.el b/lisp/icejam-tree-sitter.el index 686d2f5..1e1f626 100644 --- a/lisp/icejam-tree-sitter.el +++ b/lisp/icejam-tree-sitter.el @@ -26,7 +26,7 @@ :config (add-to-list 'treesit-extra-load-path (tree-sitter-langs--bin-dir))) -(use-package tree-sitter-indent :straight t) +;; (use-package tree-sitter-indent :straight t) (add-hook 'tree-sitter-after-on-hook 'tree-sitter-hl-mode) (provide 'icejam-tree-sitter) diff --git a/lisp/langs/icejam-lang-ocaml.el b/lisp/langs/icejam-lang-ocaml.el index abc2757..e8a6ef4 100644 --- a/lisp/langs/icejam-lang-ocaml.el +++ b/lisp/langs/icejam-lang-ocaml.el @@ -3,40 +3,31 @@ ;;; Code: (require 'icejam-transient) +(require 'icejam-prog-mode) +(declare-function lsp "lsp-mode" nil) +(use-package merlin :defer t :straight t) +(use-package opam-switch-mode :straight t :defer t) +(use-package dune :defer t :straight t) (use-package tuareg :defer t :straight t - :config - (add-hook 'tuareg-mode-hook 'merlin-mode)) + :config (add-hook 'tuareg-mode-hook 'merlin-mode)) -(use-package merlin - :defer t - :straight t) - -(use-package reason-mode - :defer t - :straight t - :config (setq refmt-command 'opam)) - -(use-package dune - :defer t - :straight t) - -(transient-define-prefix icejam-lang-ocaml/context-menu () +(transient-define-prefix icejam/ocaml-lang-menu () "Ocaml Actions." ["OCaml actions" ["" ("r" "Reload" icejam-revert-buffer-no-confirm) ("i" "Indent" icejam-mark-and-indent-whole-buffer)] ["" - ("f" "Format" ocamlformat) - ("e" "Opam Env" tuareg-opam-update-env)]] + ("f" "Format" lsp-format-buffer) + ("e" "Errors" flycheck-list-errors) + ("o" "Opam Env" opam-switch-set-switch)]] ["" ("q" "Quit" keyboard-quit)]) -(add-to-list - 'icejam-language-transient-alist '(elixir-ts-mode . icejam/elixir-lang-menu)) +(add-to-list 'icejam-language-transient-alist '(tuareg-mode . icejam/ocaml-lang-menu)) (defun icejam/load-ocaml-site-packages () "Generate ocaml config." @@ -45,7 +36,6 @@ ;; 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) @@ -53,8 +43,16 @@ (setq merlin-command 'opam)))) ;; OCaml setup -(add-hook 'tuareg-mode-hook 'merlin-mode) -(add-hook 'tuareg-mode-hook 'icejam/load-ocaml-site-packages) +(defun icejam/activate-tuareg-mode () + "All thing OCaml." + (icejam/set-indent 2) + (opam-switch-mode t) + (icejam/load-ocaml-site-packages) + (lsp)) + +(add-hook 'tuareg-mode-hook 'icejam/activate-tuareg-mode) + +;; Disable merlin keys that are unused by me (add-hook 'merlin-mode-hook (lambda () (unbind-key "C-c C-d" merlin-mode-map) (unbind-key "C-c C-l" merlin-mode-map) @@ -68,30 +66,30 @@ ;; Use tuareg-opam with lock files (add-to-list 'auto-mode-alist '("\\.opam.locked\\'" . tuareg-opam-mode)) -(transient-define-prefix icejam-lang/reasonml-context-menu () - "ReasonML Actions." - ["ReasonML actions" - ["" - ("r" "Reload" icejam-revert-buffer-no-confirm) - ("i" "Indent" icejam-mark-and-indent-whole-buffer)] - ["" - ("f" "Format" refmt) - ("e" "Opam Env" tuareg-opam-update-env)]] - ["" - ("q" "Quit" keyboard-quit)]) +;; (transient-define-prefix icejam-lang/reasonml-context-menu () +;; "ReasonML Actions." +;; ["ReasonML actions" +;; ["" +;; ("r" "Reload" icejam-revert-buffer-no-confirm) +;; ("i" "Indent" icejam-mark-and-indent-whole-buffer)] +;; ["" +;; ("f" "Format" refmt) +;; ("e" "Opam Env" opam-switch-set-switch)]] +;; ["" +;; ("q" "Quit" keyboard-quit)]) -(defun icejam-lang/activate-reason-mode () - "Generate reason config." - (define-key - reason-mode-map (kbd "C-c l") 'icejam-lang/reasonml-context-menu)) +;; (defun icejam-lang/activate-reason-mode () +;; "Generate reason config." +;; (define-key +;; reason-mode-map (kbd "C-c l") 'icejam-lang/reasonml-context-menu)) -;; Reason setup -(add-hook 'reason-mode-hook - (lambda () - (add-hook 'before-save-hook #'refmt-before-save))) -(add-hook 'reason-mode-hook 'icejam-lang/activate-reason-mode) -(add-hook 'reason-mode-hook 'merlin-mode) +;; ;; Reason setup +;; (add-hook 'reason-mode-hook +;; (lambda () +;; (add-hook 'before-save-hook #'refmt-before-save))) +;; (add-hook 'reason-mode-hook 'icejam-lang/activate-reason-mode) +;; (add-hook 'reason-mode-hook 'merlin-mode) (provide 'icejam-lang-ocaml) ;;; icejam-lang-ocaml.el ends here diff --git a/straight/versions/default.el b/straight/versions/default.el index 238721b..8431134 100644 --- a/straight/versions/default.el +++ b/straight/versions/default.el @@ -3,7 +3,7 @@ ("apropospriate-theme" . "84ee370da4c19db8051761b1b64bbdc8e1c7dc73") ("autothemer" . "cb4d4b69f8bb1f8158d2311692b7607794b75829") ("avy" . "be612110cb116a38b8603df367942e2bb3d9bdbe") - ("base16-emacs" . "8789114e45d09d114e0e197cb090ce7beb993901") + ("base16-emacs" . "c49bb721af8f15434731bccf42f64dd226c38733") ("buffer-move" . "e7800b3ab1bd76ee475ef35507ec51ecd5a3f065") ("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470") ("caml-mode" . "47defafa2b08fb680e89bfee9cb9ce82bd9e3bcf") @@ -28,18 +28,18 @@ ("diminish.el" . "fbd5d846611bad828e336b25d2e131d1bc06b83d") ("docker.el" . "f3adbf49e1140d13c934f16e19754c42a97dc91f") ("dockerfile-mode" . "39a012a27fcf6fb629c447d13b6974baf906714c") - ("dune" . "f895939894a0d948a24d0c973cbca36d6988e86c") + ("dune" . "5d0517127f1d28a7905471fde09cc2ff0fd9e53f") ("easy-kill" . "de7d66c3c864a4722a973ee9bc228a14be49ba0c") ("editorconfig-emacs" . "648f0cf9aeb72db77b252832a58367332b7bc055") ("el-get" . "c0713e8d8e8ad987fe1283d76b9c637a10f048ef") ("eldoc" . "91a8ae2fa66ac09f45337f9eca6c7aa643a063f4") ("elisp-refs" . "541a064c3ce27867872cf708354a65d83baf2a6d") ("elisp-tree-sitter" . "3cfab8a0e945db9b3df84437f27945746a43cc71") - ("elixir-ts-mode" . "b08d399e29714fe3d968db925aec0e1dfac54d89") - ("emacs" . "177ecee1e5b8bbd05053cba5c93ebfae3b8fee8c") + ("elixir-ts-mode" . "b35c983f551ccf821ebebad50747b5b417133e52") + ("emacs" . "57c77157d970493b6f5a36e4a87d0dae4d3ba7b2") ("emacs-aio" . "da93523e235529fa97d6f251319d9e1d6fc24a41") ("emacs-ansible" . "eebb2fb49d3c0a0586d1e4ead9ba618c7d003cae") - ("emacs-dashboard" . "187699e2d80f6a3b0ec7b2fb2e1d7ece2712208f") + ("emacs-dashboard" . "c9d2dda2cd75e9f6d05be0e52fb126f63e6e7430") ("emacs-direnv" . "c0bf3b81c7a97e2a0d06d05495e86848254fcc1f") ("emacs-elixir" . "00d6580a040a750e019218f9392cf9a4c2dac23a") ("emacs-fish" . "2526b1803b58cf145bc70ff6ce2adb3f6c246f89") @@ -49,7 +49,7 @@ ("emacs-reformatter" . "0d29a04d69d47599e2cb7f1a8f8e897a2b592921") ("emacs-theme-darktooth" . "2358dd334b5dcb6dc9828422bd7bd1e4da556819") ("emacs-which-key" . "38d4308d1143b61e4004b6e7a940686784e51500") - ("emacsmirror-mirror" . "8cbbdaa750c897d05ee71980834699a7d7c2d208") + ("emacsmirror-mirror" . "211be6aed121a099e6ba2b8d33bd98014e9d2ec9") ("exec-path-from-shell" . "72ede29a0e0467b3b433e8edbee3c79bab005884") ("f.el" . "1e7020dc0d4c52d3da9bd610d431cab13aa02d8c") ("flycheck" . "7a6398ea3538a898eba0276f0f89b2f878325a89") @@ -57,7 +57,7 @@ ("flyspell-correct" . "1e7a5a56362dd875dddf848b9a9e25d1395b9d37") ("frame-local" . "7ee1106c3bcd4022f48421f8cb1ef4f995da816e") ("git-modes" . "f99010bbeb8b6d8a0819fac0195a2ef0159d08f0") - ("gleam-mode" . "2d8bbe39437bb79b4496811b4e8ed89a2c5daa14") + ("gleam-mode" . "0b437578f4270fdcbb89caac47f78cf55a992bf3") ("gnu-elpa-mirror" . "3d0759ef4792b6461f2979a4e70e1c819df7283a") ("go-mode.el" . "602d73e22646b1b98b2eb97927fd426c0d1d2f92") ("gptel" . "17f39f6a8144496252eacc012ef7f1d6a2ac883a") @@ -69,6 +69,7 @@ ("helpful" . "4ba24cac9fb14d5fdc32582cd947572040e82b2c") ("ht.el" . "1c49aad1c820c86f7ee35bf9fff8429502f60fef") ("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b") + ("iedit" . "27c61866b1b9b8d77629ac702e5f48e67dfe0d3b") ("jenkinsfile-mode" . "568865ee419e0592de0dd0717d6769a66d9df111") ("js2-mode" . "9b90d31ed968e5c51bd3e279d4003248ea896807") ("json-mode" . "77125b01c0ddce537085201098bea9b4b8ba6be3") @@ -79,24 +80,25 @@ ("kotlin-mode" . "fddd747e5b4736e8b27a147960f369b86179ddff") ("lean4-mode" . "da7b63d854d010d621e2c82a53d6ae2d94dd53b0") ("let-alist" . "4e05e158612f360f6080b1349d3962b1c8fee902") - ("lsp-dart" . "1f52e81c9371055ff9188117ace81f009d1c79f2") + ("lispy" . "fe44efd21573868638ca86fc8313241148fabbe3") + ("lsp-dart" . "9ffbafb7dcea3ef3d9e29bafb51d5167f0585d2c") ("lsp-docker" . "ce291d0f80533f8eaca120eb745d55669e062636") ("lsp-haskell" . "2586c16275e6504747043c1552a585040861c473") - ("lsp-mode" . "12befaabe4a1bf8a548bc820faa192be8ee89533") + ("lsp-mode" . "c36b95be6625dac5a37d3874a1a738e0c84ac39f") ("lsp-treemacs" . "fb1a07ae0a3d781dea8ac78da2933e0173eb48a4") ("lsp-ui" . "072bb29152038518c2478813b82c8d04d07df84c") ("lua-mode" . "d074e4134b1beae9ed4c9b512af741ca0d852ba3") ("macrostep" . "4939d88779761e8b5461b4cf73f86600172987db") - ("magit" . "19867456b1cd7e9a11942723d6d62fa80e306fb7") + ("magit" . "fe427e64382db783d33cf1cfd46fe851dc3c8113") ("map" . "cc174d5d2b3f9dacc31e9c55da1c80eb5f49c112") - ("markdown-mode" . "8a7773f87733866a961ea4c518a4a2f283f21970") - ("melpa" . "4e2138081137b114f3b90f8f2b1da4c2ae3f91d4") - ("merlin" . "ec6d2fb2ac87d5b8e5333f54f92c3f1cbfc989a5") - ("modus-themes" . "3002f6fb64e147ece4284880ffa93c6c3baa0e75") + ("markdown-mode" . "6d1f08b3c52ccf9129ffa069fd0bfccc66cf72d5") + ("melpa" . "51b0a905d5748d4d4f2e807435e56c6c2a312edb") + ("merlin" . "7c82f4411294bf162e6b44ceb7040d2373c7a0e4") + ("modus-themes" . "db70c2ca923261591419de084f9e4c806b409b60") ("multiple-cursors.el" . "c870c18462461df19382ecd2f9374c8b902cd804") ("nginx-mode" . "c4ac5de975d65c84893a130a470af32a48b0b66c") - ("nongnu-elpa" . "a9a649210a8d8b9295b5a1d0c7b60a77db03c14c") - ("otp" . "0b33c5a4c0a647cf7df6d50c8768b574c48752fd") + ("nongnu-elpa" . "b3fcadf20c9f0da471ab0bdcd778bb66b39b43bc") + ("otp" . "494647adab20a19afcaa8eee98d427b8af5886de") ("paredit" . "037b9b8acbca75151f133b6c0f7f3ff97d9042e5") ("parseclj" . "6af22372e0fe14df882dd300b22b12ba2d7e00b0") ("parseedn" . "3407e4530a367b6c2b857dae261cdbb67a440aaa") @@ -114,7 +116,7 @@ ("reason-mode" . "d657ff75572a8ea7eda6fe22ada3a2ebf5bc6119") ("rspec-mode" . "29df3d081c6a1cbdf840cd13d45ea1c100c5bbaa") ("ruby-end.el" . "ba7d7230f9e3ed75c9982d32bb9fdff1dc10935d") - ("rust-mode" . "d00d83d3a207a5b7c2994392b2781f627e3159ce") + ("rust-mode" . "a529a4518120bd1c662edc31b82062f41bbfb990") ("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d") ("seq" . "da86da9bf111f68fb81efd466d76d53af5aebc00") ("sesman" . "7bca68dbbab0af26a6a23be1ff5fa97f9a18e022") @@ -127,9 +129,8 @@ ("swiper" . "2a25a6fb5b081cb141c5eccac8ee58ab1feeb747") ("tablist" . "fcd37147121fabdf003a70279cf86fbe08cfac6f") ("terraform-mode" . "abfc10f5e313c4bb99de136a14636e9bc6df74f6") - ("transient" . "3d3f8711d4f6a6ff7f53bc22e465ec82587c62ed") - ("tree-sitter-indent.el" . "4ef246db3e4ff99f672fe5e4b416c890f885c09e") - ("tree-sitter-langs" . "ac3aa507a8a5664159613834fe6568aa86cc16f1") + ("transient" . "47960efddd27004c71f72cde630450fb8ae35605") + ("tree-sitter-langs" . "1c3d95d018c6ab09dbe0b31530bfb1865fac2e5f") ("treemacs" . "2377d231bcb4ff6841cbf6a7c1e4b6747e26ddd0") ("tuareg" . "1d53723e39f22ab4ab76d31f2b188a2879305092") ("typescript.el" . "fc3a4f3b275e8cf6cf41aa0c9ef42e25ef908feb") @@ -138,11 +139,12 @@ ("visual-regexp.el" . "48457d42a5e0fe10fa3a9c15854f1f127ade09b5") ("vundo" . "5374125dc0aaf1769bb0965344befb90f809ccfc") ("web-mode" . "0c83581d1e93d1d802c730a1d5e90cd1c740e1b2") - ("with-editor" . "8c550d9e799a0baedb2164471e7ed19fc15d9196") + ("with-editor" . "5dded4ece87fc8ddf46b8e864c36072a5bad98f8") ("yaml-mode" . "7b5ce294fb15c2c8926fa476d7218aa415550a2a") ("yaml.el" . "70c4fcead97e9bd6594e418c922ae769818f4245") ("yasnippet" . "eb5ba2664c3a68ae4a53bb38b85418dd131b208f") ("yasnippet-snippets" . "1bf034887c4048c38266842686b7f9c8384f72e7") ("zenburn-emacs" . "15f48bfc6b52d112f3c3fd98e533bda9138ffdd2") - ("zig-mode" . "f55e42536a3f34b81198b856595dc3a61867aa3e")) + ("zig-mode" . "f55e42536a3f34b81198b856595dc3a61867aa3e") + ("zoutline" . "32857c6c4b9b0bcbed14d825a10b91a98d5fed0a")) :gamma