From 595191e0c7497982ab8c424383220db15f73b7a4 Mon Sep 17 00:00:00 2001 From: Paul-Henri Froidmont Date: Fri, 29 Sep 2023 02:42:46 +0200 Subject: [PATCH] Add OCaml and update Doom Emacs --- modules/desktop/default.nix | 2 +- modules/editor/emacs/doom.d/config.el | 52 ++++++++++++--------------- modules/editor/emacs/doom.d/init.el | 8 ++--- modules/editor/emacs/emacs.nix | 9 ++++- 4 files changed, 36 insertions(+), 35 deletions(-) diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 2713d7e..efaaf90 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -9,7 +9,7 @@ in { fonts = { fonts = with pkgs.unstable; [ corefonts # Microsoft free fonts - (nerdfonts.override { fonts = [ "Meslo" ]; }) + (nerdfonts.override { fonts = [ "Meslo" "NerdFontsSymbolsOnly" ]; }) ]; fontconfig.defaultFonts = { monospace = [ "MesloLGS Nerd Font Mono" ]; }; }; diff --git a/modules/editor/emacs/doom.d/config.el b/modules/editor/emacs/doom.d/config.el index d187191..bbea4f2 100644 --- a/modules/editor/emacs/doom.d/config.el +++ b/modules/editor/emacs/doom.d/config.el @@ -5,9 +5,10 @@ doom-big-font (font-spec :family "MesloLGS Nerd Font Mono" :size 24) treemacs-git-mode 'extended org-directory "~/Nextcloud/Org/" - org-roam-directory "~/Nextcloud/OrgRoam/") + org-roam-directory "~/Nextcloud/OrgRoam/" + nerd-icons-font-names '("SymbolsNerdFontMono-Regular.ttf")) -; Workaround for "Error running timer: (void-function consult--ripgrep-builder)" + ; Workaround for "Error running timer: (void-function consult--ripgrep-builder)" (use-package! consult :config (defun consult--ripgrep-builder (&rest args) (apply (consult--ripgrep-make-builder) args))) @@ -16,45 +17,38 @@ :init (setq lsp-tailwindcss-add-on-mode t) (setq lsp-tailwindcss-major-modes '(rjsx-mode web-mode html-mode css-mode typescript-mode typescript-tsx-mode tsx-ts-mode ;; scala-mode - )) + )) (setq lsp-tailwindcss-experimental-class-regex [ - [ "cls\\(([^)]*)\\)" "\"([^']*)\"" ] - [ "cls\\s*:=\\s*\\(?([^,^\\n^\\)]*)" "\"([^']*)\"" ]])) + [ "cls\\(([^)]*)\\)" "\"([^']*)\"" ] + [ "cls\\s*:=\\s*\\(?([^,^\\n^\\)]*)" "\"([^']*)\"" ]])) (use-package! websocket - :after org-roam) + :after org-roam) (use-package! org-roam-ui - :after org-roam ;; or :after org -;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have -;; a hookable mode anymore, you're advised to pick something yourself -;; if you don't care about startup time, use -;; :hook (after-init . org-roam-ui-mode) - :config - (setq org-roam-ui-sync-theme t - org-roam-ui-follow t - org-roam-ui-update-on-save t - org-roam-ui-open-on-start t)) + :after org-roam ;; or :after org + ;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have + ;; a hookable mode anymore, you're advised to pick something yourself + ;; if you don't care about startup time, use + ;; :hook (after-init . org-roam-ui-mode) + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start t)) -; Taken from https://github.com/yqrashawn/yqdotfiles/blob/master/.doom.d/read.el + ; Taken from https://github.com/yqrashawn/yqdotfiles/blob/master/.doom.d/read.el (setq! elfeed-use-curl t) (after! elfeed (elfeed-set-timeout 36000) (run-with-idle-timer 300 t #'elfeed-update) (setq! - ;; elfeed-protocol-newsblur-maxpages 200 - ;; elfeed-search-filter "+unread +p1" - ;; elfeed-search-trailing-width 60 - rmh-elfeed-org-files `(,(concat org-directory "elfeed.org"))) - ;; (add-hook! 'elfeed-search-mode-hook 'elfeed-update) + elfeed-search-filter "+unread" + rmh-elfeed-org-files `(,(concat org-directory "elfeed.org")) + elfeed-protocol-feeds '(("owncloud+https://paultrial@cloud.banditlair.com" + :password (shell-command-to-string "echo -n `secret-tool lookup elfeed nextcloud`")))) + (add-hook! 'elfeed-search-mode-hook 'elfeed-update) (setq elfeed-protocol-enabled-protocols '(owncloud)) - (defadvice elfeed (after configure-elfeed-feeds activate) - "Make elfeed-org autotags rules work with elfeed-protocol." - (setq elfeed-protocol-tags elfeed-feeds) - (setq elfeed-feeds (list - (list "owncloud+https://paultrial@cloud.banditlair.com" - :password (shell-command-to-string "echo -n `secret-tool lookup elfeed nextcloud`") - :autotags elfeed-protocol-tags)))) (elfeed-protocol-enable)) (use-package! elfeed-tube diff --git a/modules/editor/emacs/doom.d/init.el b/modules/editor/emacs/doom.d/init.el index fc5f3e4..97a294d 100644 --- a/modules/editor/emacs/doom.d/init.el +++ b/modules/editor/emacs/doom.d/init.el @@ -94,15 +94,15 @@ (eval +overlay) ; run code, run (also, repls) ;;gist ; interacting with github gists lookup ; navigate your code and its documentation - lsp ; M-x vscode - magit ; a git porcelain for Emacs + (lsp +peek) ; M-x vscode + magit ; a git porcelain for Emacs ;;make ; run make tasks from Emacs ;;pass ; password manager for nerds pdf ; pdf enhancements ;;prodigy ; FIXME managing external services & code builders ;;rgb ; creating color strings ;;taskrunner ; taskrunner for all your projects - terraform ; infrastructure as code + terraform ; infrastructure as code ;;tmux ; an API for interacting with tmux tree-sitter ;;upload ; map local to remote projects via ssh/ftp @@ -150,7 +150,7 @@ markdown ; writing docs for people to ignore ;;nim ; python + lisp at the speed of c (nix +tree-sitter) ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel + (ocaml +lsp +tree-sitter) ; an objective camel (org +roam2 +present +hugo +dragndrop) ; organize your plain life in plain text (php +lsp +tree-sitter) ; perl's insecure younger brother ;;plantuml ; diagrams for confusing people more diff --git a/modules/editor/emacs/emacs.nix b/modules/editor/emacs/emacs.nix index 3549270..b225da8 100644 --- a/modules/editor/emacs/emacs.nix +++ b/modules/editor/emacs/emacs.nix @@ -39,6 +39,14 @@ in { # metals # Scala rnix-lsp # Nix phpactor # PHP + #OCaml + ocaml + dune_3 + ocamlPackages.ocaml-lsp + ocamlPackages.ocamlformat + ocamlPackages.utop + ocamlPackages.ocp-indent + ocamlPackages.merlin # Used by org-roam sqlite @@ -109,6 +117,5 @@ in { # }; # }; }; - fonts.fonts = [ pkgs.emacs-all-the-icons-fonts ]; }; }