Skip to content
Snippets Groups Projects
.dir-locals.el 5.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • ((nil
      ;; always use spaces for tabs
      (indent-tabs-mode . nil)
      ;; add final newline on save
      (require-final-newline . t)
      ;; prefer keeping source width about ~118, GitHub seems to cut off stuff at either 119 or 120 and it's nicer
      ;; to look at code in GH when you don't have to scroll back and forth
      (fill-column . 118)
    
      ;; tell find-things-fast to always use this directory as project root regardless of presence of other
      ;; deps.edn files
      (ftf-project-finders . (ftf-get-top-git-dir)))
    
     (js2-mode
      ;; these settings will let flycheck do everything through eslint,
      (js2-mode-show-parse-errors . nil)
      ;; because js2-mode can't handle flowtype
      (js2-mode-show-strict-warnings . nil))
    
     (clojure-mode
      ;; Specify which arg is the docstring for certain macros
      ;; (Add more as needed)
    
    Cam Saul's avatar
    Cam Saul committed
      (eval . (put 'defendpoint-schema                 'clojure-doc-string-elt 3))
      (eval . (put 'defendpoint                        'clojure-doc-string-elt 3))
      (eval . (put 'defendpoint-async                  'clojure-doc-string-elt 3))
      (eval . (put 'define-premium-feature             'clojure-doc-string-elt 2))
      (eval . (put 'api/defendpoint-schema             'clojure-doc-string-elt 3))
      (eval . (put 'api/defendpoint                    'clojure-doc-string-elt 3))
      (eval . (put 'api/defendpoint-async              'clojure-doc-string-elt 3))
      (eval . (put 'defsetting                         'clojure-doc-string-elt 2))
      (eval . (put 'setting/defsetting                 'clojure-doc-string-elt 2))
      (eval . (put 's/defn                             'clojure-doc-string-elt 2))
      (eval . (put 'p.types/defprotocol+               'clojure-doc-string-elt 2))
      (eval . (put 'methodical/defmethod               'clojure-doc-string-elt 3))
      (eval . (put 'methodical/defmulti                'clojure-doc-string-elt 2))
      (eval . (put 'mi/define-simple-hydration-method  'clojure-doc-string-elt 3))
    
      (eval . (put 'mi/define-batched-hydration-method 'clojure-doc-string-elt 3))
    
    Cam Saul's avatar
    Cam Saul committed
      (eval . (put 'mr/def                             'clojure-doc-string-elt 2))
      (eval . (put 'mu/defn                            'clojure-doc-string-elt 2))
    
      ;; Define custom indentation for functions inside metabase.
      ;; This list isn't complete; add more forms as we come across them.
      ;;
      ;; `put-clojure-indent' is a safe-local-eval-function, so use a bunch of calls to that
      ;; instead of one call to `define-clojure-indent'
    
    Cam Saul's avatar
    Cam Saul committed
      (eval . (put-clojure-indent 'api/let-404                     1))
      (eval . (put-clojure-indent 'c/step                          1))
      (eval . (put-clojure-indent 'impl/test-migrations            2))
      (eval . (put-clojure-indent 'let-404                         0))
      (eval . (put-clojure-indent 'lib.schema.match/match          '(:defn)))
      (eval . (put-clojure-indent 'lib.schema.match/match-one      '(:defn)))
      (eval . (put-clojure-indent 'lib.schema.match/replace        '(:defn)))
      (eval . (put-clojure-indent 'lib.schema.match/replace-in     '(:defn)))
      (eval . (put-clojure-indent 'lib.util.match/replace          '(:defn)))
      (eval . (put-clojure-indent 'macros/case                     0))
      (eval . (put-clojure-indent 'match                           1))
      (eval . (put-clojure-indent 'mt/dataset                      1))
      (eval . (put-clojure-indent 'mt/format-rows-by               '(:form)))
      (eval . (put-clojure-indent 'mt/query                        1))
      (eval . (put-clojure-indent 'mt/test-driver                  1))
      (eval . (put-clojure-indent 'mt/test-drivers                 1))
      (eval . (put-clojure-indent 'mt/with-anaphora                1))
      (eval . (put-clojure-indent 'prop/for-all                    1))
    
      (eval . (put-clojure-indent 'qp.streaming/streaming-response 1))
    
    Cam Saul's avatar
    Cam Saul committed
      (eval . (put-clojure-indent 'tc/quick-check                  1))
      (eval . (put-clojure-indent 'u/profile                       1))
      (eval . (put-clojure-indent 'u/prog1                         1))
      (eval . (put-clojure-indent 'u/select-keys-when              '(:form)))
      (eval . (put-clojure-indent 'with-meta                       '(:form)))
    
      ;; these ones have to be done with `define-clojure-indent' for now because of upstream bug
      ;; https://github.com/clojure-emacs/clojure-mode/issues/600 once that's resolved we should use `put-clojure-indent'
      ;; instead. Please don't add new entries unless they don't work with `put-clojure-indent'
      (eval . (define-clojure-indent
    
    Cam Saul's avatar
    Cam Saul committed
               (l/matcha                  '(1 (:defn)))
               (l/matche                  '(1 (:defn)))
    
               (p.types/def-abstract-type '(1 (:defn)))
    
    Cam Saul's avatar
    Cam Saul committed
               (p.types/defprotocol+      '(1 (:defn)))
               (p.types/defrecord+        '(2 nil nil (:defn)))
               (p.types/deftype+          '(2 nil nil (:defn)))
               (p/def-map-type            '(2 nil nil (:defn)))
               (p/defprotocol+            '(1 (:defn)))
               (p/defrecord+              '(2 nil nil (:defn)))
               (p/deftype+                '(2 nil nil (:defn)))
               (tools.macro/macrolet      '(1 ((:defn)) :form))))
    
      (cider-clojure-cli-aliases . "dev:drivers:drivers-dev:ee:ee-dev:user")
      (clojure-indent-style . always-align)
      (cljr-favor-prefix-notation . nil)
    
      (cljr-insert-newline-after-require . t)
    
      (cljr-print-right-margin . 118)
    
      (clojure-docstring-fill-column . 118)
    
    Cam Saul's avatar
    Cam Saul committed
      (cider-preferred-build-tool . clojure-cli)
      (cider-default-cljs-repl . shadow-select)
    
      (cider-shadow-default-options . "app"))
    
    
     ("bin"
      (clojure-mode
    
    Cam Saul's avatar
    Cam Saul committed
       (cider-clojure-cli-aliases . "dev:drivers:build:build-dev"))))