New ocaml-merlin subcommand acting as a configuration server for next Merlin#3395
Merged
voodoos merged 20 commits intoocaml:masterfrom May 15, 2020
Merged
New ocaml-merlin subcommand acting as a configuration server for next Merlin#3395voodoos merged 20 commits intoocaml:masterfrom
ocaml-merlin subcommand acting as a configuration server for next Merlin#3395voodoos merged 20 commits intoocaml:masterfrom
Conversation
1 task
ocaml-merlin subcommand acting as a configuration server for next Merlinocaml-merlin subcommand acting as a configuration server for next Merlin
259a2ad to
a687879
Compare
Collaborator
Author
|
This PR is now ready for review. However it should not be merged before the corresponding changes in Merlin are merged and released. (Before merging the incompatibility with previous versions of Merlin should also be added to the package dependency.) |
ocaml-merlin subcommand acting as a configuration server for next Merlinocaml-merlin subcommand acting as a configuration server for next Merlin
ocaml-merlin subcommand acting as a configuration server for next Merlinocaml-merlin subcommand acting as a configuration server for next Merlin
ghost
reviewed
May 14, 2020
ghost
reviewed
May 14, 2020
ghost
reviewed
May 14, 2020
|
@voodoos the PR looks ready to me! I would just rename |
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
…ver promoted) Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
This reverts commit 868d09c. Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
This reverts commit e1f9724. Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
rgrinberg
added a commit
to rgrinberg/opam-repository
that referenced
this pull request
Jun 6, 2020
…lugin, dune-private-libs and dune-glob (2.6.0) CHANGES: - Fix a bug where valid lib names in `dune init exec --libs=lib1,lib2` results in an error. (ocaml/dune#3444, fix ocaml/dune#3443, @bikallem) - Add and `enabled_ if` field to the `install` stanza. Enforce the same variable restrictions for `enabled_if` fields in the `executable` and `install` stanzas than in the `library` stanza. When using dune lang < 2.6, the usage of forbidden variables in executables stanzas with only trigger a warning to maintain compatibility. (ocaml/dune#3408 and ocaml/dune#3496, fixes ocaml/dune#3354, @voodoos) - Insert a constraint one the version of dune when the user explicitly specify the dependency on dune in the `dune-project` file (ocaml/dune#3434 , fixes ocaml/dune#3427, @diml) - Generate correct META files for sub-libraries (of the form `lib.foo`) that contain .js runtime files. (ocaml/dune#3445, @hhugo) - Add a `(no-infer ...)` action that prevents inference of targets and dependencies in actions. (ocaml/dune#3456, fixes ocaml/dune#2006, @roddyyaga) - Correctly infer targets for the `diff?` action. (ocaml/dune#3457, fixes ocaml/dune#2990, @greedy) - Fix `$ dune print-rules` crashing (ocaml/dune#3459, fixes ocaml/dune#3440, @rgrinberg) - Simplify js_of_ocaml rules using js_of_ocaml.3.6 (ocaml/dune#3375, @hhugo) - Add a new `ocaml-merlin` subcommand that can be used by Merlin to get configuration directly from dune instead of using `.merlin` files. (ocaml/dune#3395, @voodoos) - Remove experimental variants feature and make default implementations part of the language (ocaml/dune#3491, fixes ocaml/dune#3483, @rgrinberg)
rgrinberg
added a commit
to rgrinberg/opam-repository
that referenced
this pull request
Jun 7, 2020
…lugin, dune-private-libs and dune-glob (2.6.0) CHANGES: - Fix a bug where valid lib names in `dune init exec --libs=lib1,lib2` results in an error. (ocaml/dune#3444, fix ocaml/dune#3443, @bikallem) - Add and `enabled_ if` field to the `install` stanza. Enforce the same variable restrictions for `enabled_if` fields in the `executable` and `install` stanzas than in the `library` stanza. When using dune lang < 2.6, the usage of forbidden variables in executables stanzas with only trigger a warning to maintain compatibility. (ocaml/dune#3408 and ocaml/dune#3496, fixes ocaml/dune#3354, @voodoos) - Insert a constraint one the version of dune when the user explicitly specify the dependency on dune in the `dune-project` file (ocaml/dune#3434 , fixes ocaml/dune#3427, @diml) - Generate correct META files for sub-libraries (of the form `lib.foo`) that contain .js runtime files. (ocaml/dune#3445, @hhugo) - Add a `(no-infer ...)` action that prevents inference of targets and dependencies in actions. (ocaml/dune#3456, fixes ocaml/dune#2006, @roddyyaga) - Correctly infer targets for the `diff?` action. (ocaml/dune#3457, fixes ocaml/dune#2990, @greedy) - Fix `$ dune print-rules` crashing (ocaml/dune#3459, fixes ocaml/dune#3440, @rgrinberg) - Simplify js_of_ocaml rules using js_of_ocaml.3.6 (ocaml/dune#3375, @hhugo) - Add a new `ocaml-merlin` subcommand that can be used by Merlin to get configuration directly from dune instead of using `.merlin` files. (ocaml/dune#3395, @voodoos) - Remove experimental variants feature and make default implementations part of the language (ocaml/dune#3491, fixes ocaml/dune#3483, @rgrinberg)
rgrinberg
added a commit
to rgrinberg/opam-repository
that referenced
this pull request
Jun 7, 2020
…lugin, dune-private-libs and dune-glob (2.6.0) CHANGES: - Fix a bug where valid lib names in `dune init exec --libs=lib1,lib2` results in an error. (ocaml/dune#3444, fix ocaml/dune#3443, @bikallem) - Add and `enabled_ if` field to the `install` stanza. Enforce the same variable restrictions for `enabled_if` fields in the `executable` and `install` stanzas than in the `library` stanza. When using dune lang < 2.6, the usage of forbidden variables in executables stanzas with only trigger a warning to maintain compatibility. (ocaml/dune#3408 and ocaml/dune#3496, fixes ocaml/dune#3354, @voodoos) - Insert a constraint one the version of dune when the user explicitly specify the dependency on dune in the `dune-project` file (ocaml/dune#3434 , fixes ocaml/dune#3427, @diml) - Generate correct META files for sub-libraries (of the form `lib.foo`) that contain .js runtime files. (ocaml/dune#3445, @hhugo) - Add a `(no-infer ...)` action that prevents inference of targets and dependencies in actions. (ocaml/dune#3456, fixes ocaml/dune#2006, @roddyyaga) - Correctly infer targets for the `diff?` action. (ocaml/dune#3457, fixes ocaml/dune#2990, @greedy) - Fix `$ dune print-rules` crashing (ocaml/dune#3459, fixes ocaml/dune#3440, @rgrinberg) - Simplify js_of_ocaml rules using js_of_ocaml.3.6 (ocaml/dune#3375, @hhugo) - Add a new `ocaml-merlin` subcommand that can be used by Merlin to get configuration directly from dune instead of using `.merlin` files. (ocaml/dune#3395, @voodoos) - Remove experimental variants feature and make default implementations part of the language (ocaml/dune#3491, fixes ocaml/dune#3483, @rgrinberg)
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Twin PR: ocaml/merlin#1123
This PR adds a new
ocaml-merlinsubcommand to Dune.Behavior
When started (usually by merlin) this program will wait for input on
stdin, When it receives a request for a files' configuration it will read the content of the corresponding merlin configuration file and print it tostdout. The empty list is returned if no configuration is found.Each message is formed with one canonical s-expression. The test contain an example of a dialogue between Merlin and this configuration server, the most important part being:
$ dune ocaml-merlin input: (4:File9:/project_path/main.ml) output: ( (17:EXCLUDE_QUERY_DIR) (1:B65:/path/to/some/lib) (3:FLG105:-w @1..3@5..28@30..39@43@46..47@49..57@61..62-40 etc) )Future versions of Merlin will check for the presence of a
duneordune-projectfile in the sources and decide if they should use the standard configuration reader or this new Dune subcommand.In the future this new behaviour will allow for a finer grained merlin configuration: actual
.merlinfiles work at the folder level while dune will be able to answer precisely for each file.Breaking changes
This PR disables the promotion of
.merlinfiles to the sources. Thus it is not compatible with actual version of Merlin.Todo