[erlang-questions] Help with Sublime Text 2 Code Completion

Andrew Berman <>
Sat Apr 14 21:35:30 CEST 2012


I'll let you guys know when I have something usable.  I also want to get an
Erlang code formatter in there to make things complete for me.  Those are
really the only two things I require for developing Erlang: code insight
and a formatter.

--Andrew

On Sat, Apr 14, 2012 at 9:10 AM, Jared Kofron <>wrote:

> +1
>
> If this were available, I'd be happy to try it out/hack on it.
>
> JK
>
> On Apr 13, 2012, at 1:01 AM, Max Bourinov wrote:
>
> One more Sublime user is here.
>
> Hi guys,
>
> How it is possible for me to try "code completion" feature too? Is there
> any software? Or github repo? Instruction? Anything?
>
> Thank you in advance!
>
>
> Best regards,
> Max
>
>
>
>
> On Fri, Apr 13, 2012 at 3:13 AM, Andrew Berman <> wrote:
>
>> I actually just tested and it appears beam_disasm is really fast.  I'm
>> going to try to use it.
>>
>> Thanks again!
>>
>> Andrew
>>
>>
>> On Thu, Apr 12, 2012 at 1:06 PM, Andrew Berman <> wrote:
>>
>>> Hey Erik,
>>>
>>> That looks interesting.  Currently, I'm looping through the results of
>>> erlang:loaded() which is very fast, then doing Module:module_info(exports)
>>> and doing a fuzzy search on those which is why I wanted to load all the
>>> modules.  By loading them all, they're already cached for me so that's one
>>> less thing I would have to do.  Is using beam_disasm fast?  Is loading all
>>> the modules really that bad?  I can't imagine it uses that much memory that
>>> it would be an issue.  Using beam_disasm would mean I would have to cache
>>> the results myself which means memory would be used anyway.  Thoughts?
>>>
>>> Thanks,
>>>
>>> Andrew
>>>
>>>
>>> On Thu, Apr 12, 2012 at 3:57 AM, Erik Søe Sørensen <>wrote:
>>>
>>>> Are you sure that you want to *load* all the modules?
>>>> (Especially in these days, when modules may have 'on_load' hooks which
>>>> you're probably not interested in running indiscriminately - and which may
>>>> fail...)
>>>>
>>>> An alternative, in case you merely wish to know the list of exported
>>>> functions from a beam file FileName:
>>>>     {beam_file,ModuleName,Exported0,_,_,_} = beam_disasm:file(FileName).
>>>>     Exported = [{Name,Arity} || {Name,Arity,_} <- Exported0].
>>>>
>>>> Den 12. apr. 2012 09.35 skrev Gustav Simonsson <
>>>> >:
>>>>
>>>>
>>>>> If you know which modules are in the added code paths you can simply
>>>>> loop
>>>>> over them and load each of them using the functions in the code module.
>>>>>
>>>>> Typically in Erlang systems one knows which modules exist, but if you
>>>>> cannot know that prior to adding a new code path my guess is that you
>>>>> have to search your newly added code paths and use e.g.
>>>>> code:load_file/1
>>>>>
>>>>> Regards,
>>>>> Gustav Simonsson
>>>>>
>>>>> Sent from my PC
>>>>>
>>>>> ----- Original Message -----
>>>>> > From: "Andrew Berman" <>
>>>>> > To: "Erlang Questions" <>
>>>>> > Sent: Thursday, 12 April, 2012 1:13:17 AM
>>>>> > Subject: Re: [erlang-questions] Help with Sublime Text 2 Code
>>>>> Completion
>>>>> >
>>>>> >
>>>>> > Hey all,
>>>>> >
>>>>> >
>>>>> > Been a while since I posed this question, but I'm still stuck on
>>>>> > trying to load all the beam files. Is there some magic way to tell
>>>>> > the VM to load all the beams in the code path or do I have to loop
>>>>> > through the code path and load them all manually? How would I go
>>>>> > about doing it that way if that is what is required?
>>>>> >
>>>>> >
>>>>> > Thanks,
>>>>> >
>>>>> >
>>>>> > Andrew
>>>>> >
>>>>> >
>>>>> > On Tue, Mar 6, 2012 at 11:43 PM, Andrew Berman <  >
>>>>> > wrote:
>>>>> >
>>>>> >
>>>>> > All,
>>>>> >
>>>>> >
>>>>> > I'm trying to build a plug-in for Sublime Text 2 to do proper Erlang
>>>>> > code completion. My thought is to have a server or node running and
>>>>> > then talk to that node using erl_call. I have it working with the
>>>>> > stdlib, but I want the code completion to be dynamic such that the
>>>>> > plug-in tells the remote node to add code paths. I have that working
>>>>> > too, but the issue is loading the actual modules in the new code
>>>>> > path. Since the erlang vm loads modules only upon access, when I
>>>>> > call erlang:loaded() or code:all_loaded(), the modules added with
>>>>> > the new code path do not show. Do I have to loop through the BEAMs
>>>>> > in the new code path and manually load them or is there a better way
>>>>> > to do it? I'm trying to make the completion use a fuzzy search such
>>>>> > that something like "li" brings up all modules with "li" in it which
>>>>> > is why I need to be able to have the entire list of modules loaded
>>>>> > already.
>>>>> >
>>>>> >
>>>>> > Thanks,
>>>>> >
>>>>> >
>>>>> > Andrew
>>>>> >
>>>>> > _______________________________________________
>>>>> > erlang-questions mailing list
>>>>> > 
>>>>> > http://erlang.org/mailman/listinfo/erlang-questions
>>>>> >
>>>>> _______________________________________________
>>>>> erlang-questions mailing list
>>>>> 
>>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> erlang-questions mailing list
>>>> 
>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120414/c7f05bcc/attachment.html>


More information about the erlang-questions mailing list