@@ -73,20 +73,6 @@ function sortedWorkspaceFolders(): string[] {
73
73
return _sortedWorkspaceFolders
74
74
}
75
75
76
- function getOuterMostWorkspaceFolder ( folder : WorkspaceFolder ) : WorkspaceFolder {
77
- let sorted = sortedWorkspaceFolders ( )
78
- for ( let element of sorted ) {
79
- let uri = folder . uri . toString ( )
80
- if ( uri . charAt ( uri . length - 1 ) !== '/' ) {
81
- uri = uri + '/'
82
- }
83
- if ( uri . startsWith ( element ) ) {
84
- return Workspace . getWorkspaceFolder ( Uri . parse ( element ) ) !
85
- }
86
- }
87
- return folder
88
- }
89
-
90
76
function getUserLanguages ( folder ?: WorkspaceFolder ) : Record < string , string > {
91
77
const langs = Workspace . getConfiguration ( 'tailwindCSS' , folder ) . includeLanguages
92
78
return isObject ( langs ) ? langs : { }
@@ -217,7 +203,6 @@ export async function activate(context: ExtensionContext) {
217
203
if ( ! folder || isExcluded ( uri . fsPath , folder ) ) {
218
204
return
219
205
}
220
- folder = getOuterMostWorkspaceFolder ( folder )
221
206
bootWorkspaceClient ( folder )
222
207
} )
223
208
@@ -231,7 +216,6 @@ export async function activate(context: ExtensionContext) {
231
216
return
232
217
}
233
218
if ( await fileContainsAtConfig ( uri ) ) {
234
- folder = getOuterMostWorkspaceFolder ( folder )
235
219
bootWorkspaceClient ( folder )
236
220
}
237
221
}
@@ -465,6 +449,34 @@ export async function activate(context: ExtensionContext) {
465
449
outputChannel : outputChannel ,
466
450
revealOutputChannelOn : RevealOutputChannelOn . Never ,
467
451
middleware : {
452
+ provideCompletionItem ( document , position , context , token , next ) {
453
+ let workspaceFolder = Workspace . getWorkspaceFolder ( document . uri )
454
+ if ( workspaceFolder !== folder ) {
455
+ return null
456
+ }
457
+ return next ( document , position , context , token )
458
+ } ,
459
+ provideHover ( document , position , token , next ) {
460
+ let workspaceFolder = Workspace . getWorkspaceFolder ( document . uri )
461
+ if ( workspaceFolder !== folder ) {
462
+ return null
463
+ }
464
+ return next ( document , position , token )
465
+ } ,
466
+ handleDiagnostics ( uri , diagnostics , next ) {
467
+ let workspaceFolder = Workspace . getWorkspaceFolder ( uri )
468
+ if ( workspaceFolder !== folder ) {
469
+ return
470
+ }
471
+ next ( uri , diagnostics )
472
+ } ,
473
+ provideCodeActions ( document , range , context , token , next ) {
474
+ let workspaceFolder = Workspace . getWorkspaceFolder ( document . uri )
475
+ if ( workspaceFolder !== folder ) {
476
+ return null
477
+ }
478
+ return next ( document , range , context , token )
479
+ } ,
468
480
async resolveCompletionItem ( item , token , next ) {
469
481
let result = await next ( item , token )
470
482
let selections = Window . activeTextEditor . selections
@@ -506,6 +518,11 @@ export async function activate(context: ExtensionContext) {
506
518
return result
507
519
} ,
508
520
async provideDocumentColors ( document , token , next ) {
521
+ let workspaceFolder = Workspace . getWorkspaceFolder ( document . uri )
522
+ if ( workspaceFolder !== folder ) {
523
+ return null
524
+ }
525
+
509
526
let colors = await next ( document , token )
510
527
let editableColors = colors . filter ( ( color ) => {
511
528
let text =
@@ -666,8 +683,6 @@ export async function activate(context: ExtensionContext) {
666
683
if ( ! folder ) {
667
684
return
668
685
}
669
- // If we have nested workspace folders we only start a server on the outer most workspace folder.
670
- folder = getOuterMostWorkspaceFolder ( folder )
671
686
672
687
if ( searchedFolders . has ( folder . uri . toString ( ) ) ) {
673
688
return
0 commit comments