Promote a subset of the files + emacs integration#1192
Promote a subset of the files + emacs integration#11926 commits merged intomasterfrom unknown repository
Conversation
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
|
Integration of this |
| (defgroup dune nil | ||
| "Integration with the dune build system." | ||
| :tag "Dune build system." | ||
| :version "1.0" |
There was a problem hiding this comment.
Should we subst that if this is tracked within the dune repository?
There was a problem hiding this comment.
This version is for melpa, the emacs package manager. It needs to be in plain text in the git repository (melpa will fetch it directly from github). It also needs to be independent of the main dune version, otherwise this will cause a lot of spurious upgrades for emacs users.
|
|
||
| ;; Copyright 2018 Jane Street Group, LLC <opensource@janestreet.com> | ||
| ;; URL: https://github.com/ocaml/dune | ||
| ;; Version: 1.0 |
CHANGES.md
Outdated
| `findlib.dynload`, automatically record linked in libraries and | ||
| findlib predicates (#1172, @bobot) | ||
|
|
||
| - Add support for promoting a selected list of files (#..., @diml) |
There was a problem hiding this comment.
In case you forget, there's a missing PR number :)
editor-integration/emacs/dune.el
Outdated
|
|
||
| ;;;###autoload | ||
| (defun dune-runtest-and-promote () | ||
| "Runt tests in the current directory and promote the current buffer." |
|
I have some vim snippets that do similar things, I can integrate these in the repo in a followup PR. |
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
Indeed. I don't know how user-setup works though. What's the dune linter BTW? |
|
@emillon please do :) |
|
BTW, @Chris00, it might make sense to move the emacs mode for editing dune files here |
I should have said dune formatter |
|
Ah, indeed. It'd be nice to integrate this with emacs in the same way that ocamlformat is integrated with emacs |
Agreed. We could then think about generating some .el files and checking them in. |
|
Why not. How do you want to proceed? (I'm in the process of updating it but this happens slowly as many other things are requiring my attention.) |
|
for |
|
@Chris00, I was thinking we could move the code of |
|
@emillon, for emacs I suppose we can look at what ocamlformat does: https://github.com/ocaml-ppx/ocamlformat/blob/master/emacs/ocamlformat.el |
| (defcustom dune-command "dune" | ||
| "The dune command." | ||
| :type 'string | ||
| :group 'dune) |
There was a problem hiding this comment.
the defcustoms following a defgroup don't have to specify the :group because the group is inferred
There was a problem hiding this comment.
Thanks, I didn't know that. Could you submit a PR to remove them?
|
Sure. Will do that soon.
|
CHANGES: - Ignore stderr output when trying to find out the number of jobs available (ocaml/dune#1118, fix ocaml/dune#1116, @diml) - Fix error message when the source directory of `copy_files` does not exist. (ocaml/dune#1120, fix ocaml/dune#1099, @emillon) - Highlight error locations in error messages (ocaml/dune#1121, @emillon) - Display actual stanza when package is ambiguous (ocaml/dune#1126, fix ocaml/dune#1123, @emillon) - Add `dune unstable-fmt` to format `dune` files. The interface and syntax are still subject to change, so use with caution. (ocaml/dune#1130, fix ocaml/dune#940, @emillon) - Improve error message for `dune utop` without a library name (ocaml/dune#1154, fix ocaml/dune#1149, @emillon) - Fix parsing `ocamllex` stanza in jbuild files (ocaml/dune#1150, @rgrinberg) - Highlight multi-line errors (ocaml/dune#1131, @anuragsoni) - Do no try to generate shared libraries when this is not supported by the OS (ocaml/dune#1165, fix ocaml/dune#1051, @diml) - Fix `Flags.write_{sexp,lines}` in configurator by avoiding the use of `Stdune.Path` (ocaml/dune#1175, fix ocaml/dune#1161, @rgrinberg) - Add support for `findlib.dynload`: when linking an executable using `findlib.dynload`, automatically record linked in libraries and findlib predicates (ocaml/dune#1172, @bobot) - Add support for promoting a selected list of files (ocaml/dune#1192, @diml) - Add an emacs mode providing helpers to promote correction files (ocaml/dune#1192, @diml) - Improve message suggesting to remove parentheses (ocaml/dune#1196, fix ocaml/dune#1173, @emillon) - Add `(wrapped (transition "..message.."))` as an option that will generate wrapped modules but keep unwrapped modules with a deprecation message to preserve compatibility. (ocaml/dune#1188, fix ocaml/dune#985, @rgrinberg) - Fix the flags passed to the ppx rewriter when using `staged_pps` (ocaml/dune#1218, @diml) - Add `(env var)` to add a dependency to an environment variable. (ocaml/dune#1186, @emillon) - Add a simple version of a polling mode: `dune build -w` keeps running and restarts the build when something change on the filesystem (ocaml/dune#1140, @kodek16) - Cleanup the way we detect the library search path. We no longer call `opam config var lib` in the default build context (ocaml/dune#1226, @diml) - Make test stanzas honor the -p flag. (ocaml/dune#1236, fix ocaml/dune#1231, @emillon) - Test stanzas take an optional (action) field to customize how they run (ocaml/dune#1248, ocaml/dune#1195, @emillon) - Add support for private modules via the `private_modules` field (ocaml/dune#1241, fix ocaml/dune#427, @rgrinberg) - Add support for passing arguments to the OCaml compiler via a response file when the list of arguments is too long (ocaml/dune#1256, @diml) - Do not print diffs by default when running inside dune (ocaml/dune#1260, @diml) - Interpret `$ dune build dir` as building the default alias in `dir`. (ocaml/dune#1259, @rgrinberg) - Make the `dynlink` library available without findlib installed (ocaml/dune#1270, fix ocaml/dune#1264, @rgrinberg)
This PR modifies
dune promoteso that we can pass a list of files to promote + adds an emacs functiondune-promotethat allows to promote the current buffer.When
dune-promoteis bound to a key combination such asC-x C-a, this provide a very nice workflow to work with any kind of expectation test:C-c C-cto run the testsC-x C-ato replace the current buffer with the correctionI also tried to add a function
dune-runtest-and-promotethat run the tests in the current directory and promote the correction, however my emacs knowledge is quite limited and I can't get it to work.