Commit graph

176 commits

Author SHA1 Message Date
Henrik Lissner
c78c6495f1
Apply /* and /** pairs to more modes
Including js, ts, rjsx, rust, all C modes, php, and all css modes (scss,
less, and stylus).

Requested by @ar1a
2018-06-24 16:31:13 +02:00
Henrik Lissner
f6dc6ac74e
Refactor out map.el usage
After some profiling, it turns out map-put and map-delete are 5-7x
slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for
small lists (under 250 items), which is exactly how I've been using
them.

The only caveat is alist-get's signature is different on Emacs 25, thus
a polyfill is necessary in core-lib.
2018-06-23 19:53:54 +02:00
Henrik Lissner
e05d7cfee0
Change flycheck initialization strategy
Initialize it globally and turn it off where needed, instead of enabling
it on demand. Also fixes void-function: flycheck-mode errors when
:feature syntax-checker is disabled. This is experimental.

Indirectly fixes #710
2018-06-22 01:49:20 +02:00
Henrik Lissner
1866bb75f0
Gate rtags packages behind +rtags module flag #693 2018-06-17 14:45:07 +02:00
Henrik Lissner
ec8ae0bedc
Add :ui pretty-code & set-pretty-symbols! autodef
Along with defaults for C/C++, elm, elisp, js, typescript, web-mode, and
org-mode. Thanks to @ar1a for inspiration.
2018-06-16 19:32:25 +02:00
Henrik Lissner
c0251aacee
Replace :lookup with set-lookup-handlers! autodef
And update all internal references.
2018-06-15 17:27:48 +02:00
Henrik Lissner
9f0ebe42e8
Replace :electric with set-electric-rules!
And general refactor of the emacs/electric-indent module.

Also updates (set! :electric ...) references in various :lang modules
2018-06-15 13:32:07 +02:00
Henrik Lissner
d8b1e469bc
Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00
Zwb
3ccd459ddb lang/cc: set rtags-install-path to ${doom-etc-dir}/rtags/ 2018-06-10 22:33:26 +08:00
Aria Edmonds
022a64d2e3
rtags is rdm not rtags
silly henrik
2018-06-05 17:40:54 +10:00
Henrik Lissner
3c52c36c2f
lang/cc: general refactor
For idempotence and to group dependencies so certain sub-packages (like
irony's) aren't loaded if irony is disabled.
2018-06-05 02:29:44 +02:00
Henrik Lissner
1d9ae834f2
Minor refactors & docstring revision
These are not the refactors you are looking for.
2018-06-04 21:17:49 +02:00
Henrik Lissner
b7d619fc8e
Fix objc-mode auto-mode-alist regexp
It had no line terminator.

COME WITH ME IF YOU WANT TO LIVE.
2018-06-04 00:12:02 +02:00
Henrik Lissner
7cd97588e6
lang/cc: change default standard to c++1z 2018-06-04 00:11:13 +02:00
Henrik Lissner
1e81a35461
Minimize dependence on map!
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).

In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.

This also means changes to either API won't affect Doom's modules in the
long term.
2018-06-03 15:46:00 +02:00
Henrik Lissner
09cb4f6716
Major refactor & optimization of how modules load their packages
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.

In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.

Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.

This gained me a modest ~10% boost in startup speed.
2018-05-25 00:46:16 +02:00
Henrik Lissner
63fdc3530c
lang/cc: refactor (nest configs and chain packages)
Allows users to disable irony and/or rtags only, then their dependent
packages won't be loaded.
2018-05-16 00:16:13 +02:00
Henrik Lissner
158c853e63
lang/cc: don't complain about missing rtags executable 2018-05-09 12:17:26 +02:00
Henrik Lissner
93e552fcaf
lang/cc: remove unnecessary :after irony properties
These two packages will be autoloaded by other means.
2018-05-09 10:22:03 +02:00
Henrik Lissner
abd141aed9
lang/cc: alias cpp-mode to c++-mode
Offers an alternative for invoking c++-mode via M-x. The default M-x
interfaces for helm and ivy treat input as regexp, thus not reading +'s
literally, which can be annoying.
2018-05-07 21:57:20 +02:00
Henrik Lissner
80e94ac91f
lang/cc: reindent line on { #510 2018-04-07 08:04:31 -04:00
Henrik Lissner
8e7f97167a
Minor whitespace/docstring refactor 2018-04-02 06:17:22 -04:00
Henrik Lissner
b21e4c8bba
lang/cc: minor refactor 2018-03-22 23:27:48 -04:00
Henrik Lissner
9168dfd733
lang/cc: add build-conda to irony-cdb-search-directory-list 2018-03-16 00:38:10 -04:00
Henrik Lissner
74c8b1d113
Rewrite doctor; move warn! blocks out in doctor.el files 2018-03-12 13:32:01 -04:00
Henrik Lissner
28adf5825f
lang/cc: fix rtags in other c*-mode derived modes; fix cleanup hook
Also fixed rtags cleanup in doom-cleanup-hook to only kill the server if
there are no more C/C++ buffers open.
2018-03-01 13:47:27 -05:00
Henrik Lissner
dfb6bc162d
lang/cc: remove ivy+rtags hack (unnecessary?) 2018-03-01 04:35:52 -05:00
Henrik Lissner
5fc4ed3f81
lang/cc: rewrite & polish style settings
Doom used to have its own cc-mode style, which was difficult to
customize without first undoing all its changes.

A doom entry has been added to c-style-alist, which represents
a marriage of various styles (mostly linux), plus some context-sensitive
indentation functions which I think are reasonable.

More importantly, it can be disabled by changing c-default-style.

Also, removed a few hacks that have been merged into v5.33+ of cc-mode.
25.1 users beware! You may not have these changes.
2018-02-23 04:51:20 -05:00
Henrik Lissner
2b1c323dbf
💥 Redesign private sub-module system
~/.doom.d/modules is now a full module tree, like ~/.emacs.d/modules.
Symlinks are no longer involved.

Private modules can now shadow Doom modules. e.g.
~/.doom.d/modules/lang/org will take precendence over
~/.emacs.d/modules/lang/org.

Also, made doom--*-load-path variables public (e.g. doom--site-load-path
=> doom-site-load-path), and rearranged the load-path for a 10-15%
startup boost.
2018-02-16 02:11:10 -05:00
Henrik Lissner
bac73ec938
Replace warn => warn! 2018-02-14 07:46:38 -05:00
Henrik Lissner
b43743d565
lang/cc: fix smartparens not autopairing/skipping <>
Also removed +cc/autoclose->-maybe -- let smartparens handle this.
2018-02-14 05:40:37 -05:00
Ben Lambeth
25977d662b Fix adding evil-set-jump to rtags-jump-hook when evil is not enabled 2018-02-13 09:29:48 -06:00
Henrik Lissner
2bfb4accf2
Merge pull request #348 from UndeadKernel/rtags-fix
Correctly report when rtags's client or server are not found.
2018-01-11 13:11:47 -05:00
UndeadKernel
c59f584444 Correctly report when rtags's client or server are not found. 2018-01-11 15:49:50 +01:00
Henrik Lissner
669b3cbbb0
lang/cc: fix void-function irony-mode error #341 2018-01-10 22:25:09 -05:00
Henrik Lissner
42cee2e046
Update :jump => :lookup 2018-01-05 23:57:48 -05:00
Henrik Lissner
1ebc4c9594
lang/cc: fix irony-mode complaining in non-C modes, like php-mode 2018-01-01 13:23:39 -05:00
Henrik Lissner
b331acb46b
lang/cc: rename +cc-{include-paths,compiler-options} #305 2017-12-27 17:10:28 -05:00
Henrik Lissner
0a9a992e81
lang/cc: remove +cc|init-rtags-server-maybe
The rtags-start-process-unless-running function does exactly the same
thing, making +cc|init-rtags-server-maybe redundant.

Relevant to #305
2017-12-27 00:49:09 -05:00
Henrik Lissner
854b26af28
lang/cc: fix rtags-cancel-process preventing emacs quit 2017-12-27 00:42:04 -05:00
Henrik Lissner
fa98d79bf4
lang/cc: rtags-completions-enabled = nil #305 2017-12-26 23:39:44 -05:00
Henrik Lissner
0b2e6abac6
lang/cc: don't undo ivy-mode-map remapping 2017-12-26 19:39:20 -05:00
Henrik Lissner
10110ad9d2
lang/cc: kill emacs-spawned rdm on quit #305 2017-12-26 19:36:03 -05:00
Henrik Lissner
222a2955e2
lang/cc: refactor rtags integration #305 2017-12-26 19:24:25 -05:00
Henrik Lissner
750b74379d
lang/cc: add rtags support #305 2017-12-26 18:15:10 -05:00
Henrik Lissner
a02edc1d01
lang/cc: map cmake-mode to .cmake files 2017-12-26 18:12:15 -05:00
Henrik Lissner
e5dcdadd5e
lang/cc: (when ...) -> :when 2017-12-26 14:14:36 -05:00
Henrik Lissner
76a4ae459d
Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -05:00
Henrik Lissner
9d81bc5a8b
Major refactor: use-package-always-defer = nil & use :hook
Possibly breaking change: packages are no longer deferred by default.

Addresses #286
2017-12-08 23:14:11 -05:00
Henrik Lissner
d600d36675
lang/cc: minor refactor 2017-09-20 14:25:35 +02:00