From d53973ef9ac30a4c1acf39e96fdfe38d782844a2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 3 Oct 2023 01:23:50 +0200 Subject: [PATCH] Robba --- flake.lock | 17 +++++++++++++++ flake.nix | 6 +++++- hmModules/default.nix | 2 +- init.el | 48 ++++++++++++++++++++++++++++++++++++------- packages/packages.nix | 18 ++++++++++++---- 5 files changed, 78 insertions(+), 13 deletions(-) diff --git a/flake.lock b/flake.lock index fe7aed6..85cb72e 100644 --- a/flake.lock +++ b/flake.lock @@ -68,6 +68,22 @@ "type": "github" } }, + "extra-package-copilot": { + "flake": false, + "locked": { + "lastModified": 1694588237, + "narHash": "sha256-7LKB2JoYAVu5i23ZKBVZPe6azCItHK/tlBNPgFXxztc=", + "owner": "zerolfx", + "repo": "copilot.el", + "rev": "421703f5dd5218ec2a3aa23ddf09d5f13e5014c2", + "type": "github" + }, + "original": { + "owner": "zerolfx", + "repo": "copilot.el", + "type": "github" + } + }, "extra-package-dracula-theme": { "flake": false, "locked": { @@ -225,6 +241,7 @@ "extra-package-agenix-el": "extra-package-agenix-el", "extra-package-chatgpt": "extra-package-chatgpt", "extra-package-combobulate": "extra-package-combobulate", + "extra-package-copilot": "extra-package-copilot", "extra-package-dracula-theme": "extra-package-dracula-theme", "extra-package-indent-bars": "extra-package-indent-bars", "extra-package-nix-ts-mode": "extra-package-nix-ts-mode", diff --git a/flake.nix b/flake.nix index 0965257..7424acb 100644 --- a/flake.nix +++ b/flake.nix @@ -24,12 +24,16 @@ }; extra-package-dracula-theme = { url = "github:aciceri/dracula-emacs"; - flake = false; + flake = false; }; extra-package-chatgpt = { url = "github:joshcho/ChatGPT.el"; flake = false; }; + extra-package-copilot = { + url = "github:zerolfx/copilot.el"; + flake = false; + }; }; outputs = inputs @ {flake-parts, ...}: diff --git a/hmModules/default.nix b/hmModules/default.nix index aa92e47..6d91f1f 100644 --- a/hmModules/default.nix +++ b/hmModules/default.nix @@ -54,7 +54,7 @@ ffmpegthumbnailer mediainfo unzipNLS - pkgs.tree-sitter-grammars.tree-sitter-nix + nodejs ] ++ (with hunspellDicts; [ en_US-large diff --git a/init.el b/init.el index 31d5870..33c6fa4 100644 --- a/init.el +++ b/init.el @@ -15,13 +15,22 @@ ;; (push `(before-string . ,(propertize " " 'display '((margin left-margin) "E"))) (get :error 'flymake-overlay-control)) ;; (push `(before-string . ,(propertize " " 'display '((margin left-margin) "W"))) (get :warning 'flymake-overlay-control)) ;; (push `(before-string . ,(propertize " " 'display '((margin left-margin) "N"))) (get :note 'flymake-overlay-control)) - (set-face-attribute 'flymake-error nil :inverse-video t) - (set-face-attribute 'flymake-warning nil :inverse-video t) - (set-face-attribute 'flymake-note nil :inverse-video t) + ;; TODO set following only when on terminal (where wavy underlines are not shown) + ;; (set-face-attribute 'flymake-error nil :inverse-video t) + ;; (set-face-attribute 'flymake-warning nil :inverse-video t) + ;; (set-face-attribute 'flymake-note nil :inverse-video t) :custom (flymake-mode-line-lighter "Fly") :hook prog-mode) +(use-package eglot + :custom + ;; Tricks that should make Emacs faster + (eglot-events-buffer-size 0) ; disable events logging, it should be enabled only when debuggigng LSP servers + (eglot-sync-connect-nil 0) ; disable UI freeze when opening big files + (eglot-connect-timeout nil) ; never timeout + ) + (use-package emacs :bind (("" . scroll-down-line) ("" . scroll-up-line) @@ -52,10 +61,11 @@ (column-number-mode +1) (add-to-list 'default-frame-alist '(font . "Iosevka Comfy-13")) (recentf-mode +1) + (fset #'jsonrpc--log-event #'ignore) ; this should be enabled only when needed, otherwise makes Emacs slower (defun ccr/reload-emacs () (interactive) (load-file "~/.config/emacs/init.el")) -) + ) (use-package tramp :config @@ -532,6 +542,7 @@ ) (use-package eshell + :custom ((eshell-prefer-lisp-functions t)) :config (defun ccr/start-eshell () (eshell 'N)) @@ -571,6 +582,25 @@ ("C-c t c" . popper-cycle) ("C-c t p" . popper-toggle-type))) +(use-package org + :hook (org-mode . variable-pitch-mode) + :custom ((org-hide-emphasis-markers t)) + :config + ;; FIXME the following doesn't work when using the daemon, it should be executed only + ;; one time after the first frame is created + (set-face-font 'variable-pitch "Dejavu Serif 14") + (set-face-font 'fixed-pitch "Iosevka 14") + + (set-face-attribute 'org-block nil :inherit 'fixed-pitch) + (set-face-attribute 'org-code nil :inherit 'fixed-pitch) + (set-face-attribute 'org-document-info-keyword nil :inherit 'fixed-pitch) + (set-face-attribute 'org-meta-line nil :inherit 'fixed-pitch) + (set-face-attribute 'org-property-value nil :inherit 'fixed-pitch) + (set-face-attribute 'org-special-keyword nil :inherit 'fixed-pitch) + (set-face-attribute 'org-table nil :inherit 'fixed-pitch) + (set-face-attribute 'org-tag nil :inherit 'fixed-pitch :weight 'bold :height 0.8) + (set-face-attribute 'org-verbatim nil :inherit 'fixed-pitch)) + (use-package org-roam) (use-package consult-org-roam @@ -597,16 +627,20 @@ (use-package chatgpt :config (dolist (e '(("spiega" . "Spiega il seguente") - ("documenta" . "Documenta il seguente") + ("documenta" . "Documenta il seguente usando la sintassi appropriata in modo che possa essere inserito nel codice") )) (push e chatgpt-code-query-map)) :bind ("C-c i" . chatgpt-query)) +(use-package copilot + :custom + (copilot-max-char -1) + :hook (prog-mode org-mode) + :bind (("C-" . copilot-accept-completion))) + (provide 'init) ;;; init.el ends here ;; Local Variables: ;; byte-compile-warnings: (not free-vars noruntime unresolved) ;; End: - - diff --git a/packages/packages.nix b/packages/packages.nix index 68b8047..6e28ecc 100644 --- a/packages/packages.nix +++ b/packages/packages.nix @@ -4,20 +4,30 @@ with epkgs; let depsPerPackage = { indent-bars = [compat]; - "chatgpt" = [polymode]; + chatgpt = [polymode]; + copilot = [editorconfig dash s]; + }; + + overrideAttrsPerPackage = { + copilot = old: { + postInstall = '' + cp -r "$src/dist" "$LISPDIR" + ''; + }; }; # *Attrset* containig extra emacs packages from flake inputs extraPackages = lib.mapAttrs (inputName: input: let deps = depsPerPackage.${inputName} or []; - in - trivialBuild { + build = trivialBuild { pname = inputName; src = input.outPath; version = input.shortRev; propagatedUserEnvPkgs = deps; buildInputs = deps; - }) + }; + in + build.overrideAttrs (overrideAttrsPerPackage.${inputName} or (_: _))) pkgs.extra-package-inputs; # *List* containing emacs packages from (M)ELPA