Skip to content

Commit 58d3b61

Browse files
committed
Allow test harness to force-enable additional features
1 parent c68e08b commit 58d3b61

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

packages/tailwindcss-language-server/src/projects.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,13 @@ export async function createProjectService(
469469
log(`supported features: ${JSON.stringify(features)}`)
470470
state.features = features
471471

472+
if (params.initializationOptions?.testMode) {
473+
state.features = [
474+
...state.features,
475+
...(params.initializationOptions.additionalFeatures ?? []),
476+
]
477+
}
478+
472479
if (!features.includes('css-at-theme')) {
473480
tailwindcss = tailwindcss.default ?? tailwindcss
474481
}
@@ -695,6 +702,14 @@ export async function createProjectService(
695702
state.v4Fallback = true
696703
state.jit = true
697704
state.features = features
705+
706+
if (params.initializationOptions?.testMode) {
707+
state.features = [
708+
...state.features,
709+
...(params.initializationOptions.additionalFeatures ?? []),
710+
]
711+
}
712+
698713
state.modules = {
699714
tailwindcss: { version: tailwindcssVersion, module: tailwindcss },
700715
postcss: { version: null, module: null },

packages/tailwindcss-language-server/tests/utils/client.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import { clearLanguageBoundariesCache } from '@tailwindcss/language-service/src/
4747
import { DefaultMap } from '../../src/util/default-map'
4848
import { connect, ConnectOptions } from './connection'
4949
import type { DeepPartial } from '@tailwindcss/language-service/src/types'
50+
import type { Feature } from '@tailwindcss/language-service/src/features'
5051

5152
export interface DocumentDescriptor {
5253
/**
@@ -170,6 +171,14 @@ export interface ClientOptions extends ConnectOptions {
170171
* Settings to provide the server immediately when it starts
171172
*/
172173
settings?: DeepPartial<Settings>
174+
175+
/**
176+
* Additional features to force-enable
177+
*
178+
* These should normally be enabled by the server based on the project
179+
* and the Tailwind CSS version it detects
180+
*/
181+
features?: Feature[]
173182
}
174183

175184
export interface Client extends ClientWorkspace {
@@ -394,6 +403,7 @@ export async function createClient(opts: ClientOptions): Promise<Client> {
394403
workspaceFolders,
395404
initializationOptions: {
396405
testMode: true,
406+
additionalFeatures: opts.features,
397407
...opts.options,
398408
},
399409
})

0 commit comments

Comments
 (0)