diff --git a/flake.nix b/flake.nix index 6df899a..40da74d 100644 --- a/flake.nix +++ b/flake.nix @@ -85,6 +85,7 @@ "steam-runtime" "skypeforlinux" "teams" + "vscode-extension-ms-vscode-cpptools" "zoom" ]; }; diff --git a/modules/emacs/default.el b/modules/emacs/default.el index b9d58f8..4f0c0ff 100644 --- a/modules/emacs/default.el +++ b/modules/emacs/default.el @@ -2,6 +2,8 @@ ;;(setq package-enable-at-startup nil) ;;(package-initialize) +(require 'local-settings) + ;; (load-theme 'spacemacs-dark t) ;; (load-theme 'wombat t) (use-package solarized-theme @@ -456,14 +458,17 @@ ;; dap (use-package dap-mode :ensure - :after lsp-mode - :requires (dap-cpptools) - :config - (dap-ui-mode) - (dap-ui-controls-mode 1) + :after (lsp-mode dap-cpptools) :custom (dap-mode t) - (dap-ui-mode t)) + (dap-ui-mode t) + (dap-ui-controls-mode t) + (dap-tooltip-mode t)) +(use-package dap-cpptools + :custom + (dap-cpptools-debug-path elss/paths/cpptools) + (dap-cpptools-debug-program `(,elss/paths/cpptools-program))) + ;; flycheck (use-package flycheck diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index 453002b..77295fb 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -1,108 +1,96 @@ -{ - 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; - }; - in + 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 #]) - [defaultConfig] - ++ [ - (with epkgs.elpaPackages; [ - auctex - org - flymake - ]) - ] - ++ (with epkgs.melpaStablePackages; []) - ++ (with epkgs.melpaPackages; - [ - ac-helm - academic-phrases - add-hooks - alert - all-the-icons - all-the-icons-dired - apheleia - beacon - bln-mode - cargo-mode - company - company-auctex - company-bibtex - company-flx - company-quickhelp - company-reftex - cov - dap-mode - diminish - direnv - dockerfile-mode - docker-compose-mode - flycheck - free-keys - highlight-indentation - helm - #helm-bbdb - helm-company - helm-flx - helm-descbinds - helm-lsp - helm-projectile - helm-rg - json-mode - less-css-mode - lsp-mode - lsp-ui - magit - markdown-mode - moe-theme - multiple-cursors - nix-mode - nixpkgs-fmt - org-bullets - org-roam - #org-roam-server - pasp-mode - pdf-tools - projectile - projectile-ripgrep - rustic - spacemacs-theme - solarized-theme - sparql-mode - sudo-edit - use-package - #vscode-dark-plus-theme - yaml-mode - yasnippet - #zenburn-theme - ] - ++ (with lpkgs; [ - org-roam-ui - ligatures - ]))); + in [ defaultConfig ] + ++ [ (with epkgs.elpaPackages; [ auctex org flymake ]) ] + ++ (with epkgs.melpaStablePackages; [ ]) ++ (with epkgs.melpaPackages; + [ + ac-helm + academic-phrases + add-hooks + alert + all-the-icons + all-the-icons-dired + apheleia + beacon + bln-mode + cargo-mode + company + company-auctex + company-bibtex + company-flx + company-quickhelp + company-reftex + cov + dap-mode + diminish + direnv + dockerfile-mode + docker-compose-mode + flycheck + free-keys + highlight-indentation + helm + #helm-bbdb + helm-company + helm-flx + helm-descbinds + helm-lsp + helm-projectile + helm-rg + json-mode + less-css-mode + lsp-mode + lsp-ui + magit + markdown-mode + moe-theme + multiple-cursors + nix-mode + nixpkgs-fmt + org-bullets + org-roam + #org-roam-server + pasp-mode + pdf-tools + projectile + projectile-ripgrep + rustic + spacemacs-theme + solarized-theme + sparql-mode + sudo-edit + use-package + #vscode-dark-plus-theme + yaml-mode + yasnippet + #zenburn-theme + ] ++ (with lpkgs; [ org-roam-ui ligatures ]))); in { - options.elss.programs.emacs.enable = mkEnableOption "Setup emacs package and install it"; + options.elss.programs.emacs.enable = + mkEnableOption "Setup emacs package and install it"; config = mkIf config.elss.programs.emacs.enable { services.emacs = { enable = true;