Commit Graph

19 Commits

Author SHA1 Message Date
Henrik Lissner
eb3c569e1d
Replace +lsp|init with lsp! autodef 2019-03-02 01:34:19 -05:00
Henrik Lissner
69ed1a4a99
feature/{syntax-checker,spellcheck} -> tools/fly{check,spell} 2019-02-22 00:25:30 -05:00
Henrik Lissner
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
Henrik Lissner
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
Edwin Török
4029bd7dd0 lang/ocaml: drop bad imenu initialization 2018-10-31 00:03:26 +00:00
Edwin Török
a1ca5b2850 lang/ocaml: update README
Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-17 00:13:20 +01:00
Edwin Török
a4a42d3141 lang/ocaml: enable merlin-imenu and merlin-iedit (part of merlin)
merlin-imenu works nicely with `SPC / i`.

merlin-iedit is a refactoring tool that locates all occurences of an
identifier in scope and you can use multiple cursors to edit.
integration with evil-multiedit could be better.

There is also a merlin-xref backend, but since we got the individual
def/lookup/etc. already bound not sure if it is worth using it.

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-17 00:06:20 +01:00
Edwin Török
cdd39b20a5 lang/ocaml: add merlin-eldoc type and doc on hover display
This displays the type and documentation of thing under point
and highlights occurrences automatically when idle. Could be achieved by appropriate use of
keyboard shortcuts already set up by this module.

However `merlin-eldoc` can also display the expected type of function call parameters,
which merlin itself wouldn't.

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-17 00:06:20 +01:00
Edwin Török
50b324b683 lang/ocaml: always initialize merlin, but wait for a .merlin file for flycheck
Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-17 00:06:20 +01:00
Henrik Lissner
5ceb64705f
lang/ocaml: remove ocamlformat comment
It doesn't apply anymore
2018-10-16 14:02:55 -04:00
Henrik Lissner
d1d9cffcc8 lang/ocaml: major refactor
+ Load flyspell-mode a little later, to allow file/dir-local variables
  to customize flyspell.
+ Ensure setters (in merlin's config) are used as late as possible, by
  making merlin's (and all the other packages) config run after tuareg
  is loaded.
+ As discussed, installing packages locally is a bit unreliable, so I'm
  commenting out the +ocaml-site-lisp flag, and rely solely on packages
  from MELPA.
+ Add optional ocamlformat check in doctor.el and conditionally load the
  ocamlformat package (if editor/format is enabled).
+ Add docstrings to init hooks.
2018-10-16 02:49:21 -04:00
Edwin Török
064579e33e Improve ocaml language support
See README.org.

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-15 20:37:58 +01: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
secondwtq
ee49b5ff29 Fix typo in OCaml module. 2018-05-28 11:30:17 +08: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
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
Valentin Robert
53e3670d9a lang/ocaml: adding ml4, mli, mlp to recognized extensions 2017-07-27 11:33:10 -07:00
Henrik Lissner
94f9d05c3a
lang/ocaml: refactor 2017-06-28 12:26:49 +02:00
Valentin Robert
f7ce419265 Added lang/ocaml 2017-06-27 11:39:15 -07:00