diff --git a/modules/emacs/default.el b/modules/emacs/default.el index 9f6e673..fa5fba9 100644 --- a/modules/emacs/default.el +++ b/modules/emacs/default.el @@ -577,6 +577,25 @@ (use-package lsp-ui) +;; haskell +(use-package haskell-mode + :diminish subword-mode + :hook + (haskell-mode . turn-on-haskell-doc) + (haskell-mode . subword-mode)) +(use-package haskell + :ensure haskell-mode) +(use-package haskell-font-lock + :ensure haskell-mode) +(use-package lsp-haskell + :demand t) +(use-package shakespeare-mode) +(use-package company-cabal + :defer t + :init + (with-eval-after-load 'company + (add-to-list 'company-backends '(company-cabal)))) + ;; misc (use-package academic-phrases :defer t diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index 77295fb..ded0249 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -1,31 +1,36 @@ -{ config, lib, pkgs, ... }: -with lib; -let +{ + config, + lib, + pkgs, + ... +}: +with lib; let defaultEl = ./default.el; - environment.systemPackages = [ pkgs.gdb ]; # use gdb for dap-mode + environment.systemPackages = [pkgs.gdb]; # use gdb for dap-mode localsettings = pkgs.writeText "local-settings.el" '' (defconst elss/paths/cpptools "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools") (defconst elss/paths/cpptools-program "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7") (provide 'local-settings) ''; - defaultConfig = pkgs.runCommand "default.el" { } '' + defaultConfig = pkgs.runCommand "default.el" {} '' mkdir -p $out/share/emacs/site-lisp cp ${defaultEl} $out/share/emacs/site-lisp/default.el cp ${localsettings} $out/share/emacs/site-lisp/local-settings.el ''; - emacsPackage = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages (epkgs: - let - lpkgs = import ./packages.nix { inherit config lib pkgs epkgs; }; - #[ (defaultConfig lpkgs) ] ++ (with pkgs; [ - # aspell - # emacs-all-the-icons-fonts - # gnupg - # nixpkgs-fmt - #]) - in [ defaultConfig ] - ++ [ (with epkgs.elpaPackages; [ auctex org flymake ]) ] - ++ (with epkgs.melpaStablePackages; [ ]) ++ (with epkgs.melpaPackages; + emacsPackage = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages (epkgs: let + lpkgs = import ./packages.nix {inherit config lib pkgs epkgs;}; + #[ (defaultConfig lpkgs) ] ++ (with pkgs; [ + # aspell + # emacs-all-the-icons-fonts + # gnupg + # nixpkgs-fmt + #]) + in + [defaultConfig] + ++ [(with epkgs.elpaPackages; [auctex org flymake])] + ++ (with epkgs.melpaStablePackages; []) + ++ (with epkgs.melpaPackages; [ ac-helm academic-phrases @@ -51,6 +56,7 @@ let docker-compose-mode flycheck free-keys + haskell-mode highlight-indentation helm #helm-bbdb @@ -62,6 +68,7 @@ let helm-rg json-mode less-css-mode + lsp-haskell lsp-mode lsp-ui magit @@ -87,7 +94,8 @@ let yaml-mode yasnippet #zenburn-theme - ] ++ (with lpkgs; [ org-roam-ui ligatures ]))); + ] + ++ (with lpkgs; [org-roam-ui ligatures]))); in { options.elss.programs.emacs.enable = mkEnableOption "Setup emacs package and install it"; diff --git a/users/ellmau/conf/xmonad/.envrc b/users/ellmau/conf/xmonad/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/users/ellmau/conf/xmonad/.envrc @@ -0,0 +1 @@ +use flake