fix(language-service): The pipe method should not include parentheses (#34485)
PR Close #34485
This commit is contained in:
		
							parent
							
								
									eab7f9f101
								
							
						
					
					
						commit
						ba2fd31e62
					
				| @ -469,11 +469,15 @@ class ExpressionVisitor extends NullTemplateVisitor { | |||||||
|       if (s.name.startsWith('__') || !s.public || this.completions.has(s.name)) { |       if (s.name.startsWith('__') || !s.public || this.completions.has(s.name)) { | ||||||
|         continue; |         continue; | ||||||
|       } |       } | ||||||
|  | 
 | ||||||
|  |       // The pipe method should not include parentheses.
 | ||||||
|  |       // e.g. {{ value_expression | slice : start [ : end ] }}
 | ||||||
|  |       const shouldInsertParentheses = s.callable && s.kind !== ng.CompletionKind.PIPE; | ||||||
|       this.completions.set(s.name, { |       this.completions.set(s.name, { | ||||||
|         name: s.name, |         name: s.name, | ||||||
|         kind: s.kind as ng.CompletionKind, |         kind: s.kind as ng.CompletionKind, | ||||||
|         sortText: s.name, |         sortText: s.name, | ||||||
|         insertText: s.callable ? `${s.name}()` : s.name, |         insertText: shouldInsertParentheses ? `${s.name}()` : s.name, | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -208,6 +208,18 @@ describe('completions', () => { | |||||||
|     })); |     })); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|  |   it('for methods of pipe should not include parentheses', () => { | ||||||
|  |     mockHost.override(TEST_TEMPLATE, `<h1>{{title | lowe~{pipe-method} }}`); | ||||||
|  |     const marker = mockHost.getLocationMarkerFor(TEST_TEMPLATE, 'pipe-method'); | ||||||
|  |     const completions = ngLS.getCompletionsAt(TEST_TEMPLATE, marker.start); | ||||||
|  |     expect(completions).toBeDefined(); | ||||||
|  |     expect(completions !.entries).toContain(jasmine.objectContaining({ | ||||||
|  |       name: 'lowercase', | ||||||
|  |       kind: CompletionKind.PIPE as any, | ||||||
|  |       insertText: 'lowercase', | ||||||
|  |     })); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|   describe('in external template', () => { |   describe('in external template', () => { | ||||||
|     it('should be able to get entity completions in external template', () => { |     it('should be able to get entity completions in external template', () => { | ||||||
|       const marker = mockHost.getLocationMarkerFor(TEST_TEMPLATE, 'entity-amp'); |       const marker = mockHost.getLocationMarkerFor(TEST_TEMPLATE, 'entity-amp'); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user