anchor.diff:  	    {ok, [SE||{_File, SE} <-Res]};	
   	_   -> {error, "You have not selected an expression!"}
       end.     
  +
  +get_expr_selected(FileName, Start, End, SearchPaths, TabWidth) ->
  +    {ok, {AnnAST, _Info}} = refac_util:parse_annotate_file(FileName, true, SearchPaths, TabWidth),
  +    Es = refac_util:pos_to_expr_list(AnnAST, Start, End),
  +    case Es of
  +	[] -> throw({error, "You have not selected an expression!"});
  +	_ -> Es
  +    end.
  +   
  +do_expr_search(FileName, Es, SearchPaths, TabWidth) ->
  +    try  refac_util:parse_annotate_file(FileName, true, SearchPaths, TabWidth) of
  +	{ok, {AnnAST, _}} ->
  +	    case length(Es) of 
  +		1 -> search_one_expr(FileName, AnnAST, hd(Es));
  +		_ -> search_expr_seq(FileName, AnnAST, Es)
  +	    end
  +    catch
  +	_E1:_E2 ->
  +	    []
  +    end.
   
   %% Search the clones of an expression from Tree.
   search_one_expr(FileName, Tree, Exp) ->
  
positive.code: 
  -include("../include/wrangler.hrl").
  %% ================================================================================================
  %% @doc Search a user-selected expression or a sequence of expressions from an Erlang source file.
  %%
  %% <p> This functionality allows the user to search an selected expression or a sequence of expressions
  %% from the current Erlang buffer. The searching ignores variables names and literals, but it takes
  %% the binding structure of variables into account. Therefore the found expressions are the same to the 
  %% highlighted expression up to variable renaming and literal substitution. Layout and comments are ignored 
  %% by the searching.
  %% </p>
  %% <p> When the selected code contains multiple, but non-continuous sequence of, expressions, the first
  %% continuous sequence of expressions is taken as the user-selected expression. A continuous sequence of
  %% expressions is a sequence of expressions separated by ','.
  %% </p>
  %% =================================================================================================
  %% @spec expr_search_in_buffer(FileName::filename(), Start::Pos, End::Pos, integer(), SearchPaths::[dir()])-> 
  %%           {ok, [{filename(), {integer(), integer()}, {integer(), integer()}}]}.
  %% =================================================================================================         
  -spec(expr_search_in_buffer/5::(filename(), pos(), pos(), integer(), [dir()]) -> 
      {ok, [{filename(),{{integer(), integer()}, {integer(), integer()}}}]}).
  expr_search_in_buffer(FileName, Start = {Line, Col}, End = {Line1, Col1}, SearchPaths, TabWidth) ->
      ?wrangler_io("\nCMD: ~p:expr_search(~p, {~p,~p},{~p,~p},~p).\n",
  		 [?MODULE, FileName, Line, Col, Line1, Col1, TabWidth]),
      Es =  get_expr_selected(FileName, Start, End, SearchPaths, TabWidth),
      Res = do_expr_search(FileName, Es, SearchPaths, TabWidth),
      SE = refac_sim_expr_search:get_start_end_loc(Es),
      Res1 =[{FileName, SE}| Res -- [{FileName, SE}]],
      display_search_result(Res1).
  
  -spec(expr_search_in_dirs/5::(filename(), pos(), pos(), integer(), [dir()]) -> 
      {ok, [{filename(),{{integer(), integer()}, {integer(), integer()}}}]}).   
  expr_search_in_dirs(FileName, Start = {Line, Col}, End = {Line1, Col1}, SearchPaths, TabWidth) ->
      ?wrangler_io("\nCMD: ~p:expr_search_in_dirs(~p, {~p,~p},{~p,~p},~p, ~p).\n",
  		 [?MODULE, FileName, Line, Col, Line1, Col1, SearchPaths, TabWidth]),
      Files =[FileName|(refac_util:expand_files(SearchPaths, ".erl")-- [FileName])],
      Es =  get_expr_selected(FileName, Start, End, SearchPaths, TabWidth),
      Res =lists:append([do_expr_search(F, Es, SearchPaths, TabWidth) ||F<-Files]),
  
negative.code: 		string ->
  		    refac_syntax:default_literals_vars(Node, '%');
  		atom -> case refac_sim_expr_search:variable_replaceable(Node) of
  			    true -> 
  				refac_io:format("Node:\n~p\n", [Node]),
  				As = refac_syntax:get_ann(Node), 
  				case lists:keysearch(type,1, As) of 
  				    {value, _} -> 
  					refac_syntax:default_literals_vars(
  					  Node, refac_syntax:atom_value(Node));
  				    false ->
  					refac_syntax:default_literals_vars(Node, '%') 
  				end;					
  			    _ -> refac_syntax:default_literals_vars(
  				   Node, refac_syntax:atom_value(Node))
  			end;
  