|Anonymous | Login | Signup for a new account||2017-09-26 20:20 CEST|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004369||OCaml||emacs mode||public||2007-08-26 12:53||2017-04-10 15:14|
|Target Version||Fixed in Version|
|Summary||0004369: The emacs function "Show types at point" does not show the type of methods|
|Description||(Almost) everything is in the title: one gets "Point is not within a typechecked expression or pattern" when trying to get the type of a method.|
|Tags||No tags attached.|
We just need to adapt caml-types.el to the new -bin-annot way of doing things, and the problem will disappear by magic.
I would warmly recommend using Merlin to anyone interested in accurate type information for an incomplete Emacs buffer.
Boris Yakobowski (reporter)
I agree completely, and I switched to Merlin a long time ago. But this issue is not Merlin's best selling point: querying the type of a method highlights the method properly, but shows the type of the entire method _prefixed by the type of the class_. The result is nearly unreadable when the class is big.
(Still, there must have been progress on this recently. I distinctly remember trying this a few months back, and it was not working at all.)
|Even though merlin is great, it is not lightweight and it has many dependencies which make it not to easy to use in Windows and other less usual situations. So I think there still is a need for a light tool like caml-types.el for those of us who cannot readily make the jump to merlin.|
|Yep but, judging by the history of this PR, "those of us" will have to submit patches.|
I am actually interested in helping update caml-types.el to use cmt files. The only issue is one of methodology: do we read the information from cmt file each time we want to look up a type (guided by the location) or do we try to produce a textual, annot-like, representation of the whole file once and then cache that on the emacs side for performance?
I have a proof of concept of the first strategy and is quite usable, but slightly slower (at least on Windows) than the current caml-types.el which caches the whole .annot file after reading.
Implementing the second strategy may be as easy as capturing the output of tools/read_cmt in lieu of reading the .annot file.
Any opinions ?
|Out of curiosity, how is the deserialization of .cmt information implemented?|
|It is done with a little tool written in OCaml. As far as I can see this is the only option if we do not want to write a general Marshal decoder in elisp...|
|I don't have a particular opinion on your question. I would recommend proposing things for integration even if they are not optimal for performance. Visible change is the best way to get steam, and support from others.|
For the records, the tool was proposed for inclusion here: https://github.com/ocaml/ocaml/pull/569 [^]
It doesn't seem anyone cares enough with fixing the .annot files themselves, so I'm closing this ticket.
|2007-08-26 12:53||Boris Yakobowski||New Issue|
|2007-11-06 15:46||doligez||Status||new => assigned|
|2007-11-06 15:46||doligez||Assigned To||=> doligez|
|2012-07-11 16:04||doligez||Target Version||=> 4.01.0+dev|
|2012-07-31 13:37||doligez||Target Version||4.01.0+dev => 4.00.1+dev|
|2012-09-15 00:17||doligez||Note Added: 0008073|
|2012-09-15 00:17||doligez||Assigned To||doligez =>|
|2012-09-15 00:17||doligez||Status||assigned => confirmed|
|2012-09-15 00:17||doligez||Target Version||4.00.1+dev => 4.01.0+dev|
|2013-07-29 15:25||doligez||Target Version||4.01.0+dev => 4.01.1+dev|
|2014-05-25 20:20||doligez||Target Version||4.01.1+dev => 4.02.0+dev|
|2014-07-31 13:51||doligez||Relationship added||related to 0005812|
|2014-08-18 15:17||doligez||Target Version||4.02.0+dev => 4.02.1+dev|
|2014-09-04 00:25||doligez||Target Version||4.02.1+dev => undecided|
|2014-09-26 16:45||doligez||Target Version||undecided => 4.02.2+dev / +rc1|
|2015-02-24 23:14||doligez||Target Version||4.02.2+dev / +rc1 => 4.03.0+dev / +beta1|
|2016-04-18 23:14||gasche||Target Version||4.03.0+dev / +beta1 => 4.03.1+dev|
|2016-04-18 23:14||gasche||Note Added: 0015801|
|2016-04-19 00:00||Boris Yakobowski||Note Added: 0015804|
|2016-04-19 11:40||nojebar||Note Added: 0015805|
|2016-04-19 12:42||gasche||Note Added: 0015806|
|2016-04-19 12:51||nojebar||Note Added: 0015807|
|2016-04-19 14:00||gasche||Note Added: 0015808|
|2016-04-19 14:04||nojebar||Note Added: 0015809|
|2016-04-19 14:11||gasche||Note Added: 0015811|
|2017-02-16 14:01||doligez||Target Version||4.03.1+dev => undecided|
|2017-02-23 16:36||doligez||Category||OCaml general => -OCaml general|
|2017-02-27 14:51||doligez||Category||-OCaml general => emacs mode|
|2017-02-27 14:51||doligez||Target Version||undecided =>|
|2017-04-10 15:14||frisch||Note Added: 0017732|
|2017-04-10 15:14||frisch||Status||confirmed => closed|
|2017-04-10 15:14||frisch||Assigned To||=> frisch|
|2017-04-10 15:14||frisch||Resolution||open => won't fix|
|Copyright © 2000 - 2011 MantisBT Group|