Releases: ocaml/tuareg
Version 3.0.1
Version 3.0.0
Backward incompatible changes are marked with “⚠”.
- New option
tuareg-mode-line-other-file. - New mode
tuareg-menhir-mode.
Note that C-c C-c launches the compilation. - ⚠
tuareg-eval-phrase(C-c C-e and C-x C-e) now
evaluate the smallest set of phrases containing the region if the
latter is active. - ⚠
tuareg-eval-phrasenow skips;;even on a separate line when moving
forward. This permits quick evaluation of multiple phrases in succession. - ⚠
tuareg-eval-region(C-c C-r): only send the content of
the region to the REPL. - Be more subtle in phrase detection.
- Bogus mismatched parentheses at the end of comment fixed.
- ⚠
show-paren-mode: also highlight comment delimiters. You can
turn that off by settingtuareg-comment-show-parentonil. - Syntax highlighting improvements: much faster; much better highlighting
of function, class, and method arguments (including setting the
font-lock-multilineproperty);[]and::have the constructor
face; first class module,type nonrec,raise_notrace,with typeare handled. Finer highlighting of infix operators. Support
for binding operators. Moreover, font-lock now has 3 possible
levels of fontification (see the README). - The switch .ml ↔ .mli now uses the Emacs built-in
find-fileand
was extended to.eliom↔.eliomiand.mly↔.mli. It also
works for pre-processed files named.pp.mland.pp.mli. - When switching from an
.mlto a non-existing.mlifile using
C-c C-a, one is offered to fill the.mlibuffer with the
generated interface. - Set
beginning-of-defun-functionandend-of-defun-functionwhich
allows to go to the beginning of the current function (resp. end)
with C-M-home, C-M-a or ESC
C-home (resp. C-M-end, C-M-e, or
ESC C-end). - ⚠
beginning-of-defun(C-M-a, C-M-home) is
now repeatable. Previously it would not move the cursor if invoked
at the beginning of a defun. Now it goes to the start of the
previous defun, which is the standard in Emacs and generally more
useful. - ⚠ Movement by defun now considers
andclauses of atypeor
declarativeletto be defuns in their own right, since that's
closer to how programmers think. This generally makes defun-based
operations more useful. - ⚠
tuareg-comment-dwimis now bound to C-c C-; (fixes #149). - Fix the highlighting of errors locations in interactive mode.
- ocamldebug: Handle correctly the new code pointer format (issue #205).
- Rework electric functions (fixes issues #150 and #162).
- Update the compilation regexp to detect warnings and errors for the
OCaml ≥ 4.08 (fixes #202). - Autoload compilation error regexp so it is correct even if Tuareg
was not loaded. - Messages from recent OCaml compiler versions are now parsed
correctly for severity and source location. This includes precise
parsing of the location start and end columns. Exception backtraces
are now also recognised. - Ancillary locations are now treated as Info-level messages, not
errors in their own right. This way they no longer contribute to
Emacs's compilation-mode error count, but they will be ignored by
next-errorandprevious-error. Setcompilation-skip-threshold
to0if you wantnext-errorto step into these locations. - Evaluation of phrases: evaluate the above phrase if the point is in
or after comments immediately following the let-binding (without
separating blank lines). - Better indentation of empty lines (fixes #179).
- Use a pty to communicate with the
ocamlprocess (fixes #83). tuareg-opam: syntax highlighting updates.- ⚠ Remove
tuareg-light, you should now usetuareg. class typeis now parsed correctly (#239).- Improved indentation of class definition with non-hanging
object(#239).
The new behaviour agrees with ocp-indent and seems to be the more modern
usage.initializeclauses are also indented correctly. - Better default colour for extension nodes on dark background.
tuareg-font-lock-extension-node-facewas nigh-unreadable against
a dark background. The face now uses the default background colour. - Ocamldoc
(** ... *)comments are now fontified by their structure.
This makes markup constructs stand out in order to improve legibility
and reduces the risk of mistakes. The body text is set in
font-lock-doc-faceas before; mark-up constructs use
tuareg-font-lock-doc-markup-face, which defaults to
font-lock-doc-markup-face(new in Emacs 28) if available.
Note that the mode tuareg-dune which was in the development version
of this package is now part of Dune.
Version 2.2.0
- New mode
tuareg-menhirthanks to Stefan Monnier.
Note that C-c C-c launches the compilation. tuareg-jbuilder: C-c C-c launches the compilation.- Be more subtle in phrase detection.
- Syntax highlighting improvements (
type nonrec,raise_notrace,
with type). tuareg-comment-dwimis now bound to C-cC-; (fixes #149).- Rework electric functions (fixes issues #150 and #162).
- Remove
tuareg-light, you should now usetuareg.
Note that the mode tuareg-dune which was in the development version
of this package is now part of Dune.
2.1.0
-
Let M-q reformat strings (and use only SMIE).
-
Do not indent an expression after
;;(issue #106). -
New face
tuareg-font-double-colon-faceto highlight;;. -
For
type … and …, left-alignandwithtype. -
Fix indentation of some GADT type definitions.
-
Use
prettify-symbols-modeto turn+.into∔,… and add a menu
entry to toggle it. -
Properly indent
type 'a foo = 'a bla = …(issue #98). -
Properly indent (issue #7):
module … with module X = Z and type t := C.t -
Support
let exception E in expr(issue #102). -
Improved highlighting of
valandmodulein first class module
expressions. -
Warn if a file inside a
_buildis edited and propose to switch. -
Add a custom face
tuareg-font-lock-label-facefor labels. -
Add option
tuareg-match-patterns-alignedto allow to choose
between the two styles:function v.s. function | A | A | B -> ... | B -> ... | C -> ... | C -> ... " -
Highlight attributes and extension nodes.
-
Disable by default and improve the compilation advice—see the new
variabletuareg-opam-insinuate(issue #97). -
New keybinding C-cC-w and function
tuareg-opam-update-env
to update the environment to an opam switch (offering completion). -
Improved highlighting of quoted strings
{|…|}(issue #89). -
Move after
;;when evaluating a phrase in the toploop (issue #96). -
ocamldebug:
-
New modes
tuareg-jbuildandtuareg-opamwith syntax
highlighting, indentation, and skeletons.
2.0.10
- New indentation config var for SMIE: tuareg-indent-align-with-first-arg.
- Many indentation improvements.
- Fixed point jumping in ocamldebug completion (by Darius Foo).
- Improved (var: t) syntax highlighting.
- Color all predefined exceptions with font-lock-builtin-face
- Syntax highlight cppo preprocessor directives.
Version 2.0.9
- Do not activate Tuareg for .mll and .mly files.
- Toplevel prompt is readonly.
- Font-lock code completely rewritten (avoids several hangs). New faces
tuareg-font-lock-module-face',tuareg-font-lock-constructor-face',
and `tuareg-font-lock-line-number-face'. - Non-closed comment does not cause M-q to hang.
- New variables
caml-types-build-dirs' andcaml-types-annot-dir' for
a more versatile specification of .annot files. (Submitted back to
caml-mode.) - Fix toplevel highlighting of output and errors.