aboutsummaryrefslogtreecommitdiff
path: root/.dir-locals.el
blob: da6a44ea08b0410338912125f775acfacaf542fa (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
;; 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'.
     (bug-reference-bug-regexp
      . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)")
     (bug-reference-url-format . "https://bugs.gnu.org/%s")

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

     ;; Geiser
     ;; This allows automatically setting the `geiser-guile-load-path'
     ;; variable when using various Guix checkouts (e.g., via git worktrees).
     (eval . (let ((root-dir-unexpanded (locate-dominating-file
                                         default-directory ".dir-locals.el")))
               ;; While Guix should in theory always have a .dir-locals.el
               ;; (we are reading this file, after all) there seems to be a
               ;; strange problem where this code "escapes" to some other buffers,
               ;; at least vc-mode.  See:
               ;;   https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00296.html
               ;; Upstream report: <https://bugs.gnu.org/44698>
               ;; Hence the following "when", which might otherwise be unnecessary;
               ;; it prevents causing an error when root-dir-unexpanded is nil.
               (when root-dir-unexpanded
                 (let* ((root-dir (expand-file-name root-dir-unexpanded))
                        ;; Workaround for bug https://issues.guix.gnu.org/43818.
                        (root-dir* (directory-file-name root-dir)))

                   (unless (boundp 'geiser-guile-load-path)
                     (defvar geiser-guile-load-path '()))
                   (make-local-variable 'geiser-guile-load-path)
                   (require 'cl-lib)
                   (cl-pushnew root-dir* geiser-guile-load-path
                               :test #'string-equal)))))))

 (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 2))

   ;; '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 'gexp->derivation 'scheme-indent-function 1))
   (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 '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-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 '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 '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 'with-statement 'scheme-indent-function 3))
   (eval . (put 'call-with-retrying-transaction 'scheme-indent-function 1))
   (eval . (put 'call-with-savepoint 'scheme-indent-function 1))
   (eval . (put 'call-with-retrying-savepoint '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-lisp-mode . ((indent-tabs-mode . nil)))
 (texinfo-mode    . ((indent-tabs-mode . nil)
                     (fill-column . 72))))
ox (package (name "lttoolbox") (version "3.5.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/apertium/lttoolbox/releases/download/v" version "/lttoolbox-" version ".tar.xz")) (sha256 (base32 "0kn9xg9sc64amd6ah5gi4qij0bhfbmc2jjvxbjjrsdd8iq054cgm")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-static") #:phases (modify-phases %standard-phases (replace 'bootstrap ;; The included ./autogen.sh unconditionally runs ./configure before ;; its shebangs have been patched. (lambda _ (invoke "autoreconf" "-vfi")))))) (inputs (list libxml2)) (native-inputs (list autoconf automake libtool pkg-config)) (home-page "https://wiki.apertium.org/wiki/Lttoolbox") (synopsis "Lexical processing toolbox") (description "Lttoolbox is a toolbox for lexical processing, morphological analysis and generation of words. Analysis is the process of splitting a word (e.g. cats) into its lemma \"cat\" and the grammatical information @code{<n><pl>}. Generation is the opposite process.") (license (list license:gpl2 ; main license license:expat)))) ; utf8/* (define-public apertium (package (name "apertium") (version "3.5.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/apertium/apertium/releases/download/v" version "/apertium-" version ".tar.gz")) (sha256 (base32 "0lrx58ipx2kzh1pd3xm1viz05dqyrq38jbnj9dnk92c9ckkwkp4h")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (inputs (list libxml2 libxslt lttoolbox pcre)) (native-inputs `(("apertium-get" ,(origin (method git-fetch) (uri (git-reference (url "https://github.com/apertium/apertium-get") (commit "692d030e68008fc123089cf2446070fe8c6e3a3b"))) (sha256 (base32 "0kgp68azvds7yjwfz57z8sa5094fyk5yr0qxzblrw7bisrrihnav")))) ("flex" ,flex) ("pkg-config" ,pkg-config) ;; python is only required for running the test suite ("python" ,python))) (arguments `(#:phases (modify-phases %standard-phases ;; If apertium-get does not exist in the source tree, the build tries ;; to download it using an svn checkout. To avoid this, copy ;; apertium-get into the source tree. (add-after 'unpack 'unpack-apertium-get (lambda* (#:key inputs #:allow-other-keys) (copy-recursively (assoc-ref inputs "apertium-get") "apertium/apertium-get") #t))))) (home-page "https://www.apertium.org/") (synopsis "Rule based machine translation system") (description "Apertium is a rule based machine translation system featuring a shallow-transfer machine translation engine. The design of the system makes translations fast (translating tens of thousands of words per second on ordinary desktop computers) and, in spite of the errors, reasonably intelligible and easily correctable.") (license (list license:gpl2 ; main license license:expat)))) ; utf8/* (define-public sdcv (package (name "sdcv") (version "0.5.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Dushistov/sdcv/") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "17jwcgc3jdp41rvxqi7zdsysfpjgzqq4z1l345qwffp1an6yaaqk")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DBUILD_TESTS=YES") #:phases (modify-phases %standard-phases (add-after 'build 'build-lang (lambda _ (invoke "make" "lang"))) (add-before 'check 'pre-check (lambda _ (setenv "HOME" (getcwd)) #t))))) (native-inputs `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config) ;; For tests. ("jq" ,jq))) (inputs (list glib ncurses readline zlib)) (home-page "https://dushistov.github.io/sdcv/") (synopsis "Console version of StarDict") (description "sdcv is simple text-based utility for work with dictionaries in StarDict's format.") (license license:gpl2+))) (define-public skk-jisyo (let ((commit "38c81dbc74cdbdead843364023dea837f239a48c") (revision "0")) (package (name "skk-jisyo") (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/skk-dev/dict") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "121j73bgd7fvj7zvaidqvgzfdvimig3f0vsyfv4vndwfgskh2r7z")))) (build-system copy-build-system) (arguments '(#:install-plan '(("./" "share/skk" #:include-regexp ("SKK-JISYO\\.*") #:exclude-regexp ("\\.gz$" "\\.md5$") #:exclude ("SKK-JISYO.pubdic+" "SKK-JISYO.wrong.annotated" "SKK-JISYO.wrong"))) #:phases (modify-phases %standard-phases (add-before 'install 'decompress (lambda* (#:key outputs #:allow-other-keys) (map (lambda (arg) (invoke "gzip" "-v" "-d" arg)) (find-files "." "SKK-JISYO\\..*\\.gz$")) (invoke "tar" "xvf" "zipcode.tar.gz")))))) (home-page "https://skk-dev.github.io/dict/") (synopsis "Jisyo (dictionary) files for the SKK Japanese-input software") (description "This package provides @file{SKK-JISYO.L}, the standard dictionary file for SKK Japanese input systems, and various dictionary files. @file{SKK-JISYO.L} can be used with @code{emacs-ddskk} or @code{uim} package.") (license license:gpl2+))))