Commit graph

946 commits

Author SHA1 Message Date
Henrik Lissner
2394e4124a
Don't auto-close brain popup with ESC 2020-10-04 16:15:43 -04:00
Sam Whitlock
1050ba83f0 Adjusting org journal functions to new commands
Silences some obsolescence warnings when navigating among entries
2020-09-29 19:10:58 +02:00
Henrik Lissner
1456108d5b
Fix #3888: fall back to org-journal-is-journal
Closes #3925
2020-09-10 18:03:32 -04:00
Diego Zamboni
723583e8d7
Automatically download reveal.js and use local copy, default to v4 (#3846)
* Automatically download reveal.js upgrade to v4

The +present option now automatically checks out the reveal.js
repository and configures org-re-reveal to use it. It also now uses
reveal.js 4 instead of 3.9.2.

* Changed :init to :config
2020-08-27 01:15:14 -04:00
Henrik Lissner
2df1eb7a76
Fix #2972: disable eldoc for plantuml org blocks 2020-08-26 13:55:09 -04:00
Henrik Lissner
ce2cabf07e
Autoload org-download-clipboard #3830 2020-08-25 06:07:47 -04:00
Henrik Lissner
bdbeb8f507
lang/org: SPC m a p -> org-download-clipboard
And SPC m a P -> org-download-yank for consistency.

p meaning paste.

Closes #3830
2020-08-25 05:50:09 -04:00
Henrik Lissner
1884828d22
Add :shadow parameter to package!
For to make replacing built-in packages easier.
2020-08-24 22:27:40 -04:00
Henrik Lissner
4209454df3
lang/org: optimize org-agenda (part 3) #2672 2020-08-21 19:16:56 -04:00
Henrik Lissner
e86ecf60c9
lang/org: optimize org-agenda (part 2) #2672 2020-08-21 19:11:40 -04:00
Henrik Lissner
91ab02951d
Minor refactors across the board 2020-08-20 03:43:50 -04:00
Henrik Lissner
dddfd9a7b1
Fix #3787: only inhibit some hooks for org-src ops
Inhibiting all MAJOR-MODE-hook functions (to fix #3660) would mean
inhibiting some useful functionality, like indentation or syntax
highlighting modes. We only want to inhibit expensive hooks. Since Doom
adds these to MAJOR-MODE-local-vars-hook by convention, we can
selectively inhibit those instead.
2020-08-20 02:30:06 -04:00
Henrik Lissner
7081d833f6
Move :ui pretty-code to :ui ligatures
Includes a major refactor of the module.
2020-08-20 02:14:32 -04:00
Henrik Lissner
0a83d44465
Merge pull request #3779 from t-e-r-m/org-toggle-checkbox-binding-200819
Add org-toggle-checkbox binding (SPC m x)
2020-08-19 16:32:49 -04:00
Henrik Lissner
cf2663ab7b
Bump *
bbatsov/projectile@bbcf781 -> bbatsov/projectile@46d2010
domtronn/all-the-icons.el@ed8e44d -> domtronn/all-the-icons.el@8c02280
emacsmirror/straight@fc077dd -> emacsmirror/straight@0c7c757
justbur/emacs-which-key@3642c11 -> justbur/emacs-which-key@e48e190
jwiegley/use-package@7d92536 -> jwiegley/use-package@4fb1f9a
purcell/ns-auto-titlebar@1efc30d -> purcell/ns-auto-titlebar@60273e7

+ :app
  - :app calendar
    kidd/org-gcal.el@7445058 -> kidd/org-gcal.el@2cad2d8
  - :app irc
    jorgenschaefer/circe@e5bf5f8 -> jorgenschaefer/circe@89aac22
  - :app rss
    skeeto/elfeed@d0405e6 -> skeeto/elfeed@8fb09ad
  - :app twitter
    abo-abo/avy@509471b -> abo-abo/avy@bbf1e73
+ :completion
  - :completion company
    company-mode/company-mode@5eb7d86 -> company-mode/company-mode@54f60ef
    sebastiencs/company-box@889d723 -> sebastiencs/company-box@20384f0
  - :completion helm
    emacs-helm/helm@5d224cb -> emacs-helm/helm@e9a1e53
    tumashu/posframe@922e4d2 -> tumashu/posframe@7b92a54
  - :completion ivy
    abo-abo/swiper@c6b60d3 -> abo-abo/swiper@9bb6841
    raxod502/prescient.el@b11d79b -> raxod502/prescient.el@cc289ba
    snyball/ivy-posframe@4474956 -> snyball/ivy-posframe@82a63ae
+ :checkers
  - :checkers syntax
    alexmurray/flycheck-posframe@2b3e94c -> alexmurray/flycheck-posframe@c928b5b
+ :editor
  - :editor evil
    emacs-evil/evil@2bc6ca3 -> emacs-evil/evil@1e7aa5b
    emacs-evil/evil-collection@3e62b6b -> emacs-evil/evil-collection@c136589
  - :editor fold
    seregaxvm/vimish-fold@6368523 -> seregaxvm/vimish-fold@9d12e39
  - :editor god
    emacsorphanage/god-mode@1eb6ef3 -> emacsorphanage/god-mode@ad2e674
  - :editor lispy
    abo-abo/lispy@cdaa9c7 -> abo-abo/lispy@0a9dcfd
    noctuid/lispyville@25a7012 -> noctuid/lispyville@0f13f26
  - :editor objed
    clemera/objed@e89d8da -> clemera/objed@dea5a64
  - :editor snippets
    joaotavora/yasnippet@5b1217a -> joaotavora/yasnippet@5cbdbf0
    hlissner/doom-snippets@21b7c8d -> hlissner/doom-snippets@60c57d6
  - :editor word-wrap
    emacs-straight/adaptive-wrap@1810c0e -> emacs-straight/adaptive-wrap@319db64
+ :emacs
  - :emacs dired
    purcell/diredfl@83567d0 -> purcell/diredfl@cd052df
  - :emacs ibuffer
    purcell/ibuffer-projectile@504b0ed -> purcell/ibuffer-projectile@ecbe482
    purcell/ibuffer-vc@1249c1e -> purcell/ibuffer-vc@5fa6aea
  - :emacs undo
    emacs-straight/undo-tree@5b6df03 -> emacs-straight/undo-tree@7523823
    ideasman42/emacs-undo-fu@46de023 -> ideasman42/emacs-undo-fu@c0806c1
  - :emacs vc
    magit/magit@d459e52 -> magit/magit@321214c
    pidu/git-timemachine@391eb61 -> pidu/git-timemachine@8d67575
+ :email
  + :email notmuch
    https://git.notmuchmail.org/git/notmuch@ad9c2e9 -> https://git.notmuchmail.org/git/notmuch@8776faf
    org-mime/org-mime@9f84446 -> org-mime/org-mime@9bb6351
  + :email wanderlust
    wanderlust/semi@57a948c -> wanderlust/semi@10897f0
+ :input
  - :input japanese
    skk-dev/ddskk@fe7f82b -> skk-dev/ddskk@275a831
+ :lang
  - :lang agda
    agda/agda@8eb0d01 -> agda/agda@36738c1
  - :lang cc
    Andersbakken/rtags@080cb0e -> Andersbakken/rtags@b57b360
    MaskRay/emacs-ccls@44f1fb3 -> Sarcasm/irony-mode@5f75fc0
    emacsmirror/cmake-mode@bfe85bc -> emacsmirror/cmake-mode@e58c411
  - :lang common-lisp
    joaotavora/sly@becf7b7 -> joaotavora/sly@155cb06
  - :lang coq
    ProofGeneral/PG@0f0bb2c -> ProofGeneral/PG@03e427a
    cpitclaudel/company-coq@7ec8058 -> cpitclaudel/company-coq@b096cb5
  - :lang dart
    emacs-lsp/lsp-dart@a06fc74 -> emacs-lsp/lsp-dart@437c548
  - :lang elixir
    elixir-editors/emacs-elixir@02a3922 -> elixir-editors/emacs-elixir@01b3324
  - :lang elm
    jcollard/elm-mode@7782be0 -> jcollard/elm-mode@363da4b
  - :lang emacs-lisp
    clojure-emacs/cider@9e117c2 -> clojure-emacs/cider@a89b694
    clojure-emacs/clojure-mode@da9f1ec -> clojure-emacs/clojure-mode@84ed16c
    jorgenschaefer/emacs-buttercup@e71a40f -> jorgenschaefer/emacs-buttercup@0e5eae0
    xuchunyang/elisp-demos@4cd55a3 -> xuchunyang/elisp-demos@8c97481
  - :lang erlang
    erlang/otp@3065fbf -> erlang/otp@d9bc785
  - :lang ess
    emacs-ess/ESS@3c2fb63 -> emacs-ess/ESS@1baf8bf
  - :lang fuel
    factor/factor@497d649 -> factor/factor@3fdb032
  - :lang fsharp
    fsharp/emacs-fsharp-mode@8c86e38 -> fsharp/emacs-fsharp-mode@3e41fe1
  - :lang fstar
    FStarLang/fstar-mode.el@aaaf256 -> FStarLang/fstar-mode.el@bd28cb8
  - :lang haskell
    jyp/dante@7411904 -> jyp/dante@c516bc9
  - :lang hy
    hylang/hy-mode@e2d5fec -> hylang/hy-mode@55e84ca
  - :lang idris
    idris-hackers/idris-mode@acc8835 -> idris-hackers/idris-mode@b77eadd
  - :lang java
    mopemope/meghanada-emacs@e119c7b -> mopemope/meghanada-emacs@1e41f7f
  - :lang javascript
    ananthakumaran/tide@13e7af7 -> ananthakumaran/tide@f0b6dac
    emacs-typescript/typescript.el@0fc7297 -> emacs-typescript/typescript.el@42a60e5
    mooz/js2-mode@5049e54 -> mooz/js2-mode@40aab27
  - :lang julia
    JuliaEditorSupport/julia-emacs@1c122f1 -> JuliaEditorSupport/julia-emacs@b5f5983
    tpapp/julia-repl@5fa04de -> tpapp/julia-repl@d073acb
  - :lang kotlin
    Emacs-Kotlin-Mode-Maintainers/kotlin-mode@ab61099 -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@8e6dd57
  - :lang latex
    emacs-straight/adaptive-wrap@1810c0e -> emacs-straight/adaptive-wrap@319db64
    emacs-straight/auctex@6abf890 -> emacs-straight/auctex@59e251c
    iyefrat/evil-tex@bb01576 -> iyefrat/evil-tex@06234c9
  - :lang lean
    leanprover/lean-mode@65b55b1 -> leanprover/lean-mode@6b43776
  - :lang ledger
    ledger/ledger-mode@7d78645 -> ledger/ledger-mode@805507f
  - :lang markdown
    Fanael/edit-indirect@935ded3 -> Fanael/edit-indirect@bdc8f54
    jrblevin/markdown-mode@fa9fa20 -> jrblevin/markdown-mode@ef2cb4d
    seagle0128/grip-mode@52768a0 -> seagle0128/grip-mode@281ada2
  - :lang nix
    NixOS/nix-mode@a00b3f7 -> NixOS/nix-mode@0cf1ea1
  - :lang ocaml
    ocaml-ppx/ocamlformat@27a49cc -> ocaml-ppx/ocamlformat@cd0eaa8
    ocaml/dune@66cfb3a -> ocaml/dune@daea74e
  - :lang org
    abo-abo/org-download@768716b -> abo-abo/org-download@67b3c74
    bastibe/org-journal@a6378dc -> bastibe/org-journal@a2728e2
    dzop/emacs-jupyter@785edbb -> dzop/emacs-jupyter@360cae2
    emacs-straight/org-mode@a1e5bee -> emacs-straight/org-mode@220f2b0
    hniksic/emacs-htmlize@86f22f2 -> hniksic/emacs-htmlize@4920510
    integral-dw/org-superstar-mode@1748185 -> integral-dw/org-superstar-mode@94f35c2
    oer/org-re-reveal@c548e23 -> oer/org-re-reveal@7fe39d5
    org-roam/company-org-roam@5d7ccd9 -> org-roam/company-org-roam@1132663
    org-roam/org-roam@0aa0a7c -> org-roam/org-roam@c33867e
  - :lang php
    emacs-php/php-mode@4345dfd -> emacs-php/php-mode@f4c7c69
    jwiegley/emacs-async@86aef2c -> jwiegley/emacs-async@36a1015
  - :lang plantuml
    skuro/plantuml-mode@ea45a13 -> skuro/plantuml-mode@5889166
  - :lang python
    cython/cython@0208bf2 -> cython/cython@fcfd16c
    emacs-lsp/lsp-pyright@3cf2e8f -> emacs-lsp/lsp-pyright@9603dda
    emacs-lsp/lsp-python-ms@7a502e6 -> emacs-lsp/lsp-python-ms@a884a9a
    necaris/conda.el@9d02130 -> necaris/conda.el@9f7eea1
    wbolster/emacs-python-pytest@6a3b4e5 -> wbolster/emacs-python-pytest@fc056fa
  - :lang racket
    greghendershott/racket-mode@29afd25 -> greghendershott/racket-mode@c55fd70
  - :lang rest
    pashky/restclient.el@e8ca809 -> pashky/restclient.el@ac8aad6
  - :lang ruby
    nonsequitur/inf-ruby@f3c927c -> nonsequitur/inf-ruby@9f0f79f
  - :lang rust
    brotzeit/rustic@0ec0688 -> brotzeit/rustic@75b9920
  - :lang scala
    emacs-lsp/lsp-metals@3d4d4b7 -> emacs-lsp/lsp-metals@039aa72
    hvesalai/emacs-sbt-mode@633a315 -> hvesalai/emacs-sbt-mode@4358ed8
    hvesalai/emacs-scala-mode@46bb948 -> hvesalai/emacs-scala-mode@1d08e88
  - :lang scheme
    flatwhatson/flycheck-guile@f37b614 -> flatwhatson/flycheck-guile@2940f16
    jaor/geiser@0c86289 -> jaor/geiser@adc5c4a
  - :lang solidity
    ethereum/emacs-solidity@022b315 -> ethereum/emacs-solidity@d166a86
  - :lang swift
    emacs-lsp/lsp-sourcekit@04d75b6 -> emacs-lsp/lsp-sourcekit@130f7a8
    swift-emacs/swift-mode@2ab9ea1 -> swift-emacs/swift-mode@d266fbd
  - :lang web
    fxbois/web-mode@a2badd0 -> fxbois/web-mode@60ffd87
  - :lang yaml
    yoshiki/yaml-mode@cecf4b1 -> yoshiki/yaml-mode@68fecb5
+ :term
  - :term term
    manateelazycat/multi-term@7307ddd -> manateelazycat/multi-term@017c77c
+ :tools
  - :tools ansible
    yoshiki/yaml-mode@34648f2 -> yoshiki/yaml-mode@68fecb5
  - :tools debugger
    emacs-lsp/dap-mode@85a6163 -> emacs-lsp/dap-mode@4b18543
    realgud/realgud@5b0ed08 -> realgud/realgud@332d136
    tumashu/posframe@6d604a7 -> tumashu/posframe@7b92a54
  - :tools docker
    Silex/docker.el@d6233bd -> Silex/docker.el@3773112
  - :tools editorconfig
    editorconfig/editorconfig-emacs@9a73ff7 -> editorconfig/editorconfig-emacs@9bc1343
  - :tools ein
    millejoh/emacs-ipython-notebook@ccbed30 -> millejoh/emacs-ipython-notebook@99a4718
  - :tools lookup
    jacktasia/dumb-jump@b815731 -> jacktasia/dumb-jump@0d74b2f
  - :tools lsp
    emacs-lsp/helm-lsp@5c960e7 -> emacs-lsp/helm-lsp@4263c96
    emacs-lsp/lsp-mode@edb8119 -> emacs-lsp/lsp-mode@4145a70
    emacs-lsp/lsp-ui@1f3e970 -> emacs-lsp/lsp-ui@c39ae37
    joaotavora/eglot@fb6b17e -> joaotavora/eglot@5f873d2
  - :tools magit
    magit/forge@2c48746 -> magit/forge@feee7e2
    magit/magit@798aff5 -> magit/magit@321214c
  - :tools pass
    zx2c4/password-store@07b169e -> zx2c4/password-store@06f4999
  - :tools rgb
    emacs-straight/rainbow-mode@f780ddb -> emacs-straight/rainbow-mode@fdff98b
+ :ui
  - :ui doom
    hlissner/emacs-doom-themes@8a5538e -> hlissner/emacs-doom-themes@24023de
  - :ui fill-column
    laishulu/hl-fill-column@43cb3c3 -> laishulu/hl-fill-column@5782a91
  - :ui hl-todo
    tarsius/hl-todo@3bba459 -> tarsius/hl-todo@0598b98
  - :ui hydra
    abo-abo/hydra@87873d7 -> abo-abo/hydra@112e689
  - :ui indent-guides
    DarthFennec/highlight-indent-guides@1b12c7b -> DarthFennec/highlight-indent-guides@a4f7714
  - :ui modeline
    seagle0128/doom-modeline@881e099 -> seagle0128/doom-modeline@ffbaaee
  - :ui tabs
    ema2159/centaur-tabs@9114ef4 -> ema2159/centaur-tabs@7e0332b
  - :ui treemacs
    Alexander-Miller/treemacs@644e940 -> Alexander-Miller/treemacs@027e03b
  - :ui window-select
    abo-abo/ace-window@7003c88 -> abo-abo/ace-window@c7cb315
2020-08-19 16:18:11 -04:00
t-e-r-m
2c25ffab54 Add org-toggle-checkbox binding (SPC m x) 2020-08-19 17:42:11 +05:30
Henrik Lissner
ff90fc82e6
Normalize keymaps on evil-org-mode
Fixes an issue where evil keybinds aren't in effect on just after
activating org-mode.
2020-08-14 13:35:02 -04:00
Henrik Lissner
14d9786360
Respect org-hierarchical-todo-statistics 2020-08-14 00:40:32 -04:00
Henrik Lissner
3173b39b58
lang/org: different bullets for nested plain lists 2020-08-09 01:50:41 -04:00
Henrik Lissner
f686e01f4b
lang/org: fix eval handler
1. Wasn't restricting boundaries to the inside of the src block.
2. Was using a match when no match data was set (whoops).
2020-08-07 22:41:39 -04:00
Henrik Lissner
3b13105e0e
lang/org: add jupyter support to eval handler 2020-08-07 20:15:15 -04:00
Henrik Lissner
bf9042327c
lang/org: improve jupyter support
Closes #2477

Co-authored-by: Seong Yong-ju <sei40kr@gmail.com>
2020-08-06 00:32:36 -04:00
Henrik Lissner
5a80db875c
lang/org: add lookup handlers for src blocks
- Fixes: `set-lookup-handlers!` couldn't define :definition or
  :references handlers in text-mode derivatives.
- Adds: support for evaluating code in jupyter blocks (#2477).
2020-08-06 00:23:09 -04:00
Henrik Lissner
3b159dda0a
lang/org: add code-completion in src blocks
company-capf for src blocks and company-dabbrev for everything else.

Relevant to #2477
2020-08-06 00:22:40 -04:00
Henrik Lissner
68136f7ff9
lang/org: add +pretty flag; move org-superstar
org-superstar is no longer enabled by default, due to unicode-related
crashes and general slowness betraying our "gotta go fast" mantra.
2020-08-05 18:31:01 -04:00
Henrik Lissner
8ae0e79918
lang/org: add eval handler
With this, gr and gR will now work in babel blocks to execute a subset
of the block (or the whole thing, if you'd like). Results are displayed
in a popup buffer (or overlay if :tools (eval +overlay) is enabled).
2020-08-05 18:26:07 -04:00
Henrik Lissner
80e1e8ff9a
lang/org: refactor & reformatting 2020-08-05 18:26:07 -04:00
Henrik Lissner
68c15ef4ae
lang/org: tie auto-indent on RET to electric-indent
Gives the user a venue for disabling indentation behavior.
2020-08-05 18:26:06 -04:00
Henrik Lissner
863eb82efd
S-RET -> insert literal newline
A convention on many text editors and applications is to make RET
auto-indent new lines. That has already been done. Another convention is
for S-RET to insert an unindented line; this commit adds this convention
to Doom.

Relevant to #3694
2020-08-05 18:26:06 -04:00
Henrik Lissner
d81ef69525
Fix #3693: don't unfold archive trees on file-open
Also refactors +org-make-last-point-visible-h to be more realistic about
when it should and shouldn't expand the hidden region at point. Since
org-agenda-inhibit-startup is now non-nil by default it makes no sense
to test it (and it was a poor choice to begin with).

Plus, instead of using outline's API, better to use org's, even if
they're aliases or wrappers. Less of a maintenance burden.
2020-08-05 15:00:34 -04:00
Henrik Lissner
434f107099
lang/org: org-latex-prefer-user-labels = t 2020-07-31 15:58:09 -04:00
Henrik Lissner
d6fb7d8ac6
lang/org: fix mode restart in buried agenda buffers
Would formerly only apply when persp-mode was active, but this has
nothing to do with persp-mode, specifically.
2020-07-31 15:57:59 -04:00
Henrik Lissner
ff18b1329e
Fix #3660: inhibit expensive mode hooks in src blocks
Speeds up native indentation on RET or TAB in org src blocks.

Also, only reindent natively on RET if org-src-tab-acts-natively is
non-nil.
2020-07-31 15:42:27 -04:00
Henrik Lissner
e58ff8ebf0
lang/org: mention org-roam's sqlite3 dependency 2020-07-31 01:40:36 -04:00
Henrik Lissner
6a64f37435
Minor refactors & revision across the board 2020-07-31 01:39:24 -04:00
Henrik Lissner
a54d2b3804
lang/org: optimize org-agenda #2672 2020-07-31 01:34:56 -04:00
Henrik Lissner
c7ceed8be7
lang/org: set 3 new defaults
org-fontify-done-headline
org-imenu-depth
org-agenda-deadline-faces
2020-07-31 01:34:24 -04:00
Henrik Lissner
8f7a8be0ca
Bump :lang org
emacs-straight/org-mode@82b496c -> emacs-straight/org-mode@a1e5bee
kaushalmodi/ox-hugo@77050d2 -> kaushalmodi/ox-hugo@75b849e
oer/org-re-reveal@f9f65f3 -> oer/org-re-reveal@c548e23
org-roam/org-roam@4d992ce -> org-roam/org-roam@0aa0a7c
2020-07-31 01:23:00 -04:00
Henrik Lissner
34e8047180
Fix #3645: stringp error starting up org-roam
A naive check upstream expects emacsql-sqlite3-executable to always be a
string, but it will be nil if sqlite3 isn't installed, so it throws an
unhelpful type error.

Relevant to #3643
2020-07-29 14:30:09 -04:00
wedens
d006f76dea org-roam: check for sqlite3 executable in doctor 2020-07-29 10:46:10 +07:00
Henrik Lissner
0e73297707
lang/org: fix edge case in +org--insert-item 2020-07-27 03:07:04 -04:00
Henrik Lissner
cacc9d2e9b
lang/org: org-list-allow-alphabetical = t 2020-07-26 16:17:07 -04:00
Henrik Lissner
a5c509afff
lang/org: org-catch-invisible-edits = 'smart 2020-07-26 16:17:07 -04:00
Henrik Lissner
b2e11f9a72
Revise docstrings for org hooks 2020-07-26 16:17:04 -04:00
Henrik Lissner
629c7bed8e
Rename λ! (deprecated) -> cmd! 2020-07-26 15:56:51 -04:00
Henrik Lissner
12e414be89
Rename +org/toggle-clock -> +org/toggle-last-clock
And rewrite it to ask for confirmation before clocking in on the item at
point. Without this, it's much harder to see what exactly it's doing.
2020-07-26 15:55:11 -04:00
Henrik Lissner
076cee4e89
Revise +org--insert-item
Which powers +org/insert-item-below and +org/insert-item-above.
2020-07-26 15:44:42 -04:00
Henrik Lissner
afcf56a610
Redesign dwim RET on org headings
In an effort to make +org/dwim-at-point more useful and intuitive.

- Fix latex preview toggling in subtree
- Toggle inline images more selectively
- Clean up after itself (delete overlays)
- Update +org/dwim-at-point docstring
- Always update todo statistics, cookies, checkbox counts and ToC.
2020-07-24 19:27:50 -04:00
Henrik Lissner
f4c2c7f9a7
Bump :lang org
bastibe/org-journal@01ea4bd -> bastibe/org-journal@a6378dc
emacs-straight/org-mode@bb427f7 -> emacs-straight/org-mode@82b496c
oer/org-re-reveal@a786188 -> oer/org-re-reveal@f9f65f3
org-roam/org-roam@fb5beeb -> org-roam/org-roam@4d992ce

Fixes #3595
2020-07-23 14:44:15 -04:00
Henrik Lissner
da1030985d
Minor refactors & reformatting 2020-07-23 01:26:03 -04:00