Commit graph

693 commits

Author SHA1 Message Date
Henrik Lissner
8766499b0d
Fix some file permissions errors
Occurs when deferred packages are loaded while in an unreadable or
non-existent directory.
2019-08-27 00:05:12 -04:00
Henrik Lissner
8b94f325b2
Remove 'append' entry in doom-escape-hook 2019-08-19 12:29:51 -04:00
Julian DeMille
3e7bcda04a tools/debugger: Add rust binding for dap-lldb (#1677)
* Add Rust binding to dap-mode in :tools debugger
* Fix missing ).
2019-08-17 16:03:57 -04:00
Henrik Lissner
67b15041bc
Add +lsp-company-backend variable
To allow users to customize what backend(s) to use for lsp-mode buffers.
2019-08-15 14:59:53 -04:00
Henrik Lissner
9ab49be564
Fix "fatal: no names found" errors on 'doom rebuild'
Some packages that depend on org (like elfeed) will load the built-in
org early in the rebuild/package install process, which causes org to
define org-release and org-git-version, sometimes overwriting our stubs
for it. Without our hack, org call 'git describe' in the org repo in an
attempt to determine the installed version, which won't work in a sparse
clone. To ensure future definitions never overwrite ours, we advise them
as well.

Also moves magit-version hack to its autoload file, for consistency with
org's hacks.
2019-08-07 16:31:45 -04:00
Henrik Lissner
3423974234
Minor refactors & tweaks across the board 2019-08-06 14:50:42 -04:00
Oleksii Filonenko
d82794665a
tools/docker: Update README.org
- Proofread a bit
- Add #+SINCE: v2.0.9
- Change some formatting to proper Org syntax
2019-07-30 15:22:19 +03:00
Henrik Lissner
96f2b5dbf6
tools/ansible: don't init submodules
emacs-ansible pulls in ansible; which takes a long time to download and
isn't needed.
2019-07-29 17:24:20 +02:00
Henrik Lissner
9b5dce1c56
Refactor lsp! function 2019-07-29 03:18:38 +02:00
Henrik Lissner
37739a2501
tools/flyspell: don't spellcheck org blocks 2019-07-29 03:18:38 +02:00
Henrik Lissner
19ecf8e46a
Correct last inline hook defuns
See a3e262c7 for rationale
2019-07-28 16:10:53 +02:00
Henrik Lissner
19dd4e8db8
Correct more inline hook defuns 2019-07-28 02:32:25 +02:00
Henrik Lissner
60a87b444c
Merge pull request #1601 from filalex77/elixir-ls
Add support for Elixir LSP via elixir-ls
2019-07-27 03:24:39 +02:00
Oleksii Filonenko
887a36aacf
Add support for Elixir LSP via elixir-ls
- Document Elixir with LSP via elixir-ls
- Add ~+lsp~ flag to ~:lang elixir~
2019-07-26 22:17:01 +03:00
Henrik Lissner
05f7565a57
Merge pull request #1597 from ar1a/straight-lsp-company
tools/lsp: cache company candidates automagically
2019-07-26 20:33:28 +02:00
Aria Edmonds
21f1a50436
tools/lsp: cache company candidates automatically 2019-07-27 04:28:22 +10:00
Henrik Lissner
a3e262c7ac
💥 Refactor add-hook! macro & change arg order
This update may potentially break your usage of add-hook! if you pass
the :local or :append properties to it. This is how they used to work:

  (add-hook! :append 'some-mode-hook #'do-something)

Thsoe properties must now follow the hooks, e.g.

  (add-hook! 'some-mode-hook :append #'do-something)

Other changes:
- Various add-hook calls have been renamed to add-hook! because I
  incorrectly assumed `defun` always returned its definition's symbol,
  when in fact, its return value is "undefined" (so sayeth the
  documentation). This should fix #1597.
- This update adds the ability to add multiple functions to hooks
  without a list:

    (add-hook! 'some-mode-hook
               #'do-something
               #'do-something-else)

- The indentation logic has been changed so that consecutive function
  symbols at indented at the same level as the first argument, but forms
  are indent like a defun.

    (add-hook! 'some-mode-hook
               #'do-something
               #'do-something-else)

    (add-hook! 'some-mode-hook
      (message "Hello"))
2019-07-26 20:17:29 +02:00
Henrik Lissner
82ae3a73f3
def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
Henrik Lissner
8aa7772e4e
tools/lsp: prevent ~/.emacs.d/lsp-cache creation #1587
And prefix lsp folders with "lsp-".
2019-07-23 16:51:57 +02:00
Henrik Lissner
76cacb5bfe
💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
Henrik Lissner
271920b42a
tools/wakatime: conform to new conventions 2019-07-23 00:01:13 +02:00
Henrik Lissner
38d06446ba
tools/pdf: conform to new conventions 2019-07-23 00:00:08 +02:00
Henrik Lissner
0ab14efce2
tools/prodigy: conform to new conventions 2019-07-22 23:59:25 +02:00
Henrik Lissner
763262b2a3
tools/pass: conform to new conventions 2019-07-22 23:58:16 +02:00
Henrik Lissner
d307de8297
tools/macos: conform to conventions 2019-07-22 23:54:43 +02:00
Henrik Lissner
6cda303ae6
tools/lookup: conform to new conventions 2019-07-22 23:51:13 +02:00
Henrik Lissner
a264185f74
tools/gist: conform to new conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
287e61a72c
tools/flyspell: conform to new conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
90f5128de2
tools/flycheck: conform to new conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
7562d29d4b
tools/eval: conform to new conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
28aead72ef
tools/editorconfig: conform to new conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
8e09b8b7fe
tools/debugger: conform to new advice conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
8e096f7a23
tools/direnv: conform to new hook conventions 2019-07-22 23:51:12 +02:00
Henrik Lissner
d7ed52f3c7
Add ui/hydra module
And conforms all existing hydras to the naming convention for
interactive commands, e.g.

  +vc-gutter-hydra -> +vc/gutter-hydra
2019-07-22 23:51:12 +02:00
Henrik Lissner
6b5d65b55b
tools/magit: reuse magit-status window
Instead of opening the same buffer in a new window.
2019-07-22 04:01:18 +02:00
Henrik Lissner
951a414ca4
tools/lsp: disable unneeded sideline/eldoc features 2019-07-22 02:37:47 +02:00
Henrik Lissner
060ede0e2e
General, minor reformatting across the board
And an offering of blood to our great lord Byte Compiler-sama.
2019-07-22 02:37:45 +02:00
Henrik Lissner
ff5769f117
Remove reference to removed cache library 2019-07-22 02:37:44 +02:00
Henrik Lissner
cbafa6b749
tools/magit: add -r option to magit-pull 2019-07-22 02:37:44 +02:00
Henrik Lissner
a55a71b8ce
tools/magit: recognize ~/.config/git/credential 2019-07-22 02:37:44 +02:00
Henrik Lissner
72f97be86f
tools/magit: magit-save-repository-buffers = nil
Autosaving our buffers can trigger unwanted side-effects, like save
hooks and formatters, which is too magical. Instead, trust the user to
know what they're doing.
2019-07-22 02:30:41 +02:00
Henrik Lissner
ce4b8940ca
tools/magit: revise default window management for magit
The former default display function would strive to open windows below
the current magit window (splitting it), but this would stack and
quickly become cramped. The behavior is now to reuse the same
window *unless* you're opening the process buffer or from the commit
window.
2019-07-22 02:30:41 +02:00
Henrik Lissner
ba26ce39fe
tools/magit: lazily compile emacsql
Prevents the emacsql binary from being built just because you tried
literally anything remotely to do with magit.
2019-07-22 02:30:41 +02:00
Henrik Lissner
832b7e9294
Remove witout-project-cache!, rename project-file-exists-p
To doom-project-file-exists-p, which is now a function.
2019-07-22 02:30:41 +02:00
Henrik Lissner
b90dede1ab
💥 Replace package.el/quelpa with straight #374
There are a few kinks to iron out, but for the most part it's done. Doom
Emacs, powered by straight. Goodbye gnutls and elpa/quelpa issues.

This update doesn't come with rollback or lockfile support yet, but I
will eventually include one with Doom, and packages will be (by default,
anyway) updated in sync with Doom.

Relevant threads: #1577 #1566 #1473
2019-07-22 02:30:40 +02:00
Henrik Lissner
0a84d2f0a9
core-lib: add auto-minor-mode, revise def-project-mode!
- Adds the auto-minor-mode package to replace our in-house
  implementation.
- Merges associate! into the def-project-mode! macro because associate!
  on its own is less useful than auto-minor-mode-alist,
  auto-minor-mode-magic-alist or hooks.
- Changes the semantics of :modes and :add-hooks properties of
  def-project-mode!. Its arguments are evaluated as is; lists will need
  to be quoted.

squash! core-lib: remove associate! macro
2019-07-22 02:30:39 +02:00
Henrik Lissner
149b2617b0
💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
Henrik Lissner
51d3b1b424
💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
Sean Farley
d88085068d ansible: fix upstream changing coding conventions
Pull request here: https://github.com/k1LoW/emacs-ansible/pull/31
2019-07-16 17:28:25 -07:00
Henrik Lissner
0b28480a21
Remap xref-pop-marker-stack -> better-jumper
Better to have only one jumplist system.

Also remaps xref-find-* commands to +lookup commands earlier in the
startup process.
2019-07-13 15:47:19 +02:00