From 5a719c0048d6bf21565360768c3908b07ceed074 Mon Sep 17 00:00:00 2001 From: Vlad Dumitrescu Date: Thu, 25 Feb 2010 20:38:28 +0100 Subject: [PATCH] fix #466 highlighting-of-macros-not-working --- org.erlide.kernel.ide/src/parsing/erlide_scanner.erl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/org.erlide.kernel.ide/src/parsing/erlide_scanner.erl b/org.erlide.kernel.ide/src/parsing/erlide_scanner.erl index d9a323344c..043d6376c7 100644 --- a/org.erlide.kernel.ide/src/parsing/erlide_scanner.erl +++ b/org.erlide.kernel.ide/src/parsing/erlide_scanner.erl @@ -307,11 +307,11 @@ convert_tokens([{dot, {{L, O}, G}} | Rest], Ofs, NL, Acc) -> convert_tokens([{ws, {{L, O}, G}, Txt} | Rest], Ofs, NL, Acc) -> T = #token{kind=ws, line=L+NL, offset=O+Ofs, length=G, text=Txt}, convert_tokens(Rest, Ofs, NL, [T | Acc]); -convert_tokens([{'?', {{L, O}, 1}}, {atom, {{L, O1}, G}, V} | Rest], +convert_tokens([{'?', {{L, O}, 1}}, {var, {{L, O1}, G}, V} | Rest], Ofs, NL, Acc) when O1=:=O+1-> T = make_macro(L, NL, O, G, V), convert_tokens(Rest, Ofs, NL, [T | Acc]); -convert_tokens([{'?', {{L, O}, 1}}, {var, {{L, O1}, G}, V} | Rest], +convert_tokens([{'?', {{L, O}, 1}}, {atom, {{L, O1}, G}, V} | Rest], Ofs, NL, Acc) when O1=:=O+1-> T = make_macro(L, NL, O, G, V), convert_tokens(Rest, Ofs, NL, [T | Acc]); @@ -406,15 +406,19 @@ kind_small(Kind) when is_atom(Kind) -> end. fixup_macro(L, O, G) -> + ?D({macro, L, O, G}), %% V = [$? | atom_to_list(V0)], <>. fixup_tokens([], Acc) -> erlang:iolist_to_binary(Acc); -fixup_tokens([{'?', {{L, O}, 1}}, {var, {{L, O1}, G}, _V} | Rest], Acc) when O1=:=O+1-> +fixup_tokens([{'?', {{L, O}, _}}, {var, {{L, O1}, G}, _V} | Rest], Acc) when O1=:=O+1-> + T = fixup_macro(L, O, G), + fixup_tokens(Rest, [Acc | T]); +fixup_tokens([{'?', {{L, O}, _}}, {atom, {{L, O1}, G}, _V, _Txt} | Rest], Acc) when O1=:=O+1-> T = fixup_macro(L, O, G), fixup_tokens(Rest, [Acc | T]); -fixup_tokens([{'?', {{L, O}, 1}}, {atom, {{L, O1}, G}, _V, _Txt} | Rest], Acc) when O1=:=O+1-> +fixup_tokens([{'?', {{L, O}, _}}, {atom, {{L, O1}, G}, _V} | Rest], Acc) when O1=:=O+1-> T = fixup_macro(L, O, G), fixup_tokens(Rest, [Acc | T]); fixup_tokens([{Kind, {{L, O}, G}} | Rest], Acc) ->