On behalf of our vscode team, I’m excited to announce the long awaited version 1.9.0 of our vscode extension.
This release is rich in new features, but I’d like to highlight one in particular. @arozovyk added a full blown interactive AST explorer for PPX development. So long to flipping back and forth between your project and parsetree.mli
during development.
This release also features work from three new contributors: @tatchi, @SaySayo and @arozovyk. I thank them for their work and wish them luck in participating in our cozy open source community.
Happy Hacking.
1.9.0
-
Dune syntax highlighting fix (#742)
The syntax for dune files has been re-written from scratch for a more correct
implementation. Every dune stanza documented by Dune is now supported, and
only the correct fields in each stanza are recognized. -
Fix the detection of opam’s root directory when no switch is detected (#831)
-
Add support for opening compilation artifacts in human-readable form in the
editor (#798)Currently supported artifacts include
.cmi
,.cmt(i)
,.cmo
,.cma
,
.cmx(a/s)
, and.bc
files.To learn more about these files, see: OCaml - Batch compilation (ocamlc)
-
Warn if the extension sees not the latest OCaml-LSP version compatible with
the OCaml distribution installed in the current sandbox. -
Highlighted the UNREACHABLE element in cram .t files (#754)
-
Activate extension on cram files, or when the workspace contains
dune-workspace or dune files. (#750) -
Add commands
Jump to Next Typed Hole
(shortcut:Alt + L
) and
Jump to Previous Typed Hole
(shortcut:Alt + Shift + L
)What typed holes are
Merlin has a concept of “typed holes” that are syntactically represented as
_
. Files that incorporate typed holes are not considered valid OCaml, but
Merlin and OCaml-LSP support them. One example when such typed holes can occur
is when one “destructs” a value, e.g., destructing(Some 1)
will generate
codematch Some 1 with Some _ -> _ | None -> _
. While the first underscore
is a valid “match-all”/wildcard pattern, the rest of underscores are typed
holes that one needs to replace with valid OCaml code. These new commands help
to navigate easily from one hole to another (#643) -
Rename the extension’s section in VS Code Settings from
OCaml configuration
toOCaml Platform
(#674) -
Add
ocaml.server.extraEnv
configuration option to pass extra environment
variables to the language server, i.e., OCaml-LSP (#674) -
Parsetree exploration and development tools. It is now possible to explore the
structure of the parsetree in a custom editor. Additionally, it is possible to
view preprocessed source of any OCaml source file (when applicable). Full
functionality is available only for dune projects. (#666) -
Add commands
Show OCaml Language Server Output
,
Show OCaml Platform Extension Output
, andShow OCaml Commands Output
.
(#745) -
Fix highlighting of escaped odoc source code braces (#690)
-
opam exec
is now called with--set-switch
flag; this is useful when we
launch a terminal within a certain sandbox set in the extension (#744, fixes
#655) -
The currently active OPAM switch in the workspace folder (project root) is
shown first in the list of sandboxes when selecting a sandbox. (#751) -
Show a different icon for the currently active OPAM switch in the “OPAM
Switches” tree view (#751)