add macro completion type; treat typedef as class; fix completion type mapping bug