Commit Graph

60 Commits

Author SHA1 Message Date
2d365619cd General refactor & cleanup, across the board 2019-09-13 22:00:34 -04:00
b2a48d5365 Add feature detection for company-phpactor
`company-phpactor` separation gives us the ability to only install it if `company` is enabled.

Co-Authored-By: Oleksii Filonenko <brightone@protonmail.com>
2019-08-13 13:52:53 -05:00
3f98c8b1a6 Added company-phpactor to packages
Previously this was included automatically with phpactor, but now the
phpactor package call is only pulling in phpactor.el and its
requirements.
2019-08-13 10:23:03 -05:00
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
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
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
62af55dad0 Move emacs-snippets -> doom-snippets
The repo was renamed upstream.
2019-07-14 17:05:48 +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
9a02bd8ac8 Minor refactors across the board
- when-let* -> when-let
- Fix projectile-locate-dominating-file for connected remote files
2019-06-26 14:31:06 +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
f6f9abd0f8 lang/php: add php-cs-fixer package #1350 2019-04-24 18:16:06 -04:00
c399c07694 Add :tools lsp checks for +lsp flag
Also:
- Reorganizes some :lang modules' packages.el file.
- Adds setuptools check in lang/python
- Adds javac check in lang/java
- Removes the depends-on! macro
2019-04-24 18:16:05 -04:00
77e4cc4d58 💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -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
2054f6b35a lang/php: include composer files with phpactor 2019-02-14 00:40:19 -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
76a4ae459d Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -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
cbabf6849c Standardize module READMEs 2017-08-21 20:13:31 +02: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
e1f60b2bfd Update READMEs & add new ones 2017-05-25 20:09:12 +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