From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id F2F4D820A1 for ; Fri, 16 Aug 2013 12:49:08 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.214.53; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.214.53 as permitted sender) identity=mailfrom; client-ip=209.85.214.53; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-bk0-f53.google.com) identity=helo; client-ip=209.85.214.53; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-bk0-f53.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhICAPECDlLRVdY1k2dsb2JhbABbgztRvxyBHggWDgEBAQEHCwsJFAQkgjc0ARseAxIQXQERAQUBIogQAQMPDJlUgwCMUIMChCUKGScNZId0AQEEDJBAhB0Dl2SPcBYphEQ6 X-IPAS-Result: AhICAPECDlLRVdY1k2dsb2JhbABbgztRvxyBHggWDgEBAQEHCwsJFAQkgjc0ARseAxIQXQERAQUBIogQAQMPDJlUgwCMUIMChCUKGScNZId0AQEEDJBAhB0Dl2SPcBYphEQ6 X-IronPort-AV: E=Sophos;i="4.89,894,1367964000"; d="scan'208";a="29499854" Received: from mail-bk0-f53.google.com ([209.85.214.53]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 16 Aug 2013 12:49:08 +0200 Received: by mail-bk0-f53.google.com with SMTP id d7so575658bkh.26 for ; Fri, 16 Aug 2013 03:49:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=Olyg4stmCfHlSOmExbKJvfdY6nJks2WlW/bY1ZTWf10=; b=ScYuHJr/arVySUPbw3cIoDAU82T6D8cQh4zmahWncADpqnSO9nLU0a+qOFISaxYDZw WLxOkhqTA7r4iLz5vJy9BBW6BER9IOMe0xIwOJ3mtp7Hwf1QUsqnBT61cjErOKoBF3Mf QqyaZvauBlpUit7CeIUbgNx7JyOv3UQUzNxHHNUBn7zPtJPk1wPwA21NmIAC12IKViZU FQCvOlEoURZYcxuwzrtmHD2xFcScumkyOf38wxTpeXwrz53yQUrA/oy0MeEqtJp2uDDn 7FMuGuaJdxgahVf4S2xejhoka7OKyZtnuhV2HeNwvqqvooeRaobK/uHcug3KXCzbNIyE ejjg== X-Received: by 10.204.195.5 with SMTP id ea5mr40412bkb.94.1376650147666; Fri, 16 Aug 2013 03:49:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.236.193 with HTTP; Fri, 16 Aug 2013 03:48:27 -0700 (PDT) From: Gabriel Scherer Date: Fri, 16 Aug 2013 12:48:27 +0200 Message-ID: To: caml users Content-Type: multipart/alternative; boundary=485b393aac0d0852c304e40e578b Subject: [Caml-list] ANN: Merlin 1.3 -- advanced Vim and Emacs editor modes --485b393aac0d0852c304e40e578b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Ann: Merlin 1.3 Merlin is an editor-assistant for the OCaml programming language, focusing on working incrementally on incomplete files that are being edited. It has both a Vim and an Emacs mode (we warmly welcome additional frontends), and provides advanced compiler-aware features such as type-aware completion, type information feedback, and interactive warning and error feedback. Merlin is available at: https://github.com/def-lkb/merlin Merlin 1.0 was released on April 11, and the last version, Merlin 1.2, on July 21. As a sign of improved stability, we have received no bug reports between Merlin 1.2 and the tagging of this new release, which therefore focused on new features -- so that we can get more bugs to fix before 1.4... You can find a detailed changelog at https://github.com/def-lkb/merlin/blob/master/CHANGELOG, but the highlights are: - There is a new "locate" command, to find the definition location of the identifier under the cursor, much like the venerable ocamlspot project. It works out of the box for identifiers defined in the local buffer (this is where merlin shines), and relies on presence of .cmt files for external modules. It is bound to the :Locate command in vim, and merlin-locate, C-c C-l by default, in emacs. - There is now specific support for OMake's polling mode: if you invoke OMake with our `omake-merlin` wrapper omake-merlin omake ... each recompilation will instruct merlin to reload the interfaces that changed. - Merlin now accepts the "type nonrec", "with compare" and "with fields" syntax extensions -- but there are still a few glitches being ironed out - The emacs mode now has "semantic movement" commands to move to the next or previous phrase (C-c C-p, C-c C-n) - The vim mode's :TypeOf command now accept an optional argument, an OCaml expression or constructor name that will be type-checked in the environment at the cursor position. This release was brought to you by Simon Castellan, Thomas Refis and Fr=E9d=E9ric Bour. Previous unannounced releases also received helpful feed= back and contributions from Rudy Grinberg, Anil Madhavapeddy, Andrew Noyes, Gabriel Scherer and Marc Weber. Merlin relies on its benevolent contributors, which you should not hesitate to join. We warmly welcome any feedback, bugreport, and of course documentation and code contributions. --485b393aac0d0852c304e40e578b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Ann: M= erlin 1.3

Merlin is an editor-assistant f= or the OCaml programming language,
focusing on working inc= rementally on incomplete files that are being
edited.
It has both a Vim and an Emacs mode (we warmly welcome
additional fro= ntends), and provides advanced compiler-aware features
such as type-aware completion, type information feedback, = and
intera= ctive warning and error feedback.

Merlin is availa= ble at:

Merlin 1.0 was released on April 11, and the last v= ersion, Merlin
1.2, on July 21. As a sign of improved stability, we have received no=
bug reports between Me= rlin 1.2 and the tagging of this new release,
which therefore focused on new features= -- so that we can get more
bugs to fix before 1.4= ...

You can find a detailed changelog a= t
https://github.com/def-lkb/me= rlin/blob/master/CHANGELOG, but the
highlights are:

- Ther= e is a new "locate" command, to find the definition location of
=A0 the identifier und= er the cursor, much like the venerable ocamlspot
=A0 project. It works out of the box= for identifiers defined in the
=A0 local buffer (this= is where merlin shines), and relies on presence
=A0 of .cmt files for external modul= es. It is bound to the :Locate
=A0 command in vim, an= d merlin-locate, C-c C-l by default, in emacs.

- There is now specific support for OMake's polling mode: if yo= u
=A0 invoke OMake with = our `omake-merlin` wrapper
= =A0=A0=A0 omake-merlin omake ...
=A0 each recompilation will instruct merlin to reload the = interfaces
=A0 that changed.

- Merlin now accepts the "type nonrec", "wi= th compare" and "with
=A0 fields" syntax extensions -- but there are s= till a few glitches
=A0 being ironed out

- The emacs mode now has "semantic = movement" commands to move to the
=A0 next or previous p= hrase (C-c C-p, C-c C-n)
- The vim mode= 's :TypeOf command now accept an optional argument, an
=A0 OCaml expression o= r constructor name that will be type-checked in
=A0 the environment at the cursor pos= ition.

This release was brought to you by Simon Castellan,= Thomas Refis and
Fr=E9d=E9ric Bour. Previous unannounced releases also received hel= pful feedback
and contributions fro= m Rudy Grinberg, Anil Madhavapeddy, Andrew Noyes,
Gabriel Scherer and Marc Weber.

Merlin relies on its benevolent contributors, which= you should not
hesitate to join. We warmly welcome any feedback, bugreport, and of
course documentation a= nd code contributions.

<= /div>
--485b393aac0d0852c304e40e578b--