File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed
Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -65,8 +65,15 @@ impl DefinitionFeature {
6565 } ;
6666 let mut model_found = false ;
6767 let from_module = file_symbol. borrow ( ) . find_module ( ) ;
68- for class_symbol_rc in model. borrow ( ) . get_symbols ( session, from_module. clone ( ) ) {
68+ let classes = model. borrow ( ) . get_symbols ( session, from_module. clone ( ) ) ;
69+ let len_classes = classes. len ( ) ;
70+ for class_symbol_rc in classes {
6971 let class_symbol = class_symbol_rc. borrow ( ) ;
72+ if let ( Some ( eval_range) , Some ( class_file) ) = ( eval. range , class_symbol. get_file ( ) . and_then ( |file_sym_weak| file_sym_weak. upgrade ( ) ) ) {
73+ if Rc :: ptr_eq ( file_symbol, & class_file) && class_symbol. range ( ) . contains ( eval_range. start ( ) ) && len_classes > 1 {
74+ continue ; // if we are already on the class, skip, unless it is the only result
75+ }
76+ }
7077 if let Some ( model_file_sym) = class_symbol. get_file ( ) . and_then ( |model_file_sym_weak| model_file_sym_weak. upgrade ( ) ) {
7178 let path = model_file_sym. borrow ( ) . paths ( ) [ 0 ] . clone ( ) ;
7279 let range = session. sync_odoo . get_file_mgr ( ) . borrow ( ) . text_range_to_range ( session, & path, & class_symbol. range ( ) ) ;
You can’t perform that action at this time.
0 commit comments