Commit Graph

47 Commits

Author SHA1 Message Date
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
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
7c9e9a3446 Move lsp! to local-vars hooks
- Set lsp-java-server-install-dir
- Use lsp! instead of lsp in lang/cc
2019-07-07 01:58:08 +02:00
9624595f35 lang/php: silence premature php-extras warning 2019-06-14 18:38:19 +02:00
4506fb9223 lang/php: update wrt changes upstream #1350
Removes some of the hacks that have long since been resolved upstream,
and install phpactor from MELPA, now that it is available there.
2019-04-24 20:58:06 -04:00
eb3c569e1d Replace +lsp|init with lsp! autodef 2019-03-02 01:34:19 -05:00
cb923eadcc Add basic LSP support
Still needs to be documented, but includes support for the following
languages:

+ C/C++/ObjC
+ Go
+ Java
+ Javascript
+ OCaml
+ PHP
+ Python
+ Ruby
+ Scala
+ Swift
+ HTML/CSS

Relevant to #460, #716, #1186
2019-02-21 19:13:35 -05:00
3f195614d9 Normalize :leader/:localleader keybinds
Evil states no longer apply to them. Also removes x-alt-keysym.
2018-12-23 23:54:27 -05:00
53fe7a1f04 Refactor Project API to reflect changes upstream
projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
2018-09-28 21:13:27 -04:00
7d3ffdff06 Remove third line in section headers
This is truly important stuff. We've saved many lives with this update.
2018-09-09 09:58:19 -04:00
fd8f8c5108 feature/lookup: rewrite dash docset integration
+ Uses alist variable to store config, rather than hooks
+ Added check for installed docsets in +lookup/documentation
+ Set docsets for various language modules (c-mode, c++-mode, css-mode,
  scss-mode, sass-mode, web-mode, go-mode, racket-mode, emacs-lisp-mode,
  js2-mode, rjsx-mode, typescript-mode, rust-mode, and php-mode)
+ Made *eww* popups for dash docsets larger
+ Renamed set-docset! => set-docsets! (set-docset! is aliased to
  set-docsets!)
+ New +lookup/install-docset alias
2018-08-31 02:49:48 +02:00
f51f2948af New :editor format module
Centralized code formatting with built-in support for a variety of
languages. Provides the set-formatter! function for defining your own.

Still experimental and needs more testing!
2018-08-22 02:20:11 +02:00
9c4d1c3b02 lang/php: replace ac-php with phpactor.el
phpactor is superior to phpctags, though it requires more setup.

phpactors.el is superior to ac-php, though it is in alpha.
2018-08-13 21:47:55 +02:00
3131bda98c lang/php: fix interpolation in unquoted lambda 2018-08-09 01:02:47 +02:00
56fcad4970 lang/php: use internal phpctags only
Other versions of phpctags may cause errors.
2018-08-09 00:40:26 +02:00
8bbff852f7 lang/php: fix stringp error & phpctags path
Also provide a way to silence phpctags warnings on starting
php-mode (set ac-php-ctags-executable to nil).
2018-08-01 18:15:30 +02:00
9f4b6869b6 lang/php: remove redundant :interpreter
Already defined in php-mode's autoloads.
2018-07-30 03:43:42 +02:00
248e9a487f Stop php-extras altering global company-backends 2018-07-30 02:57:50 +02:00
db8ed4aac6 lang/php: add +hack support 2018-07-29 17:42:00 +02:00
f0f2c92b8d lang/php: prioritize phpctags in PATH
And fail more gracefully if phpctags isn't installed
2018-07-29 17:41:59 +02:00
95d6c6664d lang/php: simplify rules for smartparens 2018-07-19 03:35:41 +02:00
f6f74efdee Refactor lang/php 2018-07-19 03:35:38 +02:00
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
c0251aacee Replace :lookup with set-lookup-handlers! autodef
And update all internal references.
2018-06-15 17:27:48 +02:00
588359cc5f Replace :eval/:repl with autodef functions
+ :eval => set-eval-handler!
+ :repl => set-repl-handler!
+ Updates all internal references.
2018-06-15 16:20:20 +02:00
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
3bdb3d4e5d Update uses of associate! 2018-06-01 02:20:00 +02:00
168cb74794 Replace add-hook! with setq-hook! where possible 2018-05-07 22:37:19 +02:00
15da107e04 lang/php: basic :lookup support & don't warn about missing phpctags
Only adds :documentation support for now.
2018-01-28 21:36:48 -05:00
31a4244686 Rethink what Doom loads at startup and manually
Better to simply load what we need, when we need it, rather than set up
autoloads for every litte thing.
2018-01-07 00:15:57 -05:00
9d661ff71e Move ac-php-tags-path & recentf-save-file to doom-cache-dir 2017-12-23 14:30:36 -05:00
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
9408062f60 Move some plugins' storage to doom-etc-dir 2017-11-05 01:16:36 +01:00
c7254e7bdc Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
d949935628 lang/php: refactor + add company-php 2017-05-23 21:33:03 +02:00
5ae94b765c PRAISE BE TO THE BYTE COMPILER FOR THY SHARP QUOTES 2017-04-17 02:17:10 -04:00
673761d4d8 General comment updates 2017-04-08 01:36:11 -04:00
5f8cbd751a Remove references to doom/append-semicolon; use evil append mode instead 2017-04-03 13:17:35 -04:00
67efcb597f lang/{javascript,php}: fix doc comment sp pairs 2017-04-03 03:12:49 -04:00
3e63d2d23b Reduce def-package magic; explicitly use :when property 2017-03-19 22:47:50 -04:00
923d4585fa Extract make clean/clean-cache into elisp; new doom-etc-dir for non-volatile temp files 2017-03-16 23:38:22 -04:00
3ac1d382be Fix project mode definitions 2017-03-02 18:28:46 -05:00
45122cdea5 Fix keybindings + make them more consistent 2017-02-28 12:11:18 -05:00
33c88d4f82 Revert macros to ...! name convention (elisp doesn't like @...) 2017-02-23 00:06:12 -05:00
32bc9ce767 Minor refactoring 2017-02-22 04:28:45 -05:00
e14e25ecb4 Update modules/lang/* 2017-02-20 00:26:08 -05:00
f453b3cee1 Reorganize modules 2017-02-20 00:23:03 -05:00