summaryrefslogtreecommitdiff
path: root/emacs/guix-backend.el
Commit message (Collapse)AuthorAge
* emacs: Use socket instead of port.Alex Kost2015-12-15
| | | | | | | | | | | | Suggested by Florian Paul Schmidt. * emacs/guix-backend.el (guix-default-port): Remove. (guix-repl-socket-file-name-function, guix-repl-current-socket): New variables. (guix-repl-socket-file-name, guix-repl-delete-socket-maybe): New procedures. (guix-get-guile-program): Take socket as an optional argument. (guix-start-repl-maybe): Adjust accordingly.
* emacs: Expand 'guix-load-path'.Alex Kost2015-11-23
| | | | | | | | Reported by Mathieu Lirzin <mthl@gnu.org> at <http://lists.gnu.org/archive/html/guix-devel/2015-11/msg00585.html>. * emacs/guix-backend.el (guix-start-repl): Expand 'guix-load-path' to avoid a potentially relative directory name in Guile %load-path.
* emacs: config: Use "emacs-config-" prefix for constants.Alex Kost2015-10-20
| | | | | | | | | | | | | | | * emacs/guix-config.el.in (guix-emacs-interface-directory, guix-state-directory): Rename to ... (guix-config-emacs-interface-directory, guix-config-state-directory): ...this. (guix-config-guile-program): New constant. (guix-guile-program): Move to ... * emacs/guix-external.el (guix-guile-program): ...here. Make it a 'defcustom'. * emacs/guix-profiles.el (guix-default-profile): Use 'guix-config-state-directory'. * emacs/guix-backend.el (guix-load-path): Use 'guix-config-emacs-interface-directory'.
* emacs: Move code for evaluating to "guix-geiser.el".Alex Kost2015-09-22
| | | | | | | | | | * emacs/guix-backend.el: Adjust commentary. Move "eval" code to ... (guix-eval, guix-eval-read, guix-eval-in-repl): Adjust to use new functions. * emacs/guix-geiser.el: ...here. New file. (guix-geiser-eval, guix-geiser-eval-read, guix-geiser-eval-in-repl, guix-repl-send): New functions. * emacs.am (ELFILES): Add "guix-geiser.el".
* emacs: Move guile related code to "guix-guile.el".Alex Kost2015-09-22
| | | | | | | | * emacs/guix-backend.el (guix-make-guile-expression): Move to... * emacs/guix-guile.el: ... here. New file. * emacs/guix-base.el: Use it. * emacs/guix-command.el: Use it. * emacs.am (ELFILES): Add it.
* emacs: Use only one guix-load-path variable.Mathieu Lirzin2015-08-30
| | | | | emacs/guix-init.el (guix-load-path): Move to ... emacs/guix-backend.el (guix-load-path): ... Here. Redefine it.
* emacs: Fix guix-guile-program default value.Mathieu Lirzin2015-08-30
| | | | | | | | | Fixes <http://bugs.gnu.org/21127>. * emacs/guix-backend.el: Use guix-config. (guix-guile-program): Move to ... * emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile program file name from compile-time instead of depending on PATH.
* emacs: Handle autoloading Emacs packages installed with Guix.Alex Kost2014-12-02
| | | | | | | | | * emacs/guix-emacs.el: New file. * emacs.am (ELFILES): Add it. * emacs/guix-backend.el (guix-after-repl-operation-hook): Add 'guix-emacs-load-autoloads-maybe'. * emacs/guix-init.el.in: Autoload emacs packages. (guix-package-enable-at-startup): New variable.
* emacs: Don't override the user's 'geiser-guile-load-path'.Ludovic Courtès2014-11-20
| | | | | * emacs/guix-backend.el (guix-start-repl): Add GUIX-LOAD-PATH to the front of GEISER-GUILE-LOAD-PATH instead of overriding it.
* emacs: Improve REPL procedures.Alex Kost2014-10-27
| | | | | | | | * emacs/guix-backend.el (guix-start-process-maybe): Add 'start-msg' and 'end-msg' optional arguments. (guix-start-repl-maybe): Likewise. Do not kill buffer with a dead process. (guix-repl-exit): New procedure. (guix-eval-in-repl): Use 'geiser-repl--send'.
* emacs: Introduce REPL operation type.Alex Kost2014-10-27
| | | | | | * emacs/guix-backend.el (guix-repl-operation-type): New variable. (guix-repl-output-filter): Run type hooks after performing an operation. (guix-eval-read): Add 'operation-type' argument.
* emacs: Support auto-updating after performing REPL operation.Alex Kost2014-10-16
| | | | | | | | | | | | | | | | | * emacs/guix-backend.el (guix-operation-buffer): New variable. (guix-eval-in-repl): Use it. Add optional 'operation-buffer' argument. * emacs/guix-base.el (guix-update-after-operation): New variable. (guix-switch-to-buffer, guix-list-or-info-buffer-p, guix-buffers, guix-update-buffers-maybe): New procedures. (guix-set-buffer): Use 'guix-switch-to-buffer'. Add optional 'no-display' argument. (guix-process-package-actions, guix-delete-generations, guix-switch-to-generation): Add optional 'operation-buffer' argument. * emacs/guix-info.el (guix-package-info-insert-action-button, guix-generation-info-insert-number, guix-generation-info-insert-current): Adjust for using operation buffer. * emacs/guix-list.el (guix-list-execute-package-actions, guix-generation-list-switch, guix-generation-list-execute): Likewise.
* emacs: Add hooks for REPL operations.Alex Kost2014-10-16
| | | | | | | | | * emacs/guix-backend.el (guix-before-repl-operation-hook, guix-after-repl-operation-hook, guix-repl-operation-p): New variables. (guix-repl-operation-success-message, guix-repl-output-filter): New procedures. (guix-start-repl): Adjust for using 'guix-repl-output-filter'. (guix-eval-in-repl): Honor 'guix-before-repl-operation-hook'.
* Add Emacs user interface.Alex Kost2014-09-03
* configure.ac (emacsuidir): New variable. (AC_CONFIG_FILES): Add 'emacs/guix-init.el', 'emacs/guix-helper.scm'. * Makefile.am: Include 'emacs.am'. * emacs.am: New file. * doc/emacs.texi: New file. * doc/guix.texi: Include 'emacs.texi'. * emacs/guix-backend.el: New file. * emacs/guix-base.el: New file. * emacs/guix-helper.scm.in: New file. * emacs/guix-history.el: New file. * emacs/guix-info.el: New file. * emacs/guix-init.el.in: New file. * emacs/guix-list.el: New file. * emacs/guix-main.scm: New file. * emacs/guix-utils.el: New file. * emacs/guix.el: New file.