From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 391B4BBAF for ; Tue, 5 Jan 2010 08:31:46 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjYDAPx5QkvRVdvikGdsb2JhbACDX5c0PwEBAQEJCQwHEwOpF4FbhVWGLAECAwWBJ4IuVgSCfxuIFA X-IronPort-AV: E=Sophos;i="4.47,504,1257116400"; d="scan'208";a="53248612" Received: from mail-ew0-f226.google.com ([209.85.219.226]) by mail4-smtp-sop.national.inria.fr with ESMTP; 05 Jan 2010 08:31:46 +0100 Received: by ewy26 with SMTP id 26so13928525ewy.3 for ; Mon, 04 Jan 2010 23:31:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type; bh=RI+hcbxuzF4XQ3mb0wk7JqvdDGQT2+WNWPr9AfsZjH4=; b=KeKse0RMVbtuwW1L8uWW3Xg9gbzMo6vOQIkbY59Kfyd/7W6lfDcq+9JMWg7z5btUcn Wbfh1JxMR+fFzSu0bLI8M49FzeO8ALXWDWRJcFRL5FrhTPSMTvxfTxLdJ8Ss/y5fEu/t q5FWz/O4UU6yuktoSVC/sCAlWJ97hvlmwbvZo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=pdumEj6G9O1tqx9HucGmKzXDHthBh9RQ+66zLFvAhrd7IhFf8l2YAxx7EhISvgiHza 0EIfTYTHTA3YHjvQfOxOq2Ic0P5SUdHMqKqvW1ERFWYeS+lP8pfOYuq5gX7GtLbgsxJO OauwiSdY/HOqRPndC81JobXmfFZ0HoxCB6X+M= MIME-Version: 1.0 Sender: daniel.c.buenzli@gmail.com Received: by 10.213.2.81 with SMTP id 17mr14907361ebi.83.1262676705179; Mon, 04 Jan 2010 23:31:45 -0800 (PST) In-Reply-To: <756daca51001042203w3c6a397cx6a5d594c28855a4d@mail.gmail.com> References: <756daca51001042203w3c6a397cx6a5d594c28855a4d@mail.gmail.com> Date: Tue, 5 Jan 2010 16:31:45 +0900 X-Google-Sender-Auth: a23d5346eca716c0 Message-ID: <91a3da521001042331t6fa190a2h9398a3add8adb670@mail.gmail.com> Subject: Re: [Caml-list] Favorite OCaml editor? From: =?UTF-8?Q?Daniel_B=C3=BCnzli?= To: Grant Rettke Cc: caml-list@yquem.inria.fr Content-Type: text/plain; charset=UTF-8 X-Spam: no; 0.00; ocaml:01 buenzli:01 ocaml:01 syntax:01 ocaml's:01 mli:01 emacs:01 ocamldoc:01 abbreviation:01 invoke:01 invoke:01 stack:01 caml-list:01 caml:02 module:03 > "Your favorite" is key here here; I appreciate you human input as I > can use a search engine to find any old OCaml editor easily. Then I think a more interesting question is, what features do you absolutely need to be productive ? I'm rather low tech and not the "power user" type but still I couldn't do it without (keyboard access to) : 1) Syntax highlighting and reasonably automatic identation following ocaml's programming guidelines [1] 2) Ability to invoke a build tool so that reported errors allow me to automatically jump to the offending lines. 3) Ability to invoke built programs so that reported stack traces allow me to automatically jump to the offending lines. 4) Ability to read annot files so that I can query the type of the symbol under my cursor. 5) Ability to switch rapidly between an ml file and its corresponding mli. 6) Ability to edit C sources. I guess many people would add 7) Ability to access the documentation of the symbol under my cursor. Now for 1-6, emacs and the distribution's ocaml mode work perfectly for me (the latter doesn't support one or two of my identation patterns but it's ok) and is the only sophisitication I need. Regarding 7) I have a low tech approach which is to use gnome do (on linux) or quicksilver (on osx) to index the documentation generated by ocamldoc. Since the latter intelligently produces an html file "Module.html" for a module named "Module" I can quickly access its documentation by invoking gnome do with its hot key, type an abbreviation of "Module" and hit return. This opens the document in my browser where I scroll or search in the page to get to the symbol. Best, Daniel [1] http://caml.inria.fr/resources/doc/guides/guidelines.en.html