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

Max Bourinov <>
Fri Apr 13 10:01:59 CEST 2012


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120413/fa6b42d0/attachment.html>


More information about the erlang-questions mailing list