linguist icon indicating copy to clipboard operation
linguist copied to clipboard

Add Dune (OCaml build system)

Open kisaragi-hiu opened this issue 1 year ago • 1 comments

Description

Dune is a build system for OCaml, used in a large number of OCaml projects. This PR adds classification and syntax highlighting support for it.

I specified ace_mode: lisp because Dune is an Sexp-based language. I'm guessing that this is appropriate.

Checklist:

  • [x] I am adding a new language.
    • [x] The ~~extension~~ filename of the new language is used in hundreds of repositories on GitHub.com.
      • Search results for each file name:
        • https://github.com/search?type=code&q=NOT+is%3Afork+path%3A%2F%5Edune%24%2F
        • ~~https://github.com/search?type=code&q=NOT+is%3Afork+path%3A%2F%5Edune-file%24%2F~~
          • ~~This one is probably justified as it's used by Dune itself, even if just once.~~
          • This has now been removed from this PR.
        • https://github.com/search?type=code&q=NOT+is%3Afork+path%3A%2F%5Edune-project%24%2F
        • https://github.com/search?type=code&q=NOT+is%3Afork+path%3A%2F%5Edune-workspace%24%2F
          • "dune-workspace" is the name that has a special meaning in Dune, but it's more common to write it in dune-workspace.dev then explicitly tell Dune to use that file.
        • https://github.com/search?type=code&q=NOT+is%3Afork+path%3A%2F%5Edune-workspace%5C.dev%24%2F
    • [x] I have included a real-world usage sample for all extensions added in this PR:
    • [x] I have included a syntax highlighting grammar: https://github.com/maelvls/vscode-dune
      • ocamllabs/vscode-ocaml-platform might be more suitable in the long run, but it errored out when I tried to add it. It also provides grammars for OCaml itself within the same repository, which makes using it more complicated right now.
    • [x] I have added a color
      • Hex value: #89421e
      • Rationale: This is the main color of the Dune logo.
    • [ ] I have updated the heuristics to distinguish my language from others using the same extension.

kisaragi-hiu avatar May 06 '24 17:05 kisaragi-hiu

Merged the three previously declared languages into one and rebased onto master.

The split was left over from when I was trying to use ocamllabs/vscode-ocaml-platform (which has the split for different vocabulary), and I left it in by mistake when I switched to maelvls/vscode-dune due to errors when I tried the former.

kisaragi-hiu avatar Jul 14 '24 09:07 kisaragi-hiu

As an FYI, dune-project currently meets our usage requirements. dune is close. The other two are miles off. In short, everything but dune-project is preventing this PR from being merged.

If you want, you can make this PR just for dune-project and add support for the others as popularity grows. User will be able to use an override in the meantime.

lildude avatar Aug 29 '24 14:08 lildude

I've dropped the other three file names besides dune-project. Evidently I've misjudged the usage requirements to be way lower than what they actually are.

kisaragi-hiu avatar Aug 29 '24 15:08 kisaragi-hiu