Commit graph

271 commits

Author SHA1 Message Date
Henrik Lissner
b9933e6637
refactor!: restructure Doom core
BREAKING CHANGE: This restructures the project in preparation for Doom
to be split into two repos. Users that have reconfigured Doom's CLI
stand a good chance of seeing breakage, especially if they've referred
to any core-* feature, e.g.

  (after! core-cli-ci ...)

To fix it, simply s/core-/doom-/, i.e.

  (after! doom-cli-ci ...)

What this commit specifically changes is:
- Renames all core features from core-* to doom-*
- Moves core/core-* -> lisp/doom-*
- Moves core/autoloads/* -> lisp/lib/*
- Moves core/templates -> templates/

Ref: #4273
2022-07-30 22:41:13 +02:00
Henrik Lissner
a4aab45656
fix(emacs-lisp): flycheck false positives in Doom configs 2022-06-22 23:04:00 +02:00
Henrik Lissner
170dadca5a
feat(emacs-lisp): register doomscript as elisp interpreter 2022-06-21 23:42:16 +02:00
Henrik Lissner
d014a7ae8b
docs(emacs-lisp): add fn!/lambda! to ToC & tweak header-args 2022-06-21 23:32:02 +02:00
Henrik Lissner
00c75eddf8
docs(emacs-lisp): add fn! & lambda! demos 2022-06-21 21:29:08 +02:00
Henrik Lissner
6c0b7e1530
refactor!(cli): rewrite CLI framework libraries
BREAKING CHANGE: this changes Doom's CLI framework in subtle ways, which
is listed in greater detail below. If you've never extended Doom's CLI,
then this won't affect you, but otherwise it'd be recommended you read
on below.

This commit focuses on the CLI framework itself and backports some
foundational changes to its DSL and how it resolves command line
arguments to CLIs, validates input, displays documentation, and persists
state across sessions -- and more. This is done in preparation for the
final stretch towarding completing the CLI rewrite (see #4273).

This is also an effort to generalize Doom's CLI (both its framework and
bin/doom), to increase it versatility and make it a viable dev tool for
other Doom projects (on our Github org) and beyond.

However, there is a *lot* to cover so I'll try to be brief:

- Refactor: generalize Doom's CLI framework by moving all bin/doom
  specific configuration/commands out of core-cli into bin/doom. This
  makes it easier to use bin/doom as a project-agnostic development
  tool (or for users to write their own).
- Refactor: change the namespace for CLI variables/functions from
  doom-cli-X to doom-X.
- Fix: subcommands being mistaken as arguments. "doom make index" will
  resolve to (defcli! (doom make index)) if it exists,
  otherwise (defcli! (doom make)) with "index" as an argument. Before
  this, it would resolve to the latter no matter what. &rest can
  override this; with (defcli! (doom make) (&rest args)), (defcli! (doom
  make index)) will never be invoked.
- Refactor!: redesign our output library (was core/autoload/output.el,
  is now core/autoload/print.el), and how our CLI framework buffers and
  logs output, and now merges logs across (exit! ...) restarts.
- Feat: add support for :before and :after pseudo commands. E.g.

    (defcli! (:before doom help) () ...)
    (defcli! (:after doom sync) () ...)

  Caveat: unlike advice, only one of each can be defined per-command.
- Feat: option arguments now have rudimentary type validation (see
  `doom-cli-option-arg-types`). E.g.

    (defcli! (doom foo) ((foo ("--foo" num))) ...)

  If NUM is not a numeric, it will throw a validation error.

  Any type that isn't in `doom-cli-option-arg-types` will be treated as a
  wildcard string type. `num` can also be replaced with a specification,
  e.g. "HOST[:PORT]", and can be formatted by using symbol quotes:
  "`HOST'[:`PORT']".
- Feat: it is no longer required that options *immediately* follow the command
  that defines them (but it must be somewhere after it, not before). E.g.
    With:
      (defcli! (:before doom foo) ((foo ("--foo"))) ...)
      (defcli! (doom foo baz) () ...)
    Before:
      FAIL: doom --foo foo baz
      GOOD: doom foo --foo baz
      FAIL: doom foo baz --foo
    After:
      FAIL: doom --foo foo baz
      GOOD: doom foo --foo baz
      GOOD: doom foo baz --foo
- Refactor: CLI session state is now kept in a doom-cli-context struct (which
  can be bound to a CLI-local variable with &context in the arglist):

    (defcli! (doom sync) (&context context)
      (print! "Command: " (doom-cli-context-command context)))

  These contexts are persisted across sessions (when restarted). This is
  necessary to support seamless script restarting (i.e. execve
  emulation) in post-3.0.
- Feat: Doom's CLI framework now understands "--". Everything after it will be
  treated as regular arguments, instead of sub-commands or options.
- Refactor!: the semantics of &rest for CLIs has changed. It used to be "all
  extra literal, non-option arguments". It now means *all* unprocessed
  arguments, and its use will suppress "unrecognized option" errors, and
  tells the framework not to process any further subcommands. Use &args
  if you just want "all literal arguments following this command".
- Feat: add new auxiliary keywords for CLI arglists: &context, &multiple,
  &flags, &args, &stdin, &whole, and &cli.
  - &context SYM: binds the currently running context to SYM (a
    `doom-cli-context` struct). Helpful for introspection or passing
    along state when calling subcommands by hand (with `call!`).
  - &stdin SYM: SYM will be bound to a string containing any input piped
    into the running script, or nil if none. Use
    `doom-cli-context-pipe-p` to detect whether the script has been
    piped into or out of.
  - &multiple OPTIONS...: allows all following OPTIONS to be repeated. E.g. "foo
    -x a -x b -x c" will pass (list ("-x" . "a") ("-x" . "b") ("-x" .
    "c")) as -x's value.
  - &flags OPTIONS...: All options after "&flags" get an implicit --no-* switch
    and cannot accept arguments. Will be set to :yes or :no depending on which flag is
    provided, and nil if the flag isn't provided. Otherwise, a default
    value can be specified in that options' arglist. E.g.

      (defcli! (doom foo) (&flags (foo ("--foo" :no))) ...)

    When called, this command sets FOO to :yes if --foo, :no if --no-foo, and
    defaults to :no otherwise.
  - &args SYM: this replaces what &rest used to be; it binds to SYM a
    list of all unprocessed (non-option) arguments.
  - &rest SYM: now binds SYM to a list of all unprocessed arguments, including
    options. This also suppresses "unrecognized option" errors, but will render
    any sub-commands inaccessible. E.g.

      (defcli! (doom make) (&rest rest) ...)
      ;; These are now inaccessible!
      (defcli! (doom make foo) (&rest rest) ...)
      (defcli! (doom make bar) (&rest rest) ...)
  - &cli SYM: binds SYM to the currently running `doom-cli` struct. Can also be
    obtained via `(doom-cli-get (doom-cli-context-command context))`. Possibly
    useful for introspection.
- feat: add defobsolete! macro for quickly defining obsolete commands.
- feat: add defalias! macro for quickly defining alias commands.
- feat: add defautoload! macro for defining an autoloaded command (won't
  be loaded until it is called for).
- refactor!: rename defcligroup! to defgroup! for consistency.
- fix: CLIs will now recursively inherit plist properties from parent
  defcli-group!'s (but will stack :prefix).
- refactor!: remove obsolete 'doom update':
- refactor!: further generalize 'doom ci'
  - In an effort to generalize 'doom ci' (so other Doom--or
    non-doom--projects can use it), all its subcommands have been
    changed to operate on the current working directory's repo instead
    of $EMACSDIR.
  - Doom-specific CI configuration was moved to .github/ci.el.
  - All 'doom ci' commands will now preload one of \$CURRENT_REPO_ROOT/ci.el or
    \$DOOMDIR/ci.el before executing.
- refactor!: changed 'doom env'
  - 'doom env {-c,--clear}' is now 'doom env {clear,c}'
  - -r/--reject and -a/--allow may now be specified multiple times
- refactor!: rewrote CLI help framework and error handling to be more
  sophisticated and detailed.
- feat: can now initiate $PAGER on output with (exit! :pager) (or use
  :pager? to only invoke pager is output is longer than the terminal is
  tall).
- refactor!: changed semantics+conventions for global bin/doom options
  - Single-character global options are now uppercased, to distinguish them from
    local options:
    - -d (for debug mode) is now -D
    - -y (to suppress prompts) is now -!
    - -l (to load elisp) is now -L
    - -h (short for --help) is now -?
  - Replace --yes/-y switches with --force/-!
  - -L/--load FILE: now silently ignores file errors.
  - Add --strict-load FILE: does the same as -L/--load, but throws an error if
    FILE does not exist/is unreadable.
  - Add -E/--eval FORM: evaluates arbitrary lisp before commands are processed.
  - -L/--load, --strict-load, and -E/--eval can now be used multiple times in
    one command.
  - Add --pager COMMAND to specify an explicit pager. Will also obey
    $DOOMPAGER envvar. Does not obey $PAGER.
- Fix #3746: which was likely caused by the generated post-script overwriting
  the old mid-execution. By salting the postscript filenames (with both an
  overarching session ID and a step counter).
- Docs: document websites, environment variables, and exit codes in
  'doom --help'
- Feat: add imenu support for def{cli,alias,obsolete}!

Ref: #4273
Fix: #3746
Fix: #3844
2022-06-18 23:53:12 +02:00
Henrik Lissner
6c5537b487
fix(emacs-lisp): eval forms from within the current buffer
This fix ensures that functions/macros that are evaluated with +eval/*
et co will remember where they were defined (if possible), so you don't
have to see this in their documentation again:

  FUNCTION is a function without a source file.

Ref: https://github.com/doomemacs/doomemacs/pull/6444#issuecomment-1159457888
2022-06-18 18:19:39 +02:00
Henrik Lissner
9fde385cdc
fix(emacs-lisp): void-function lisp--local-defform-body-p
I was too hasty adding this function in 15432cf. This function wasn't
introduced until Emacs 29.

Amend: 15432cf9d2
2022-06-18 16:57:17 +02:00
Henrik Lissner
15432cf9d2
fix(emacs-lisp): update custom lisp-indent-function
To reflect Emacs 28+ changes to the function it is
replacing (lisp-indent-function).
2022-06-17 21:58:05 +02:00
Henrik Lissner
52d0c92fea
bump: :lang emacs-lisp
jorgenschaefer/emacs-buttercup@f5cbf97e10 -> jorgenschaefer/emacs-buttercup@ceedad5efa
purcell/flycheck-package@ecd03f8379 -> purcell/flycheck-package@615c1ed8c6
xuchunyang/elisp-demos@924b07d28e -> xuchunyang/elisp-demos@01c301b516
2022-06-17 21:53:21 +02:00
tecosaur
f0f414ac67
fix(eval): type error in +emacs-lisp-eval
When evaluating from a buffer not visiting any file, file-truename would
error out since the argument it was fed is nil.

Fix: #6181
Close: #6404
Ref: 7290f85cfd
Co-authored-by: Yoav Marco <ymarco@users.noreply.github.com>
2022-06-17 18:36:10 +02:00
Henrik Lissner
d67dcf1940
docs(emacs-lisp): insert :added: properties in demos
To help identify when they (and future functions/macros) were added.
2022-06-17 18:21:23 +02:00
Henrik Lissner
e8c22c770b
docs(emacs-lisp): remove sharp-quoted example for add-hook!
add-hook! is advertised to be able to add multiple hooks using a
function-quoted list of functions, but add-hook! never actually
supported this. Rather than correct the implementation, I'm correcting
the documentation instead, because sharp-quoting lists betrays the
semantics of the sharp-quote. Quoted lists should still work fine
though (as documented in add-hook!'s docstring).

Close: #5843
2022-04-03 14:58:35 +02:00
Henrik Lissner
c05822ab39
bump: :lang
Emacs-Kotlin-Mode-Maintainers/kotlin-mode@876cc27dc1 -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@3e0c34087b
FStarLang/fstar-mode.el@3afbf04e4e -> FStarLang/fstar-mode.el@c95c2a61a6
Fanael/edit-indirect@7fffd87ac3 -> Fanael/edit-indirect@e3d86416bc
Fuco1/sphinx-mode@b5ac514e21 -> Fuco1/sphinx-mode@9d4075c106
Groovy-Emacs-Modes/groovy-emacs-modes@84f89b68ec -> Groovy-Emacs-Modes/groovy-emacs-modes@bf732d367b
NixOS/nix-mode@8e20de5ba7 -> NixOS/nix-mode@20ee8d8890
OCamlPro/ocp-indent@9e26c0a269 -> OCamlPro/ocp-indent@7c4d434132
ProofGeneral/PG@df19c7ba0e -> ProofGeneral/PG@e1e29acb04
Raku/raku-mode@eaac071f17 -> Raku/raku-mode@977b14a7c1
Sarcasm/irony-mode@5063d6b16d -> Sarcasm/irony-mode@870d1576fb
agda/agda@2816605bfd -> agda/agda@2816605bfd
amake/flutter.el@81c524a43c -> amake/flutter.el@08138f8c95
ananthakumaran/exunit.el@5bb115f327 -> ananthakumaran/exunit.el@0715c2dc2d
ananthakumaran/tide@28137ed904 -> ananthakumaran/tide@b93e555858
asok/projectile-rails@30828afbfa -> asok/projectile-rails@772f4766b5
asok/rake@9c204334b0 -> asok/rake@452ea0caca
brotzeit/rustic@f4b5c288af -> brotzeit/rustic@6eec971387
cdominik/cdlatex@f215b70c5c -> cdominik/cdlatex@8e963c6853
clojure-emacs/cider@36277802a4 -> clojure-emacs/cider@86dd3fee9d
codesuki/add-node-modules-path@7d9be65b3b -> codesuki/add-node-modules-path@63f047fd84
crystal-lang-tools/emacs-crystal-mode@15998140b0 -> crystal-lang-tools/emacs-crystal-mode@96a8058205
cython/cython@5b325c9860 -> cython/cython@fdea2d6bed
diml/utop@c87b8b2817 -> diml/utop@5d72a0ab34
dominikh/go-mode.el@32cbd78c0a -> dominikh/go-mode.el@3273fcece5
elixir-editors/emacs-elixir@6bbc1e5ac4 -> elixir-editors/emacs-elixir@e0d0466d83
emacs-csharp/csharp-mode@9917e1b97d -> emacs-csharp/csharp-mode@856ecbc0a7
emacs-ess/ESS@a7ce81bb76 -> emacs-ess/ESS@39eba28300
emacs-geiser/geiser@c1cc4da1ed -> emacs-geiser/geiser@9507e81a07
emacs-geiser/guile@cfd9116dcb -> emacs-geiser/guile@c641fcc50b
emacs-lsp/lsp-dart@813d3c92db -> emacs-lsp/lsp-dart@fda433671f
emacs-lsp/lsp-haskell@4e62cf897d -> emacs-lsp/lsp-haskell@7cf64944ab
emacs-lsp/lsp-java@ce03cb6574 -> emacs-lsp/lsp-java@0968038b9a
emacs-lsp/lsp-metals@695291761b -> emacs-lsp/lsp-metals@b7f77de694
emacs-lsp/lsp-pyright@d428dbcf18 -> emacs-lsp/lsp-pyright@3598bc7c47
emacs-php/php-mode@535aec8173 -> emacs-php/php-mode@5f26bec865
emacs-php/phpactor.el@272217fbb6 -> emacs-php/phpactor.el@34195f1533
emacs-straight/auctex@3b0a080ae5 -> emacs-straight/auctex@830e40a063
emacs-straight/csv-mode@8da54e8b4e -> emacs-straight/csv-mode@43f6106f0d
emacs-typescript/typescript.el@e824162051 -> emacs-typescript/typescript.el@88f317f0b6
erlang/otp@c1ab4b5424 -> erlang/otp@9ba9f6e60d
ethereum/emacs-solidity@6f7bd1641e -> ethereum/emacs-solidity@20fb77e089
factor/factor@7b451bb813 -> factor/factor@1aeafdb87b
fsharp/emacs-fsharp-mode@c90d762c06 -> fsharp/emacs-fsharp-mode@b3aa4c53fc
fxbois/web-mode@61f057a6ba -> fxbois/web-mode@efa853e5cf
godotengine/emacs-gdscript-mode@b7bfa6a3b2 -> godotengine/emacs-gdscript-mode@4badcf6a0c
greghendershott/racket-mode@a879a8d67b -> greghendershott/racket-mode@af9b760e7b
hakimel/reveal.js@918ee5610a -> hakimel/reveal.js@e281b3234e
haskell/haskell-mode@8402caa341 -> haskell/haskell-mode@cb573c8db5
hhvm/hack-mode@4c1c2b0939 -> hhvm/hack-mode@a522f61c08
technomancy/fennel-mode@47152970a9 -> https://git.sr.ht/~technomancy/fennel-mode@50ef3c6246f3
hvesalai/emacs-sbt-mode@e29464a82b -> hvesalai/emacs-sbt-mode@9fe1e8807c
hylang/hy-mode@5253533ddb -> hylang/hy-mode@df814865a1
idris-hackers/idris-mode@3cc9361b4c -> idris-hackers/idris-mode@65d6db1b75
iyefrat/evil-tex@aa0ddf8e76 -> iyefrat/evil-tex@0fa85c3fc8
jcollard/elm-mode@f2e2d0053f -> jcollard/elm-mode@d4e434fa18
joaotavora/sly@2e00c3bd4b -> joaotavora/sly@4513c382f0
jorgenschaefer/emacs-buttercup@1de6be465c -> jorgenschaefer/emacs-buttercup@f5cbf97e10
joshwnj/json-mode@0e819e519a -> joshwnj/json-mode@eedb456003
jrblevin/markdown-mode@541bd7b48a -> jrblevin/markdown-mode@521658eb32
jschaf/powershell.el@d1b3f95669 -> jschaf/powershell.el@ce1f0ae0b2
jwiegley/emacs-async@5d365ffc6a -> jwiegley/emacs-async@c78bab7506
leanprover/lean-mode@bf32bb9793 -> leanprover/lean-mode@c1c68cc946
ledger/ledger-mode@19b84dc766 -> ledger/ledger-mode@b55384d9cd
necaris/conda.el@7a34e06931 -> necaris/conda.el@9c28d7a853
nonsequitur/inf-ruby@03dd9c9d4e -> nonsequitur/inf-ruby@dbf4386bac
ocaml-ppx/ocamlformat@22a3707da3 -> ocaml-ppx/ocamlformat@9324ea439a
ocaml/dune@4d0a47edd5 -> ocaml/dune@4bc7629a5e
ocaml/merlin@e4791e2298 -> ocaml/merlin@5d59c70659
ocaml/tuareg@00faf47a7c -> ocaml/tuareg@04f5ab6be9
osv/company-web@f0cc9187c9 -> osv/company-web@863fb84b81
pashky/restclient.el@176d9cb655 -> pashky/restclient.el@9e2cfa8652
pezra/rspec-mode@92ef785010 -> pezra/rspec-mode@4215ff1f2d
polymode/polymode@54888d6c15 -> polymode/polymode@2094c92403
seagle0128/grip-mode@9220a560b4 -> seagle0128/grip-mode@6b427143a8
sebasmonia/sharper@08277b6c30 -> sebasmonia/sharper@96edd4a1db
stan-dev/stan-mode@9bb858b9f1 -> stan-dev/stan-mode@150bbbe5fd
swift-emacs/swift-mode@800efe2910 -> swift-emacs/swift-mode@0d1ef0ef18
tpapp/julia-repl@e90b1ed2cc -> tpapp/julia-repl@6c1d63511f
wbolster/emacs-python-pytest@b603c5c7f2 -> wbolster/emacs-python-pytest@ea53891a21
yoshiki/yaml-mode@63b637f846 -> yoshiki/yaml-mode@535273d5a1
ziglang/zig-mode@aba01b6199 -> ziglang/zig-mode@aa20d630b8

- Refactors the :lang rust module to reflect changes upstream, in
  rustic (thanks to #6154).

Close: #6154
Fix: #6070
2022-03-31 21:09:38 +02:00
Henrik Lissner
97155412a9
fix(emacs-lisp): missing package cookies in imenu 2022-03-21 03:57:03 +01:00
Daanturo
f63aad2ff6 tweak(emacs-lisp): local leader for lisp-interaction-mode 2022-02-23 17:47:39 +01:00
Henrik Lissner
7290f85cfd feat(eval): set load-true-file-name & buffer-file-truename
So they are available in evaluated contexts.
2022-01-27 03:50:52 +01:00
Henrik Lissner
7034378968 nit: s/#+BEGIN_SRC/#+begin_src, s/elisp/emacs-lisp/
From now on Doom will enforce two conventions for its org files for
consistency's sake:

- Lower-case meta-lines in org files, like #+begin_src, #+name, or
  #+end_quote (only exception are the top-level ones, like #+TITLE and
  #+STARTUP).
- Use 'emacs-lisp' as the lang specifier for elisp blocks rather than
  'elisp'. Emacs doesn't natively recognize the latter.

This will be reflected in our rewritten docs/*.org and module
README.org's.
2021-10-18 12:09:42 +02:00
Henrik Lissner
704957437c revert: Ignore unsafe local variables, but log them
This behavior was too non-standard and invited more confusion than it
helped.

Ref #4070
Revert 5e7864838a
2021-10-06 01:30:45 +02:00
Colin Woodbury
c3d237c3f5 fix(emacs-lisp): quiet doc lints in org src blocks
Opening an Org src block with `SPC m '` creates a minibuffer with no
associated file name, hence the check for `buffer-file-name`.
2021-09-23 11:37:18 +02:00
Henrik Lissner
06392a723f refactor: rename orig-fn arg in advice to fn
A minor tweak to our naming conventions for the first argument of an
:around advice.
2021-08-04 01:53:12 -04:00
Henrik Lissner
3bedae38dd dev: transition to 12c long hashes
In bumps, in :pin's, and in our git conventions. We have no rules for
the commit linter for it yet, though.
2021-08-02 22:07:13 -04:00
Henrik Lissner
54a556c2fa lang/emacs-lisp: add flycheck-package 2021-07-25 16:37:28 -04:00
Henrik Lissner
243cb43fec Fix #5187: syntax highlighting in ielm REPL 2021-07-10 16:32:53 -04:00
Henrik Lissner
3ba364ae10 Minor refactoring across the board 2021-05-23 22:09:07 -04:00
Wetlize
0a2ed4d346
lang/emacs-lisp: Replace sym with var in +emacs-lisp-log-unsafe-local-variables-a
Otherwise it will make Emacs to error with (void-variable sym) error when
checking the variable.
2021-05-06 13:04:15 +03:00
Henrik Lissner
b63441387b lang/emacs-lisp: don't use risky-local-variable-p
It's hardcoded to return t for symbols that end in any of '-command',
'-frame-alist', '-function', '-functions', '-hook', '-hooks', '-form',
'-forms', '-map', '-map-alist', '-mode-alist', '-program', or
'-predicate' -- which I think is excessive next to a safety check.

I'll trust that: if the user marks X as safe, and it isn't *explicitly*
marked risky, and it destroys the universe, then it's their fault, not
mine, not Emacs'.
2021-05-06 04:27:33 -04:00
Henrik Lissner
4ad1c6a494
Merge pull request #4926 from Janfel/fix-emacs-lisp-module-at-point
Reimplement +emacs-lisp--module-at-point to fix #4896
2021-05-01 01:42:38 -04:00
Henrik Lissner
ccf6f0b53d Log unsafe eval forms in file/dir local variables 2021-04-29 13:25:48 -04:00
Jan Felix Langenbach
acb0399424 Reimplement +emacs-lisp--module-at-point 2021-04-26 00:39:55 +02:00
Henrik Lissner
af90333bcd Bump *
Alexander-Miller/treemacs@6857816 -> Alexander-Miller/treemacs@9eaef27
DarwinAwardWinner/amx@b991497 -> DarwinAwardWinner/amx@37f9c7a
Dewdrops/evil-exchange@3030e21 -> Dewdrops/evil-exchange@ac50f21
JuliaEditorSupport/julia-emacs@8ea90c7 -> JuliaEditorSupport/julia-emacs@fe6f6f7
OmniSharp/omnisharp-emacs@8ec5929 -> OmniSharp/omnisharp-emacs@5fad683
ProofGeneral/PG@bdb6782 -> ProofGeneral/PG@f0f0476
Sarcasm/irony-mode@76fd37f -> Sarcasm/irony-mode@ec6dce7
Silex/docker.el@0ca910b -> Silex/docker.el@ed0cdf0
Wilfred/helpful@584ecc8 -> Wilfred/helpful@7e4b1f0
abo-abo/swiper@1deef76 -> abo-abo/swiper@bb7965a
agda/agda@9d08edb -> agda/agda@ecb9323
akermu/emacs-libvterm@a3fadd2 -> akermu/emacs-libvterm@1bc4516
akreisher/eshell-syntax-highlighting@172c9fb -> akreisher/eshell-syntax-highlighting@eeace52
alexmurray/flycheck-posframe@24fd9b3 -> alexmurray/flycheck-posframe@8f60c9b
amake/flutter.el@696228a -> amake/flutter.el@960b635
ananthakumaran/tide@7f7334b -> ananthakumaran/tide@ad6fa78
asok/projectile-rails@8d6b373 -> asok/projectile-rails@f1fe6e8
bastibe/org-journal@f4b1549 -> bastibe/org-journal@043bb9e
bbatsov/projectile@fd59947 -> bbatsov/projectile@1528ed4
bradyt/dart-mode@04fcd64 -> bradyt/dart-mode@43975c9
brotzeit/rustic@61d600e -> brotzeit/rustic@d97ec86
charignon/github-review@d0c8234 -> charignon/github-review@341b7a1
clojure-emacs/cider@815204f -> clojure-emacs/cider@4278d7c
clojure-emacs/clj-refactor.el@b24ce76 -> clojure-emacs/clj-refactor.el@9f3e735
clojure-emacs/clojure-mode@f26379b -> clojure-emacs/clojure-mode@a14671e
codesuki/add-node-modules-path@f31e69c -> codesuki/add-node-modules-path@7d9be65
company-mode/company-mode@88001d7 -> company-mode/company-mode@7207cb1
cpitclaudel/company-coq@4da7b41 -> cpitclaudel/company-coq@7423ee2
cython/cython@9a761a6 -> cython/cython@9decfca
dgutov/diff-hl@4c46b3b -> dgutov/diff-hl@1af31fe
dgutov/robe@3ef165c -> dgutov/robe@126650a
domtronn/all-the-icons.el@2f5ea72 -> domtronn/all-the-icons.el@a8c8417
editorconfig/editorconfig-emacs@048c553 -> editorconfig/editorconfig-emacs@9da2dab
elixir-editors/emacs-elixir@9de08c1 -> elixir-editors/emacs-elixir@0212b06
ema2159/centaur-tabs@50fd573 -> ema2159/centaur-tabs@df97209
emacs-csharp/csharp-mode@09b4d57 -> emacs-csharp/csharp-mode@f977800
emacs-ess/ESS@5169b0d -> emacs-ess/ESS@126d344
emacs-evil/evil-collection@334670e -> emacs-evil/evil-collection@b45ec5b
emacs-evil/evil@cc9d688 -> emacs-evil/evil@7eace67
emacs-helm/helm-org@b7a18df -> emacs-helm/helm-org@d67186d
emacs-helm/helm@dbdec63 -> emacs-helm/helm@98af298
emacs-jp/migemo@f42832c -> emacs-jp/migemo@f756cba
emacs-lsp/dap-mode@aa15b9c -> emacs-lsp/dap-mode@ae395aa
emacs-lsp/helm-lsp@e934fea -> emacs-lsp/helm-lsp@74a02f8
emacs-lsp/lsp-dart@71902ca -> emacs-lsp/lsp-dart@f3b70ec
emacs-lsp/lsp-ivy@c70ee8b -> emacs-lsp/lsp-ivy@515e597
emacs-lsp/lsp-java@5f6d357 -> emacs-lsp/lsp-java@542aaf1
emacs-lsp/lsp-metals@c76eeb6 -> emacs-lsp/lsp-metals@51a89c1
emacs-lsp/lsp-mode@c3cbadc -> emacs-lsp/lsp-mode@eda51c2
emacs-lsp/lsp-ui@0ac3e12 -> emacs-lsp/lsp-ui@1dbea9f
emacs-php/php-mode@8cdc727 -> emacs-php/php-mode@a2bca9b
emacs-php/phpactor.el@62d2372 -> emacs-php/phpactor.el@80788a8
emacs-straight/auctex@384c4b9 -> emacs-straight/auctex@0f3639a
emacs-straight/dired-git-info@b47f2b0 -> emacs-straight/dired-git-info@9461476
emacs-straight/org-mode@0b117f7 -> emacs-straight/org-mode@7a62a4d
emacs-straight/project@2e7afbe -> emacs-straight/project@388ffdf
emacs-straight/xclip@2951c6b -> emacs-straight/xclip@ef2ad92
emacsattic/nose@f852829 -> emacsattic/nose@f852829
emacsorphanage/quickrun@8008780 -> emacsorphanage/quickrun@57db985
erlang/otp@af06b43 -> erlang/otp@94c9738
factor/factor@1928e60 -> factor/factor@5bfeab6
flycheck/flycheck@01396a5 -> flycheck/flycheck@f8c679f
greghendershott/racket-mode@75ea8f6 -> greghendershott/racket-mode@5115c47
hakimel/reveal.js@0582f57 -> hakimel/reveal.js@cf8e64b
haskell/haskell-mode@3a019e6 -> haskell/haskell-mode@1baa12a
hlissner/doom-snippets@aa5587b -> hlissner/doom-snippets@afe549b
hlissner/emacs-counsel-css@6427dfc -> hlissner/emacs-counsel-css@f7647b4
hlissner/emacs-doom-themes@55f01ed -> hlissner/emacs-doom-themes@4199e74
hlissner/emacs-solaire-mode@a8fe09d -> hlissner/emacs-solaire-mode@9d143db
hvesalai/emacs-sbt-mode@7b121fc -> hvesalai/emacs-sbt-mode@0bdc36b
hvesalai/emacs-scala-mode@402d6df -> hvesalai/emacs-scala-mode@1ab5f64
ideasman42/emacs-spell-fu@a7db587 -> ideasman42/emacs-spell-fu@30c5eea
iqbalansari/emacs-emojify@cfa0086 -> iqbalansari/emacs-emojify@1b72641
jacktasia/dumb-jump@f6a1165 -> jacktasia/dumb-jump@8bc1950
jaor/geiser@26dd2f4 -> jaor/geiser@8e61c27
jcollard/elm-mode@188b9c7 -> jcollard/elm-mode@e9fcf9c
jkitchin/ox-clip@38b83ac -> jkitchin/ox-clip@2095537
joaotavora/eglot@a2d1fc9 -> joaotavora/eglot@2fbcab2
joaotavora/sly@fb84318 -> joaotavora/sly@5966d68
jorgenschaefer/circe@265f36c -> jorgenschaefer/circe@e67e2d1
js-emacs/js2-refactor.el@d4c40b5 -> js-emacs/js2-refactor.el@a0977c4
js-emacs/xref-js2@6f1ed5d -> js-emacs/xref-js2@fd6b723
jscheid/dtrt-indent@4a30d8e -> jscheid/dtrt-indent@37529fc
justbur/emacs-which-key@c0608e8 -> justbur/emacs-which-key@c632dbf
justinbarclay/parinfer-rust-mode@c825606 -> justinbarclay/parinfer-rust-mode@f130fa0
jyp/dante@7b1ab64 -> jyp/dante@8741419
kaushalmodi/ox-hugo@a05667e -> kaushalmodi/ox-hugo@02140a2
kidd/org-gcal.el@0a6f9a7 -> kidd/org-gcal.el@d38acda
leanprover/lean-mode@15bee87 -> leanprover/lean-mode@5c50338
ledger/ledger-mode@3495d12 -> ledger/ledger-mode@32fef09
magit/forge@8382fd3 -> magit/forge@f4c95dd
magit/magit@4735b92 -> magit/magit@577f16d
magit/orgit@ac9b1a4 -> magit/orgit@609fd0c
magnars/expand-region.el@ea6b4cb -> magnars/expand-region.el@4b83227
magnars/multiple-cursors.el@a9d7764 -> magnars/multiple-cursors.el@7b13b03
mhayashi1120/Emacs-wgrep@f0ef9bf -> mhayashi1120/Emacs-wgrep@f9687c2
millejoh/emacs-ipython-notebook@4ff76e5 -> millejoh/emacs-ipython-notebook@142ff50
non-Jedi/lsp-julia@c523c25 -> non-Jedi/lsp-julia@c487ed7
nonsequitur/inf-ruby@1fc972e -> nonsequitur/inf-ruby@c6990a6
ocaml-ppx/ocamlformat@7db8d13 -> ocaml-ppx/ocamlformat@448ac7c
ocaml/dune@f839fc1 -> ocaml/dune@a88ce5b
ocaml/merlin@36d0aef -> ocaml/merlin@cc17ed6
ocaml/tuareg@ccde45b -> ocaml/tuareg@37a6730
org-roam/org-roam@b0fd126 -> org-roam/org-roam@8ad57b1
purcell/diredfl@cd052df -> purcell/diredfl@4ca3265
purcell/envrc@a7c6ca8 -> purcell/envrc@110a221
purescript-emacs/purescript-mode@8410baf -> purescript-emacs/purescript-mode@0acd1af
racer-rust/emacs-racer@f17f9d7 -> racer-rust/emacs-racer@1e63e98
raxod502/prescient.el@9631db7 -> raxod502/prescient.el@8573df9
redguardtoo/evil-nerd-commenter@2730820 -> redguardtoo/evil-nerd-commenter@b8ac35f
rolandwalker/flyspell-lazy@d57382c -> rolandwalker/flyspell-lazy@0fc5996
rubocop/rubocop-emacs@1372ee3 -> rubocop/rubocop-emacs@f5fd18a
seagle0128/doom-modeline@5fe7fd6 -> seagle0128/doom-modeline@00bc89b
seagle0128/grip-mode@1aebf9c -> seagle0128/grip-mode@98d566d
skeeto/elfeed@362bbe5 -> skeeto/elfeed@e29c8b9
skk-dev/ddskk@275a831 -> skk-dev/ddskk@cec9936
snosov1/toc-org@aef220c -> snosov1/toc-org@c4c61c5
spotify/dockerfile-mode@ed1d04c -> spotify/dockerfile-mode@3b13745
takaxp/org-tree-slide@c9487e5 -> takaxp/org-tree-slide@9d2ba1d
technomancy/fennel-mode@bebc9dd -> technomancy/fennel-mode@ba14a7d
travisbhartwell/nix-emacs@977b9a5 -> travisbhartwell/nix-emacs@053a2d5
tumashu/posframe@3454a4c -> tumashu/posframe@fff21cc
tumashu/pyim@e54153f -> tumashu/pyim@f48c3ed
widefox/flycheck-raku@046f35a -> widefox/flycheck-raku@b1acccd
wyuenho/all-the-icons-dired@fc2dfa1 -> wyuenho/all-the-icons-dired@f401fe2
xuchunyang/elisp-demos@ed9578d -> xuchunyang/elisp-demos@924b07d
xuchunyang/osx-dictionary.el@1b79ff6 -> xuchunyang/osx-dictionary.el@4d4cc19
yqrashawn/fd-dired@9fb966d -> yqrashawn/fd-dired@7d18938
yyoncho/helm-icons@5a668ef -> yyoncho/helm-icons@e4a2cd1

Closes #4786
Closes #4801
Closes #4803

Skipped bumping straight.el because of raxod502/straight.el#714. Will
adapt soon.
2021-03-27 18:27:02 -04:00
Henrik Lissner
5e7864838a Ignore unsafe local variables, but log them
This suppresses the annoying "do you want to apply these unsafe file/dir
local variables" prompt by ignoring them (but stills them so at least
users are told).

Fixes issue mentioned in #4335
2021-03-21 00:42:49 -04:00
Henrik Lissner
7e1f5da169 lang/emacs-lisp: respect lexical-binding in eval handler 2021-03-08 10:25:09 -05:00
Nikita Bloshchanevich
169d0b2ed5 Emacs lisp: fix variable value display in eldoc
`fboundp' does not check if a variable is bound, but rather a function.
Use `boundp'.
2021-03-06 16:29:07 +01:00
Henrik Lissner
bd62f06002
Merge pull request #4436 from nbfalcon/resolve-fixme-#4415 2021-02-26 16:50:02 -05:00
Nikita Bloshchanevich
e05d804f1f Restore the old buffer when using `ivy-call'
Without `deferred', the file selected in the `counsel-find-file' will
only remain the current buffer afterwards when pressing RET on an item,
not just `ivy-call'.
2021-02-26 22:06:41 +01:00
Henrik Lissner
a79275a476 Bump :lang
200ok-ch/counsel-jq@f5bfed8 -> 200ok-ch/counsel-jq@153d70b
Andersbakken/rtags@63a7d9b -> Andersbakken/rtags@aa4c827
MatthewFluet/company-mlton@b87e363 -> MatthewFluet/company-mlton@9b09d20
NixOS/nix-mode@e32c6bf -> NixOS/nix-mode@0023fc5
OmniSharp/omnisharp-emacs@e26ff8b -> OmniSharp/omnisharp-emacs@8ec5929
ProofGeneral/PG@702f5b9 -> ProofGeneral/PG@bdb6782
Wilfred/elisp-def@da1f763 -> Wilfred/elisp-def@dfca043
agda/agda@5070bd8 -> agda/agda@9d08edb
ananthakumaran/exunit.el@c77b039 -> ananthakumaran/exunit.el@5bb115f
ananthakumaran/tide@a43a37b -> ananthakumaran/tide@7f7334b
asok/projectile-rails@7a256b1 -> asok/projectile-rails@8d6b373
brotzeit/rustic@f7d5ac0 -> brotzeit/rustic@61d600e
clojure-emacs/cider@1a34f89 -> clojure-emacs/cider@815204f
clojure-emacs/clj-refactor.el@9dcc50d -> clojure-emacs/clj-refactor.el@b24ce76
clojure-emacs/clojure-mode@53ef8ac -> clojure-emacs/clojure-mode@f26379b
crystal-lang-tools/emacs-crystal-mode@f9e4db1 -> crystal-lang-tools/emacs-crystal-mode@1599814
cython/cython@17e03b8 -> cython/cython@9a761a6
dgutov/robe@f04dcc7 -> dgutov/robe@3ef165c
diml/utop@7bc5117) -> diml/utop@a5ff52b)
dominikh/go-mode.el@fdf46fe -> dominikh/go-mode.el@49a5380
elixir-editors/emacs-elixir@b78e7f7 -> elixir-editors/emacs-elixir@9de08c1
emacs-csharp/csharp-mode@4916829 -> emacs-csharp/csharp-mode@09b4d57
emacs-ess/ESS@d013616 -> emacs-ess/ESS@5169b0d
emacs-lsp/lsp-dart@b81b1ec -> emacs-lsp/lsp-dart@71902ca
emacs-lsp/lsp-haskell@4d85cb3 -> emacs-lsp/lsp-haskell@7efbef3
emacs-lsp/lsp-java@f43b00a -> emacs-lsp/lsp-java@5f6d357
emacs-lsp/lsp-metals@31dafff -> emacs-lsp/lsp-metals@c76eeb6
emacs-lsp/lsp-pyright@71ff088 -> emacs-lsp/lsp-pyright@65fb141
emacs-lsp/lsp-python-ms@5470ada -> emacs-lsp/lsp-python-ms@689f6cf
emacs-lsp/lsp-sourcekit@948c3a3 -> emacs-lsp/lsp-sourcekit@ff204ed
emacs-php/php-mode@7e5722c -> emacs-php/php-mode@8cdc727
emacs-straight/auctex@fb062a3 -> emacs-straight/auctex@384c4b9
emacs-straight/csv-mode@eb3ec00 -> emacs-straight/csv-mode@8da54e8
emacs-straight/org-mode@9e98e9a -> emacs-straight/org-mode@0b117f7
emacs-typescript/typescript.el@54f14c4 -> emacs-typescript/typescript.el@1043025
emacsmirror/cmake-mode@e58c411 -> emacsmirror/cmake-mode@d5d77de
ericdallo/hover.el@3f07a18 -> ericdallo/hover.el@c9c0593
erlang/otp@8fc0641 -> erlang/otp@af06b43
eschulte/jump.el@e4f1372 -> eschulte/jump.el@55caa66
ethereum/emacs-solidity@d166a86 -> ethereum/emacs-solidity@b4fd719
factor/factor@94a922a -> factor/factor@1928e60
fsharp/emacs-fsharp-mode@13fbf4c -> fsharp/emacs-fsharp-mode@78898a1
fxbois/web-mode@890e837 -> fxbois/web-mode@8ef4793
godotengine/emacs-gdscript-mode@75fe658 -> godotengine/emacs-gdscript-mode@16c631c
greghendershott/racket-mode@3563081 -> greghendershott/racket-mode@75ea8f6
haskell/haskell-mode@0d39c84 -> haskell/haskell-mode@3a019e6
hhvm/hack-mode@9079bc3) -> hhvm/hack-mode@847fd91)
hvesalai/emacs-scala-mode@9d3b56e -> hvesalai/emacs-scala-mode@402d6df
idris-hackers/idris-mode@b77eadd -> idris-hackers/idris-mode@80aabd2
immerrr/lua-mode@d2ff304 -> immerrr/lua-mode@2d9a468
iyefrat/evil-tex@ac313ef -> iyefrat/evil-tex@5f0d6fb
jaor/geiser@cd00be6 -> jaor/geiser@26dd2f4
jcollard/elm-mode@363da4b -> jcollard/elm-mode@188b9c7
joaotavora/sly@3278819 -> joaotavora/sly@fb84318
jorgenschaefer/emacs-buttercup@2f24a44 -> jorgenschaefer/emacs-buttercup@1de6be4
jrblevin/markdown-mode@dcad557 -> jrblevin/markdown-mode@0517340
jwiegley/emacs-async@14f48de -> jwiegley/emacs-async@d7e7f79
jyp/attrap@9c88154 -> jyp/attrap@778382e
jyp/dante@e2acbf6 -> jyp/dante@7b1ab64
kaushalmodi/ox-hugo@04f41ca -> kaushalmodi/ox-hugo@a05667e
leanprover/lean-mode@cc1f5fa -> leanprover/lean-mode@15bee87
ledger/ledger-mode@805507f -> ledger/ledger-mode@3495d12
mooz/js2-mode@f7816bd -> mooz/js2-mode@29979e5
nonsequitur/inf-ruby@b012457 -> nonsequitur/inf-ruby@1fc972e
ocaml-ppx/ocamlformat@860266b -> ocaml-ppx/ocamlformat@7db8d13
ocaml/dune@4d097cd -> ocaml/dune@f839fc1
ocaml/merlin@28193d5 -> ocaml/merlin@36d0aef
pezra/rspec-mode@f1029ca -> pezra/rspec-mode@92ef785
polymode/poly-R@51ffeb6 -> polymode/poly-R@c42ff3a
polymode/polymode@3284ff1 -> polymode/polymode@b3871e9
purescript-emacs/psc-ide-emacs@663f4e2 -> purescript-emacs/psc-ide-emacs@ce97d71
purescript-emacs/purescript-mode@154ad16 -> purescript-emacs/purescript-mode@8410baf
pwalsh/pipenv.el@f516a1a -> pwalsh/pipenv.el@8f50c68
pythonic-emacs/anaconda-mode@b1875a5 -> pythonic-emacs/anaconda-mode@081f9d8
racer-rust/emacs-racer@a0bdf77 -> racer-rust/emacs-racer@f17f9d7
rubocop-hq/rubocop-emacs@03bf155 -> rubocop-hq/rubocop-emacs@1372ee3
seagle0128/grip-mode@91da46f -> seagle0128/grip-mode@1aebf9c
senny/rvm.el@b2498a4 -> senny/rvm.el@c1f2642
swift-emacs/swift-mode@0bc8d8d -> swift-emacs/swift-mode@95ff004
takaxp/org-tree-slide@04b5a9d -> takaxp/org-tree-slide@c9487e5
technomancy/fennel-mode@fa56106 -> technomancy/fennel-mode@bebc9dd
tpapp/julia-repl@d073acb -> tpapp/julia-repl@7ce38a9
wbolster/emacs-python-pytest@3fadf1f -> wbolster/emacs-python-pytest@31ae5e0
wwwjfy/emacs-fish@db257db -> wwwjfy/emacs-fish@a7c953b

Fix #4695
Close #4529
Close #4576
2021-02-25 10:46:46 -05:00
Henrik Lissner
28fa854208 lang/emacs-lisp: fix custom-{,theme-}set-faces! demos
No need to load the theme before using its API. The rules are deferred
in any case.
2021-02-21 14:44:59 -05:00
Henrik Lissner
1c8451e509 Move docs/api.org to emacs-lisp module 2021-01-18 17:45:29 -05:00
Nikita Bloshchanevich
b12df73cc1 Emacs-lisp eldoc: fix error if symbol unbound
`+emacs-lisp-append-value-to-eldoc-a' `error's if the symbol isn't
bound, because `symbol-value' errors in that case. Fix that bug by only
modifying the result of `elisp-get-var-docstring' if the symbol is
bound.
2021-01-04 12:08:53 +01:00
Nikita Bloshchanevich
65dfdd5c4a [4415] remove FIXME comment
Due to `ivy-call' still causing files to be opened in the
background (which is not a bug in `ivy'),
`+emacs-lisp-lookup-definition' still needs to return `deferred' for
modules. The comment is as such misleading and needs to be removed (it
has been resolved).
2020-12-15 14:28:19 +01:00
Nikita Bloshchanevich
621cb60e75 Workaround: fix goto definition on modules
`+emacs-lisp-lookup-definition' does not work when browsing the directory of a
module, because, due to a possible bug in `counsel', the visited buffer is not
immediately visible after calling `counsel-find-file' (unlike with `find-file').
As such, the backend should return `deferred' for that case.

See abo-abo/swiper#2752. This should be removed once that PR is merged.
2020-12-12 13:21:26 +01:00
Henrik Lissner
2e86cceb3f
Bump :lang
200ok-ch/counsel-jq@104c77b -> 200ok-ch/counsel-jq@f5bfed8
Andersbakken/rtags@e6c7005 -> Andersbakken/rtags@63a7d9b
FStarLang/fstar-mode.el@5670fc0 -> FStarLang/fstar-mode.el@3afbf04
Kungsgeten/org-brain@6e3d861) -> Kungsgeten/org-brain@1ae4fd4)
NixOS/nix-mode@bb0b49e -> NixOS/nix-mode@e32c6bf
OVYA/php-cs-fixer@95eace9 -> OVYA/php-cs-fixer@c5b5d8a
ProofGeneral/PG@0fdb1ae -> ProofGeneral/PG@702f5b9
Sarcasm/irony-mode@1e1aaba -> Sarcasm/irony-mode@76fd37f
abicky/nodejs-repl.el@f5ce3d5 -> abicky/nodejs-repl.el@3b84105
agda/agda@08191e6 -> agda/agda@5070bd8
amake/flutter.el@78b3c57 -> amake/flutter.el@696228a
ananthakumaran/tide@ac5f070 -> ananthakumaran/tide@a43a37b
arnested/php-extras@81ebd7c -> arnested/php-extras@d410c5a
borkdude/flycheck-clj-kondo@152df7f -> borkdude/flycheck-clj-kondo@a558bda
brotzeit/rustic@7c9d55b -> brotzeit/rustic@91ad5db
chachi/cuda-mode@9ae9eac -> chachi/cuda-mode@7f59351
clojure-emacs/cider@f1c2a79 -> clojure-emacs/cider@ef47c1d
clojure-emacs/clojure-mode@75c2889 -> clojure-emacs/clojure-mode@53ef8ac
cpitclaudel/company-coq@b096cb5 -> cpitclaudel/company-coq@4da7b41
cython/cython@ba6cbed -> cython/cython@21b4e53
dgutov/robe@082da38 -> dgutov/robe@f04dcc7
dominikh/go-mode.el@d17d210 -> dominikh/go-mode.el@fdf46fe
dominikh/go-mode.el@d17d210 -> dominikh/go-mode.el@fdf46fe
elixir-editors/emacs-elixir@01b3324 -> elixir-editors/emacs-elixir@b78e7f7
emacs-ess/ESS@a694b26 -> emacs-ess/ESS@d013616
emacs-lsp/lsp-dart@c1ff5ce -> emacs-lsp/lsp-dart@b81b1ec
emacs-lsp/lsp-java@3f1ed17 -> emacs-lsp/lsp-java@f43b00a
emacs-lsp/lsp-metals@e42c0b2) -> emacs-lsp/lsp-metals@31dafff)
emacs-lsp/lsp-pyright@ccd0007 -> emacs-lsp/lsp-pyright@d9e7d3c
emacs-lsp/lsp-python-ms@a0c56f4 -> emacs-lsp/lsp-python-ms@c4ebc7a
emacs-php/php-mode@f4c7c69 -> emacs-php/php-mode@7e5722c
emacs-straight/adaptive-wrap@319db64 -> emacs-straight/adaptive-wrap@8f60ee7
emacs-straight/csv-mode@6353374 -> emacs-straight/csv-mode@eb3ec00
emacs-straight/org-mode@a88806b -> emacs-straight/org-mode@7c8dce7
emacs-straight/rainbow-mode@fdff98b -> emacs-straight/rainbow-mode@949166c
emacs-straight/sml-mode@60b01d7 -> emacs-straight/sml-mode@0338e97
emacs-typescript/typescript.el@e6f68ab -> emacs-typescript/typescript.el@54f14c4
erlang/otp@8efb945 -> erlang/otp@8fc0641
factor/factor@c6e15bd -> factor/factor@94a922a
felipeochoa/rjsx-mode@0061587 -> felipeochoa/rjsx-mode@b697fe4
fsharp/emacs-fsharp-mode@68dfc22 -> fsharp/emacs-fsharp-mode@13fbf4c
fxbois/web-mode@b4b0a85 -> fxbois/web-mode@890e837
galaunay/poetry.el@eb238d9 -> galaunay/poetry.el@d5163fe
godotengine/emacs-gdscript-mode@55a6637 -> godotengine/emacs-gdscript-mode@75fe658
greghendershott/racket-mode@0ca8b26 -> greghendershott/racket-mode@3563081
haskell/haskell-mode@e726776 -> haskell/haskell-mode@0d39c84
hlissner/evil-org-mode@658dadf) -> hlissner/evil-org-mode@a9706da)
hvesalai/emacs-sbt-mode@4358ed8 -> hvesalai/emacs-sbt-mode@7b121fc
hvesalai/emacs-scala-mode@1d08e88 -> hvesalai/emacs-scala-mode@9d3b56e
hylang/hy-mode@7256844 -> hylang/hy-mode@5253533
joaotavora/sly@fce4f9b -> joaotavora/sly@68561f1
jorgenschaefer/emacs-buttercup@cccdedf -> jorgenschaefer/emacs-buttercup@2f24a44
jorgenschaefer/pyvenv@861998b -> jorgenschaefer/pyvenv@0bf4b87
josteink/csharp-mode@f46d656 -> josteink/csharp-mode@4916829
jrblevin/markdown-mode@152eae2 -> jrblevin/markdown-mode@dcad557
kaushalmodi/ox-hugo@1909c6e) -> kaushalmodi/ox-hugo@f24c9bd)
nim-lang/nim-mode@16a245e -> nim-lang/nim-mode@d832d6b
ocaml-ppx/ocamlformat@1dec6c3 -> ocaml-ppx/ocamlformat@860266b
ocaml/dune@f967df6 -> ocaml/dune@4d097cd
ocaml/merlin@06833e9 -> ocaml/merlin@28193d5
oer/org-re-reveal@2035217 -> oer/org-re-reveal@0062756
org-roam/org-roam@d913447) -> org-roam/org-roam@be95b42)
rexim/org-cliplink@82402ca -> rexim/org-cliplink@13e0940
salmanebah/opencl-mode@55cb49c -> salmanebah/opencl-mode@15091ef
senny/rvm.el@6897576) -> senny/rvm.el@b2498a4)
skuro/plantuml-mode@5889166 -> skuro/plantuml-mode@ea45a13
swift-emacs/swift-mode@e65a80a -> swift-emacs/swift-mode@0bc8d8d
technomancy/fennel-mode@7a8824a -> technomancy/fennel-mode@fa56106
wbolster/emacs-python-pytest@a2f88b1 -> wbolster/emacs-python-pytest@4a1c4c8
xuchunyang/elisp-demos@3cca496 -> xuchunyang/elisp-demos@ed9578d
yoshiki/yaml-mode@68fecb5 -> yoshiki/yaml-mode@fc5e1c5

Fixes #4237
2020-12-05 16:37:59 -05:00
Nikita Bloshchanevich
345327ae8b Use max', not min'
`min' puts a lower bound on LIMIT, but we want an upper bound, so `max' must be
used.
2020-11-29 19:55:41 +01:00
Nikita Bloshchanevich
49f4461daa Elisp `eldoc': fix "Invalid format operation %-"
In `+emacs-lisp-append-value-to-eldoc-a', if the `frame-width' of the minibuffer
is smaller than the length of the documentation + " [...]" + 1, a negative
maximum %s bound is passed, causing the error in the title.

Fix this by clamping the computed LIMIT to 0.
2020-11-29 09:37:11 +01:00
Henrik Lissner
d1effe2ddd
Fix keyword highlighting in Emacs 28+
Because they now satisfy special-variable-p.
2020-10-21 22:05:58 -04:00
Henrik Lissner
de6907aca0
Bump :lang
200ok-ch/counsel-jq@b14dfc5 -> 200ok-ch/counsel-jq@104c77b
Andersbakken/rtags@b57b360 -> Andersbakken/rtags@e6c7005
Emacs-Kotlin-Mode-Maintainers/kotlin-mode@8e6dd57 -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@0e4bafb
FStarLang/fstar-mode.el@bd28cb8 -> FStarLang/fstar-mode.el@5670fc0
GDQuest/emacs-gdscript-mode@7aea87b -> GDQuest/emacs-gdscript-mode@55a6637
JuliaEditorSupport/julia-emacs@b5f5983 -> JuliaEditorSupport/julia-emacs@8ea90c7
NixOS/nix-mode@0cf1ea1 -> NixOS/nix-mode@bb0b49e
OmniSharp/omnisharp-emacs@e658a18 -> OmniSharp/omnisharp-emacs@e26ff8b
ProofGeneral/PG@03e427a -> ProofGeneral/PG@4f6b602
Raku/raku-mode@e0639c8 -> Raku/raku-mode@8a6e17f
Sterlingg/json-snatcher@c4cecc0 -> Sterlingg/json-snatcher@b28d1c0
agda/agda@36738c1 -> agda/agda@08191e6
asok/projectile-rails@11980b2 -> asok/projectile-rails@7a256b1
borkdude/flycheck-clj-kondo@5472c26 -> borkdude/flycheck-clj-kondo@152df7f
brotzeit/rustic@75b9920 -> brotzeit/rustic@7c9d55b
clojure-emacs/cider@a89b694 -> clojure-emacs/cider@f1c2a79
clojure-emacs/clj-refactor.el@9709568 -> clojure-emacs/clj-refactor.el@6db85b3
clojure-emacs/clojure-mode@84ed16c -> clojure-emacs/clojure-mode@75c2889
cython/cython@fcfd16c -> cython/cython@ba6cbed
dominikh/go-mode.el@734d523 -> dominikh/go-mode.el@d17d210
emacs-ess/ESS@1baf8bf -> emacs-ess/ESS@a694b26
emacs-lsp/lsp-haskell@a56667b -> emacs-lsp/lsp-haskell@4d85cb3
emacs-lsp/lsp-java@2600162 -> emacs-lsp/lsp-java@3f1ed17
emacs-lsp/lsp-metals@039aa72 -> emacs-lsp/lsp-metals@8f8471c
emacs-lsp/lsp-pyright@9603dda -> emacs-lsp/lsp-pyright@ccd0007
emacs-lsp/lsp-python-ms@a884a9a -> emacs-lsp/lsp-python-ms@a0c56f4
emacs-lsp/lsp-sourcekit@130f7a8 -> emacs-lsp/lsp-sourcekit@948c3a3
emacs-straight/rainbow-mode@f780ddb -> emacs-straight/rainbow-mode@fdff98b
emacs-typescript/typescript.el@42a60e5 -> emacs-typescript/typescript.el@e6f68ab
ericdallo/hover.el@e213f2b -> ericdallo/hover.el@3f07a18
erlang/otp@d9bc785 -> erlang/otp@36b4ba4
factor/factor@3fdb032 -> factor/factor@c6e15bd
flycheck/flycheck-cask@3457ae5 -> flycheck/flycheck-cask@4b2ede6
fsharp/emacs-fsharp-mode@3e41fe1 -> fsharp/emacs-fsharp-mode@68dfc22
fxbois/web-mode@60ffd87 -> fxbois/web-mode@b4b0a85
galaunay/poetry.el@22a76cd -> galaunay/poetry.el@eb238d9
greghendershott/racket-mode@c55fd70 -> greghendershott/racket-mode@0ca8b26
hhvm/hack-mode@572c3b4 -> hhvm/hack-mode@9079bc3
hylang/hy-mode@55e84ca -> hylang/hy-mode@7256844
immerrr/lua-mode@35b6e4c -> immerrr/lua-mode@345ebfc
jaor/geiser@adc5c4a -> jaor/geiser@2accab7
joaotavora/sly@34239bc -> joaotavora/sly@fce4f9b
jorgenschaefer/emacs-buttercup@0e5eae0 -> jorgenschaefer/emacs-buttercup@cccdedf
jorgenschaefer/emacs-buttercup@0e5eae0 -> jorgenschaefer/emacs-buttercup@cccdedf
josteink/csharp-mode@4885177 -> josteink/csharp-mode@f46d656
jrblevin/markdown-mode@ef2cb4d -> jrblevin/markdown-mode@152eae2
jschaf/powershell.el@8782677 -> jschaf/powershell.el@d1b3f95
jwiegley/emacs-async@36a1015 -> jwiegley/emacs-async@14f48de
leanprover/lean-mode@6b43776 -> leanprover/lean-mode@cc1f5fa
liblit/demangle-mode@697c1db -> liblit/demangle-mode@aaef0bd
mooz/js2-mode@40aab27 -> mooz/js2-mode@ffb7099
nonsequitur/inf-ruby@9f0f79f -> nonsequitur/inf-ruby@b012457
pashky/restclient.el@ac8aad6 -> pashky/restclient.el@abc307b
pythonic-emacs/anaconda-mode@73266a4 -> pythonic-emacs/anaconda-mode@39b1cf8
pythonic-emacs/pyenv-mode@d191037 -> pythonic-emacs/pyenv-mode@b818901
seagle0128/grip-mode@281ada2 -> seagle0128/grip-mode@91da46f
senny/rvm.el@081d517 -> senny/rvm.el@6897576
swift-emacs/swift-mode@d266fbd -> swift-emacs/swift-mode@e65a80a
wbolster/emacs-python-pytest@fc056fa -> wbolster/emacs-python-pytest@a2f88b1
xuchunyang/elisp-demos@8c97481 -> xuchunyang/elisp-demos@3cca496
2020-10-11 23:20: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
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
Henrik Lissner
b8c20d50fe
Fix unreadable indentation in native elisp files 2020-08-02 18:58:58 -04:00