4
%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
4
%% Copyright Ericsson AB 2005-2010. All Rights Reserved.
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
8
8
%% compliance with the License. You should have received a copy of the
9
9
%% Erlang Public License along with this software. If not, it can be
10
10
%% retrieved online at http://www.erlang.org/.
12
12
%% Software distributed under the License is distributed on an "AS IS"
13
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
14
%% the License for the specific language governing rights and limitations
15
15
%% under the License.
19
19
-module(edlin_expand).
46
46
match(Prefix, code:all_loaded(), ":").
48
48
expand_function_name(ModStr, FuncPrefix) ->
49
Mod = list_to_atom(ModStr),
50
case erlang:module_loaded(Mod) of
52
L = Mod:module_info(),
53
case lists:keyfind(exports, 1, L) of
55
match(FuncPrefix, Exports, "(");
49
case to_atom(ModStr) of
51
case erlang:module_loaded(Mod) of
53
L = Mod:module_info(),
54
case lists:keyfind(exports, 1, L) of
56
match(FuncPrefix, Exports, "(");
67
%% if it's a quoted atom, atom_to_list/1 will do the wrong thing.
69
case erl_scan:string(Str) of
70
{ok, [{atom,_,A}], _} ->
63
76
match(Prefix, Alts, Extra) ->
64
77
Len = length(Prefix),
65
Matches = [{S, A} || {H, A} <- Alts, prefix(Prefix, S=atom_to_list(H))],
79
[{S, A} || {H, A} <- Alts,
80
prefix(Prefix, S=hd(io_lib:fwrite("~w",[H])))]),
66
81
case longest_common_head([N || {N, _} <- Matches]) of
68
83
{no, [], Matches}; % format_matches(Matches)};