1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
diff --git a/packages/vscode-tailwindcss/src/extension.ts b/packages/vscode-tailwindcss/src/extension.ts
index 9840aa456ffbb5a026857b7f57048d51ccd9010d..8455948fd594ea7736a9f454cb9f74737da8471a 100755
--- a/packages/vscode-tailwindcss/src/extension.ts
+++ b/packages/vscode-tailwindcss/src/extension.ts
@@ -73,20 +73,6 @@ }
return _sortedWorkspaceFolders
}
-function getOuterMostWorkspaceFolder(folder: WorkspaceFolder): WorkspaceFolder {
- let sorted = sortedWorkspaceFolders()
- for (let element of sorted) {
- let uri = folder.uri.toString()
- if (uri.charAt(uri.length - 1) !== '/') {
- uri = uri + '/'
- }
- if (uri.startsWith(element)) {
- return Workspace.getWorkspaceFolder(Uri.parse(element))!
- }
- }
- return folder
-}
-
function getUserLanguages(folder?: WorkspaceFolder): Record<string, string> {
const langs = Workspace.getConfiguration('tailwindCSS', folder).includeLanguages
return isObject(langs) ? langs : {}
@@ -217,7 +203,6 @@ let folder = Workspace.getWorkspaceFolder(uri)
if (!folder || isExcluded(uri.fsPath, folder)) {
return
}
- folder = getOuterMostWorkspaceFolder(folder)
bootWorkspaceClient(folder)
})
@@ -231,7 +216,6 @@ if (!folder || isExcluded(uri.fsPath, folder)) {
return
}
if (await fileContainsAtConfig(uri)) {
- folder = getOuterMostWorkspaceFolder(folder)
bootWorkspaceClient(folder)
}
}
@@ -465,6 +449,34 @@ workspaceFolder: folder,
outputChannel: outputChannel,
revealOutputChannelOn: RevealOutputChannelOn.Never,
middleware: {
+ provideCompletionItem(document, position, context, token, next) {
+ let workspaceFolder = Workspace.getWorkspaceFolder(document.uri)
+ if (workspaceFolder !== folder) {
+ return null
+ }
+ return next(document, position, context, token)
+ },
+ provideHover(document, position, token, next) {
+ let workspaceFolder = Workspace.getWorkspaceFolder(document.uri)
+ if (workspaceFolder !== folder) {
+ return null
+ }
+ return next(document, position, token)
+ },
+ handleDiagnostics(uri, diagnostics, next) {
+ let workspaceFolder = Workspace.getWorkspaceFolder(uri)
+ if (workspaceFolder !== folder) {
+ return
+ }
+ next(uri, diagnostics)
+ },
+ provideCodeActions(document, range, context, token, next) {
+ let workspaceFolder = Workspace.getWorkspaceFolder(document.uri)
+ if (workspaceFolder !== folder) {
+ return null
+ }
+ return next(document, range, context, token)
+ },
async resolveCompletionItem(item, token, next) {
let result = await next(item, token)
let selections = Window.activeTextEditor.selections
@@ -506,6 +518,11 @@ }
return result
},
async provideDocumentColors(document, token, next) {
+ let workspaceFolder = Workspace.getWorkspaceFolder(document.uri)
+ if (workspaceFolder !== folder) {
+ return null
+ }
+
let colors = await next(document, token)
let editableColors = colors.filter((color) => {
let text =
@@ -666,8 +683,6 @@ // Single file languages like JSON might handle files outside the workspace folders.
if (!folder) {
return
}
- // If we have nested workspace folders we only start a server on the outer most workspace folder.
- folder = getOuterMostWorkspaceFolder(folder)
if (searchedFolders.has(folder.uri.toString())) {
return
|