add string replace feature and incomplete macro detection