@@ -22,6 +22,7 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
2222
2323 readonly start = new Position ( 0 , 0 ) ;
2424 readonly cache = new Map < string , Map < string , CompletionItem > > ( ) ;
25+ readonly isRemote = / ^ h t t p s ? : \/ \/ / i;
2526 readonly canComplete = / c l a s s \s * = \s * ( [ " ' ] ) (?: (? ! \1) .) * $ / si;
2627 readonly findLinkRel = / r e l \s * = \s * ( [ " ' ] ) ( (?: (? ! \1) .) + ) \1/ si;
2728 readonly findLinkHref = / h r e f \s * = \s * ( [ " ' ] ) ( (?: (? ! \1) .) + ) \1/ si;
@@ -36,7 +37,7 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
3637 } ) ;
3738 }
3839
39- fetchRemoteStyleSheet ( key : string ) : Thenable < string > {
40+ fetchStyleSheet ( key : string ) : Thenable < string > {
4041 return new Promise ( resolve => {
4142 if ( key === NONE ) {
4243 resolve ( NONE ) ;
@@ -45,7 +46,7 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
4546
4647 if ( items ) {
4748 resolve ( key ) ;
48- } else {
49+ } else if ( this . isRemote . test ( key ) ) {
4950 const items = new Map < string , CompletionItem > ( ) ;
5051
5152 fetch ( key ) . then ( res => {
@@ -60,6 +61,8 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
6061 resolve ( key ) ;
6162 }
6263 } , ( ) => resolve ( NONE ) ) ;
64+ } else {
65+ resolve ( NONE ) ;
6366 }
6467 }
6568 } ) ;
@@ -79,8 +82,8 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
7982 if ( rel && rel [ 2 ] === "stylesheet" ) {
8083 const href = this . findLinkHref . exec ( link [ 1 ] ) ;
8184
82- if ( href && href [ 2 ] . startsWith ( "http" ) ) {
83- promises . push ( this . fetchRemoteStyleSheet ( href [ 2 ] ) . then ( k => keys . add ( k ) ) ) ;
85+ if ( href ) {
86+ promises . push ( this . fetchStyleSheet ( href [ 2 ] ) . then ( k => keys . add ( k ) ) ) ;
8487 }
8588 }
8689 }
@@ -94,8 +97,8 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
9497 const keys = new Set < string > ( ) ;
9598 const promises = [ ] ;
9699
97- for ( const sheet of this . remoteStyleSheets ) {
98- promises . push ( this . fetchRemoteStyleSheet ( sheet ) . then ( k => keys . add ( k ) ) ) ;
100+ for ( const href of this . remoteStyleSheets ) {
101+ promises . push ( this . fetchStyleSheet ( href ) . then ( k => keys . add ( k ) ) ) ;
99102 }
100103
101104 Promise . all ( promises ) . then ( ( ) => resolve ( keys ) ) ;
0 commit comments