@@ -213,6 +213,8 @@ export function postprocessLanguageService<T>(
213213 const proxyCache = new Map < string | symbol , Function | undefined > ( ) ;
214214 const getProxyMethod = ( target : ts . LanguageService , p : string | symbol ) : Function | undefined => {
215215 switch ( p ) {
216+ case 'findReferences' :
217+ return findReferences ( target [ p ] ) ;
216218 case 'getCompletionsAtPosition' :
217219 return getCompletionsAtPosition ( target [ p ] ) ;
218220 case 'getCompletionEntryDetails' :
@@ -240,6 +242,44 @@ export function postprocessLanguageService<T>(
240242 } ,
241243 } ) ;
242244
245+ function findReferences (
246+ findReferences : ts . LanguageService [ 'findReferences' ] ,
247+ ) : ts . LanguageService [ 'findReferences' ] {
248+ return ( fileName , ...rest ) => {
249+ const result = findReferences ( fileName , ...rest ) ;
250+ if ( ! result ) {
251+ return result ;
252+ }
253+ // #5719
254+ for ( const { references } of result ) {
255+ for ( const reference of references ) {
256+ const sourceScript = language . scripts . get ( asScriptId ( reference . fileName ) ) ;
257+ const root = sourceScript ?. generated ?. root ;
258+ if ( ! sourceScript || ! ( root instanceof VueVirtualCode ) ) {
259+ continue ;
260+ }
261+ const styles = root . sfc . styles ;
262+ if ( ! styles . length ) {
263+ return result ;
264+ }
265+ const isInStyle = styles . some ( style =>
266+ reference . textSpan . start >= style . startTagEnd
267+ && reference . textSpan . start + reference . textSpan . length <= style . endTagStart
268+ ) ;
269+ if ( ! isInStyle ) {
270+ continue ;
271+ }
272+ const leadingChar = sourceScript . snapshot . getText ( reference . textSpan . start - 1 , reference . textSpan . start ) ;
273+ if ( leadingChar === '.' ) {
274+ reference . textSpan . start -- ;
275+ reference . textSpan . length ++ ;
276+ }
277+ }
278+ }
279+ return result ;
280+ } ;
281+ }
282+
243283 function getCompletionsAtPosition (
244284 getCompletionsAtPosition : ts . LanguageService [ 'getCompletionsAtPosition' ] ,
245285 ) : ts . LanguageService [ 'getCompletionsAtPosition' ] {
0 commit comments