Commit graph

64 commits

Author SHA1 Message Date
Rudi Grinberg
55e00bbd26 re-search-forward to search-forward when no re
When no regular expression is present, it's faster and simpler to use
search-forward

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2019-10-13 12:25:41 +09:00
Henrik Lissner
658c33bc2a
bin/doom-doctor: fix shell command output 2019-09-21 14:18:29 -04:00
Henrik Lissner
f5f5918fbb
bin/doctor: remove emacs version check
This no longer works and is no longer necessary.
2019-09-06 15:42:14 -04:00
Henrik Lissner
567fecd50f
bin/doctor: mention minimum supported version in error msg 2019-09-06 15:41:46 -04:00
Henrik Lissner
78d951bdb0
bin/doom-doctor: resolve symlinks in parent dir
As mentioned in #1718, this fixes an error loading autoload/format when
doom-doctor is called from outside EMACSDIR/bin (e.g. if it is
symlinked).
2019-08-28 00:40:50 -04:00
Henrik Lissner
8ee474889f
bin/doom-doctor: set default-directory
This prevents file errors when running the doctor from directories that
don't exist or you don't have permissions for.
2019-08-27 12:37:38 -04:00
Henrik Lissner
8ac1e1a781
Refactor doom init process
- Refactors doom-initialize
- Moves doom-initialize-modules call to init.el, to more easily isolate
  it during unit testing.
2019-08-27 00:05:12 -04:00
Henrik Lissner
fde4d1143b
bin/doom-doctor: load Doom config interactively
May indirectly fix #1636
2019-08-07 21:30:30 -04: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
987061aedd
Rewrite autoload/message.el & move to format.el
Adds new convenience macros like print! and insert!, and adds classes;
which are helper functions that can be called inline within format!,
print! et co, e.g.

  (format! "%s" (filename "/tmp/some/file")) ; => file
  (format! "%s" (relpath "/tmp/some/file" "/tmp")) ; => some/file
  (format! "%s" (dirname "/tmp/some/file")) ; => /tmp/some

Check out doom-format-class-alist for more.
2019-07-22 02:30:39 +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
Henrik Lissner
7900d8a10e
bin/doom-doctor: fix void-variable it error 2019-07-13 23:39:31 +02:00
Henrik Lissner
d9f4b13d78
doctor: fix false positive missing packages #1544 2019-07-09 02:19:35 +02:00
Henrik Lissner
710a18d18a
Fix #1501: fix sh function
`format` is variadic
2019-06-18 22:09:28 +02:00
Henrik Lissner
798e10c4f2
Refactor doom doctor
And move font check into core/doctor.el
2019-06-18 17:29:50 +02:00
Henrik Lissner
6641e26283
Refactor package management API
Sets out to solve a number of issues with the package management
process. Namely:

- To-be-removed packages that are simply being removed are no longer
  incorrectly labeled "quelpa->elpa", but "removed" instead.
- A backend (elpa vs quelpa) column was added to the package listing
  confirmation when running `doom update`.
- Doom now correctly recognizes that packages installed with a psuedonym
  are installed, and will not endlessly attempt to uninstall and
  reinstall them on every `doom refresh`.
- Packages declared with :built-in will no longer lose their built-in
  marking if said package is not actually present in Emacs' site load
  paths. i.e. if you say it's built in, Doom won't question it.
- package!'s :ignore property is now treated as a form whose evaluated
  result will be used as its value.
2019-06-11 08:01:42 +02:00
chrunchyjesus
5a380e9db2
fix shebang for doctor, org-capture and -tangle 2019-06-08 07:27:36 +02:00
Misaka Mikoto
944e243c5d bin/doom-doctor POSIX compliance 2019-06-03 21:17:53 +10:00
Henrik Lissner
89b20d71ce
doom-doctor: prevent errors we don't care about 2019-05-05 14:21:44 -04:00
Henrik Lissner
6b69eaa397
Minor refactors across the board 2019-04-26 17:42:44 -04:00
Henrik Lissner
9bea168cc1
Rewrite doom-doctor
- Use message library instead of reinventing the wheel
- Fix -d/--debug support for `bin/doom doctor`
- Add indent and autofill support to print! and format!
- Add doom-message-backend for forcing format! to use a specific backend
- Phase out anaphoric when! macro in doctor scripts, it was hardly used
2019-04-24 18:16:05 -04:00
Henrik Lissner
0caf0abcbb
Major refactor of the Doctor
- Reorganize tests into logical groups
- Report Doom initialization with more granularity
- Make better use of whitespace and indentation in output
- Use backquotes for quoting symbols in pcase (for backward
  compatibility)
- Initialize Doom completely and manually (less maintanence headache and
  more certain to work across Doom updates).
2019-04-19 13:31:27 -04:00
Henrik Lissner
6afc8e5563
Add stale elc check to doctor
And short-circuit internal checks if Doom fails to load.
2019-04-17 18:38:02 -04:00
Henrik Lissner
20a63a35ab
Reformat doctor output & add DOOMDIR check
- Will now warn you if both .doom.d and .config/doom exists.
- Include branch and last commit date in doctor/info, next to Doom
  version.
- Issues in Doom core are now indented.
2019-04-16 20:57:03 -04:00
Henrik Lissner
f37b1342a2
Don't show hostname in doom info or doctor output
It doesn't help me, and some folks may not want it publicized.
2019-04-16 20:57:03 -04:00
Henrik Lissner
54d180b376
Ensure user-emacs-directory in doctor
Also allow it to be customized with EMACSDIR envvar
2019-04-15 03:47:24 -04:00
Henrik Lissner
ddfcc4299c
bin/doom-doctor: minor refactor
Also allow Doom init errors to be debugged.
2019-03-28 02:01:38 -04:00
Henrik Lissner
acf67244ca
Improve doom doctor
+ Bump Emacs version check to 25.3
+ Fix doctor reporting missing packages that are user-disabled
+ Add Doom core checks for over-sized cache files (a possible cause of
  freezes/hangs)
+ Emit a backtrace from module doctor script errors
+ Fix doom doctor not respecting DEBUG envvar
2019-03-16 23:59:50 -04:00
Henrik Lissner
f7326a2c40
Update doom doctor for new init process
For changes made in 31bcac9a
2018-09-09 09:58:19 -04:00
Henrik Lissner
8b8c7c7411
doom-doctor: use ~ instead of HOME envvar 2018-07-05 01:32:38 +02:00
Henrik Lissner
ca5ff92192
Fix void-variable: package errors in doom doctor
Reported by @zaiste
2018-06-27 12:02:21 +02:00
Henrik Lissner
81753150a7
doctor: don't regard disabled/ignored packages
And refactor error handling.
2018-06-26 18:58:07 +02:00
Henrik Lissner
eb254afd51
Fix doom doctor
Update doom loader to reflect recent changes.
2018-06-13 20:10:37 +02:00
Henrik Lissner
01d1a814f9
Refactor doom-initialize functions
Removes doom-module-table; which was inflexible (though more stable). It
prevented you from putting your doom! block in anywhere but
~/.doom.d/init.el.

It is replaced (somewhat) by (doom-modules).
2018-06-10 17:30:26 +02:00
Henrik Lissner
242a28ddc9
doctor: initialize more state for more accurate tests #603 2018-05-25 19:59:56 +02:00
Henrik Lissner
7cfab92f7c
bin/doom-doctor: refactor bash bootstrapper 2018-05-24 16:39:08 +02:00
Henrik Lissner
8ea0f34270
doctor: update doom bootstrap logic & fix error on built-in packages 2018-05-21 18:34:33 +02:00
Henrik Lissner
2e7831b8a4
doctor: reduce output for cert test 2018-05-21 18:34:33 +02:00
Henrik Lissner
6a08128194
doctor: make feedback more informative 2018-05-21 18:34:33 +02:00
Henrik Lissner
ddadb79952
Reduce noise from doom doctor
And fix not-enough-arguments error from format.
2018-05-21 01:38:17 +02:00
Henrik Lissner
7851e9e3b4
doctor: pluralize issue count at the end
It's features like these that separate us from animals.
2018-05-20 12:18:16 +02:00
Henrik Lissner
6aaa13d05e
doctor: update Doom initialization 2018-05-20 12:18:16 +02:00
Henrik Lissner
85ee9ce459
Refactor doom module API
+ Consolidate the CATEGORY -> MODULE terminology
+ Rename functions to make their function easier to understand
  + Rename doom-module-expand-file => doom-module-path
  + Rename doom-module-find-path => doom-module-locate-path
2018-05-20 00:03:57 +02:00
Henrik Lissner
56a6d1faa3
Doctor: include origin in syntax error message 2018-05-16 00:11:14 +02:00
Henrik Lissner
dbeb7c639a
Update doom doctor 2018-05-14 21:08:16 +02:00
Henrik Lissner
e9a325039d
doctor: doom-initialize before loading Doom 2018-05-07 19:26:31 +02:00
Henrik Lissner
aef9724324
Add doom*shut-up advisor to core-lib 2018-04-23 00:03:28 -04:00
Henrik Lissner
a616f00670
Fix wrong-type-argument stringp error from doom doctor 2018-04-13 16:34:51 -04:00
Henrik Lissner
5d3f247a7f
doctor: add warning for dual private configs 2018-04-04 06:47:42 -04:00
Henrik Lissner
82bead5ae4
Refactor & fix doom-doctor module checkups 2018-03-20 21:12:35 -04:00