Commit graph

86 commits

Author SHA1 Message Date
Henrik Lissner
381851aab6
Prevent wrong-type error on +company/complete 2018-08-26 22:02:35 +02:00
Henrik Lissner
3948704c69
completion/company: add +tng flag & support 2018-08-25 19:54:11 +02:00
Henrik Lissner
0009c7bebf
Append space on C-SPC if not at end-of-symbol
Completion rarely works in the middle of (or at the beginning of) a
symbol, so we insert a space in front of the cursor in those cases and
then invoke completion.
2018-08-25 15:16:28 +02:00
Henrik Lissner
808c1356df
Don't sort company candidates by default 2018-08-08 23:37:30 +02:00
Henrik Lissner
c385ed7708
Set no default company-backends
No magic. Let the user decide exactly what backends to use for any given
buffer.
2018-08-07 21:31:34 +02:00
Henrik Lissner
e266ec9eec
Add company-ispell to default text-mode backends 2018-08-06 23:03:02 +02:00
Henrik Lissner
eaaf6751d3
Polish docstring for set-company-backend! 2018-08-06 22:41:44 +02:00
Henrik Lissner
316a9f06b2
completion/company: add company-prescient 2018-08-04 02:14:43 +02:00
Henrik Lissner
b2b8d5d260
Fix company-backends circular-list error in latex 2018-07-30 13:05:02 +02:00
Henrik Lissner
533cb13a02
Append default backends to buffer-local backends 2018-07-30 12:57:26 +02:00
Henrik Lissner
22aeaec399
Refactor how company-backends are set and stored
Company backends are now built from an alist (+company-backend-alist),
which can be manipulated through set-company-backend!. Backends can now
be set to all children of a parent mode (text-mode, prog-mode, etc),
like so:

  (set-company-backend! :derived 'text-mode 'company-dabbrev)

or only for an exact major-mode:

  (set-company-backend! 'markdown-mode 'company-dabbrev-code)

Backends cascade. So combining the two examples above will cause
company-backends in a markdown-buffer (which is derived from text-mode)
to be (company-dabbrev-code company-dabbrev).
2018-07-30 03:43:42 +02:00
Henrik Lissner
80a3c9bf62
Fix company-box not showing lone candidates
Revert this once sebastiencz/company-box#40 is merged.
2018-07-05 21:45:44 +02:00
Henrik Lissner
dfed54c7ad
Shrink oversized company-box icons
This would cause lines in company-box frames to be too large, making the
last candidate seem cut off by the frame edge.
2018-07-05 21:40:34 +02:00
Henrik Lissner
2e29455cb4
Disable company-mode in eshell-mode
It appears to be incompatible with pcomplete, causing random errors and
whitespace insertion at odd times.
2018-06-29 01:51:49 +02:00
Henrik Lissner
029824b6c1
Update company-box icons
Inspired by @fuxialexander's config
2018-06-27 19:13:54 +02:00
Henrik Lissner
5531d7115a
Fix indentation for many autodef setters 2018-06-22 01:49:21 +02:00
Henrik Lissner
8c5deef5fc
Fix unintern calls (missing second argument) 2018-06-22 01:49:21 +02:00
Henrik Lissner
bc87ccf894
Refactor set-company-backend! & revise docstring 2018-06-22 01:49:19 +02:00
Henrik Lissner
aa4c9744f8
Fix set-company-backends! & update docstring
+ It wasn't preserving insertion order of multiple backends
+ It failed when BACKENDS = nil (supposed to unset mode backends)
+ Use eq/equal as a test-fn conditionally (glorious, glorious premature
  optimization)
2018-06-20 19:44:08 +02:00
Henrik Lissner
898449e374
Add completion/company tests 2018-06-20 19:09:05 +02:00
Henrik Lissner
746d90c330
make-variable-buffer-local -> make-local-variable
It is more correct to use the latter.
2018-06-19 13:49:18 +02:00
Henrik Lissner
97b42c449b
Allow set-company-backend! to unset backends
Passing nil as its second argument will unset previously set backends.
2018-06-17 21:40:32 +02:00
Henrik Lissner
17981d6a61
Conform hook names to conventions
Also minor reformatting & comment corrections.
2018-06-17 02:25:12 +02:00
Henrik Lissner
3ad16f660f
Refactor set-company-backend! 2018-06-16 12:46:57 +02:00
Henrik Lissner
f81a0e6f41
Remove redundant def-setting! docstrings
def-setting! will now grab the autodef's docstring if it has an
:obsolete property defined.
2018-06-15 16:54:39 +02:00
Henrik Lissner
eaca8c58fa
Move unit tests from ert to buttercup
Easier to organize and write. Now I can hopefully strive for better
coverage!
2018-06-15 03:42:01 +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
Henrik Lissner
1ef581d376
Load company (+auto) on post-self-insert-hook
This is a little later than pre-command-hook, but makes more sense.
Needs more testing though!
2018-06-05 12:04:43 +02:00
Henrik Lissner
cd0e9826ac
Remove company-statistics package
Was a little slow, not terribly helpful and would clash with certain
company backends (like company-lsp).
2018-06-03 23:28:44 +02:00
Henrik Lissner
0018d1c809
Change default company-backends to capf+yasnippet
And list their results separately.
2018-06-03 23:27:06 +02:00
Henrik Lissner
80bd587d87
Move :company-backend setting to autoload.el
This decouples the company module from module load-order.
2018-06-01 14:54:13 +02:00
Henrik Lissner
5e49239ff2
Give feedback on +company/toggle-auto-completion 2018-05-31 15:59:52 +02:00
Henrik Lissner
3b85720c9c
Fix incorrect uses of add-to-list 2018-05-28 12:26:03 +02:00
Henrik Lissner
5b31fd9505
Use company-dabbrev-code in prog-modes & company-dabbrev everywhere else 2018-05-28 00:08:14 +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
94f9e43f25
Rewrite :defer semantics
:defer now supports a hook, a cons cell with (SYMBOL . INTEGER) where
SYMBOL is a hook and INTEGER is a number of idle seconds before the
package is autoloaded, or just the integer (as per the default behavior
of :defer).

Also fixes an issue where switch-buffer-deffered packages (like
smartparens) wouldn't load.
2018-05-15 10:54:45 +02:00
Henrik Lissner
a631c10d05
Exploit new :defer input|buffer across various modules 2018-05-14 20:45:47 +02:00
Henrik Lissner
1ee9a1893f
completion/company: company-frontends bug fixed upstream 2018-05-10 19:27:14 +02:00
Henrik Lissner
3488821b2e
completion/company: minor quoting refactor
Sharp-quote function and use backquotes in pcase (better Emacs <25
compatibility).
2018-05-08 17:57:27 +02:00
Henrik Lissner
7d7c978877
completion/company: enable company-mode in eshell-mode 2018-05-08 16:18:30 +02:00
Henrik Lissner
bfc684c024
completion/company: Emacs version check for company-box #566 2018-05-07 22:38:35 +02:00
Henrik Lissner
7ee689c57c
completion/company: reduce contrast of company-box icon colors 2018-04-23 04:30:44 -04:00
Henrik Lissner
2b0c681d7a
completion/company: refactor icons & add colors 2018-04-23 04:24:42 -04:00
Henrik Lissner
779184a9ee
completion/company: remove company-quickhelp
Quickhelp is unreliable and doesn't look very good. I'm searching for an
alternative.
2018-04-23 03:42:19 -04:00
Henrik Lissner
5e007ada08
completion/company: use company-pseudo-tooltip-frontend instead 2018-04-23 02:37:58 -04:00
Henrik Lissner
cf99f29ee0
completion/company: add company-box package 2018-04-23 00:53:18 -04:00
Henrik Lissner
aef9724324
Add doom*shut-up advisor to core-lib 2018-04-23 00:03:28 -04:00
Henrik Lissner
97812583f0
completion/company: add company-box config & +childframe flag 2018-04-22 23:41:53 -04:00
Henrik Lissner
6bdaf2afbb
completion/company: refactor +auto implementation 2018-04-22 23:41:20 -04:00
Henrik Lissner
c583a89a15
completion/company: allow minor modes in :company-backend 2018-04-22 23:40:09 -04:00