summaryrefslogtreecommitdiff
path: root/emacs/guix-devel.el
Commit message (Collapse)AuthorAgeFilesLines
* services: Add 'modify-services'.Ludovic Courtès2015-10-281-0/+2
| | | | | | | | | | | * gnu/services.scm (%modify-service, modify-services): New macros. * gnu/services/base.scm (mingetty-service-type, guix-service-type): Export. * emacs/guix-devel.el (guix-devel-keywords): Add 'modify-services'. Ditto in 'guix-devel-scheme-indent' call. * doc/guix.texi (Using the Configuration System): Give an example of 'modify-services'. (Service Reference): Document it.
* emacs: devel: Add indentation rules for 'modify-phases' keywords.Alex Kost2015-10-201-1/+20
| | | | | | | * emacs/guix-devel.el: Add indentation rules for 'modify-phases' keywords. (guix-devel-indent-modify-phases-keyword, guix-devel-indent-modify-phases-keyword-1, guix-devel-indent-modify-phases-keyword-2): New functions.
* emacs: devel: Highlight Guix keywords.Alex Kost2015-10-171-0/+43
| | | | | * emacs/guix-devel.el (guix-devel-keywords): New constant. (guix-devel-font-lock-keywords): Use it.
* emacs: devel: Add indentation rules.Alex Kost2015-10-141-0/+64
| | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-devel.el: Add indentation rules for Guix macros/procedures. (guix-devel-scheme-indent): New macro. (guix-devel-indent-package): New function.
* emacs: Add 'guix-devel-build-package-source'.Alex Kost2015-10-121-0/+16
| | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * guix/scripts.scm (build-package-source): New procedure. * emacs/guix-devel.el (guix-devel-build-package-source): New command. (guix-devel-keys-map): Add key binding for it. * doc/emacs.texi (Emacs Development): Document it.
* emacs: Add 'guix-devel-lint-package'Alex Kost2015-10-091-3/+18
| | | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-devel.el (guix-devel-setup-repl): Add a workaround for 'guix-warning-port'. (guix-devel-lint-package): New command. (guix-devel-keys-map): Add key binding for it. * doc/emacs.texi (Emacs Development): Document it.
* emacs: Add 'guix-devel-with-definition'.Alex Kost2015-10-091-3/+20
| | | | | | * emacs/guix-devel.el (guix-devel-with-definition): New macro. (guix-devel-build-package-definition): Use it. (guix-devel-emacs-font-lock-keywords): New variable.
* emacs: Fix 'guix-devel-setup-repl'.Alex Kost2015-10-091-1/+1
| | | | | | | | | | | Setting up guix ports needs to be done in Geiser REPL synchronously, otherwise this operation may not be finished before the further evaluating of guile code. * emacs/guix-guile.el (guix-guile-prompt?): New function. * emacs/guix-geiser.el (guix-geiser-eval-in-repl-synchronously): New function. * emacs/guix-devel.el (guix-devel-setup-repl): Use it.
* emacs: devel: Fix 'modify-phases' highlighting.Alex Kost2015-10-091-2/+6
| | | | | * emacs/guix-devel.el (guix-devel-modify-phases-font-lock-pre): Handle the case when 'modify-phases' is commented.
* emacs: devel: Highlight gexp symbols.Alex Kost2015-10-091-1/+9
| | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-devel.el (guix-devel-gexp-symbol): New face. (guix-devel-font-lock-keywords): Adjust to handle gexp symbols.
* emacs: devel: Highlight 'modify-phases' keywords.Alex Kost2015-09-261-1/+54
| | | | | | | | | | | * emacs/guix-guile.el (guix-guile-keyword-regexp): New function. * emacs/guix-devel.el (guix-devel-faces): New custom group. (guix-devel-modify-phases-keyword): New face. (guix-devel-modify-phases-keyword-regexp, guix-devel-font-lock-keywords): New variables. (guix-devel-modify-phases-font-lock-matcher, guix-devel-modify-phases-font-lock-pre): New functions. (guix-devel-mode): Adjust to add/remove font-lock-keywords.
* emacs: Add 'guix-devel-build-package-definition'.Alex Kost2015-09-231-0/+40
| | | | | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-guile.el (guix-guile-definition-regexp): New variable. (guix-guile-current-definition, guix-guile-boolean): New functions. * emacs/guix-devel.el: Require 'guix-base'. (guix-devel-repl-processes): New variable. (guix-devel-setup-repl, guix-devel-setup-repl-maybe): New functions. (guix-devel-build-package-definition): New command. * doc/emacs.texi (Emacs Development): Document it.
* emacs: Add development utils.Alex Kost2015-09-231-0/+96
* emacs/guix-guile.el (guix-guile-current-module): New function. * emacs/guix-devel.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Development): New node. (Emacs Interface): Add it. * doc/contributing.texi (The Perfect Setup): Mention it. * doc/guix.texi (Top): Add it. * emacs/guix-init.el: Add 'guix-devel-activate-mode-maybe' to 'scheme-mode-hook'.