feat(language-service): add definitions for styleUrls (#32464)
Adds support for `styleUrls` definitions in the same way `templateUrl` definitions are provided; clicking on styleUrl will take a user to the respective file. Unifies some code in determining a URL definition. We first check if a url is a `templateUrl`; if it's not, we check that it's a `styleUrl` or return no definitions. PR Close #32464
This commit is contained in:

committed by
Matias Niemelä

parent
c3a1ef219e
commit
a391aebbcf
@ -275,4 +275,27 @@ describe('definitions', () => {
|
||||
expect(def.fileName).toBe('/app/test.ng');
|
||||
expect(def.textSpan).toEqual({start: 0, length: 0});
|
||||
});
|
||||
|
||||
it('should be able to find a stylesheet from a url', () => {
|
||||
const fileName = mockHost.addCode(`
|
||||
@Component({
|
||||
templateUrl: './test.ng',
|
||||
styleUrls: ['./«test».css'],
|
||||
})
|
||||
export class MyComponent {}`);
|
||||
|
||||
const marker = mockHost.getReferenceMarkerFor(fileName, 'test');
|
||||
const result = ngService.getDefinitionAt(fileName, marker.start);
|
||||
|
||||
expect(result).toBeDefined();
|
||||
const {textSpan, definitions} = result !;
|
||||
|
||||
expect(textSpan).toEqual({start: marker.start - 2, length: 10});
|
||||
|
||||
expect(definitions).toBeDefined();
|
||||
expect(definitions !.length).toBe(1);
|
||||
const [def] = definitions !;
|
||||
expect(def.fileName).toBe('/app/test.css');
|
||||
expect(def.textSpan).toEqual({start: 0, length: 0});
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user