Commit graph

79 commits

Author SHA1 Message Date
Henrik Lissner
cbc59f9333
Appease the byte-compiler 2018-07-30 12:10:11 +02:00
Henrik Lissner
ce9f7f9bde
lang/haskell: minor reformatting & refactor
Conform to conventions, use `add-hook!` for multiple hooks, use single semi-colon for eol comments, remove comments redundant with code, and use sharp-quote to indicate function symbol.
2018-07-19 19:03:05 +02:00
Patrick Elliott
82fee01611 fix typo 2018-07-19 17:13:56 +02:00
Patrick Elliott
4980c66e15 Disable overlays conditionally if flycheck is loaded 2018-07-19 17:09:19 +02:00
Patrick Elliott
b0af6bcbef Add some useful haskell-mode options 2018-07-19 17:00:01 +02:00
Patrick Elliott
864e15f19d Add support for folding haskell code blocks 2018-07-19 16:37:22 +02:00
Patrick Elliott
3a5af1d591 Added subword mode hook. 2018-07-19 16:34:13 +02:00
Patrick Elliott
96ecadf9e6 Re-order blocks 2018-07-19 11:05:31 +02:00
Patrick Elliott
c51b088c6e Remove attrap def-package 2018-07-19 11:04:48 +02:00
Patrick Elliott
9d4c9c3306 Move haskell-mode bindings 2018-07-19 11:04:17 +02:00
Patrick Elliott
406e8f31f6 Move dante mode map 2018-07-19 11:03:16 +02:00
Patrick Elliott
dc68d7aad8 Moved intero map 2018-07-19 11:02:26 +02:00
Patrick Elliott
b0a754391a Added stack build support for intero users 2018-07-18 09:11:48 +02:00
Patrick Elliott
6334af8a84 Fix typo 2018-07-18 08:59:07 +02:00
Patrick Elliott
1f9fcd5c10 Lazily load bindings properly 2018-07-18 08:50:55 +02:00
Patrick Elliott
a0f800421e Merge develop 2018-07-18 08:36:29 +02:00
Henrik Lissner
2968374081
lang/haskell: fix haskell-hlint checker
Causing "not a valid syntax checker" errors because it haskell-hlint was
defined too soon.
2018-07-17 23:47:57 +02:00
Patrick Elliott
c233b84520 Add attrap-attrap 2018-07-17 23:43:27 +02:00
Patrick Elliott
f981b9886e Add haskell keybindings 2018-07-17 23:43:08 +02:00
Henrik Lissner
0a4cdf8202
Make haskell-hlint setup DRY 2018-07-17 03:09:45 +02:00
Henrik Lissner
c4a54e0ae6
Merge pull request #758 from patrl/interoHlint
Intero hlint
2018-07-17 02:14:24 +02:00
Patrick Elliott
ab6e18d61b Checks for hlint for dante/intero users 2018-07-16 12:50:20 +02:00
Patrick Elliott
f8581c3206 Added hlint support for intero users 2018-07-16 12:28:41 +02:00
Henrik Lissner
c31bb6a744
Add haskell-mode-jump-to-def-or-tag lookup handler 2018-07-15 20:44:47 +02:00
Henrik Lissner
69c8ef4141
Fix void-function haskell-interactive-mode 2018-07-15 20:44:11 +02:00
Henrik Lissner
e4db3f0020
Insert module file template in haskell files #752
Use file-template module instead of hook so it only gets triggered in a
valid project.
2018-07-14 23:16:39 +02:00
Henrik Lissner
80c4abc8bf
Enable haskell-interactive-mode in haskell-mode #752 2018-07-14 23:16:39 +02:00
Henrik Lissner
a76c080930
lang/haskell: improve REPL support #752 2018-07-14 23:16:39 +02:00
Henrik Lissner
bcd930abb7
Reformat haskell packages.el 2018-07-03 03:41:08 +02:00
Henrik Lissner
65d2b01333
Revert "Refuse to enable intero-mode if intero is absent"
This reverts commit 4f40fef592.

This was short sighted. The intero check doesn't find per-project built
instances of intero.
2018-07-03 03:41:08 +02:00
Henrik Lissner
24ac13a804
Remove periods from haskell doctor warnings
It is an Emacs convention not to end errors in punctuation (unless
they're multi-line).
2018-06-27 19:36:42 +02:00
Henrik Lissner
4f40fef592
Refuse to enable intero-mode if intero is absent
Rather than checking for stack.
2018-06-27 19:36:42 +02:00
Patrick Elliott
19400598b4 got rid of hindent as a seperate feature 2018-06-26 19:34:36 +02:00
Patrick Elliott
e727e2041f Added doc check for hindent executable 2018-06-26 19:15:35 +02:00
Patrick Elliott
bec2ad4859 factored hindent out as a seperate feature. 2018-06-26 19:15:07 +02:00
Patrick Elliott
bc124fae11 removed hindent hook 2018-06-26 19:14:31 +02:00
Henrik Lissner
81428f5bcf
Fix dante-mode hook #718 2018-06-23 20:02:56 +02:00
Patrick Elliott
2589619793 simplified hook 2018-06-23 17:51:22 +02:00
Patrick Elliott
7627b04f18 Refactored dante feature. 2018-06-23 15:59:03 +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
253fd77b2a
Fix intero-goto-definition #683 #684
It wasn't working in the first haskell buffer because of a race
condition. Intero was loading too late to register lookup handlers for
haskell-mode (for the first buffer).

By setting it to intero-mode, it is registered in time for intero-mode's
activation.
2018-06-15 22:16:49 +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
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
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
1a452b6842
💥 Change first arg of load! macro
load!'s first argument is no longer a symbol (that will cause
void-variable errors now) to save on unnecessary interning and simplify
compile-time logic. It accepts any valid form that evaluates to a string
now.

If you use load!, you need to change its argument to a string!

e.g. (load! +my-module) => (load! "+my-module")
2018-05-27 12:52:28 +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
bb88411cc9
General minor refactor & docstring fixes 2018-05-14 20:55:55 +02:00
Henrik Lissner
135ebd925f
Enable global-eldoc-mode; less work for me! 2018-04-23 00:34:03 -04:00
Henrik Lissner
adef00aa7c
Don't byte-compile doctor.el files 2018-03-20 21:19:37 -04:00
Henrik Lissner
74c8b1d113
Rewrite doctor; move warn! blocks out in doctor.el files 2018-03-12 13:32:01 -04:00