aboutsummaryrefslogtreecommitdiff
;; Per-directory local variables for GNU Emacs 23 and later.

((nil
  . ((fill-column . 78)
     (tab-width   .  8)
     (sentence-end-double-space . t)

     ;; For use with 'bug-reference-prog-mode'.  Extra bug-reference
     ;; configuration should be done in your Emacs user configuration file;
     ;; refer to (info (guix) The Perfect Setup).
     (bug-reference-bug-regexp
      . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)")
     (bug-reference-url-format . "https://issues.guix.gnu.org/%s")

     (eval . (add-to-list 'completion-ignored-extensions ".go"))

     ;; Emacs-Guix
     (eval . (setq-local guix-directory
                         (locate-dominating-file default-directory
                                                 ".dir-locals.el")))

     ;; YASnippet
     (eval . (with-eval-after-load
                 'yasnippet
               (let ((guix-yasnippets
                      (expand-file-name
                       "etc/snippets/yas"
                       (locate-dominating-file default-directory
                                               ".dir-locals.el"))))
                 (unless (member guix-yasnippets yas-snippet-dirs)
                   (add-to-list 'yas-snippet-dirs guix-yasnippets)
                   (yas-reload-all)))))

     ;; Geiser
     ;; This allows automatically setting the `geiser-guile-load-path'
     ;; variable when using various Guix checkouts (e.g., via git worktrees).
     (geiser-repl-per-project-p . t)))

 (c-mode          . ((c-file-style . "gnu")))
 (scheme-mode
  .
  ((indent-tabs-mode . nil)
   (eval . (put 'eval-when 'scheme-indent-function 1))
   (eval . (put 'call-with-prompt 'scheme-indent-function 1))
   (eval . (put 'test-assert 'scheme-indent-function 1))
   (eval . (put 'test-assertm 'scheme-indent-function 1))
   (eval . (put 'test-equalm 'scheme-indent-function 1))
   (eval . (put 'test-equal 'scheme-indent-function 1))
   (eval . (put 'test-eq 'scheme-indent-function 1))
   (eval . (put 'call-with-input-string 'scheme-indent-function 1))
   (eval . (put 'call-with-port 'scheme-indent-function 1))
   (eval . (put 'guard 'scheme-indent-function 1))
   (eval . (put 'lambda* 'scheme-indent-function 1))
   (eval . (put 'substitute* 'scheme-indent-function 1))
   (eval . (put 'match-record 'scheme-indent-function 3))
   (eval . (put 'match-record-lambda 'scheme-indent-function 2))

   ;; TODO: Contribute these to Emacs' scheme-mode.
   (eval . (put 'let-keywords 'scheme-indent-function 3))

   ;; 'modify-inputs' and its keywords.
   (eval . (put 'modify-inputs 'scheme-indent-function 1))
   (eval . (put 'replace 'scheme-indent-function 1))

   ;; 'modify-phases' and its keywords.
   (eval . (put 'modify-phases 'scheme-indent-function 1))
   (eval . (put 'replace 'scheme-indent-function 1))
   (eval . (put 'add-before 'scheme-indent-function 2))
   (eval . (put 'add-after 'scheme-indent-function 2))

   (eval . (put 'modify-services 'scheme-indent-function 1))
   (eval . (put 'with-directory-excursion 'scheme-indent-function 1))
   (eval . (put 'with-file-lock 'scheme-indent-function 1))
   (eval . (put 'with-file-lock/no-wait 'scheme-indent-function 1))
   (eval . (put 'with-profile-lock 'scheme-indent-function 1))
   (eval . (put 'with-writable-file 'scheme-indent-function 2))

   (eval . (put 'package 'scheme-indent-function 0))
   (eval . (put 'package/inherit 'scheme-indent-function 1))
   (eval . (put 'origin 'scheme-indent-function 0))
   (eval . (put 'build-system 'scheme-indent-function 0))
   (eval . (put 'bag 'scheme-indent-function 0))
   (eval . (put 'graft 'scheme-indent-function 0))
   (eval . (put 'operating-system 'scheme-indent-function 0))
   (eval . (put 'file-system 'scheme-indent-function 0))
   (eval . (put 'swap-space 'scheme-indent-function 0))
   (eval . (put 'manifest-entry 'scheme-indent-function 0))
   (eval . (put 'manifest-pattern 'scheme-indent-function 0))
   (eval . (put 'substitute-keyword-arguments 'scheme-indent-function 1))
   (eval . (put 'with-store 'scheme-indent-function 1))
   (eval . (put 'with-store/non-blocking 'scheme-indent-function 1))
   (eval . (put 'with-external-store 'scheme-indent-function 1))
   (eval . (put 'with-error-handling 'scheme-indent-function 0))
   (eval . (put 'with-mutex 'scheme-indent-function 1))
   (eval . (put 'with-atomic-file-output 'scheme-indent-function 1))
   (eval . (put 'call-with-compressed-output-port 'scheme-indent-function 2))
   (eval . (put 'call-with-decompressed-port 'scheme-indent-function 2))
   (eval . (put 'call-with-gzip-input-port 'scheme-indent-function 1))
   (eval . (put 'call-with-gzip-output-port 'scheme-indent-function 1))
   (eval . (put 'call-with-lzip-input-port 'scheme-indent-function 1))
   (eval . (put 'call-with-lzip-output-port 'scheme-indent-function 1))
   (eval . (put 'signature-case 'scheme-indent-function 1))
   (eval . (put 'emacs-batch-eval 'scheme-indent-function 0))
   (eval . (put 'emacs-batch-edit-file 'scheme-indent-function 1))
   (eval . (put 'emacs-substitute-sexps 'scheme-indent-function 1))
   (eval . (put 'emacs-substitute-variables 'scheme-indent-function 1))
   (eval . (put 'with-derivation-narinfo 'scheme-indent-function 1))
   (eval . (put 'with-derivation-substitute 'scheme-indent-function 2))
   (eval . (put 'with-status-report 'scheme-indent-function 1))
   (eval . (put 'with-status-verbosity 'scheme-indent-function 1))
   (eval . (put 'with-build-handler 'scheme-indent-function 1))

   (eval . (put 'mlambda 'scheme-indent-function 1))
   (eval . (put 'mlambdaq 'scheme-indent-function 1))
   (eval . (put 'syntax-parameterize 'scheme-indent-function 1))
   (eval . (put 'with-monad 'scheme-indent-function 1))
   (eval . (put 'mbegin 'scheme-indent-function 1))
   (eval . (put 'mwhen 'scheme-indent-function 1))
   (eval . (put 'munless 'scheme-indent-function 1))
   (eval . (put 'mlet* 'scheme-indent-function 2))
   (eval . (put 'mlet 'scheme-indent-function 2))
   (eval . (put 'mparameterize 'scheme-indent-function 2))
   (eval . (put 'run-with-store 'scheme-indent-function 1))
   (eval . (put 'run-with-state 'scheme-indent-function 1))
   (eval . (put 'wrap-program 'scheme-indent-function 1))
   (eval . (put 'wrap-script 'scheme-indent-function 1))
   (eval . (put 'with-imported-modules 'scheme-indent-function 1))
   (eval . (put 'with-extensions 'scheme-indent-function 1))
   (eval . (put 'with-parameters 'scheme-indent-function 1))
   (eval . (put 'let-system 'scheme-indent-function 1))
   (eval . (put 'with-build-variables 'scheme-indent-function 2))

   (eval . (put 'with-database 'scheme-indent-function 2))
   (eval . (put 'call-with-database 'scheme-indent-function 1))
   (eval . (put 'call-with-transaction 'scheme-indent-function 1))
   (eval . (put 'call-with-retrying-transaction 'scheme-indent-function 1))

   (eval . (put 'call-with-container 'scheme-indent-function 1))
   (eval . (put 'container-excursion 'scheme-indent-function 1))
   (eval . (put 'eventually 'scheme-indent-function 1))

   (eval . (put 'call-with-progress-reporter 'scheme-indent-function 1))
   (eval . (put 'with-repository 'scheme-indent-function 2))
   (eval . (put 'with-temporary-git-repository 'scheme-indent-function 2))
   (eval . (put 'with-environment-variables 'scheme-indent-function 1))
   (eval . (put 'with-fresh-gnupg-setup 'scheme-indent-function 1))

   (eval . (put 'with-paginated-output-port 'scheme-indent-function 1))

   (eval . (put 'with-shepherd-action 'scheme-indent-function 3))

   (eval . (put 'with-http-server 'scheme-indent-function 1))

   ;; This notably allows '(' in Paredit to not insert a space when the
   ;; preceding symbol is one of these.
   (eval . (modify-syntax-entry ?~ "'"))
   (eval . (modify-syntax-entry ?$ "'"))
   (eval . (modify-syntax-entry ?+ "'"))

   ;; Emacs 28 changed the behavior of 'lisp-fill-paragraph', which causes the
   ;; first line of package descriptions to extrude past 'fill-column', and
   ;; somehow that is deemed more correct upstream (see:
   ;; https://issues.guix.gnu.org/56197).
   (eval . (progn
             (require 'lisp-mode)
             (defun emacs27-lisp-fill-paragraph (&optional justify)
               (interactive "P")
               (or (fill-comment-paragraph justify)
                   (let ((paragraph-start
                          (concat paragraph-start
                                  "\\|\\s-*\\([(;\"]\\|\\s-:\\|`(\\|#'(\\)"))
                         (paragraph-separate
                          (concat paragraph-separate "\\|\\s-*\".*[,\\.]$"))
                         (fill-column (if (and (integerp emacs-lisp-docstring-fill-column)
                                               (derived-mode-p 'emacs-lisp-mode))
                                          emacs-lisp-docstring-fill-column
                                        fill-column)))
                     (fill-paragraph justify))
                   ;; Never return nil.
                   t))
             (setq-local fill-paragraph-function #'emacs27-lisp-fill-paragraph)))))

 (emacs-lisp-mode . ((indent-tabs-mode . nil)))
 (texinfo-mode    . ((indent-tabs-mode . nil)
                     (fill-column . 72))))
e/html/guix-devel/2020-03/msg00095.html>. Reported there by Vagrant Cascadian <vagrant@debian.org>. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): Use correct file name. (doc-po-update-cookbook-%): Use correct PO file name. Florian Pelz 2020-02-17doc: Add German Cookbook translation....* doc/local.mk (info_TEXINFOS): Add guix-cookbook.de.texi. (TRANSLATED_INFO): Add guix-cookbook.de.texi. * po/doc/guix-cookbook.de.po: New file. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): Add guix-cookbook.de.po. Florian Pelz 2019-09-18doc: Add Guix Cookbook....* .gitignore: Update ignore list. * Makefile.am (assert-no-store-file-names): Exclude the cookbook. * bootstrap: Generate po files for cookbook translations. * doc/guix-cookbook.texi: New file. * doc/local.mk (info_TEXINFOS): Add it; add a rule to build cookbook translations. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): New variable. (EXTRA_DIST): Add cookbook pot file and po files. (doc-po-update-cookbook-%): New target. (doc-pot-update): Also update cookbook pot file. (doc-po-update): Also update cookbook po files. Ricardo Wurmus 2019-05-13doc: Add Russian translation....* doc/local.mk (info_TEXINFOS): Add guix.ru.texi. (TRANSLATED_INFO): Add {guix,contributing}.ru.texi. * po/doc/local.mk (DOC_PO_FILES): Add guix-manual.ru.po. * po/doc/guix-manual.ru.po: New file. Ludovic Courtès 2019-04-30build: 'guix-manual.*.po' no longer depends on 'guix-manual.pot'....That dependency was causing a failure when building from a fresh checkout since commit d60225d5caabfb6409e3277c0512cd4c0fa63d72 because 'guix-manual.pot' was no longer around and there's no rule to make it. This commit replaces the 'guix-manual.%.po' target by a phony target, 'doc-po-update-%', without any dependency. * po/doc/local.mk ($(srcdir)/po/doc/guix-manual.%.po): Rename to... (doc-po-update-%): ... this. Remove dependencies. Change how 'lang' is computed; compute $output and $input, and replace occurrences of $@ and $< with those. (doc-po-update): Adjust accordingly. Ludovic Courtès 2019-04-29maint: Mark 'doc-pot-update' and 'doc-po-update' as phony....* po/doc/local.mk (doc-pot-update, doc-pot-update): Mark as phony. Ludovic Courtès 2019-04-24doc: Add Simplified Chinese translation....* doc/local.mk (info_TEXINFOS): Add guix.zh_CN.texi. (TRANSLATED_INFO): Add guix.zh_CN.texi and contributing.zh_CN.texi. * po/doc/local.mk (DOC_PO_FILES): Add guix-manual.zh_CN.po. * doc/contributing.zh_CN.texi, doc/guix.zh_CN.texi: New files. Ludovic Courtès 2019-04-23doc: Add Spanish translation....* doc/local.mk (info_TEXINFOS): Add guix.es.texi. (TRANSLATED_INFO): Add guix.es.texi and contributing.es.texi. * po/doc/guix-manual.es.po: New file. * po/doc/local.mk: Add guix-manual.es.po. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Miguel Ángel Arruga Vivas 2018-11-28nls: Update documentation po and pot with `make dist`....* Makefile.am: dist-hook depends on doc-po-update. * po/doc/local.mk (doc-po-update): New target. Julien Lepiller 2018-11-01doc: Add German translation....* doc/contributing.de.texi: New file. * doc/guix.de.texi: New file * doc/local.mk (TRANSLATED_INFO): Add them. (info_TEXINFOS): Add guix.de.texi. * po/doc/guix-manual.de.po: New file. * po/doc/local.mk (EXTRA_DIST): Add it. * doc/guix.texi: Document the German translation. Julien Lepiller 2018-04-29build: Use only one domain for guix-manual....* Makefile.am (assert-no-store-file-names): Exclude guix-manual. * po/doc/guix.pot po/doc/contributing.pot: Merge into... * po/doc/guix-manual.pot: ...this. * po/doc/guix.fr.po po/doc/contributing.fr.po: Merge into... * po/doc/guix-manual.fr.po: ...this. * doc/local.mk: Replace old file names. * po/doc/local.mk: Replace old file names. Julien Lepiller 2018-04-19gnu: doc: Add French documentation....* doc/contributing.fr.texi: New file. * doc/guix.fr.texi: New file. * doc/local.mk (TRANSLATED_INFO): Add them. (info_TEXINFOS): Add guix.fr.texi. * po/doc/contributing.fr.po: New file. * po/doc/guix.fr.po: New file. * po/doc/local.mk (EXTRA_DIST): Add them. Julien Lepiller 2018-04-19gnu: doc: Allow documentation to be translated....* po/doc/contributing.pot: New file. * po/doc/guix.pot: New file. * po/doc/local.mk: New file. * Makefile.am: Include it. Add gettext command. Add silent rules for po4a. * configure.ac: Look for po4a-translate and po4a-updatepo. * doc/local.mk: Add rules to generate translated texi files. (TRANSLATED_INFO): New variable. (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Add it. * .gitignore: Add generated files. Julien Lepiller